dimecres, 11 de gener del 2017

Cotxe robot autònom amb Raspberry Pi

[ESTA ENTRADA ESTÀ EN CONSTRUCCIÓ]


Edat recomanada: 
Muntatge a partir de 6 anys acompanyats d'un adult. 
Programació amb Python a partir de 8 anys.
Programació amb Scratch a partir de 6 anys.
               Programació amb botons tipus "Bee-Bot" a partir de 3 anys.
               Vigileu amb les piles, pegaments, objectes menuts, punxeguts, calents, etc.

[Al llarg d'esta entrada apareixerà molt codi de programació. No us preocupeu si no ho enteneu i us sembla xinés, anirem explicant poc a poc que fa cada part. A més, no tenim perquè aprendre un llenguatge de programació,  el més important és entendre el passos que s'han de seguir per a construir i "ensenyar" al nostre robot, així com les estructures bàsiques de la programació en general.]


Anem a construir un cotxe robot autònom controlat amb una Raspberry Pi i programat mitjançant Python. També el podrem programar en Scratch i els més menuts podran programar-lo amb botons, de manera similar a com es fa amb el robot Bee-Bot (no obstant, farem un robot específic per als més menuts de tipus Bee-Bot més endavant).
Es tracta d'un projecte de certa entitat que dividirem en 5 grans fites que detallem a continuació:

1. Muntatge del cotxe robot bàsic. Una vegada assolida esta fita, tindrem un cotxe que es mourà si donem electricitat als motors, però no controlarem la seua trajectòria ni velocitat.

2. Connexió a la Raspberry Pi i programació per a controlar el moviment de les rodes. Una vegada aconseguida esta fita, podrem conduir el nostre cotxe per control remot mitjançant un teclat Bluetooth, o mitjançant connexió remota via WIFI.

3. Muntatge i prova del sensor d'ultrasons. Arribats ací, podrem detectar la distancia del nostre robot als objectes que tinga davant. A més, motoritzarem els sensor per a poder girar-lo i obtindre una observació més completa del seu voltant.

4. Programació dels algorismes necessaris per a la conducció autònoma del robot. El robot podrà detectar obstacles i girar per a evitar-los. També aprendrem els algorismes que puguen permetre eixir de qualsevol laberint al nostre robot. Així doncs, haurem aconseguit un robot autònom a les nostres ordres!.

5. Extres:
- Afegir botons de control tipus Bee-Bot per a que puga ser programat pels més menuts. Hem de tenir en compte que con usem motors DC, el recorregut del robot no serà 100% exacte. Per això, més endavant farem un robot específic tipus Bee-Bot amb motors pas a pas que ens donaran la precisió requerida.
- Afegir sensor d'infrarojos per a detectar la presència de moviment i actuar en conseqüència.
- Afegir fotoresistències per a detectar la presència de llum / foscor i actuar en conseqüència.
- Afegir visió al nostre robot per a reconèixer persones i objectes i actuar en conseqüència.
- ...




Material necessari

2 motors DC a 5V i 2 rodes per a ells.
1 roda boja.
Un pont H dual L298N
Una Raspberry Pi (amb connector de càmera).
Càmera per a RaspBerry Pi.
Sensor d'ultrasons HC-SR04.
Servomotor  per a girar el sensor HC-SR04.
Sensor d'infrarojos HC-SR501.
Bateria de 5V per a la Raspberry Pi.
Bateria de 5V per als motors.
Breadboard (placa de proves)
Cables variats per a les connexions.
Una xassís on muntar tot. Usarem un "tupper".
LEDs per als llums de davant i darrere (blancs), i els de frenada (rojos).


Nosaltres construirem el robot triant els diferents materials per a intentant estalviar alguns euros, però també existeixen al mercat kits molt barats amb els motors, rodes i xassís:


.



O bé, kits complets amb TOT el necessari, com el robot GOPIGO de dexterindustries:


https://www.dexterindustries.com/gopigo/



1. Muntatge del cotxe robot bàsic:

