Unitat07_Les comunicacions de micro:bit

P01_ Transmissió de dades entre dos micro:bits

Emissor

Sintonitzem el canal (pot anar de 1 a 99). Enviem el nivell de llum a l'estació receptora. Podem veure també el gràfic de llum en temps real, i recollir les dades

Receptor

Aquesta estació mostra un gràfic de barres del nivell de llum. Si hi incideix menys llum, el gràfic baixa. Poseu-hi un receivedNumber en lloc del zero del plot bar graph.

  • Proveu de posar el mateix codi a les dues targetes. Simuleu i carregueu el codi

P02_Missatge de text a d'una micro:bit a una altra

Emissor

Sintonitzem el canal (en aquest cas el 5). Enviem el text "hola" a l'estació receptora. Per transmetre, hem de polsar A

Receptor

Mostrem la variable que hem posat com a paràmetre. Les estacions poden estar funcionant amb pila, desconnectades de l'ordinador.

P03_Transmissió bidireccional

Emissor i receptor

El programa és el mateix per a les dues targetes. Vol dir que cada targeta pot emetre i rebre dades. Mireu el codi. Fàcil!!!

Només un detall. Compte amb els delays. Igual que passa amb Scratch, per exemple, els delays ens poden fer anar de corcoll. Recordeu els delays, proveu diferents valors i ajusteu.

P04_Comandament a distància d'un led

En aquests programes de simulació, el simulador no sempre ajuda. En aquest cas sí. ^roveu el programa amb el simulador abans de muntar. Polseu el polsador A o el P0 d'una placa i mireu que afecta al pin P2 de l'altra, i viceversa. Si polseu A/P0, es produeix un canvi d'estat en el pin P2 de la placa receptora.

P05_La tortuga traça un quadrat

Aquest apartat, a banda de la seva importància didàctica, vol ser un homenatge A Seymour Papert, creador del programa Logo i de la seva entranyable Tortuga:

De fet, el món Scratch és un hereu de Logo

La llibreria Turtle és una extensió que podeu afegir a makecode. Mireu la referència que us ofereix el programa per veure, encara que sigui de passada, quines són les seves instruccions/possibilitats.

Els programes fets amb la llibreria Turtle són ideals per a traçar trajectòries i per a estudiar el concepte d'orientació.

La tortuga la veiem a la micro:bit en forma de led. D'entrada apunta cap amunt. Fixem-nos amb el programa. Girem cap a la dreta, fixem la velocitat, i ja estem a punt per escoltar el tret de sortida, que el tenim al forever.

Un cop fixats els paràmetres de la tortuga, la fem avançar 4 passes i la fem girar. I així va caminant la nostra tortuga. Prou ràpida!!!

P06_La tortuga defineix una espiral i una O

Aquesta pràctica presenta dos programes. En un d'ells veiem com la tortuga traça la trajectòria d'una espiral.

Per tal d'entendre què fa la tortuga, us recomano que:

  • Expliqueu la funció de la inicialització de la variable index a zero, al bloc Al iniciar.
  • Agafeu llapis i paper, fixau-vos amb el primer For i aneu donant valors a index2, primer zero... i fins a 4. Feu el mateix amb el segon For i la variable index3
  • Raoneu perquè no hem inicialitzat les variables index2 i index3 a zero al bloc Al iniciar/On start

Agafar paper i llapis és una bona manera d'aprendre a seguir les estructures bàsiques en programació: For, While, Repeat, If then Else. De fet, són estructures que es poden combinar.

Amb un If podem fer un For, per exemple. El que passa és que segons com, ens pot convenir l'un i l'altre no.

P07_ Tortuga rastrejant la pantalla



La tortuga de micro:bit ja no és la tortuga de Logo. Ja pot anar més de pressa.

Inicialitzem la tortuga a la posició (0,0) i la orientem cap a la dreta. Ja no apunta verticalment i cap amunt sinó que ha girat 90º cap a la dreta.

Avança 4 passes. Torna a girar cap a la dreta i avança un pas (avall).

Orientem la tortuga cap a la l'esquerra.

Es mou 4 passes cap a l'esquerra, ja que de fet ella tira endarrere i està orientada mirant cap a la dreta. Gira cap a la dreta i avança un pas (avall).

La orientem cap a la dreta i la fem tirar endarrere 4 passes.

Ja hem baixat 3 files de leds.

Seguiu la tortuga fins que no arribi a la seva destinació final.

Per mirar de fer el seguiment d'aquest programa, agafeu el llapis i mireu d'endevinar el moviment de la tortuga. Aquesta és una molt bona activitat per a preguntar en una prova escrita.

