Web del Club Meccano de Catalunya, La Penya del Cargolet

  • Augmenta la mida de la font
  • Mida de la font per defecte
  • Disminueix la mida de la font

Meccano, Arduino & Scratch (S4A)

Correu electrònic Imprimeix

El Meccano va deixar passar en el seu moment la oportunitat d'incorporar el control electrónic i per aixó avui dia es considera "passat de moda".  El sistema Arduino, económic i senzill, ens permet de fer els nostres models una mica mes "espavilats", tal com ens explica en Sebastiá Atserias en el seu article.

 

NOTA: Podeu trobar el video que acompanya l'article a YouTube.

Una mica d'història.

El nostre primer model governat per ordinador, la Grua de blocs, va ser presentat a la V Exhibició Catalana de Meccano celebrada a Barcelona l'any 1987. La seva construcció va resultar possible gràcies a l'acord assolit amb el meu fill pel qual, ell es comprometia a programar el model, si per la meva part jo construïa les plaques d'entrada/sortida, controladora de motors, reles, etc. L'informàtica mai ha estat el meu fort i si en canvi m'agrada l'electrònica a nivell de hobby; per tant l'acord va ser perfecte i va funcionar de 1987 fins a 1995 quan el meu fill va marxar als EE.UU. per completar els seus estudis.
Durant aquest període vam realitzar quatre models tots ells guiats per ordinador: La grua de blocs, un Magatzem de palets, un Robot industrial IRB 6/2 i un Plotter.
Des de 1996 m'he dedicat només al Meccano, però sense abandonar la meva idea de tornar a ajuntar les dues coses.
Durant el segon trimestre d'aquest any 2013 m'han prestat un kit d'iniciació complet d'Arduino Uno i he realitzat totes les proves que proposa el Kit pensant sempre en la possibilitat de reprendre l'Informàtica i el Meccano.


Arduino UNO

L'Arduino és una plataforma de maquinari de codi obert, basada en una senzilla placa amb entrades i sortides, analògiques i digitals, en un entorn de desenvolupament que està basat en el llenguatge de programació Processing. El seu preu es relativament baix, mes o menys 20,00€ + IVA. Aquest dispositiu connecta el món físic amb el món virtual, o el món analògic amb el digital. La connexió entre l'ordinador i la placa d'Arduino es realitza per mitjà d'un cable USB, Figura 1.

Figura 1

 

S4A (Scratch for Arduino)

El S4A és una modificació de Scratch desenvolupada pel Grup de Programació Smalltalk del Citilab, per programar de forma senzilla i intuïtiva la plataforma de maquinari lliure Arduino. S4A inclou nous blocs per controlar sensors i actuadors connectats al sistema Arduino.
La integració d'aquests dos entorns Arduino + Scratch va permetre el desenvolupament de S4A; la plataforma ens permet entrar al món de l'electrònica, la robòtica i programació i desenvolupar diferents prototips, sense necessitat de tenir coneixements avançats en aquestes àrees. Aquest llenguatge de programació és molt útil en els entorns acadèmics per introduir als estudiants en el món de la robòtica, domòtica, etc.
En resum podem explorar i experimentar amb els conceptes de programació mitjançant l'ús d'una senzilla i dinàmica interfície gràfica. Per a això utilitza blocs, a l'estil del "Lego Mindstorms", que simbolitzen diferents elements de programació, per exemple: instruccions, condicions, variables, bucles, entre d'altres. Aquests blocs de programació es van acoblant fins a formar programes, Figura 2.

Figura 2


La placa d'Arduino UNO quan funciona en l'entorn de S4A Firmware 1.2, consta de: 6 entrades analògiques, 2 entrades digitals, 3 sortides analògiques, 5 sortides digitals, 2 sortides analògiques per controlar un servo, CC de 3,3v, 5v, i les seves corresponents masses.

INTERFICIE.

La connexió directa de la placa d'Arduino amb els nostres models, en ser aquests metàl·lics, pot resultar perillós, per aquest motiu aconsellem intercalar tant en les entrades com en les sortides optoacopladors que ens garanteixin un perfecte aïllament entre els nostres models i el conjunt Arduino + PC. Per a aquest propòsit nosaltres hem emprat per a les sortides dues plaques que se subministren muntades (Cebek T-1) amb quatre reles cadascuna i que tenen els seus respectius optoacopladors en les connexions al Arduino. Per a les entrades hem construït una placa amb sis optoacopladors que ens protegeixen d'un curtcircuit accidental.Tot això dins d'una caixa per facilitar el seu transport, Figura 3.

Figura 3