En primer lloc, acoblarem les dues rodes als motors i els unirem al xassís mitjançant els caragols amb volanderes i les femelles. Si ho preferiu, podeu usar cola termo fusible. Haurem de vigilar la posició de les rodes per a què no ens freguen amb el xassís. També haurem de posar a la part de darrere del xassís la roda boja, tenint en compte l'alçada a la que haurà de quedar per a que rode correctament respecte a les rodes davanteres.
Una vegada tenim els motors i les rodes ben muntades, és hora de connectar-los a la bateria amb els cables i provar el seu funcionament. Usarem una bateria de 5V, ja que els motors que hem triat necessiten una alimentació de 5V. No importa la polaritat que usem, però ha de ser la mateixa per als dos motors, sinó, una roda anirà en un sentit i l'altra al contrari.


Connexió de la bateria al motor.
Passem els cables per un forat al xassís.












Robot amb els motors i les rodes muntats.




Si tot a anat bé, quan connectem la bateria les rodes giraran. Ja ho hem aconseguit!.





2. Connexió a la Raspberry Pi i programació per a controlar el moviment de les rodes:

Anem a connectar ara els motors a la Raspberry Pi, però no directament, si ho férem, depenent de l'amperatge dels motors podríem trencar-la, ja que només pot oferir uns quants mili amperes, mentre que els motors normalment consumeixen molt més. A més, tan sols amb la Raspberry Pi no podríem fer que els motors funcionaren en els dos sentits. Per a solucionar estos problemes usarem un pont H L298N dual.
Esta placa ens permet controlar els motors tant en velocitat com en sentit de gir mitjançant la nostra Raspberry Pi.

L'esquema de connexió que usarem és el següent:

Esquema de com ens quedaran les connexions.

Connexions del pont H dual L298N.





Connexió dels motors a la Raspberry Pi.




Insecte "robot" per als més menuts


Edat recomanada: a partir de 3 anys acompanyats d'un adult. 
Vigileu amb les piles, pegaments, objectes menuts, punxeguts, calents, etc.







Anem a fer un insecte "robot" molt senzill. Els xiquets i xiquetes poden triar quin insecte volen que siga i pintar/retallar el dibuix corresponent per a després apegar-lo al “robot”.
Es tracta d’un joguet no programable que té moviment aleatori, però pot rebotar i “evitar” obstacles. Pot inclús eixir d'un laberint senzill de manera autònoma.

Encara que seria convenient, per seguretat no usarem cap tipus de ferramentes o materials que puguen ser perillosos, com soldadors, coles termofusibles, ... només cinta aïllant. No ens quedarà un robot molt robust, però serà igualment funcional i divertit.





Materials:

Raspall de dents amb els pèls plans (el trencarem per a fer el robot).

Pila de botó de 3V (2032, 2025 o similar).

Un motor excèntric, és a dir, un motor amb el seu eix descompensat. Usarem motors vibradors reciclats de telèfons mòbils vells.

[Opcional] Un led del color que més ens agrade, que suporte 3V.

Cinta aïllant o similar.

Paper i colors per a dibuixar el cos de l’insecte.

Pals de gelat, o similars, per a fer una casa / tancat per a l’insecte.

dissabte, 7 de gener del 2017

Robot ArduX.


Edat recomanada: 
Construcció: a partir de 8 anys acompanyats d'un adult.
Programació amb Sketch: a partir de 8 anys.
Programació amb Scratch: a partir de 6 anys.
Vigileu amb les piles, pegaments, objectes menuts, punxeguts, calents, etc.


Us presentem l'ArduX, una simpàtica (o simpàtic, encara estem esbrinant-lo) robot que ens servirà per a iniciar-nos en l'electrònica i la programació de computadores. A poc a poc, anirem afegint al blog activitats que es podran realitzar amb l'ArduX.
Programarem l'ArduX amb el llenguatge Sketch de l'IDE d'Arduino i també amb Scratch. Farem servir una versió de S4A (Scratch for Arduino) adaptada per nosaltres per a l'ArduX que trobareu al final de l'entrada.
Si voleu construir un ArduX, teniu la llista de components i el circuit necessari igualment al final.

Algunes imatges:


Programació amb S4A (Scratch).

ArduX Gremlin.
Connexió amb Arduino




















Prototip d'ArduX.
Prototip d'ArduX. Darrere.























L'ArduX éstà inspirat en el robot Ardu5 del Profe Garcia. L'ArduX és compatible amb l'Ardu5, però disposa de moltes més característiques.
No us perdeu el seu canal a Youtube. La seua plana dedicada a l'Ardu5 és:

                                         http://elprofegarcia.com/?page_id=411


