Control remot de S4A amb App Inventor

8 11 2014

Tot i què S4A no carrega cap programa a l’Arduino i només permet la comunicació entre dispositius connectats en xarxa local, podem controlar l’execució d’un programa en S4A des del mòbil, inclús des d’una pàgina web. Aquesta és la nostra proposta per encendre i apagar un LED:

El procés és simple un cop descobert i consta de 3 fases:
1. Creació del programa S4A amb instruccions associades a la recepció de missatges
2. Activació dels sensors remots en S4A
3. Creació d’una aplicació amb App Inventor des de la qual enviar els missatges a l’S4A

El programa S4A
Les instruccions a executar des de l’app han d’estar associades a la recepció de missatges. Aquest és el nostre programa de prova, amb dues funcions per encendre o apagar un LED connectat al pin 10 d’Arduino en funció de l’estat d’un sensor. Així, el LED s’encendrà o s’apagarà quan el programa rebi el missatge llumON o llumOFF, sigui des del mateix S4A o des de l’app.

appS4A02

Activació dels sensors remots
El protocol de sensors remots és una funció que permet l’interacció entre Scratch i altres programes. Aquesta comunicació es fa a través del port 42001 de l’ordinador via TCP/IP, el protocol de comunicació per Internet, i s’activa des del menu Editar / Host de Xarxa de S4A, que a més ens mostra l’adreça IP de l’ordinador.

SR01

Sintaxi de l’enviament de missatges
De la mateixa manera que amb el bloc Envia a tots de Scratch fem que s’executi el codi dins la funció Al rebre, podem definir URLs que continguin la instrucció d’enviament d’aquest mateix missatge.
Així, l’execució serà la mateixa si enviem el missatge des del mateix programa, des d’un navegador d’Internet o des d’una app mòbil.

Missatges

http:// indica que es tracta d’una URL
192.168.1.12 és l’adreça IP de l’ordinador amb el programa S4A funcionant
42001 és el port de comunicació
broadcast és la funció d’enviament de missatges
llumON: el valor de la funció broadcast és el nom del missatge a enviar, que ha de coincidir amb el del programa en S4A

L’aplicació amb App Inventor
Aquests són els components mínims que necessitem per encendre i apagar el LED:

appS4A01

UserInterface/ListPicker
És un botó que en ser clicat mostrarà una llista amb els noms dels dispositius amb els que ens pugui interessar connectar el mòbil per executar l’app.
Al pannel Blocks de l’App Inventor definim com elements de la ListPicker els noms dels dispositius, dins d’una llista.

appS4A03

Un cop haguem seleccionat el dispositiu, caldrà assignar-li la seva adreça IP (la podem obtenir des de l’S4A). Nosaltres hem creat una variable que hem anomenat IP, i l’hem inicialitzat a zero. El valor d’aquesta variable serà la IP del dispositiu seleccionat.

appS4A04

Enviament de missatges mitjançant botons
El BotoEncen, en ser clicat, ha d’enviar el missatge: http://IP:42001/broadcast=llumON.
Per fer l’acció de l’enviament hem utilitzat un component de conectivitat ViewViewer, que pot executar accions html en un frame, sense necessitat d’obrir el navegador i perdre la pantalla de l’app.
A la programació del botó només cal definir la crida al WebWiewer en clicar-lo, així com la URL: el missatge a enviar. Com que aquest missatge conté dades de diferent naturalessa (text + variable IP) cal un bloc de text Join per treballar amb tots ells a l’hora.

appS4A05

La programació del BotoApaga és exactament la mateixa que la del BotoEncen. L’únic que canvia és el nom del missatge a enviar, en aquest cas: llumOFF.

appS4A06