Des de la placa d'Arduino fins a la entrada dels optoacopladors fem servir el corrent de 5v. que ens subministra la pròpia placa. Des de la sortida dels optoacopladors de les nostres plaques i els models podem utilitzar els volts que necessitem en cada cas; només hem de tenir en compte que aquests siguin suportats pel tipus d'optoacopladors que muntem. E n el nostre cas els optoacopladors que hem muntat son els H11A1 i poden suportar una tensió de treball entre els 3v. i els 24v.cc.
A partir d'aquests elements juntament amb un PC, podem començar a experimentar amb totes les possibilitats que siguem capaços d'imaginar-nos per dotar els nostres models d'autonomia de moviments i "escoltar" la informació que ens proporcioni el nostre model, d'on està, que està fent i "dir-li" que ha de fer després, etc.

Exemples pràctics.

Els exemples que descriurem tot seguit són només una petita mostra de les possibilitats del nostre muntatge. Estic segur que qualsevol de vosaltres en proposaríeu molts mes. Els hem intentat fer sempre amb el màxim de peces de Meccano, recorrent tan sols als elements d'electrònica imprescindibles.

Tots aquests exemples els podeu veure també i en moviment a Youtube :

Figura 4


Figura 5 - Programa en S4A

 

La primera prova consistirà simplement a posar en marxa un motor prement una tecla -a- i que aquest giri cap a l'esquerra, després prement un altra tecla -b- ho aturem. Seguidament repetim la mateixa seqüència amb les tecles -c,d-, marxa-atur però aquest cop el motor girarà cap a la dreta.
Després accionem un motor -e- i el fem funcionar cap a l'esquerra per un temps determinat després del qual s'aturara. La següent prova -f- consistirà en fer girar un motor cap a l'esquerra per un temps determinat, després del qual s'aturara i iniciarà una altra vegada la marxa aquest cop cap a la dreta per un temps determinat per finalment aturar-se.
El seté programa que apareix a la Figura 5, es per parar tots el motors en cas de emergencia. Segur que si feu proves ho agraireu.


Fins aquí ens hem limitat a posar en marxa o aturar un motor, el qual ha funcionat durant el temps que nosaltres hem trigat a aturar-lo (accionant una tecla) o bé durant el temps que li hem programat. Aquesta maniobra es pot fer amb tots els reles que tinguem instalats a la placa. Tenint en compte que: per a cada motor es necessiten dos reles, perquè pugui girar tant a la dreta com a l'esquerra .


A partir d'aquí anem a utilitzar tambe els sensors ; d'aquests en tenim sis d' analogics mes dos digitals, en total 8 . Els sensors ens permetran informar al nostre Arduino i al PC del que està passant en el nostre model de Meccano , i així poder accionar els motors o parar-los , activar comptadors, crear condicions, etc ..
Per a la nostra prova utilitzarem quatre sensors analògics; els sensors analògics i els digitals del nostre Arduino ens poden mostrar valors entre els 0 i 5 volts que es representen entre 0 i 1023 en analògic i 0 i 255 en digital.
Nosaltres en emprar optoacopladors per protegir l'Arduino, els nostres sensors només capten "tot o res, alt o baix" és a dir 5 o 0 volts sense valors intermedis, la qual cosa és suficient per a la majoria dels nostres muntatges, llevat que haguem d'aconseguir una gran precisió de moviments. En aquest cas hauríem de connectar uns potenciòmetres directament al nostre Arduino, valorant el risc que això pugui representar.

 

Figura 6

 


Figura 7 - Programa en S4A


La primera prova (de dreta a esquerra) consisteix a posar en marxa un motor -g-, al prémer el botó aquest interromp el pas del corrent de 5 volts exterior, passant el nostre sensor de 1024 a 0 és a dir de 5 a 0 volts, aquesta acció atura ràpidament el motor.

Figura 8 - Programa en S4A


El programa de la Figura 8 realitza les funcions d'un interruptor ; cada vegada que es prem el botó , el motor es posa en marxa i s'atura la següent vegada que premem el botó i així tot el temps. Les següents proves busquen el mateix efecte, només varia el mètode d'accionament, per aquest motiu no hi incloem el detall dels programes. A la segona prova fem servir una Ampolla Reed molt utilitzada en modelisme ferroviari, interromp el pas del corrent en apropar un imant al nostre Reed. En el tercer cas fem servir una Fotoresistència, la qual interromp el circuit en apropar-hi una font de llum. Finalment a la quarta prova, instal·larem un Fototransistor òptic de ranura; amb aquest element la interrupció del corrent s'aconsegueix en passar un objecte opac per la ranura. Aquest últim és el que hem emprat en més ocasions i per tant és amb el que tenim més experiència . Té una gran fiabilitat i múltiples possibilitats d'aplicació.

 

Figura 9

 


Figura 10 - Programa en S4A


La següent prova, Figura 10, consisteix a posar en marxa un motor cap a la dreta i que s'aturi quan la llengüeta passi a través de la ranura del Fototransistor. Esperi cuatre segons i iniciï la seva marxa cap a l'esquerra fins que la llengüeta torni a passar per la ranura.


Figura 11 - Programa en S4A


El programa de la Figura 11 és un comptador , posa en marxa un motor i aquest romandrà en marxa fins que la llengüeta passi cinc vegades per la ranura del Fototransistor..

 