ArduX implementa les següents característiques:

5 LEDS programables, 2 formant els ulls i 3 més formant la boca, cinturó, o el que vulguem que siga.
Fotoresistència LDR per a detectar la llum / foscor.
Brunzidor per a emetre sons.
2 polsadors programables mitjançant interrupcions de maquinari*.
Sensor d'inclinació.
4 connectors extra (Aux1, Aux2, GND1, GND2) per a complements. Vigileu amb l'amperatge màxim!.
A més, podem posar-li el cos/roba que nosaltres dissenyem!.

divendres, 6 de gener del 2017

Iniciació a la programació amb l'ArduX i Scratch.

Edat recomanada: a partir de 6 anys.

Scratch és un llenguatge de programació visual desenvolupat al MIT i dirigit especialment als xiquets i xiquetes. Ens permet crear programes molt complets i aprendre els fonaments de la programació d'una manera clara i senzilla. També té les seues febleses, però per a un nivell d'iniciació i inclús mitjà, és més que suficient.

Mitjançant Scratch aprendrem les estructures de control habituals dels llenguatges de programació i alguns algorismes molt bàsics per a poder controlar alguns dels components de l'Ardu5+.


1. Encesa de LEDs:

Comencem amb un programa que encén el LED groc del nostre ArduX. Tan sols haurem d'arrossegar amb el ratolí els següents components tal i com apareix ací davall.



El pin digital 10 és on està connectat el LED groc, per tant quan es pren la bandera verda, s'encén per sempre. Així de fàcil.









dimarts, 3 de gener del 2017

Iniciació a la programació amb l'ArduX i Sketch.

Edat recomanada: a partir de 8 anys.

Anem a fer una introducció a la programació mitjançant l'ArduX. Aprendrem les estructures de control habituals dels llenguatges de programació i alguns algorismes molt bàsics per a poder controlar els diferents components de l'ArduX. En aquesta entrada usarem el llenguatge de programació nadiu de l'Arduino, anomenat Sketch, molt paregut al llenguatge C. En altres entrades del blog usarem el llenguatge visual Scratch, molt més intuitiu però no tan potent.

Per a executar els programes que hi trobareu ací, només copieu i apegueu el text a l'entorn IDE de l'arduino amb (l'ArduX connectat a l'Arduino) i premeu la fletxa.

Comencem amb un programa que encen el LED groc del nostre ArduX:

//  Inici pogramari.

//#################################################
//  ArduX                         Tallerstecnologia.blogspot.com.es
//
//  Encen el LED groc de l'ArduX.
//#################################################


#define PIN_LED_GROC 10   //  PIN_LED_GROC serà substituit per 10 cada vegada que aparega.

void setup()  // El que n'hi ha dins la funció setup() s'executa només una vegada.
{
   pinMode(PIN_LED_GROC, OUTPUT);    // PIN_LED_GROC serà d'eixida (escriurem en ell).
}  

void loop()   // El que n'hi ha dins la funció loop() s'executa en bucle per sempre.
{
  digitalWrite(PIN_LED_GROC, HIGH);   // Escriu el valor digital HIGH (5V) al pin i s'encén.
}    

// Fi programari.


dilluns, 2 de gener del 2017

Com configurar l'IDE de l'Arduino al nostre ordinador.

Per a poder usar l'entorn integrat de desenvolupament (IDE, Integrated development environment) de l'Arduino amb la nostra computadora, primer de tot haurem d'instal·lar el controlador i el programari necessari segons els nostre sistema operatiu, des de la pàgina oficial:

                                   https://www.arduino.cc/en/Main/Software


Una vegada el tinguem instal·lat i abans d'executar-lo, connectarem el nostre Arduino a l'ordinador. Si és la primera vegada que el connectem, esperarem uns instants fins que s'instal·len els controladors necessaris. A continuació, executarem el programari de l'Arduino (Arduino IDE) que acabem d'instal·lar.




Una vegada dins del programari, comprovarem que s'ha detectat correctament el nostre Arduino:







Després comprovem també que s'ha detectat correctament el port on està connectat:




Si està tot OK, ja podem començar a programar amb el llenguatge Sketch! Tan sols haurem d'escriure el codi i donar-li a la fletxa per passar-lo a l'Arduino i que l'execute.