A partir d’aquí, amb una mica d’imaginació es pot complicar i perfeccionar l’app amb més botons, enllaços, diferents pantalles, etiquetes informatives, …
Aquestes són les pantalles de la nostra, inspirada en la proposada per l’ex-alumne Tecno-Lògic J. Santiago al seu Treball de Recerca en Domòtica amb Arduino controlat per Scratch for Arduino, i gràcies a l’ajuda de Victor Casado, membre de l’equip de desenvolupament de S4A.
Clicant sobre la imatge podeu descarregar l’arxiu .aia de l’aplicació

DomoS4A





Inserir codi Arduino al bloc

26 10 2014

La nostra participació al projecte Tecnologies Creatives. Impulsem la Robòtica ens impideix enguany descobrir Arduino amb el llenguatge gràfic Scratch for Arduino a 4t d’ESO, amb algun pro i bastants contres.

Entre d’altres pegues … com podem compartir els nostres codis al bloc de manera comprensible? Copiant el codi des de l’IDE Arduino i engantxant directament a l’editor del bloc es crea un desordre que no entenem ni els propis creadors :-(

Després de molt pensar i investigar, resulta que la solució és ben senzilla !!!
Al menu Editar de l’IDE hi ha una opció que copia tot el codi del programa en fomat HTML …

CopiarCodiArduino

Ara només cal enganxar-lo a l’editor del bloc. Aixó sí, a la vista d’edició en HTML (vista Text als blocs de wordpress.com, com aquest).

Aquest és el resultat, d’alló més professional … :-)

/* Blink */

int led = 13;  // pin de connexió LED
int temps = 1000;  // temps d'intermitència

void setup()
{
    pinMode(led,OUTPUT);  // el pin especificat és una sortida digital
}

void loop()
{
    digitalWrite(led,HIGH);  // treu 5V pel pin especificat (encén el Led)
    delay(temps);  // durant el temps especificat
    digitalWrite(led,LOW);  // treu 0V pel pin especificat (apaga el Led)
    delay(temps);  // durant el temps especificat
}

Resulta que tot el codi HTML del codi Arduino queda colocat entre les etiquetes <pre> </pre> La resta de codi HTML es refereix als colors del text. Si trec aquestes etiquetes el resultat és potser menys professional però per al meu gust més amable*:

/* Blink */

int led = 13;  // pin de connexió LED
int temps = 1000;  // temps d’intermitència

void setup()
{
  pinMode(led,OUTPUT);  // el pin especificat és una sortida digital
}

void loop()
{
  digitalWrite(led,HIGH);  // treu 5V pel pin especificat (encén el Led)
  delay(temps);  // durant el temps especificat
  digitalWrite(led,LOW);  // treu 0V pel pin especificat (apaga el Led)
  delay(temps);  // durant el temps especificat
}

* A Blogger (els blocs dels meus alumnes) passa tot el contrari: el codi HTML amb les etiquetes <pre></pre> queda bé, però treient aquestes etiquetes, perd tot el format.





Arduino + S4A. Hello world via Bluetooth

17 07 2014

Gràcies a Arduino i a Scrath for Arduino els Tecno-Lògics ens introduïm en la computació física de manera creativa, però sempre amb cables USB pel mig. Aquesta “limitació” ha portat de cap a la profe durant molt de temps, però al final el mòdul Bluetooth ha estat dominat!
Abans que se m’oblidi cap detall deixo aqui la meva xuleta de com ho he aconseguit:

El mòdul Bluetooth HC-06 utilitzat, comprat a e-bay >>>

Connexions HC-06 –> Arduino:
HC-06 RXD –> Arduino Pin 1 (TXD)
HC-06 TXD –> Arduino Pin 0 (RXD)
HC-06 GND –> Arduino GND
HC-06 VCC –> Arduino +5V
Els pins 0 (RXD), 1 (TXD) són els que utilitza Arduino per comunicar-se amb el PC (enviar i rebre dades)

Sincronització del HC-06 amb el PC
Un cop connectat a l’Arduino i aquest a l’ordinador via USB per alimentar-lo l’he sincronitzat amb el PC a través de l’administrador de dispositius Bluetooth del Windows.