La tortuga es pot utilitzar doncs per a descriure trajectòries i també per a deixar-les marcades (leds que s'il·luminen fent menys brillantor).

El programa es podia fer d'una manera més lògica, tirant sempre endavant, per exemple, i orientant la tortuga de manera que ella faci el mateix recorregut. Es tractava d'entendre les instruccions.

També es podria demanar l'activitat de manera que la tortuga esdevingui un cranc i vagi sempre endarrere.

P08_ Llibreria control (CTL). Reset de la micro:bit

Hem dissenyat un comptador que posem a zero amb un polsador.

Hem fet un reset per software. No cal que polsem el botó de Reset.

P09_ Llibreria control (CTL). Execució en segon pla

Ejecutar en segundo plano és un bloc de la llibreria de control que pot executar un programa de manera independent al programa principal. No el podem assimilar a una funció, ja que aquesta sí que és cridada i per tant executada pel programa principal.

P10_ Llibreria control (CTL). Enviar/Rebre events al bus

La instrucció raise event envia al bus de la micro:bit un event amb el que podrem detectar i executar codi que tindrem ubicat en el bloc on event.

En la pràctica s'han enviat dos events des del programa principal, que simulen l'activació dels polsadors A i B. Aquests events s'han de detectar i s'ha de mostrar per pantalla una A o una B, respectant l'espera programada.

Si traiem el codi del bloc para siempre, per a executar-se l'event, heu de prémer el polsador A. Si premeu B, no funciona!!!

En canvi, si traieu el codi del para siempre i al bloc on event poseu MES_DPAD_BUTTON_A_DOWN i també MES_DPAD_BUTTON_B_DOWN, sí que funciona, sembla que respongui al flanc de baixada (quan deixem de polsar A/B).

P11_ Llibreria control (CTL). Temps entre events



D'inici mostrem una P, indicant que el programa està preparat per a mesurar el temps entre 2 events.

Si polsem P0, comença a comptar el temps via event timestamp , i es mostra l'inici de l'interval. Al polsar P1, mostrem l'interval sencer simulant-lo amb dues línies verticals i mostrem el temps. Hem posat un espai abans de mostrar el temps t, per tal que no s'enganxi a la barra vertical.

És interessant de veure que el podem mostrar pel port sèrie, i també podem graficar els intervals. En definitiva, podem crear una base de dades amb els intervals obtinguts.

P12_ Llibreria control (CTL). Generem un pols per un pin

El programa ens mostra un impuls d'un segon.

Recordeu que aquestes instruccions NO funcionen amb la simulació.

Per veure el pols generat, heu de muntar un fil que vagi de P0 a una resistència, en sèrie a un led i aquest a GND.

Com veieu al programa, el temps ve donat amb microsegons (uS).

  • Aprofiteu el programa per a canviar els temps, per a treure la última instrucció i veure què passa...

PROVEU!!!

Així, el bloc de la llibreria pins us funcionarà només a la placa. El bloc de la llibreria Input us funcionarà al simulador i a la placa:

P13_ Llibreria control (CTL). Senyal periòdic

Si amb el bucle on start fèiem un impuls, amb el forever en farem n.

Els impulsos creats seran periòdics, tot i que no tenen el temps de cada semiperíode pot variar.

  • Dibuixeu el valor de l'impuls a P0 en funció del temps en la pràctica que es mostra a l'esquerra
  • Dissenyeu impulsos periòdics que estiguin t1=1s a nivell alt i t2=0,6s a nivell baix
  • Proveu de fer un semàfor de vehicles i un de vianants usant aquesta estructura

Pràctiques proposades

P14_ La tortuga camina en diagonal

Feu un programa en què, sabent que la tortuga es trobi en el vèrtex d'una diagonal, aquesta ascendeixi en direcció dreta, fins a arribar al darrer extrem de la diagonal, i encengui un led cada vegada que hi arribi. Quan la tortuga baixi per la mateixa diagonal, ha d'anar apagant els leds fins a arribar al punt de partida.

P15_ La tortuga es continua movent

Trieu una fila de la matriu leds. Ubiqueu la tortuga (led il·luminat) en un led d'un dels extrems. Si polseu A, la tortuga va cap a la dreta. Si polseu B, va cap a l'esquerra.

P16_ Cap a on girem?

Continuem amb la tortuga. Ho podem saber gràcies a l'acceleròmetre i a la matriu leds. Feu un programa en què, partint d'un led del mig d'una fila encès (per exemple), si girem cap a la dreta, s'activa un led de més a la dreta i s'apaga l'anterior. Ídem cap a l'esquerra. També podríem fer el mateix però amb l'eix y, creant una variable de nom ay, per exemple. Noteu que no ho podeu fer amb les dues gs al mateix temps, ja que només tenim una tortuga. Per tant, traieu el codi de dins del forever que correspon a la ax si voleu provar la ay i a la inversa.

P17_ Impulsos

Feu un programa que:

  • Si premem A, generi cinc cicles periòdics, d'un cert t1 actiu i un altre cert t2 inactiu. Trieu els temps. Visualitzeu els impulsos en un led (x1,y1)
  • Si premem B, generi 10 cicles periòdics, usant uns temps diferents dels que heu fet servir polsant A. Visualitzeu els impulsos en un led (x2,y2)

Useu la instrucció esperar(us) de la llibreria Control.