Robot telecinèsic

From Edutec Wiki
Revision as of 14:26, 19 June 2019 by Cbarriuso (Talk | contribs)

Jump to: navigation, search

Telecinesi1.png
La telecinesi és un superpoder parapsicològic consistent a poder moure objectes sense necessitat de tocar-los, "amb el poder de la ment".

És possible programar un robot per a que sigui mogut sense ser tocat, segons indicacions fetes amb les mans i que, amb una mica de teatre, pugui semblar que es mou amb la pròpia ment.

L'objectiu d'aquesta pràctica és que, en acostar la mà al robot Fantàstic, aquest reculi una distància abans de ser tocat. En allunyar la mà deixarà de recular. Això es fa gràcies al sensor de llum incorporat a la placa Citilab ED1, que detectarà quan rep menys llum, per exemple en ser tapada parcialment amb la mà. Per a fer-ho s'utilitza el programari MicroBlocks. Cap pseudociència és requerida.

Vegeu prèviament: Introducci a ED1 i robot Fantàstic

 

Sensor de llum

La placa Citilab ED1 del robot Fantàstic té integrat un sensor de llum.

Telecinesi3.png

Dóna valors entre 0, quan no rep gens de llum, i 1.023, quan està molt il·luminat. Els sensors de llum s'utilitzen de vegades amb funcions similars a la detecció de presència, ja que quan un cos opac s'hi acosta la llum incidida sobre el sensor és menor, o fins i tot pot ser nul·la si el tapa completament.

El sensor de llum, com tots els sensors, aporta informació del medi al microcontrolador de la placa electrònica. Es considera doncs una entrada d'informació a la placa. MicroBlocks conté, a la categoria Entrada, un bloc específic: nivell de llum, que retorna la quantitat de llum mesurada pel sensor.

Arrossega el bloc a la zona de programació i apropa una mà a diferents distàncies del sensor, incloent cobrir-lo per contacte directe. Mentre, amb l'altra mà, clica reiterades vegades a sobre del bloc i observa quins valors dóna en cada cas.

Telecinesi4.png

Programació

Abans de començar a programar cal, com sempre, definir l'estratègia: Primer de tot cal decidir quina distància de la mà al sensor, i per tant al robot, es considera adient. Cal tenir en compte que es tracta d'una mena de "calibrat", que serà almenys una mica diferent en diferents llocs, amb diferents il·luminacions, i fins i tot potser depenent de l'hora del dia o, a causa de les finestres, del temps que faci. Això es fa experimentalment. Després el que es vol es que es mogui segons aquest llindar. Caldrà doncs una comparació, si el nivell de llum és menor o major al decidit, es mourà o no farà res (que es equivalent a que s'aturi). Per moure el robot es fan servir uns blocs especials. Som-hi!

1.Després d'unes proves, el llindar establert és, per exemple, 100.

2.A la categoria Operacions es troben els blocs comparadors: cal arrossegar el "més petit que" únicament, ja que si el nivell de llum és més gran, la mà està allunyada i el robot no es mou, no cal indicar-li res en aquest cas!

3.Òbviament, també cal arrossegar el bloc "nivell de llum", de la categoria Entrada, i el bloc "quan" de la categoria de Control.

4.Per al robot Fantàstic existeixen uns blocs de moviment específics a la llibreria Llibreries  → [ ] Citilab ED1  → ED1 Stepper Motor. ulib

Telecinesi5.png

5.Finalment, el programa muntat queda així:

Telecinesi6.png

Com faries que, en comptes de recular, el robot s'acosti a la teva mà?

Podries fer que, en comptes de moure's, es vegi un dibuix a la pantalla?