Configuració del HC-06
Aquest ha estat el punt més liós: el mòdul Bluetooth està configurat per treballar a 6.900 bps, però segons Victor Casado, de l’equip de desenvolupament de S4A, tant l’S4A com el firmware estan configurats en 38.400 bps. Així doncs, cal canviar la configuració del HC-06.
Després de molts intents frustrants, ho he aconseguit gràcies al tutorial de Erick Rodriguez al bloc Ingeniería en Mantenimiento Industrial amb un sketch que permet canviar la configuració de diferents paràmetres del HC-06 mitjançant l’enviament de comandaments AT a través de la placa Arduino. Aixó si, desconnectant el bluetooth abans de carregar l’sketch a l’Arduino i tornant-lo a connectar dins del temps fixat.

Comprovació del funcionament
A l’administrador de dispositius del windows he mirat quin port COM ha assignat al mòdul Bluetooth. En executar l’S4A he aturat la cerca automàtica de la placa, he especificat el port COM corresponent i … la taula de sensors ha començar a ballar!!!
Per assegurar-me he canviat l’alimentació USB per 4 piles AA (6V) amb el resultat que mostra el vídeo:





BellBots Arduino v.1314

6 07 2014

Els Tecno-Lògics de 1r Batxillerat hem dedicat 1 h/setmana durant 2 trimestres a fer un robot amb Arduino. El resultat potser no sigui molt espectacular, però és que aquest ha estat el primer contacte dels alumnes amb la robòtica, l’electrònica i la programació, i el primer contacte de la profe amb la programació amb codi Arduino. Estem satisfets, ens hem sortit!!!

Hem aconseguit controlar l’estat de dos LEDs i dels servomotors de rotació contínua de les rodes amb la llibreria Servo d’Arduino, creant una única funció en què els paràmetres dels quals depèn la navegació (sentit de gir de cada servo) apareixen com a variables i afegint a aquesta funció l’estat dels leds també com a variable:

Hem aconseguit l’estat ON/OFF del programa amb un únic botó, creant una variable amb valor inicial 1, que cada cop que premem el botó canvia el seu valor al valor anterior * -1, de manera que quan valgui 1 l’estat sigui OFF i quan valgui -1 l’estat sigui ON:

Hem aconseguit que el robot eviti els obstacles, afegint un sensor d’ultrasons. La primera idea va ser acoblar el sensor a un servo per tal que quan trobi un obstacle decideixi cap a on girar en funció de la distància detectada a cada banda, però no ens vam sortir i ens vam conformar en fer-lo canviar de direcció de manera fixa. Tenim dues versions: la de la profe, amb el sensor mirant cap avall, és capaç de desplaçar-se per sobre d’una taula, detectar el borde i canviar de direcció; la dels alumnes és capaç de canviar de direcció quan troba un obstacle al davant. El programa és el mateix en tots dos casos, l’única diferència està en la condició del canvi de comportament: la relació distància detectada pel sensor / llindar de distància establert:

Aixó és tot el que ha donat de si aquest curs. El proper pretenem perfeccionar el comportament dels nostres BellBots i donar-los forma definitiva dissenyant i imprimint en 3D un xassís digne!

La nostra seqüencia d’aprenentatge ha quedat reflectida al site TicTecBellBot-G i a aquest bloc amb l’etiqueta BellBot Arduino 13-14. El programa definitiu es pot descarregar des d’aquí





Projecte d’habitatge intel·ligent. Solucions als problemes plantejats

2 07 2014

Tot i que quan vam començar el projecte això de la domòtica semblava ciència ficció, hem estat capaços de plantejar problemes, de proposar solucions i d’implementar-les; a hores d’ara el tema dels habitatges intel·ligents ha perdut bona part de màgia per als Tecno-Lògics 4ESO.