Figura 12

 

Figura 13a - Programa en S4A

 

Figura 13b - Programa en S4A

 

A les Figures 13a i 13b podem veure un altre tipus de comptador; en aquest cas es tracta d'un lector per a un Encoder rotatori. Aquest programa ens permet llegir a través del Fototransistor cada vegada que passa una ratlla negra o transparent per la ranura i comptar-les.
Amb aquest tipus de muntatge aconseguim una lectura precisa de la posició d'inici i atur d'un eix en rotació, amb la qual cosa podem retornar a la posició d'inici fàcilment. Pot ser especialment interessant en els muntatges de braços de robot o similars.

 

Figura 14

 

Figura 15 - Programa en S4A

 

Per a l'exemple de la Figura 15 fem servir un potenciòmetre de 10K connectat directament al nostre Arduino , sense passar pels optoacopladors .
El nostre potenciòmetre s'alimenta directament dels 5v de la placa i el sensor analògic també es connecta a aquesta . és per tant un muntatge delicat i recomanem extremar les precaucions de seguretat per no danyar el Arduino .
L'eix del potenciòmetre esta fixat a l'eix que ens interessa controlar i això ens permet llegir en tot moment el valor del sensor. La resolució de cadascuna de les entrades analògiques quan es connecten directament al Arduino sense passar pels optoacopladors és de 10 bits (per tant 1024 valors diferents) per aquest motiu podem saber en tot moment la posició exacte en què s'ha d'aturar tant si el motor gira cap a la dreta o l'esquerra.

 

 

Motors Pas a Pas

Finalment els últims muntatges ens permeten controlar motors pas a pas; per a això hem de muntar un circuit intergrat especial, el L293D, Figura 16. Aquest circuit serveix per controlar un motor pas a pas bipolar o bé dos motors de corrent continu. Per no fer malbé l'Arduino nosaltres hem muntat una placa amb optoacopladors per garantir l'aïllament correcte.
En els programes de la Figura 17 veiem la seqüència d'ordres per moure cada pas del motor, el de la dreta en un sentit i el de l'esquerra en l'altre.
En els exemples descrits veiem quatre passos que es repeteixen deu vegades, en total quaranta passos. La velocitat la controlem amb les esperes entre pas i pas.

Figura 16

 

Figura 17 - Programa en S4A


En l'exemple anterior, per moure un sol motor pas a pas ens cal utilitzar quatre sortides del nostre Arduino de les vuit que tenim disponibles.
Per estalviar sortides podem substituir el integrat L293D per una placa de la casa Spark Fun, la EasyDriver 4.4 Figura 18, que fa servir només dues sortides per a governar el motor pas a pas, una per als passos i l'altra per a la direcció. La velocitat la regulem igual que en el cas anterior mitjançant les esperes entre pas i pas. A més aquesta placa ens permet dividir cada pas per 1/1, 1/2, 1/4 i 1/8 és a dir un motor de 48 passos a 1/8 es converteix en 384 passos; també disposa, entre d'altres, d'una sortida per tallar el corrent (funció de “sleep”) dels motors.


Figura 18

 

En els programes de la Figura 19 veiem la seqüència d'ordres per moure cada pas del motor a 1/1, el de la dreta en un sentit i el de l'esquerra en l'altre.

Figura 19 - Programa en S4A


Amb aquest muntatge finalitzem els exemples, no sense abans mostrar a la Figura 20 els elements necessaris per construir un Plotter; calen només quatre sortides per als PaP's, dues per a cada motor, una per l'electroimant i una ultima, si ens interessa, per tallar el corrent (“sleep”) dels motors, en total cinc o sis de les vuit que disposem en el nostre Arduino.



Figura 20


Com heu pogut comprovar en tots els exemples mostrats , la programació amb S4A és molt senzilla i intuïtiva , pràcticament cobreix totes les nostres necessitats per poder governar els models de Meccano amb un Arduino i un PC .

 

Gràcies a la senzillesa del S4A la programació ja no pot ser un fre per governar els nostres models. Només ens queda per tant, convidar a totes les persones inquietes i que sentin la curiositat d'experimentar amb coses diferents, que s'atreveixin a incorporar als seus muntatges amb Meccano la placa d'Arduino i un Ordinador.
Nosaltres restem a la vostra disposició per aclarir qualsevol dubte que tingueu i que estigui al nostre abast.

 

Bibliografia


Arduino, main site

Scratch for Arduino

Scratch, Enchanting y S4A, tres herramientas para divertirse

Manual: S4A (Scratch) + Arduino

Robótica al descubierto

Driver Easydriver per motors pas a pas

Mes informacio sobre l'Easydriver

Mes Easydriver

Barcelona, Setembre de 2013


 

Inicia sessió

Hem deshabilitat el registre degut per evitar publicitat no desitjada. Disculpeu les molèsties

Si us surt l'error "Invalid Token", netegeu la caché del vostre navegador, refresqueu la pàgina i torneu a intentar l'inici de sessió.