Tot i que l’objectiu del projecte no és estètic sinó funcional, cal reconèixer que les maquetes acabades fan por: plenes de boscos de cables impossibles d’identificar. Tot i això, la profe ha estat capaç d’endreçar una mica la corresponent al projecte d’habitatge domòtic més complet: el del CarlosG i el SergioM, uns craks! Aquest l’hem de mantenir i exposar!!!

  

El projecte del Carlos i el Sergio conté els següents sistemes:

Sistema d’il·luminació intel·ligent 
Encesa analògica de dos LEDs en funció del valor analògic mesurat per sensor de llum fet amb resistència LDR: Es tracta de mantenir constant el nivell de llum a l’interior de l’habitatge, ajustant constantment el nivell d’il·luminació artificial en funció del nivell del llum natural mesurat pel sensor, mitjançant l’aplicació d’una fórmula matemàtica que relaciona tots dos valors.

  
  

Indicador de climatització intel·ligent:
Encesa digital de Led RGB en funció del valor analògic mesurat per sensor de temperatura fet amb resistència NTC (termistor): En funció dels llindars de calor i de fred establerts, s’activa un o altre dels pins de connexió del LED i s’encén de color vermell (indicador de calefacció en marxa), blau (indicador de refrigeració) o verd (indicador de climatització no necessària per temperatura dins la zona de confort).

  

Llum d’encesa automàtica
Encesa digital d’un LED en funció del valor digital de sensor de moviment PIR (tot i que tant l’actuador com el sensor s’han connectat a pins analògics d’Arduino): En apropar-se algú a la porta del bany, és detectat pel sensor i el llum s’encén. Quan el sensor torna a detectar moviment és que l’usuari surt del bany, i el llum s’apaga.

  

Sistema de reg automàtic
Activació d’una bomba centrífuga (motor cc) en funció del valor analògic mesurat per sensor d’humitat fet amb transistor com a amplificador: Quan el terra del jardí estigui sec (valor del sensor per sota del llindar inferior d’humitat establert) s’ha d’activar la bomba fins que el terra estigui prou humit (valor del sensor per sobre del llindar superior d’humitat establert). Aleshores la bomba s’ha d’aturar.
El sistema ens ha funcionat quan el motor no estava acoblat a la bomba centrífuga també casolana, però quan hem fet tot el muntatge i ho hem afegit a la resta de sistemes, no hem aconseguit prou potència per impulsar l’aigua, tot i que hem afegit alimentació exclusiva per al motor. A més, la placa es desconnectava. Per manca de temps no vam provar a estabilitzar la tensió amb transistor, condensadors i díode, i ens vam conformar a substituir la bomba per un senyal visual, aprofitant el Led RGB que s’encén quan el terra està sec i s’apaga quan està humit.

  

Porta d’entrada d’apertura automàtica 
Posició de servomotor en funció del valor analògic mesurat per sensor d’infrarojos: Quan l’usuari se situa sota el porxo d’entrada, el valor del sensor baixa per sota del llindar establert i el servo gira fins a la posició de porta oberta, que es tancarà quan el sensor deixi de detectar objectes a la distància especificada (s’ha deixat un petit marge de temps per qüestions de seguretat).

  

Unificació de tots els programes
S’ha creat un únic programa amb diferents subprogrames que s’activen o es desactiven mitjançant botons des de la pantalla. Cada un dels botons envia un missatge que activa el subprograma corresponent.

ProgramaHabitatgeInteligent

El nostre material d’aprenentatge està desendreçat i desperdigat per la xarxa. Hem utilitzat el Moodle de Tecnologia 4ESO, el site TicTecBellBot-G, l’Scoop.it Tec4 per recollir els enllaços interessants i els blocs dels alumnes, el pitjor d’aquest projecte, l’album de fotos Flickr Arduino 4ESO 13-14 i  la categoria Tecno 4ESO d’aquest bloc per les cròniques del nostre aprenentatge durant tot el curs, i l’etiqueta Domòtica 4ESO 13-14 per a les específiques d’aquest projecte.





Tecno-Lògics Bellvitge al FIET 2014

30 06 2014

El I Fòrum Internacional d’Educació i Tecnologia (FIET) ha estat un espai d’anàlisi de l’impacte de la tecnologia a l’educació. Més de 100 experts tant nacionals com internacionals, al llarg de les jornades i organitzats en grups de recerca, han aportat propostes per dibuixar les tendències de futur de la tecnologia educativa a Catalunya.

Els Tecno-Lògics Bellvitge hem tingut l’honor d’estat convidats a compartir la nostra experiència en Computació Física a l’àrea de Tecnologia a l’espai FIETjove, paral·lel als espais de debat i reflexió dels experts.

La Carol (profe) ha explicat que la computació física és la programació de comportaments d’objectes físics, i que la treballem des de l’àrea de Tecnologia perquè els alumnes han d’entendre com funciona el nostre entorn, que avui és totalment artificial i intel·ligent, per poder conviure amb ell, utilitzar-lo i gaudir-ne de manera responsable i crítica, perquè han d’adonar-se que nosaltres també podem col·laborar en el seu desenvolupament. Perquè l’univers artificial que ens envolta no és més que objectes (sensors, actuadors i controladors) connectats entre si; les seves connexions són físiques (cables i ones que transporten senyals) i lògiques (programes). Perquè la millor manera d’entendre la Tecnologia és fent Tecnologia.

El David i el Kevin han explicat com fem robots a 3r d’ESO amb Lego Mindstorms programant amb Enchanting, software de programació leJOS sota l’aparença visual de Scratch, com els controlem a distància a través del mòbil mitjançant aplicacions programades amb App Inventor, la nostra relació amb el MIT on s’han creat els entorns de programació que utilitzem, i la seva sensació de que aixó de dotar d’intel·ligència a les màquines és molt fàcil i divertit.
El que fem i com ho fem a Robòtica 3ESO, explicat en aquest bloc

Robotica3ESO

El Sergio ha explicat la nostra experiència d’immersió en l’univers automàtic dels sensors, els actuadors i els controladors amb Arduino, programant els seus comportaments i la seva interacció amb Scratch for Arduino per tal d’implementar un projecte de domòtica a 4t d’ESO que semblava ciència ficció quan es va plantejar a començament de curs.
El que fem i com ho fem a 4ESO, explicat en aquest bloc

La Camila i el Lucas han explicat el procés que va portar als alumnes Tecno-Lògics de 1r Batxillerat des del seu primer contacte amb la robòtica a Citilab amb S4A, fins a la programació creativa i intuitiva d’un robot programat amb codi Arduino que ha anat evolucionant en forma i en comportament de manera improvisada: a mesura que resoliem reptes ens anavem plantejant de nous. Han explicat tambe com gràcies a aquest procés creatiu ara se senten capaços d’enfrontar-se a qualsevol repte tecnològic, i que el que s’han plantejat com a Treball de Recerca està relacionat amb l’impacte que els va provocar descobrir a Citilab la cultura maker i el món de la impressió 3D a començament de curs.
El que hem fet i com ho hem fet a 1r de Batxillerat Tecnològic

Tot i el caòtic i desendreçat tarannà Tecno-Lògic, amb una presentació de la que vam projectar només un parell de diapositives, una webcam que no vam poder connectar, i la manca de temps per ajustar res abans de la presentació, tothom va explicar molt bé l’essencial del nostre treball en el temps acordat. Aquest és l’improvisat resum final:





Robòtica amb NXT v.1314. Tomas Falsas

24 06 2014

Durant el curs hem aconseguit moltes fites [>>>], però no ha estat fàcil; ha calgut pensar, modificar i ajustar molt. L’error és indispensable per aprendre, i els nostres robots són molt rebels … Aquest és un recull d’errades que s’han acabat solucionant i xorrades amb les que ens ho passat molt bé … :-)








Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 28 seguidores

A %d blogueros les gusta esto: