Mà biònica Treball de recerca
Aida Picón Fernàndez 2n Batx. Tecnològic INS Torre del Palau Curs 2012-2013 Tutor: Fernando Hernández 4
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Índex 1.
Introducció.......................................................................................................................4
2.
Descripció del projecte ....................................................................................................7
3.
Disseny de la mà biònica.................................................................................................9
4.
3.1.
Material ....................................................................................................................9
3.2.
Procediment .............................................................................................................9
3.3.
Els servomotors .....................................................................................................11
Disseny de la mà amb sensor flex .................................................................................13 4.1.
5.
Desenvolupament del sistema de control ......................................................................18 5.1.
Placa Arduino Uno .................................................................................................18
5.1.1.
Arduino Uno ....................................................................................................19
5.1.2.
Alimentació .....................................................................................................20
5.1.3.
Memòria ..........................................................................................................21
5.1.4.
Entrades i sortides ..........................................................................................21
5.1.5.
Característiques físiques .................................................................................22
5.1.6.
Connexions als pins d’Arduino Uno .................................................................22
5.2. 6.
Sensor Flex ............................................................................................................13
Placa d’ampliació ...................................................................................................24
Programació ..................................................................................................................25 6.1.
Introducció a l’Arduino ............................................................................................25
6.2.
Estructura del programa .........................................................................................26
6.3.
Programes de prova ...............................................................................................27
6.3.1.
Calibratge dels sensors flex ............................................................................27
6.3.2.
Control dels servos amb els sensors flex ........................................................29
6.3.3.
Variació del color dels LEDs amb els sensors flex ..........................................31
6.3.4.
Control de l’altaveu amb els sensors flex ........................................................32
6.4.
Programa final ........................................................................................................34
7.
Pressupost ....................................................................................................................41
8.
Aplicacions ....................................................................................................................43 8.1.
Aplicacions mà biònica ...........................................................................................45
2
INS Torre del Palau 8.2. 9.
Mà biònica
Aida Picón Fernàndez
Realitat virtual ........................................................................................................48
Conclusions...................................................................................................................50
10. Agraïments ....................................................................................................................52 11. Fonts d’informació .........................................................................................................53 12. Annexos ........................................................................................................................57
3
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
1. Introducció El meu treball de recerca consisteix en muntar un dispositiu electrònic que permeti, mitjançant una mà amb sensors, poder moure una altre mà o fer diferents sons i colors en funció del moviment dels dits de la meva mà. Per dur a terme això he fet servir un sistema de control basat en una placa Arduino. He escollit aquest treball perquè el trobo realment interessant dins el camp de la tecnologia. A classe se’ns va presentar l’Arduino com a un microcontrolador capaç de crear objectes interactius, llegint dades d’una gran varietat d’interruptors i sensors i controlar multitud de LEDs, motors i altres actuadors físics. Tenint en compte l’esmenta’t anteriorment, vaig pensar en dur a terme un projecte centrat en una paca d’Arduino. Consisteix en crear una mà biònica que respongui a estimulacions suggerides per la nostra pròpia mà. La mà biònica les llegeix a partir dels sensors implantats en el guant que la nostra mà fa moure, i respon al moviment d’una manera similar. Així doncs m’agradaria poder aconseguir-ho sense problemes i de la manera més precisa possible. Arduino és una eina destinada a ser controlada mitjançant l’ordinador a través del món físic. És una plataforma lliure tant a nivell de hardware com de software de desenvolupament de la computació física (physical computing) de codi obert, basada en una placa de microcontrolador senzill i un entorn de desenvolupament per a crear programes (software) per a la placa. Es pot usar Arduino per
crear objectes interactius, llegint dades d’una gran varietat
d’interruptors i sensors i controlar multitud de LEDs, motors i altres actuadors físics. Els projectes poden ser autònoms o comunicar-se amb un programa que s’executi a l’ordinador. La placa és fàcil de muntar i ho pots fer tu mateix o comprar-la ja llesta per al seu ús, i el programa de desenvolupament és de descàrrega gratuïta. El llenguatge de programació d’Arduino és una implementació de Writing, una plataforma de computació física semblant, que a la vegada es basa en Processing, un entorn de programació multimèdia. Hi ha molts microcontroladors i plataformes disponibles per a la computació física, amb funcionalitats semblants. Arduino, a més de simplificar el procés
de treball amb
microcontroladors, ofereix alguns avantatges respecte a altres sistemes a professors, estudiants, amateurs, investigadors i empreses:
4
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Les plaques d’Arduino són ASSEQUIBLES ja que la més cara ja muntada pot ser adquirida per un preu inferior a 60 € o 80 amb mòduls wifi o Bluetooth. El software d’Arduino és MULTI-PLATAFORMA ja que funciona en els sistemes operatius de Windows, Macintosh OSX i Linux. La majoria dels entorns per a microcontroladors estan limitats a Windows. L’entorn de programació d’Arduino és SIMPLE I DIRECTE, ja que és fàcil d’usar per a principiants i el suficientment flexible per als usuaris avançats. Pensat en els mestres, Arduino està basat en l’entorn de programació de Processing, així l’estudiant aprèn a programar d’una manera senzilla l’entorn de desenvolupament. El sistema de programació és molt semblant a la programació estàndard amb llenguatge C, la qual cosa implica, que és molt versàtil i permet aprendre altres llenguatges de programació de forma ràpida. El SOFTWARE d’Arduino està publicat amb llicència lliure i preparat per a ser ampliat per programadors experimentals, essent així AMPLIABLE I DE CODI OBERT. El llenguatge pot ser completat a través de llibreries de C++; les quals també estan disponibles de forma gratuïta gràcies a l'amplia comunitat que treballa amb aquesta plataforma. El HADWARE també és AMPLIABLE I DE CODI OBERT ja que està basat en els microcontroladors ATMEGA168, ATMEGA328, ATMEGA1280 i d’altres models. Els plànols dels mòduls estan publicats sota la llicència de Creative Commons, per la qual cosa els dissenyadors de circuits amb experiència poden fer la seva pròpia versió del mòdul, ampliant-lo o optimitzant-lo. Inclús usuaris relativament inexperts poden construir la versió per a placa de desenvolupament per entendre com funciona i estalviar diners. Aconseguir dur a terme tots els meus propòsits no ha estat fàcil i m’he vist davant de diferents problemes que a vegades feien allunyar-me de la meva idea principal però a poc a poc i amb esforç i treball he reproduït el que desitjava, alguns aspectes de la mà amb millors resultats que d’altres, per suposat, però intentant sempre la major semblança i funcionament que m’han permès els materials, la posada en marxa de la mà, l’enllumenat i la sonorització a la pràctica. De tot el que em vaig plantejar dur a terme amb la mà, ho vaig arribar a fer tot. L’única cosa, però, és que el moviment dels dits no ha acabat mai de ser del tot precís, encara que és normal tenint en compte els materials emprats. Les llums funcionen com volia i l’altaveu fa els sons que li programi, encara que no soni gaire fort.
5
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Visualment la mà biònica no és gaire fidel a una real ja que les seves dimensions i acabats s’allunyen d’una real, encara que ho hagi intentat. El seu moviment és semblant però no acaba de ser bo del tot. No té força com per agafar una llauna o precisió com per agafar una moneda, però la idea de mà és la mateixa. El problema ha estat doncs que la manca de diners només ha fet possible una cosa senzilla.
Imatge 1. Foto final del treball
Imatge 2. Foto final del treball (vista interna)
El meu projecte es basa en cinc parts. Primerament, el guant amb els sensors flex quan “llegeix” el moviment dels dits de qui se’l posa ho envia a la placa Arduino que ho transmet a l’altra placa, segona part, que equival al sistema de control. El moviment dels dits és reconegut pels LEDs, tercera part, l’altaveu, quarta part, i servomotors, cinquena part, on els dos primers realitzen a partir de la informació que reben el que els hi ha estat programat, els servos condicionen el fil de niló i fa moure o no els dits de la mà biònica.
Servomotors Mà amb sensors LEDs RGB Sistema de
+
control
Altaveu
Alimentació
Imatge 3. Identificació de components
6
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
2. Descripció del projecte Quan vaig començar a utilitzar Arduino a l'assignatura de Tecnologia Industrial a 1r de batxillerat em va agradar i vaig pensar que seria interessant fer un treball de recerca basat en ell. De mans biòniques se n’han creat diverses en els últims anys, com a pròtesis robòtiques, a gran escala dins la indústria o simplement per a reaccions lluminoses o d’altres referents a l’oci, investigacions universitàries, etc. He intentat, de manera senzilla i amb els màxims mitjans possibles que he pogut, fer una mica de cadascuna de les principals: he intentat fer un disseny semblant de manera visual a una mà real, he determinat diferents colors d’enllumenat depenent dels dits que són moguts i doblegats, així com també melodies a ritme del moviment de la mà. Per fer l’estructura principal on van ajustades les dues plaques, els motors i la instal·lació elèctrica he hagut de recórrer a materials de baix cost o reciclats ja que no disposo d’una àmplia disposició econòmica i a més tot el referent al funcionament (motors, sensors flex, placa Arduino) ja pujava bastant el preu. Tot i que abans de començar el treball ja n’era conscient de tots aquests inconvenients, volia treballar-m’ho i intentar ser el més precisa possible en tots els aspectes de muntatge i funcionament de la mà. Per a dur a terme el muntatge de la mà de la major manera possible en precisió i realisme hauria d’haver invertit milers de euros, i més encara tenint en compte l’addició de l’enllumenat i el so. Per a muntar l’estructura he triat la fusta com a material principal on cargolar-hi tots els elements ja que és d’un cost baix i d’una disponibilitat alta. M’he pogut fer propietària de trossos de fustes que he serrat i adequat a les mides que volia per a la meva mà i cargols cedits pel Departament de Tecnologia. Per al seu funcionament he utilitzat, com ja he anomenat abans, una placa d’Arduino (el model Arduino Uno) perquè com he explicat m’interessava reduir el pressupost del treball el major possible i aquesta placa consta del necessari pels meus propòsits i no és massa cara. Per a fer les connexions pertinents on unir el control de la mà i els seus actuadors he adquirit un tros no massa gran de placa perforada on poder fer-hi les soldadures necessàries i optimitzat el màxim espai possible. Els motors els he disposat propers als tubs, que formen els dits, per aprofitar al màxim el seu rendiment i els sensor flex els he fixat en un guant que els connecta directament a la placa abans esmentada. La relació entre l’ordinador, els actuadors i la placa es poden representar en un senzill esquema:
7
INS Torre del Palau
PC
Mà biònica
LEDs RGB
Aida Picón Fernàndez
Altaveu
Mà amb
Sistema de
Mà biònica
sensors
control Arduino
(servomotors)
Alimentació Imatge 4. Interacció entre les dades entre programa i elements, i l’alimentació
Per a que tots els elements funcionin he hagut d’alimentar la placa Arduino Uno amb 5V mitjançant l’ordinador, qui també li transmet el programa, i la placa d’ampliació amb 7.5V mitjançant un transformador. El funcionament es basa en dues coses essencials: el moviment que fa cada dit de la mà detectat pels sensors flex i el que duu a terme cada element determinat pel programa. Així doncs, al moure la mà amb el guant posat, els sensors flex determinen una resistència que és transmesa a l’Arduino Uno; aquest conté el programa i relaciona els LEDs, altaveu i servomotors amb el valor resistiu de les resistències esmentades. Cada dit està relacionat amb un color (cinc dits per a cada un dels sis colors que tenen els dos LEDs) i depenent de si estan flexionats o no, oferiran un color de llum diferent. Els altaveus simplement transmeten notes o sons d’agudesa diferents, així que depenent el dit que es mogui es pot fer variar la tonalitat del so o fer-li reproduir una nota diferent. Per últim, en el cas dels servomotors, que constitueixen el moviment de la mà biònica, giren el seu eix més graus o menys depenent la resistència dels sensors flex. A més, a part de voler obtenir els millors resultats possibles he pensat en l’estètica. Inicialment el meu robot s’assemblava poc a una mà real així que la millor idea que se’m va ocórrer va ser fer-li un guant a mida i tallar un tub que cobrís la zona on hi van les plaques per simbolitzar una part del que equivaldria a un braç humà.
8
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
3. Disseny de la mà biònica Per al muntatge de la mà he intentat triar els materials i recursos més econòmics possibles. Altres projectes de mans biòniques que he pogut veure per la xarxa tenen un cost elevat de milers d’euros, i tot i que amb menys diners també és pot aconseguir una bona mà, el meu objectiu és que imiti el moviment d’una mà real, no que sigui perfecte. Reciclant materials i pensant en com poder arribar als paràmetres que més em convenien, he intentat imitar el moviment i forma d’una mà real.
3.1.
Material
A continuació, els materials usats per a la construcció estructural de la mà biònica: - Cinta americana
- 1 porta piles
- 2 guants ( un per la mà biònica i l’altre
- Fil de niló
per a la nostra)
- Cargols M3
- 5 servomotors
- Tros de veta adherent
- 1 metre de tub -
4
trossos
- Tros de placa perforada (7x6) cm de
fusta;
A:11x4.5x2.5,
B:11x2x2.5, C:11x1.5x1, i D:20x7x0.2 cm - 1 tub de cartró de 20 cm de llargada i 8
- Caixa de plàstic reciclada -Brides
cm de diàmetre
3.2.
Procediment
A continuació explicaré pas per pas com he fet l’estructura de la mà i com hi he afegit les plaques: - Primerament, col·loquem els sis servomotors en fila i els repartim equidistantment al llarg dels onze centímetres del tros de fusta A. Marquem amb un retolador els deu forats on aniran els deu cargols i per on passarem les deu B
brides per ajustar els tubs que faran de dits a la mà. Foradem cadascuna de les marques i introduïm els
A
cargols.
Imatge 5. Pas 1: col·locació dels servomotors
9
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Justament on queden fixats els cargols dels servomotors units a la fusta, hi cargolem una segona fusta B. Fent servir de guia els forats per a les brides, fem cinc marques a la fusta B per on farem passar el fil de niló que anirà unit dels servomotors, recorrent els tubs que simbolitzen els dits, fins a la punta d’aquests on quedaran fixats amb cinta americana. - A continuació, a l’altre costat dels servomotors, hi ajustem la fusta C fent marques amb el retolador per a determinar la seva correcta perforació i després unint-la C
D
per mitjà de deu cargols als servos (aquesta fusta es col·loca perquè els hi donarà una major fixació i immobilitat). Aprofitant els sis cargols centrals hi sumem la quarta i última fusta de D, que és on hi aniran les dues
Imatge 6. Pas 2: addició de la fusta C iD
plaques responsables de la mobilitat del sistema.
- Després, tallem cinc trossos de tub proporcionals a cadascun dels dits de la mà i proporcionals a la mena de palmell i braç que formen les fustes unides i els servos ( aproximadament: dos de 14, un de 15, de 16 i de 10). Els hi fem dos talls simulant els punts on els dits queden doblegats al moure’ls que permetin dur a terme la mobilitat de la mà biònica. Com si el palmell Imatge 7. Pas 3: tall proporcionat dels tubs/dits
de la mà mires cap a munt, col·loquem els cinc dits al seu lloc.
- Ajustem cada dit amb les brides i el dit gros el fem posicionar-se d’un mode més versemblant tallant el punt que queda unit per les brides diagonal cap a fora. Fem passat el fil de niló d’uns 20-30 cm de llarg per la perforació feta anteriorment a la fusta C alineada al lloc dels dits deixant sobresortir un tros per cada costat. La part que sobresurt per la punta del tub/dit la fixem amb cinta americana i el trossos que sobren per la banda dels motors els nuem a aquests, així quan rebin l’ordre de moure’s Imatge 8. Pas 4: ajustament del fil de niló i tub/dits amb les brides
facin
doblegar-se
els
dits
gratament.
10
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
- Finalment, marquem, perforem i hi cargolem a la fusta D la placa d’Arduino i la perforada on durem a terme les soldadures. També hi enganxem la veta adherent on anirà posicionat el porta-piles. Per acabar, introduïm el tub a mode de braç i el fem ajustable a la fusta C amb un parell de talls. Per a tapar els tubs/dits i que imiti millor a una mà Imatge 9. Pas 5: addició de les plaques i piles
real, es cus a mida un guant de cotó.
- Un cop tinguem tot muntat veiem que les llums i l’altaveu queden exteriors i a l’intempèrie, per a arreglar-ho i que no els hi passi res, es pot aconseguir una caixa de plàstic on fixar-ho tot. A la caixa li fem un forat per on passarem els cables (a un costat), dos forats del diàmetre dels LEDs i uns quants forats per on sortirà el so de l’altaveu (per damunt).
Imatge 10. Pas 6: addició de la caixa on s'hi troba l'altaveu i els LEDs
3.3.
Els servomotors
Un servomotor és un motor que té una caixa reductora i un sistema de control amb un potenciòmetre que indica la posició al sistema de control. Si parlem d’un servomotor amb moviment giratori, serà necessari un codificador de posició que ens doni un valor diferent a la seva sortida segons sigui la seva posició en graus. Estan formats per un motor CC (corrent contínua), que gira a una alta velocitat, una sèrie d’engranatges per a reduir la velocitat de gir i maximitzar la seva força, un potenciòmetre Imatge 11. Servomotor Modelcraft RS-2
connectat al eix de sortida i un circuit de control per a la realimentació.
11
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez Aquests servomotors reben senyal per tres cables: alimentació per al motor i la petita plaqueta del circuit del control (a través
de
dos
cables,
positiu
i
negatiu/massa), i una senyal controladora que
determina
requereix.
la
posició
L’alimentació
que
es
d’aquests
servomotors és normalment d’entre 4.8 i Imatge 12. Components d'un servomotor
6V.
La senyal controladora per als servomotors d’aquest tipus, escollit per a facilitar l’ús en radio control, és un pols d’ona quadrada d’1.5 milisegons que es repeteix a un ritme d’entre 10 a 22 ms. Generalment el rang de gir d’un servomotor es situa entre els 90º i 180º de la circumferència total, o una mica més, segons la marca i model. En especial el model que jo he triat, un servomotor Modelcraft RS-2, gira 60º en 20 milisegons, i el seu gir oscil·la entre els 0º i 203º. Una de les grans característiques de l’Arduino és que té una biblioteca de software que li permet controlar fins a sis servos (connectats als pins 3, 5, 6, 9, 10 o 11) amb una sola línia de codi.
12
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
4. Disseny de la mà amb sensor flex Per a reproduir els moviments de la meva mà al robot, encendre els LEDs o sonoritzar els moviments cal crear una mà adequada on hi estaran col·locats els sensors flex que ens indicaran el grau de moviment dels dits de la mà. Aquest aniran cosits a cada dit del guant per a que quan ens els posem la mobilitat sigui màxima; i dic cosir perquè amb anterioritat estaven adjuntats amb cinta americana però costava moure’ls i era incòmode.
4.1.
Sensor Flex
El sensor flex està format per un material resistiu que varia el seu valor òhmic en funció de la quantitat de curvatura que se li aplica, converteixen la variació de la corba a la resistència elèctrica. Quan no està flexionat té una resistència d’aproximadament 15 KΩ, i quan es doblega la resistència augmenta a 50 KΩ a 90 graus. El sensor mesura 0.25 polzades d’ample, 2.8 de llargada i 0.19 polzades de gruix (0.64x7x0.48) cm. A l’interior del sensor flex hi ha elements resistius de carboni dins d’un substrat flexible prim. Contra més carboni hi hagi menys resistència oferirà el sensor. Quan dobleguem el sensor produeix una sortida de resistència relativa al radi de curvatura, com que el sensor flex només es doblega en una única direcció la resistència augmenta gradualment. Així doncs, com major sigui la corba, major serà el valor de la resistència. Els sensor flex s’utilitzen per a detectar el moviment del dit per a controlar diverses maquinàries i objectes electrònics com Imatge 13. Sensor flex flexionat instruments musicals, smartphones, entre d’altres.
Imatge 14. Mida del sensor flex en centímetres i polzades
13
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Per a poder calibrar i adaptar els sensor flex al meu projecte els he fet treballar com a divisors de tensió, però com que la diferència resistiva entre estar estirat o doblegat és molt petita he agut de recórrer als amplificadors operacionals per tal d'augmentar-la i poder treballar més còmodament. He fet servir el muntatge com a amplificador de tensió en mode seguidor que suggereix el fabricant al Imatge 15. Amplificador operacional LM324
seu manual de funcionament (datasheet). S’anomenen amplificadors operacionals perquè realitzen operacions matemàtiques, com per exemple sumes, diferències, integrades, comparacions, entre d’altres. Són elements molt usats en l’electrònica analògica i tenen moltes aplicacions. L’amplificador operacional LM324 està format per quatre amplificadors operacionals integrats en un mateix circuit. Es pot alimentar amb una tensió senzilla o simètrica. Una tensió senzilla consisteix en alimentar amb dos cables, un al positiu i l’altre al pin terra i una de simètrica consisteix en alimentar el circuit amb tres cables, un al positiu, un al negatiu i un altre al GND. La diferència entre usar un tipus d’alimentació o un altre dependrà amb el que vulguem aconseguir a la sortida: si es volen obtenir només tensions positives usarem l’alimentació simple, si se’n volen obtenir de positives i negatives s’haurà d’utilitzar una alimentació simètrica. Jo faré servir una alimentació senzilla a 5 volts i faré servir el circuit que indico a continuació, tal i com recomana el fabricant de l'amplificador.
Imatge 16. Circuit d'un amplificador operacional
14
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Circuit bàsic: Sensor Flex com a divisor de tensió – relacionant els augments de voltatge de sortida amb la corba.
R1
R2
Imatge 17. Circuit bàsic d'un sensor flex amb un amplificador operacional i la seva fórmula
Els que millor s’adeqüen són el LM358 i el LM324. En el meu cas usaré un amplificador operacional per a cada sensor flex. Com que tinc cinc sensors i a cada circuit integrat LM324 n'hi ha quatre necessitaré col·locar dos circuits integrats; si usés el LM358 n’hauria d’usar tres ja que està format únicament de dos amplificadors integrats. Per a poder calibrar els sensors a part de afegir-hi els amplificadors, també s’haurà de tenir en compte resistències que regulin l’entrada del voltatge als buffers per a que aquests funcionin correctament i puguin dur a terme les seves funcions. Per a poder calcular les resistències necessàries usarem la fórmula següent:
on; VOUT és el voltatge total que ha de subministrar correctament, VIN és el voltatge que es subministra al Sensor Flex, RF és la resistència de cada divisor de tensió (Sensor Flex), R2 és la resistència que s’ha de col·locar. En el meu cas recorreré a una resistència de 18 Ω ja que a la pràctica s’adequa millor als resultats que vull obtenir dels sensor flex, tot i que la tensió resultant en V OUT que romandrà el valor més alt equival a 27 KΩ.
15
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
VIN = 5V
VOUT R1
R2
Imatge 18. Sensor flex connectat a un amplificador operacional
Explicació del funcionament: El que volem aconseguir és una diferencia de potencial el més gran possible ( de 0 a 5V), però com arribar als 5 V no és possible, intentarem aconseguir la tensió diferencial més elevada dintre d'aquest rang. Com que el sensor flex treballa entre 15 KΩ i 50 KΩ, la resistència que hem de posar per fer el divisor de tensió de l’amplificador operacional estarà entre aquests dos valors. Per tant, de manera experimental, fem diverses proves en l’equació amb els valors a R 2 de 18, 22, 27, 33, 39 i 47 KΩ, substituint RF per la seva màxima i mínima resistència, els 50 KΩ i 15 KΩ.
Proves amb les resistències: - Primerament provem amb els 18 KΩ: 18
18
- Amb els 22 KΩ: 22
22
- Amb els 27 KΩ: 16
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
27
27
- Amb els 33 KΩ: 33
33
- Amb els 39 KΩ 39
39
- Amb els 47 KΩ: 47
47
Així doncs la resistència que millor s’adequarà teòricament serà la de 27 KΩ. Tot i així, a la pràctica, he pogut observar que al provar amb resistències de 18 KΩ, 22 KΩ, 27 KΩ i 33 KΩ, la que millor s’ajustava era la de 18 KΩ. I com són components reals i no teòrics i, a més, les diferències entre els potencials són mínimes, no hi haurà cap variació en el nostre objectiu.
17
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
5. Desenvolupament del sistema de control El sistema de control del meu robot està basat en el funcionament de la placa Arduino Uno programada d’una manera específica per al seu enllumenat, moviment i so. Per a facilitar-ne les connexions vaig haver de crear una placa des de zero com a intermediària dels actuadors i alimentació amb la placa.
5.1.
Placa Arduino Uno
Arduino és una plataforma electrònica oberta a la creació de prototips basada en software i hardware flexibles i d’un ús fàcil. Va ser creat per a artistes, dissenyadors, aficionats i qualsevol altre interessat en crear entorns o objectes interactius. L’Arduino és capaç de rebre informació sobre l’entorn del lloc al qual es troba per mitjà del seus pins d’entrada, Imatge 19. Part superior de la placa d'Arduino Uno
una àmplia gama de sensors i pot afectar allò que l’envolta controlant LEDs, motors, entre d’altres actuadors. El microcontrolador de la placa es programa mitjançant el llenguatge determinat per Arduino i l’entorn de desenvolupament. Els projectes fets amb la placa poden executar-se sense necessitat de connectar a un ordinador, si bé tenen la possibilitat de fer-ho i comunicar amb diferents tipus de software; com per exemple Flash, Processing, MaxMSP, entre d’altres. Les plaques poden ser fetes a mà o comprades i muntades a la fàbrica. El software pot ser descarregat de forma gratuïta. Els fitxers de disseny de referència (CAD) estan disponibles sota una llicència oberta, així doncs cadascú és lliure d’adaptar-los a les seves necessitats. També s’han creat diferents mòduls d’amplificació (shield) que permeten ampliar els recursos i aplicacions de forma més senzilla. Hi ha shields per: al control del motor, les comunicacions (XBee, wifi, etc), la il·luminació (LED), targetes SD, GPS, reconeixement de veu, i altres exemples. Hi ha diferents tipus de plaques com ara Arduino BT,
Imatge 20. Part inferior de la placa d'Arduino Uno
18
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Arduino Due, Arduino Fio, Arduino Leonardo, LilyPad Arduino, Arduino Mini, Arduino Nano, Arduino Mega, Arduino Pro o Arduino Pro Mini, etc. Per al meu projecte he triat Arduino Uno perquè és una placa fàcil d’usar, i l’hem treballada a classe, a més compta amb les entrades necessàries i que millor s’ajusten al meu projecte i, tot i que podia usar la Mega, l’Uno era més econòmica.
5.1.1. Arduino Uno És una placa de microcontrolador basada en ATmega328 (datasheet). Compta amb catorze entrades/sortides de pins digitals (de les quals sis es poden usar com sortides PWM), sis entrades analògiques, un oscil·lador de cristall de 16 MHz, una connexió USB, un connector d’alimentació, un connector de comunicacions ICSP, i un botó de reset. Conté tot el necessari per a recolzar el microcontrolador, n’hi ha suficient en connectar-lo a un ordinador amb un cable USB o bateria per a poder començar. A continuació, en la imatge es mostren les seves parts principals: la situació dels seus pins, els diferents LEDs informatius, el botó de reset, el microcontrolador, el connector d’USB per a l’ordinador i la transmissió de dades, entre d’altres.
Imatge 21. Parts de la placa Arduino Uno
19
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
A continuació, una taula sobre les principals característiques de la placa Arduino:
Elements
Característiques
Microcontrolador
ATmega328
Voltatge de funcionament
5V
Voltatge d’entrada recomanat
7-12V
Voltatge d’entrada límits
6-20V
Digital I/O Pins
14 (de les quals 6 proporcionen sortida PWM)
Pins d’entrada analògica
6
Corrent DC per pin I/O
40 mA
Corrent DC per pin 3.3V
50 mA
Memòria Flash
32 KB (ATmega328) dels quals 0.5 KB s’usen per la posada en marxa
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Freqüència del microcontrolador
16 MHz
5.1.2. Alimentació La placa d’Arduino Uno pot ser alimentada a través de la connexió USB o amb una font d’alimentació externa (es selecciona automàticament). L’alimentació externa pot donar-se amb un adaptador de corrent alterna a continua o una bateria, la qual es pot introduir en els encapçalaments de pins Gnd i Vin del connector d’alimentació. La placa pot funcionar amb una alimentació externa de sis a vint volts. Si es proporcionen menys de set, però, el pin 5V pot proporcionar menys de cinc a la placa i aquesta pot ser inestable. Si s’usa més de dotze el regulador de voltatge es pot sobreescalfar i la placa
20
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
deixaria de funcionar. Així dons el més recomanat per evitar qualsevol tipus de problema és de set a dotze volts. Els pins d’alimentació són els següents: - VIN: la tensió d’entrada a la placa Arduino quan s’utilitza una font d’alimentació externa. Es pot subministrar tensió a través d’aquest pin, o, si la subministració de voltatge és a través del connector d’alimentació, accedir a ell a través de la mateixa. - 5V: aquest pin genera 5V regulats per la placa, a la qual es pot subministrar corrent, ja sigui a partir de l’entrada d’alimentació (7-12V), el connector USB (5V), o el passador de VIN de la placa (7-12V). No és aconsellable usar una subministració de voltatge dels pins 5V o 3.3V ja que al no passar pel regulador poden fer malbé la placa. - 3V3: aquesta font d’alimentació de 3.3 volts esta generada pel regulador i consumeix una corrent màxima de 50 mA. - GND: Pins de terra.
5.1.3. Memòria El ATmega328 té 32 KB (amb 0,5 KB usats per al gestor de posada en marxa). També té 2 KB de SRAM y 1 KB de memòria EEPROM (que pot ser llegit i escrit per la biblioteca EEPROM).
5.1.4. Entrades i sortides Cadascun dels 14 pins digitals en Arduino Uno es poden utilitzar com a una entrada o sortida, usant les ordres de pinMode(), digitalWrite(), i les funcions digitalRead(). Funcionen a 5 volts. Cada pin pot proporcionar o rebre un màxim de 40 mA i té una interna desconnexió per defecte de 20-50 kΩ. A més, alguns pins tenen funcions especialitzades: - Sèrie: 0 (RX) i 1 (TX); s’utilitzen per a rebre (RX) i transmetre (TX) dades de sèrie. Estan connectats als pins corresponents del xip de l’ATmega8U2 USB-to-Serial TTL. - Interrupcions externes: 2 i 3. Poden ser configurades per a activar una interrupció en un valor baix, un flanc ascendent o descendent, o un canvi en el valor. - PWM: 3, 5, 6, 9, 10, i 11. Proporcionen 8-bits de sortida PWM amb la funció analogWrite (). - SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Recolzen la comunicació SPI amb la biblioteca SPI. 21
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
- LED: 13. Hi ha un LED connectat al pin digital 13. Quan el pin és d’alt valor, el LED està encès, quan el passador es baix, s’apaga. Arduino Uno té sis entrades analògiques amb les etiquetes de A0 a A5, on cadascuna proporciona 10 bits de resolució (és a dir, 1024 valors diferents). A més alguns pins tenen funcions especialitzades: - TWI: A4 i A5, SDA i SCL respectivament. Recolzen la comunicació TWI i l’ús de la biblioteca Wire. - AREF: voltatge de referència per a les entrades analògiques. S’utilitza amb analogReference().
5.1.5. Característiques físiques La longitud màxima i l’amplada del PCB Uno són 2.7 i 2.1 polsades, respectivament, amb el connector USB i el connector elèctric que arriba més allà de la dimensió anterior. Té quatre forats pels cargols que permeten que la placa quedi fixada a una superfície.
5.1.6. Connexions als pins d’Arduino Uno A continuació, indico les entrades i sortides amb una llegenda de colors completada amb un quadre resum que mostra a quin pin està connectat cada element. Servo Flex sensor LED Altaveu
Imatge 22. Esquema a color de cada entrada o sortida
22
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Sortides Element connectat 0
Lliure – Comunicació PC
7
LED (Blau)
1
Lliure – Comunicació PC
8
LED (Verd)
2
LED (Blau)
9
Servo (Flex sensor - Cor)
3
Servo (Flex sensor – Polze)
10
Servo (Flex sensor – Petit)
4
LED (Vermell)
11
LED (Verd)
5
Servo (Flex sensor – índex)
12
LED (Vermell)
6
Servo (Flex sensor – Gros)
13
Altaveu
Taula 1. Quadre resum dels pins de sortida
Entrades analògiques
Flex sensor del dit…
A0
Polze
A1
Índex
A2
Cor
A3
Anular
A4
Petit
Taula 2. Quadre resum dels pins d'entrada analògics
En la taula número 1 hi trobem tots els pins de sortida de la placa Arduino i els seus actuadors corresponents. Els pins de sortida són aquells en que el programa transmès a la placa els indica la funció que els pertoca. Tots els que pertanyen als servos tenen l’ordre de girar per a fer moure cadascun del dit de la mà, els LEDs d’encendre’s en determinats colors i l’altaveu de reproduir unes notes específiques. Els servos, però, es troben connectats a unes sortides específiques anomenades PWM que simbolitzen una sortida analògica i augmenten la funcionalitat dels servomotors. En la segona taula hi trobem les entrades analògiques que són usades per a que sigui el valor de la resistència la que condicioni el moviment dels motors, l’enllumenat o el so.
23
INS Torre del Palau
5.2.
Mà biònica
Aida Picón Fernàndez
Placa d’ampliació
En el circuit creat a la placa d’ampliació hi trobem tots els components electrònics necessaris per a que funcioni la mà biònica. Els servos i el guant, que conté els sensor flex, s’hi troben connectats mitjançant cables a la placa. En ella s’hi troben diversos pins femella que ens permeten connectar cada actuador amb el seu pin corresponent a la placa Arduino Uno. El corrent del circuit és modificat per resistències de diferents valors depenent del actuador que hi és connectat. També es compon de condensadors de diferents capacitats i amplificadors operacionals, els quals com he explicat amb anterioritat van connectats directament amb els sensor flex posicionats al guant. El circuit es centra en quatre coses: Al connectar l’alimentació s’encén el LED 1 que ens determina la posada en marxa de la mà, ens alimenta els servos, els sensor flex, els LEDs RGB i l’altaveu, com també l’Arduino Uno quan no el trobem connectat directament a l’ordinador. Cada servo, amplificador operacional (lligat als sensor flex), RBG i altaveu es troben connectats a l’Arduino per mitjà de cables, els quals, van dels pins femella d’aquests als femella de la placa Arduino. Cadascun està relacionat amb una entrada analògica o sortida determinada en funció dels programes i de l’actuador en qüestió. L’alimentació ve determinada per un transformador de 7,5 V i una intensitat d’uns 1000mA.
Imatge 23. Circuit de la placa d’ampliació il·lustrat
Imatge 24. Circuit de la placa soldada esquemàtic
24
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
6. Programació Per a dur a terme la programació d’un robot cada plataforma en té una de pròpia. Els codis els facilita cada fabricant del microcontrolador així com el programa que cal instal·lar en el nostre ordinador per a poder dur a terme la programació. A l’hora de programar existeixen infinites possibilitats, tan com ens permeti la nostra imaginació. Existeixen llenguatges bàsics per a dur a terme les funcions més senzilles de cada element, com també de complexes que ens obren tot un món de possibilitats.
6.1.
Introducció a l’Arduino
Per programar l’Arduino he usat un programa que ve facilitat per la pròpia web d’Arduino i és gratuït, existeix per a molts tipus de sistemes operatius d’ordinadors. Arduino consta d’una gran biblioteca amb cada tipus de llenguatge explicat, anomenat i exemplificat segons la funció que volem desenvolupar. Així fan més fàcil al consumidor l’ús de cada actuador entre la placa i l’ordinador, com també entendre el per què de cada ordre i poder-la desencadenar en àmbits més complexos. Dins un dels apartats de la pàgina web Arduino trobem l’anomenat “Fonaments”, on hi podem trobar tot d’explicacions que relacionen el hardware i el software i els conceptes que amaguen cadascun d’ells. Dins els conceptes bàsics hi trobem explicats els diferents elements d’un programa i com funcionen; als microcontroladors: com treballen els pins i què significa configurar-los com d’entrada o sortida, detalls respecte la conversió analògica a digital i altres usos dels pins, com analogWrite() simula una sortida analògica usant modulació per ample de polzada PWM, i els diferents tipus de memòria disponibles; la tècnica de programació: com es defineixen i s’usen les variables, les funcions i com es crea una biblioteca pròpia; i finalment com programar usant el microcontrolador d’un Arduino en una placa entrenadora. Dels diferents llenguatges existents i que jo he aplicat, la funció que més he usat per condicionar cada llum, so i moviment ha estat la map(); perquè té la finalitat de convertir el valor que em donen els sensor flex estirats en els zero graus del motor, un color determinat dels RBG o una tonalitat o nota determinades en el so, i d’igual manera al tenir cada sensor flex doblegat al màxim. Així el valor de cada sensor flex em varia entre l’apagada de cada element o posició determinada, i la seva final d’apagada o altra.
25
INS Torre del Palau
6.2.
Mà biònica
Aida Picón Fernàndez
Estructura del programa
L’estructura bàsica del llenguatge de programació d’Arduino és bastant senzill i es compon de dues parts principals void setup() i void loop(). Aquestes dues parts necessàries delimiten blocs que contenen instruccions. Setup() és la part encarregada de recollir la configuració i loop() conté el programa que s’executarà de manera continuada. Una part també important del programa és determinar cada pin per a cada element com també la funció (entrada o sortida) que aquest durà a terme. Les principals característiques de les parts essencials del programa són: - setup(): conté la declaració de les variables. És la primera funció que apareix i només s’executa una vegada. S’utilitza per a determinar els modes de treball dels pins o el port sèrie. - loop(): conté el codi que s’executarà contínuament com la lectura d’entrades, l’activació de sortides, entre d’altres. Aquesta funció és el nucli de tots els programes d’Arduino i respon d’una manera continuada als canvis que tenen lloc a la targeta a causa dels actuadors. - {} ; : les claus delimiten un bloc d’instruccions i el punt i coma separa a cadascuna d’elles dins d’aquestes. - pin: els pins digitals es poden configurar d’entrada o de sortida i cadascun està assignat a aquell actuador o element que se li connecti. Els pins com a entrada (INPUT) ho són per defecte i no cal configurar-los amb pinMode() com a tals; els pins configurats com a sortida (OUTPUT), en canvi, sí. A l’hora de configurar el programa es determina la funcionalitat de cada pin, ja sigui d’entrada o de sortida, depenent de l’actuador o element del que es tracti. Si parlem de LEDs, servomotors o altaveus, per exemple, els pins hauran d’ésser establerts com a sortida ja que és el programa qui els hi determina la funció que han de dur a terme, independentment de la causa que els condicioni. Quan es tracta de pins d’entrada significa que és l’actuador qui li envia dades a la placa, on aquesta a partir del programa condiciona a un altre element o envia al monitor les dades obtingudes, en sensors sobretot.
26
INS Torre del Palau
6.3.
Mà biònica
Aida Picón Fernàndez
Programes de prova
Abans de fer un programa definitiu he hagut fe per diferents proves. M’he centrat a obtenir resultats en un únic dit i servo, llum, etc, per a després poder-ho dur a terme d’una manera més concreta, com també fer-ho per a cadascun dels cinc dits de la mà.
6.3.1. Calibratge dels sensors flex
Diccionari del llenguatge
Programa que permet la calibratge dels sensors flex i per tant poder fer funcionar correctament els altres programes.
int: Integers (Números enters) són el principal tipus de dades per a emmagatzemar números negatius
//Nom de les variables int i determinació dels pins
(tècnica
analògics per a cada sensor flex
número N expressat en sistema
int flex1=0; int flex2=1;
“complement
a
dos”:
binari compost per n dígits), i guarden valors de 2 bytes.
int flex3=2;
void: s’usa per a la declaració de
int flex4=3;
funcions (peces modulars de codi
int flex5=4;
que realitzen una tasca definida).
int val1;
setup(): inici del programa (usat per
int val2; int val3;
a iniciar variables, establir l’estat dels pins, iniciar llibreries, etc.
int val4;
Serial: s’usa per a la comunicació
int val5;
entre la placa i l’ordinador o altres dispositius.
int map1; int map2; int map3; int map4; int map5;
begin(): determina la velocitat de transmissió de dades en bits per segon. loop(): funció que permet repetir consecutivament un mateix bucle
void setup() {
(representa el programa principal que determina el què ha de fer cada
Serial.begin(9600);
actuador).
} void loop() { //Aparició en pantalla del valor resistiu que ofereixen els sensor flex val1=analogRead(flex1); Serial.print(" Flex1: "); 27
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Serial.print(val1);
analogRead(): llegeix el valor de
map1=map(val1,500,180,0,1000);
tensió
Serial.print(" Flex1 map: ");
converteix tensions d’entre 0 i 5 V a
Serial.println(map1);
un número enter entre el 0 i el 1023.
delay(1000);
en
el
pin
especificat;
print(): “imprimeix” les dades del port sèrie en pantalla.
val2=analogRead(flex2); Serial.print(" Flex2: "); Serial.print(val2);
- pintln(): aparició de les dades la línia següent.
map2=map(val2,500,180,0,1000);
map(): funció que remapeja un
Serial.print(" Flex2 map: ");
número des d’un rang fins a l’altre.
Serial.println(map2);
Ex;
delay(1000); 0
val3=analogRead(flex3);
500
1000 180
Serial.print(" Flex3: "); Serial.print(val3); map3=map(val3,500,180,0,1000); Serial.print(" Flex3 map: ");
delay(): pausa el programa per un temps determinat específic per a un paràmetre (en milisegons).
Serial.println(map3); delay(1000);
val4=analogRead(flex4); Serial.print(" Flex4: "); Serial.print(val4); map4=map(val4,500,180,0,1000); Serial.print(" Flex4 map: "); Serial.println(map4); delay(1000);
Imatge 25. Valor resistiu del dit estirat
val5=analogRead(flex5); Serial.print(" Flex5: "); Serial.print(val5); map5=map(val5,500,180,0,1000); Serial.print(" Flex5 map: "); Serial.println(map5); delay(1000);
Imatge 26. Valor resistiu del dit flexionat
} 28
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
6.3.2. Control dels servos amb els sensors flex A continuació, el programa que relaciona el valor resistiu ofert pel doblegament de cada dit i els graus que giraran els motors. #include <Servo.h>
#include<>:
permet
incloure
llibreries externes que proporcionen
//Nom de les variables int i determinació dels pins
accés a una gran quantitat de
analògics per a cada sensor flex
llibreries C estàndard (grup de
Servo myservo1;
funcions ja fetes), i també llibreries
Servo myservo2;
escrites especialment per a Arduino.
Servo myservo3; Servo myservo4; Servo myservo5;
Servo: inclòs a la biblioteca anterior que permet una major precisió del seu moviment i rendiment. Aquesta biblioteca funciona per als pins
int flex1=0; int flex2=1; int flex3=2;
PWM (3, 5, 6, 9, 10 i 11). attach(): associa la variable Servo a un pin.
int flex4=3; int flex5=4;
int val1; int val2; int val3; int val4; int val5; void setup() { //Determinació del pin pertanyen a cada servomotor i la velocitat de transmissió de les dades Serial.begin(9600); myservo1.attach(3); Serial.begin(9600); myservo2.attach(5); Serial.begin(9600); myservo3.attach(6); Serial.begin(9600); myservo4.attach(9); 29
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Serial.begin(9600);
write(): escriu dades a tot allò
myservo5.attach(10);
connectat al servidor.
} void loop() { //Relació entre el valor mapejat dels sensors flex al programa "Calibratge dels sensors flex" i l'angle giratori dels servos val1=analogRead(flex1); Serial.println(val1); val1=map(val1,500,140,210,0); myservo1.write(val1); delay(50);
val2=analogRead(flex2); Serial.println(val2); val2=map(val2,620,230,210,0); myservo2.write(val2); delay(50);
val3=analogRead(flex3); Serial.println(val3); val3=map(val3,466,170,210,0); myservo3.write(val3); delay(50);
val4=analogRead(flex4); Serial.println(val4); val4=map(val4,730,400,210,0); myservo4.write(val4); delay(50);
val5=analogRead(flex5); Serial.println(val5); val5=map(val5,522,250,210,0); myservo5.write(val5); delay(50); }
30
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
6.3.3. Variació del color dels LEDs amb els sensors flex Programa que determina el color de cadascun dels LEDs depenent del dit que dobleguem. //Determinació dels pins analògics pels sensor flex byte flex1=0; byte flex2=1; byte flex3=2;
for(): repeteix un bloc tancat entre les
claus,
un
augment
del
controlador permet acabar el bucle.
byte flex4=3; byte flex5=4;
pinMode(): determina el pin per a comportar-se
//Noms de les variables int
com
a
entrada
(INPUT) o sortida (OUTPUT).
int valor_flex1;
digitalWrite(): configura el pin digital
int valor_flex2;
amb el voltatge que li ha de ser
int valor_flex3;
atorgat, HIGH (5V) i LOW (0V).
int valor_flex4; int valor_flex5;
int map_flex1; int map_flex2; int map_flex3; int map_flex4; int map_flex5; void setup() { for (int i=0; i<14; i++) { pinMode(i, OUTPUT); //Pins de sortida } //Valor dels LEDs al màxim voltatge i determinació dels pins Serial.begin(9600); digitalWrite(2,HIGH); digitalWrite(11,HIGH); digitalWrite(4,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); digitalWrite(12,HIGH); }
31
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
void loop() { //Lectura dels valors dels sensors flex valor_flex1 = analogRead(flex1); valor_flex2 = analogRead(flex2); valor_flex3 = analogRead(flex3); valor_flex4 = analogRead(flex4); valor_flex5 = analogRead(flex5);
//Calibratge dels sensor flex per a LEDs map_flex1=map(valor_flex1,500,140,0,255); map_flex2=map(valor_flex2,620,230,0,255); map_flex3=map(valor_flex3,466,170,0,255); map_flex4=map(valor_flex4,730,400,0,255); map_flex5=map(valor_flex5,522,250,0,255); delay(20);
//Encesa dels LEDs analogWrite(2,map_flex1); analogWrite(11,map_flex2); analogWrite(4,map_flex3); analogWrite(12,map_flex4); analogWrite(8,map_flex5); analogWrite(7,127); delay(20); }
6.3.4. Control de l’altaveu amb els sensors flex Programa per a configurar els sons que reproduirà l’altaveu al flexionar els diferents sensor flex. //Noms de les variables int i valors assignats a elles int melody[] = {NOTE_C4,NOTE_G6,NOTE_G6,NOTE_B3,NOTE_B3,NOTE_C4};
int noteDurations[] = {4,8,8,4,4,4};
//Determinació del pin de l'altaveu byte altaveu=13;
32
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
//Noms de les variables int i assignació d'un valor
byte:
int t_cicle=1200;
emmagatzemar un número sense
funció
que
permet
signe de 8-bit, des del 0 fins al 255.
byte flex1=0; byte flex2=1; byte flex3=2; byte flex4=3;
if():
funció
condicional
que
determina: si passa el que hi ha entre parèntesis es reproduirà el to en funció tone().
byte flex5=4; tone(): funció que determina el so a
void setup() {
reproduir per l’altaveu i la seva duració,
produint
una
senyal
quadrada.
for (int thisNote=0;thisNote<8;thisNote++) noTone(): atura el senyal de la
{ int noteDuration = 1000/noteDurations[thisNote];
funció tone().
tone(altaveu, melody[thisNote],noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(altaveu); } } void loop() { //Configuració de cada so int so1=map(map_flex1,0,255,100,500); int so2=map(map_flex2,0,255,500,1000); int so3=map(map_flex3,0,255,1000,2000); int so4=NOTE_C4; int so5=NOTE_F5;
//Es condiciona l'altaveu per a que soni si està doblegat el sensor flex if (map_flex1>100) { tone(altaveu,so1,20);} if (map_flex2>100) { tone(altaveu,so2,20);} if (map_flex3>100) { tone(altaveu,so3,20);} if (map_flex4>100) { tone(altaveu,so4,20);} 33
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
if (map_flex5>100) { tone(altaveu,so5,20);} }
6.4.
Programa final
Aquest programa és el que engloba tots els anteriors. Tots els elements programats venen determinats pel moviment dels sensors flex: depenent del dit que dobleguem els LEDs oferiran un color diferent, al igual que la nota o intensitats que correspon a cada dit; la mà biònica imitarà el moviment de la mà real amb el guant amb sensors flex, que és el programa principal del meu treball. #include <Servo.h> #define<>: el programa canvia el
#define NOTE_B0 31
nom de la nota (en aquest cas) pel
#define NOTE_C1 33
valor al qual correspon, això permet
#define NOTE_CS1 35
optimitzar.
#define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 34
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
#define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 35
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
#define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978 //Noms de les variables int i valors assignats a elles int melody[] = {NOTE_C4,NOTE_G6,NOTE_G6,NOTE_B3,NOTE_B3,NOTE_C4};
int noteDurations[] = {4,8,8,4,4,4};
//Determinació del pin de l'altaveu byte altaveu=13; //Noms de les variables int i assignació d'un valor int t_cicle=1200;
36
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
//Determinació dels pins analògics pels sensor flex byte flex1=0; byte flex2=1; byte flex3=2; byte flex4=3; byte flex5=4; //Noms de les variables int int valor_flex1; int valor_flex2; int valor_flex3; int valor_flex4; int valor_flex5;
int map_flex1; int map_flex2; int map_flex3; int map_flex4; int map_flex5;
int map_flex_m1; int map_flex_m2; int map_flex_m3; int map_flex_m4; int map_flex_m5;
//Relació de cada funció servo amb cadascun dels de la mà Servo servo1; Servo servo2; Servo servo3; Servo servo4; Servo servo5; void setup() { for (int i=0; i<14; i++) { 37
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
pinMode(i, OUTPUT); //Pins de sortida } //Valor dels LEDs al màxim i determinació dels pins Serial.begin(9600); digitalWrite(2,HIGH); digitalWrite(11,HIGH); digitalWrite(4,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); digitalWrite(12,HIGH);
//Determinació del pin pertanyent a cada servomotor servo1.attach(3); servo2.attach(5); servo3.attach(6); servo4.attach(9); servo5.attach(10);
//Creació d'un bloc de repetició per al so d'inici for (int thisNote=0;thisNote<8;thisNote++) { int noteDuration = 1000/noteDurations[thisNote]; tone(altaveu, melody[thisNote],noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(altaveu); } } void loop() { //Lectura dels valors dels sensors flex valor_flex1 = analogRead(flex1); valor_flex2 = analogRead(flex2); valor_flex3 = analogRead(flex3); valor_flex4 = analogRead(flex4); valor_flex5 = analogRead(flex5);
//Calibratge dels sensor flex per a LEDs 38
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
map_flex1=map(valor_flex1,475,370,0,255); map_flex2=map(valor_flex2,560,300,0,255); map_flex3=map(valor_flex3,416,220,0,255); map_flex4=map(valor_flex4,660,480,0,255); map_flex5=map(valor_flex5,462,310,0,255); delay(20);
//Configuració de cada so int so1=map(map_flex1,0,255,100,500); int so2=map(map_flex2,0,255,500,1000); int so3=map(map_flex3,0,255,1000,2000); int so4=NOTE_C4; int so5=NOTE_F5;
//Es condiciona l'altaveu per a que soni si està doblegat el sensor flex if (map_flex1>100) { tone(altaveu,so1,20);} if (map_flex2>100) { tone(altaveu,so2,20);} if (map_flex3>100) { tone(altaveu,so3,20);} if (map_flex4>100) { tone(altaveu,so4,20);} if (map_flex5>100) { tone(altaveu,so5,20);}
//Calibratge dels sensors flex per a motors map_flex_m1=map(valor_flex1,520,380,210,0); map_flex_m2=map(valor_flex2,560,290,210,0); map_flex_m3=map(valor_flex3,416,220,210,0); map_flex_m4=map(valor_flex4,660,470,210,0); map_flex_m5=map(valor_flex5,462,310,210,0); delay(20);
//Encesa dels LEDs analogWrite(2,map_flex1); analogWrite(11,map_flex2); analogWrite(4,map_flex3); 39
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
analogWrite(12,map_flex4); analogWrite(8,map_flex5); analogWrite(7,127); delay(20);
//Encesa dels motors servo1.write(map_flex_m1); delay(15); servo2.write(map_flex_m2); delay(15); servo3.write(map_flex_m3); delay(15); servo4.write(map_flex_m4); delay(15); servo5.write(map_flex_m5); delay(15);
//Aparició del valor de flexió de cada sensor en pantalla Serial.print("Flex:"); Serial.print(valor_flex1); Serial.print(" "); Serial.print(valor_flex2); Serial.print(" "); Serial.print(valor_flex3); Serial.print(" "); Serial.print(valor_flex4); Serial.print(" "); Serial.print(valor_flex5); Serial.println(" "); delay(100); }
40
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
7. Pressupost Per a poder dur terme tot el projecte, ja sigui a nivell de muntatge o electrització, he hagut d’elaborar un pressupost el més econòmic possible, no obstant que permetés el bon funcionament de l’aparell: Nº
Preu unitari
Total
unitats
(euros)
(euros)
Arduino Uno rev. 3
1
22
22
Leds RBG de 5 mm
2
1.9
3.8
Cinta americana
1
2.50
2.50
Guant per a la nostra mà
1
3
3
Guant per a la mà biònica
1
Roba reciclada
Gratuït
Servomotor Modelcraft RS-2
5
10.9
54.5
Sensor flex
5
6.8
34
Un metre de tub
1
Reciclat
Gratuït
Brides
1 bossa
Reciclat
Gratuït
Trossos de fusta
4
Reciclat
Gratuït
Tub de cartró
1
Reciclat
Gratuït
Porta piles
1
0.92
0.92
Fil de niló
1
3
3
Descripció del material
41
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Cargols M3
1
1
1
Tros de veta adherent
1
0.7
0.7
Amplificador operacional LM324N
2
0.53
1.06
1
1.37
1.37
2
1.9
3.8
de 18 KΩ
5
0.0042
0.021
de 150 Ω
6
0.0042
0.025
de 270 Ω
1
0.0042
0.0042
de 100 μF
3
0.11
0.33
de 100 nF
2
0.13
0.26
Interruptor
1
0.78
0.78
Placa perforada (6x7) cm
1
3.65
3.65
Cables
±30
Reciclat
Gratuït
Total sense IVA
136.72
IVA 21%
28.71
TOTAL
165.44
verd de 5 mm LED
RGB de 5 mm
Resistències
Condensadors electrònics
42
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
8. Aplicacions La biònica és l’aplicació de solucions biològiques a la tècnica dels sistemes d’arquitectura, enginyeria i tecnologia moderna. Tant mateix existeix l’enginyeria biònica que comprèn diverses disciplines amb l’objectiu d’unificar sistemes biològics i electrònics, per exemple per a crear pròtesis activades mitjançant els nervis, robots controlats per una senyal biològica o també crear models artificials d’elements que tan sols existeixen a la natura, per exemple la visió artificial i la intel·ligència artificial també anomenada cibernètica. D’això hi ha un vídeo del programa Tres14 que feien a la 2: https://www.youtube.com/watch?v=Ut6gDw_Onwk, on toquen diversos tipus de robots creats i inventats i n’expliquen la falta d’una intel·ligència pròpiament dita, molts no es mantenen de peu, d’altres només estan programats per a parar o desparar una taula específica, etc, i el que es vol aconseguir es que els robots puguin dur a terme infinitat de coses siguin quines siguin les condicions. L’enginyeria és una branca que estudia i desenvolupa aplicacions tecnològiques que tinguin la finalitat de simular el comportament, forma o funcionament dels organismes vius amb l’objectiu de crear un sistema que sigui d’utilitat a la societat, ja sigui per a l’ús en la industria, en el sector de la salut, amb finalitats militars, entre d’altres. Així doncs la biònica és una part de la cibernètica que tracta de simular el comportament dels éssers vius fent-los millors per mitjà d’instrument mecànics. Els éssers vius són màquines complexes dotades d’una gran varietat d’instruments de medició, d’anàlisi, de recepció d’estímuls i de reacció i resposta, tot gràcies als cinc sentits que hem desenvolupat. Crear màquines que es comporten com cervells humans, capacitades per observar un comportament intel·ligent i aprendre d’ell, és part del camp d’investigació de la robòtica i la intel·ligència artificial. Dins d’aquest comportament intel·ligent es troben tan les activitats relacionades amb el raciocini, estratègia i plantejament, com la percepció i reconeixement d’imatges, colors, etc. Trobem diverses aplicacions de la biònica però jo em centraré en les més generals; com la medicina, l’audiovisual i el disseny de productes. Medicina A la medicina trobem l’ús de la biònica en el canvi d’òrgans o altres parts del cos per versions mecàniques d’aquestes. Els implants biònics es diferencien de les pròtesis comunes per imitar la funció original molt fidelment, o inclús, superar-les.
43
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Tot i que encara trobem components en desenvolupament, ja n’hi ha alguns dels quals podem disposar i que ja són usats i comercialitzats. Un dels més importants és la creació de cors artificials. És cert que perdre una mà no és tant important com una falta d’un cor o altres òrgans que ens permeten viure, però el meu treball és sobre les mans biòniques així que jo voldria explicar i documentar aquest tipus d’implantació i pròtesis. Audiovisual Visió artificial és un camp secundari de la intel·ligència artificial. El propòsit de la visió artificial és programar un ordinador per a que entengui una escena o les característiques d’una imatge. Els objectius típics inclouen la detecció, segmentació, localització i reconeixement de certs objectes en les imatges, l’avaluació dels resultats, el registre de diferents imatges d’una mateixa escena o objecte, entre d’altres. S’han pogut dur a terme sistemes d’adquisició, reproducció, compressió dintre del camp de l’àudio i de la imatge, tot tenint en compte les limitacions tant del sistema auditiu humà com del sistema visual humà. Un clar exemple dins del món de l’adquisició són els micròfons, els amplificadors, els altaveus que han estat dissenyats d’acord amb els rangs audibles pels humans de 20 Hz a 20 KHz. Per exemple, com a sistema de compressió d'àudio trobem l'MP3, que permet emmagatzemar so a una qualitat similar a la d'un CD i amb un índex de compressió molt elevat, de l'ordre de 1:11. D’imatge, és el JPEG en el que la compressió es duu a terme, en gran part, en la crominància ja que el sistema visual humà és molt més sensible a la luminància que no pas a la crominància. Disseny de productes En els darrers anys l’ofici de dissenyador ha augmentat considerablement. La relació que existeix entre la forma i la funció de les creacions són els aspectes de la biònica que més complicats es troben a l’hora de dissenyar d’una manera satisfactòria. Per poder arribar a aquest punt el domini de la morfologia funcional hauria de ser esplèndid i això comportaria conèixer al màxim tots els aspectes referents a la naturalesa Imatge 27. Les aletes per a fer
submarinisme inspirades en les potes
humana. També totes les funcionalitats i formes que dels ànecs
44
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
puguin ser copiades i preses com a motlle, per a la creació de robots biònics que ens puguin solucionar el dia a dia, així com també grans solucions necessàries degudes a accidents o comoditats davant el món laboral. Amb la creació de fonts alternatives d’alta eficiència energètica, la generació de bio processos d’alt rendiment i sistemes auto ajustables, repercutirien en un augment a la qualitat de vida per a persones amb discapacitats i problemes físics. Trobem diferents exemples de l’aplicació de aspectes de la natura en el nostre dia a dia, alguns dels exemple són els següents: - La cinta adherent està basat en les plantes que s’adhereixen a la roba per mitjà dels seus ganxets. - Les màquines voladores i vaixells que va dissenyar Leonardo Da Vinci, van ser idees preses de la natura, per exemple el seu ornitòpter i els ratpenats.
Imatge 28. Ornitòpter que dissenyar Leonardo Da Vinci
va
- Les ales dels avions posseeixen diverses formes en funció de velocitat i duració del vol, com en els diferents espècies d’ocells. - Els xips, com les retines de silicona i les còclees modelades segons les xarxes de nervis reals. - Els vestits de cos dels nedadors de competició inspirats en la pell de dofins i la seva propietat visco-el·làstica.
8.1.
Aplicacions mà biònica
A continuació he volgut anomenar i citar alguns documentals, notícies i innovacions que he trobat per Internet on trobem aplicat a la mà biònica tot el numerat i explicat amb anterioritat. Al 2009, a Itàlia, Roma, Científics de la Universitat Campus Bio-Mèdico van desenvolupar la primera mà biònica
capaç de ser controlada per la ment, anomenada LifeHand:
http://es.engadget.com/2009/12/03/lifehand-una-mano-bionica-controlada-por-elpensamiento/. En la següent adreça del youtube s’hi troba l’experimentació amb el pacient anomenat en l’anterior article, tot i que està en italià és fàcil d’entendre i visualment molt explicatiu: https://www.youtube.com/watch?v=GqwuWO8Oe20 Trobem una altra notícia del 2009, que ens parla d’una mà biònica, la SmartHand, també implantada en un pacient i amb el vistiplau a Suïssa, creada per un grup d’investigadors
45
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
enginyers que li han canviat la vida a en Ekenstam que explica en una entrevista: “Estoy utilizando músculos que no había usado en años. Agarro algo con fuerza, y entonces puedo sentirlo en las yemas de los dedos, lo que es extraño, porque ya no las tengo. Es asombroso". Més detalls a l’enllaç: http://www.amazings.com/ciencia/noticias/231109c.html Ara, haurem de anar fins Escòcia, allà al 2010 l’empresa Touch Bionics va treure al mercat la pròtesis de mà biònica i-LIMB Hand, el seu cost oscil·la entre els disset mil i divuit mil dòlars i esperen que a poc a poc a més d’abaratir-la pugui arribar a tot arreu. La mà funciona a partir d’estímuls que rep pels músculs i nervis del lloc de l’amputació que Imatge 29. Resum visual del funcionament de la mà envia el cervell coma
senyals elèctriques.
i-LIMB
Trobareu més informació i un vídeo amb dos exemples humans que l’han adquirida a: http://www.noseas.com/2007/07/19/la-mano-bionica-mas-avanzada-i-limb-hand-ya-esta-a-laventa/, i també amb més informació del funcionament de la mà a: http://www.xataka.com/xataka/ingenieria-bionica-y-cibernetica-tecnologia-o-ficcion. Al 2011, en un programa anomenat TN Tecno que tracta temes tecnològics emès en Argentina, van explicar al seu capítol número 118 la mà biònica implantada a un jove anglès de catorze anys: http://www.youtube.com/watch?v=HnzItZypEPU. Els seus pares no van poder pagar-li una tot i que van intentar reunir els diners, va ser així com se li va ocórrer enviar
Imatge 30. Matthew James amb la mà
una carta a l’equip de Fórmula 1 de Mercedes Benz biònica de Mercedes Benz
demanant-li una mà biònica per a ell a canvi de posar-hi en ella publicitat com a un cotxe qualsevol de la marca. La seva mà, com d’altres, funciona a partir dels estímuls del múscul a partir de dos elèctrodes. També trobem una mà creada per quatre estudiants de Guatemala amb la finalitat d’abaratir el cost de totes les mans ja que aquesta tan sols val dos mil dòlars. Aquesta, en canvi, funciona per ordre directe del cervell amb una plantilla a les sabates que al fa moure d’una manera precisa i fiable d’igual manera gairebé que d’altres més cares es veu. A continuació, el vídeo explicatiu en una entrevista televisiva, publicat al 2012: http://youtu.be/B24avvoJxjU
46
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Una altra notícia que trobem del 2012 és de casa, situada a Barcelona, on la Carlota, una nena de tretze anys va néixer sense poder fer us de la seva mà esquerra. En anterioritat portava una mà mioelèctrica que tan sols li permetia el moviment de “pinça” en alguns objectes. Als tretze va ser quan li van implantar la mà biònica explicada amb anterioritat i-LIMB que li va canviar la manera de agafar, tocar i fer, que funciona igual: amb estímuls musculars. Més informació a: Imatge 31. La Carlota amb la seva nova mà biònica
http://www.elconfidencial.com/cache/2008/01/23/96_implantan_bionic a_barcelona.html.
Tot i haver enumerat diverses mans i mètodes d’ús i funcionament, actualment la més precisa comercialitzada fins als nostres dies és la que forma part del projecte be-bionic. En la seva pàgina web es.bebionic.com hi trobem diferents pacients d’exemples que expliquen la seva història, el precís i bon funcionament de la mà i com els ha influït a la seva vida el descobriment i l’adquisició d’aquesta pròtesis. Entre varis, hi ha un home que treballava en una fàbrica de fondre metalls que va perdre la seva mà triturada en una de les màquines: http://es.bebionic.com/the_hand/patient_stories/nigel_ackland A més de notícies i vídeos referents a la medicina, he trobat alguns d’altres que fan referència a efectes audiovisuals de ben curiosos del meu guant amb sensor flex: En aquest vídeo hi trobem l’aplicació dels sensor flex per a tocar un piano: https://www.youtube.com/watch?v=YYl7ViMzOeM N’hi ha un en que el guant que conté els servos tradueix el idioma dels signes en persones sordes, on nosaltres que el desconeixem el podem entendre: http://www.youtube.com/watch?feature=player_embedded&v=HCAwPBbDkhk
amb
l’explicació a: http://www.robotic-lab.com/blog/2012/07/11/guante-que-traduce-el-lenguajede-signos/ Per últim adjuntar un vídeo que utilitza tant sensor flex com d’altres sensors, però l’he trobat molt interessant i atractiu: un grup d’estudiants que fan afectes amb sons i balls, a la vegada que juguen amb les llums de la sala: http://www.youtube.com/watch?v=KWrQQEhjv7I&list=PL4F0A475BBCE9CEA3&index=14&f eature=plpp_video
47
INS Torre del Palau
8.2.
Mà biònica
Aida Picón Fernàndez
Realitat virtual
És aquella ciència basada en l’ús d’ordinadors o altres dispositius per a imitar i aparentar la realitat que ens envolta. Sensors que perceben els nostres moviments fan aquesta “realitat” possible i reprodueixen amb exactitud els nostres moviments en un món creat dins un dispositiu. Els sensors capten els estímuls que el nostre cos els hi ofereix i aquest ho tradueix i reprodueix dins d’ell. Tot succeeix en un temps real que ens fa més amplia la sensació de realitat. Jo em centraré en la part dels sensor flex en una mà perquè és el meu treball de recerca, però val a dir que hi ha infinitats d’aplicacions que envolta aquesta ciència. Podem parlar, doncs, de posar-nos unes ulleres que ens donen la sensació de ser dins un món artificial, creat per quelcom i reproduir els nostres moviments a temps real allà, notant una sensació plena de veritat i realitat del que ens envolta, i potser, fins i tot, ni ens hem mogut del lloc de partida físicament en l’espai terrestre. Les aplicacions que en l’actualitat trobem de la realitat virtual a activitats de la vida quotidiana són moltes i diverses. Cal destacar: la reconstrucció de l’herència cultural, la medicina, la simulació de multituds i la sensació de presència. La reconstrucció de l’herència cultural consisteix en la recuperació a través de la simulació de peces úniques de l’antiguitat que han estat destruïdes o es troben degradades. En algunes, a partir d’unes poques restes es poden simular peces senceres. A més, la realitat virtual permet mostrar la peça en perfecte estat a diversos llocs del món a la vegada, i fins i tot permet crear museus sencers amb peces virtuals. L’aplicació en la medicina la trobem en la simulació virtual del cos humà. A partir d’imatges del nostre cos, es pot fer la recreació en 3D del pacient, cosa que facilita l’elaboració d’un diagnòstic, o la simulació d’operacions en cas que sigui necessari. Un altre exemple són les pel·lícules 4D que a part d’oferir-nos una imatge propera, real i en tres dimensions, ens aporta moviments, olors, sensacions de tems, etc; que tindríem i veuríem si fóssim a la pel·lícula, En el meu cas hi ha diversos estudiants, curiosos i intel·lectuals que han creat un guant amb sensors com el meu però que en comptes de reproduir els moviments d’aquest en una mà física i real, en sons o llum, han decidit recrear els seus moviments en una mà o altres dispositius dins un ordinador o dispositius. A continuació diversos vídeos exemplificatius de realitat virtual amb un guant amb sensor flex:
48
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
- En el primer vídeo podem veure variar l’alçat d’un triangle en relació amb la flexió dels dits de la mà: https://www.youtube.com/watch?v=6tB33k2Igss - En aquest vídeo hi ha el treball d’una anglesa que usa els sensor flex per a fer moure una mà dins l’ordinador que va seleccionant cada element: https://www.youtube.com/watch?v=N6dw15marHo - En aquest enllaç s’hi veu un cotxe de realitat virtual on hi ha moments en que enfoquen el que veu el qui fa la prova i es veuen les seves mans virtuals que estan fetes amb sensor flex: https://www.youtube.com/watch?v=WDad5_dnRFg - Aquest vídeo és únicament el índex representat virtualment, però per fer la mà sencera tan sols s’hauria de programar quatre vegades més: https://www.youtube.com/watch?v=xVWQ0Cct1tI - En aquest cas sí que hi reprodueixen tota la mà i el doblament de tots els dits: https://www.youtube.com/watch?v=kgAIv6CCS84 - Aquest vídeo està constituït d’uns quants més però tan sols en poso un perquè ensenyen el mateix vàries persones diferents, el que hi apareix és una exposició de moviments virtuals d’una mà a partir d’un guant amb sensors: https://www.youtube.com/watch?v=BuaOaI0l7_s
49
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
9. Conclusions Aquest treball de recerca m’ha agradat molt fer-lo. M’ho he passat molt bé provant programes, buscant idees per al muntatge del robot i intentant que funcionés. A priori plantejar-lo no va ser gens fàcil, i la veritat és que tampoc ho ha estat a la pràctica, però amb esforç i treball ho he anat fent tot. De dificultats no n’he tingut cap de greu i que no pogués resoldre. La cosa més significativa, però, són el moviments dels tubs/dits. Tenint en compte que són tubs reciclats i els mitjans que posseïa, és normal. Tot i així, el resultat final no m’ha convençut massa però l’efecte de moviment ja queda bé i a més jo no puc crear una mà de milers d’euros. Refent a això, val a dir que la falta de gir dels motors també ha col·laborat amb aquesta falta de rendiment, m’hagués agradat més que haguessin pogut fer doblegar els dits amb més força i precisió. Deixant de banda els dits de la mà, tots els demés elements m’han respost d’una manera satisfactòria tenint en compte la disponibilitat econòmica que tenia. Els altaveus no s’escoltaven gaire fort i per això em va caldre fer una caixa que concentrés la sortida del so; com també fixar-hi els LEDs i recobrir-los per a que la llum es projectés de millor manera. Com ja he comentat amb anterioritat, l’Arduino i els seus actuadors ja els havíem treballat a classe i l’únic que vaig haver de fer va ser dur-los a una pràctica més complexa i que funcionés el conjunt, com també, aconseguir allò que m’havia proposat que portés a terme la mà, el sistema de so o l’enllumenat. En aquest treball de programació he aprés, doncs, a portar més allà d’un simple interruptor que alimenta o no un LED com fèiem a l’aula, a poder encendre i fer sonar un altaveu a partir dels sensor flex ajustant els seus valors per a moure també els motors i poder accionar els dits de la mà. També m’ha servit per a recordar el bricolatge que tenia oblidat, l’ús de serres, perforadores i unions, m’han servit per a fer el muntatge de fusta de la mà biònica. També he aprés a fer una nova placa des de zero on està tot el sistema de control de la màquina, que queda connectada a l’Arduino; ho he fet amb ajut per part del tutor perquè mai n’havia creat ninguna, però he entès el perquè es posa cada cosa i on, com també a aprofitar cables d’altres llocs per a fer les connexions necessàries en el meu treball. Un altre tema que em va donar una mica de problemes va ser l’alimentació de la màquina ja que necessitava més dels 5V que pot proporcionar la placa Arduino i més dels 6V teòrics de les piles, ja que no són fiables al cent per cent (el porta piles el vaig treure encara que hi ha quedat la veta adherent). Així doncs, vaig haver de comprar un transformador que 50
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
proporcionés 7.5V i 1000 mA per a que alimentés a la placa i tot el robot. Aquests valors els vaig obtenir a partir d’una font d’alimentació; li vaig anar augmentat el valor del voltatge fins que tot el sistema funcionava amb normalitat. L’inconvenient que vaig tenir va ser al comprar el transformador perquè el vaig buscar amb aquests valors sense tenir en compte que no són molt fiables i al augmentar el voltatge disminuïa la intensitat. El meu transformador al posar-lo a 7.5V era menor de 1000mA així que el vaig haver de canviar; a més, la intensitat és millor com major sigui el seu valor. La placa Arduino s’alimenta a partir de l’USB amb 5 V, o bé amb un transformador adaptable a l’USB o directament a l’ordinador. Un altre inconvenient amb el que em vaig trobar va ser amb els servomotors i la funció map() de l’Arduino. Quan calibrava els servomotors i transmetia els valors al programa dels servos, al carregar-lo i fer funcionar la mà biònica cada servomotor es movia una mica pel seu compte tota l’estona sense parar, per a arreglar-ho a l’hora de posar els valors mapejats al programa el valor més gran dels sensor flex es disminueix uns 50 i el mínim s’ha d’augmentar. Per motiu de precisió i comoditat vaig cosir els sensor flex en comptes d’adjuntar-los amb cinta americana, com en un principi, ja que al cosir-ho la flexibilitat és millor. I els cables que vaig usar per connectar els sensor flex del guant a la placa són els més llargs extrets d’una impressora; perquè com més llargs siguin els cables millor comoditat a l’hora d’usar el guant.
51
INS Torre del Palau
10.
Mà biònica
Aida Picón Fernàndez
Agraïments
M’agradaria comentar breument les diverses persones que m’han ajudat a fer possible el treball de recerca. Bé per començar en Fernando Hernández va ser el que em va proposar el treball i el qui ha esdevingut el meu tutor de treball de recerca. Des de juliol que em corregeix els errors, m’ajuda i m’explica totes aquelles coses referents al treball que no m’han quedat gaire clares. També va ser qui em va proporcionar molts dels materials reciclats que he utilitzat en el meu treball: trossos de fusta, eines i elements necessaris extrets del Departament de Tecnologia. Anomenar també a la UPC qui va oferir als estudiants de Terrassa un curset d’Arduino on ens van acabar de detallar tot allò que vam veure a l’aula. Ens van ampliar els conceptes que teníem de la placa i el seu funcionament. Vam fer també programes més complexos que ens van ajudar a comprendre l’ús del llenguatge de software. A més, ens van proporcionar un kit Arduino per a poder practicar amb la placa, cosa que a mi em va venir molt bé per a poder començar el treball i la seva programació a l’estiu, abans de que arribés la meva. A més a més de professors, vull donar les gràcies a la meva família per ajudar-me en tot el que ha pogut i per haver-me pagat tot el necessari. També als companys de classe, sobretot a la Camila per haver-me fet costat en els moments en que no em funcionava o ho creia difícil d’aconseguir. Al Rubén també per fer-me costat encara que no sabés del tema, ja que tenia la paciència necessària per animar-me a acabar-lo i que em sortís bé. Agraeixo les idees que em donaven entre tots per a intentar solucionar o millorar aspectes del treball.
52
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Fonts d’informació
11.
PÀGINES D’INTERNET: - Arduino:
Arduino - fundamentos: explicació dels principals elements a tenir en compte a l’hora de programar: http://arduino.cc/es/Tutorial/Foundations
Arduino: iniciació als conceptes principals d’Arduino i la placa: http://arduino.cc/es/Guide/Introduction
Arduino Uno: tipus de plaques i característiques de la Uno: http://arduino.cc/en/Main/ArduinoBoardUno
- Sensor Flex:
Cómputo Integrado: ús del sensor flex i característiques principals: http://computointegrado.blogspot.com.es/2012/04/uso-de-flex-sensor-conarduino.html
IMAGES. Scientific instruments: característiques dels sensor flex: http://www.imagesco.com/sensors/flex-sensor.html
Sensor Workshop at ITP: en aquesta pàgina web i podem trobar l’explicació d’un sensor flex: http://itp.nyu.edu/physcomp/sensors/Reports/Flex
- Servomotors:
El servomotor: ús i característiques principals: http://www.todorobot.com.ar/documentos/servomotor.pdf
Servos. Características básicas: elements i explicació bàsica d’un servomotor qualsevol: http://robots-argentina.com.ar/MotorServo_basico.htm
ServoDatabase: fitxa tècnica del servomotor Modelcraft RS-2: http://www.servodatabase.com/servo/modelcraft/rs-2
- Amplificadors operacionals LM324N:
Electrónica fácil: ús i aplicacions dels amplificadors operacionals: http://www.electronicafacil.net/tutoriales/Amplificadores-Operacionales.php
53
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
- Mà Biònica i Enginyeria Biònica:
Wiquipédia: explicació de la biònica: http://es.wikipedia.org/wiki/Bi%C3%B3nica
Biónica y diseño: pàgina sobre la biònica i el disseny d’aquesta: http://bionicaydiseno.blogspot.com.es/
Wiquipédia: explicació de l’enginyeria biònica: http://es.wikipedia.org/wiki/Ingenier%C3%ADa_bi%C3%B3nica
Wiquipédia: concepte de visió artificial: http://es.wikipedia.org/wiki/Visi%C3%B3n_artificial
Engadget: notícia sobre la mà biònica LifeHand controlada per la ment: http://es.engadget.com/2009/12/03/lifehand-una-mano-bionica-controlada-por-elpensamiento/
Amazings: notícia sobre la mà biònica SmartHand controlada per la ment: http://www.amazings.com/ciencia/noticias/231109c.html
Noseas: Touch Bionics treu al mercat la pròtesis de mà biònica i-LIMB Hand: http://www.noseas.com/2007/07/19/la-mano-bionica-mas-avanzada-i-limb-hand-yaesta-a-la-venta/
Xataka: informació sobre la i-LIMB Hand: http://www.xataka.com/xataka/ingenieriabionica-y-cibernetica-tecnologia-o-ficcion
El Confidencial: notícia sobre la nova mà biònica de la Carlota: http://www.elconfidencial.com/cache/2008/01/23/96_implantan_bionica_barcelona.ht ml
Be-Bionic: pàgina web sobre la millor mà actual del mercat en semblança i precisió: es.bebionic.com
Be-Bionic: pacient amb mà biònica de bona qualitat: http://es.bebionic.com/the_hand/patient_stories/nigel_ackland
Robotic LAB: aplicació dels sensor flex en la interpretació del llenguatge dels signes: http://www.robotic-lab.com/blog/2012/07/11/guante-que-traduce-el-lenguaje-designos/
54
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
- Realitat virtual:
Retro Informàtica. El passat del futur: pàgina informativa sobre la realitat virtual i les seves aplicacions: http://www.fib.upc.edu/retroinformatica/avui/realitatvirtual.html
VIDEOTECA:
Inteligencia artificial: vídeo sobre la intel·ligència artificial i les seves aplicacions en robots: https://www.youtube.com/watch?v=Ut6gDw_Onwk
Mano biónica italiana LifeHand 1: vídeo sobre la mà biònica LifeHand controlada per la ment: https://www.youtube.com/watch?v=GqwuWO8Oe20
TN Tecno: programa argentí sobre Matthew James: http://www.youtube.com/watch?v=HnzItZypEPU
Estudiantes de Guatemala desarrollaron mano biónica: entrevista televisada sobre la mà biònica creada per quatre estudiants: http://youtu.be/B24avvoJxjU
EC3882 (Lab de Proyectos 2) – Piano Guante: aplicació del sensor flex per a tocar un piano: https://www.youtube.com/watch?v=YYl7ViMzOeM
Enable talk: traducció del llenguatge dels signes: http://www.youtube.com/watch?feature=player_embedded&v=HCAwPBbDkhk
Complex Music Performance Effects Processing using the SudoGlove: vídeo d’efectes sonors i lluminosos per uns estudiants: http://www.youtube.com/watch?v=KWrQQEhjv7I&list=PL4F0A475BBCE9CEA3&inde x=14&feature=plpp_video
Mano Virtual - exposicion2.AVI: presentació del moviment d’una mà de manera virtual: https://www.youtube.com/watch?v=BuaOaI0l7_s
Guante mano virtual segunda parte: moviment d’una mà virtual per un guant amb sensor flex: https://www.youtube.com/watch?v=kgAIv6CCS84
Virtual Hand – Mano Virtual: moviment d’un dit dins un ordinador: https://www.youtube.com/watch?v=xVWQ0Cct1tI
Volante de realidad virtual: conducció en una realitat virtual on les mans són guants amb sensor flex: https://www.youtube.com/watch?v=WDad5_dnRFg
55
INS Torre del Palau
Mà biònica
Aida Picón Fernàndez
Developing a Virtual Reality Simulator for Medical Training: guant amb sensor flex que dóna moviment a una mà virtual que selecciona diversos colors dins la pantalla de l’ordinador: https://www.youtube.com/watch?v=N6dw15marHo
Hand Motion Capture using Arduino and Images Bi-Flex Sensor: triangle que varia d’alçada depenent la flexió dels dits: https://www.youtube.com/watch?v=6tB33k2Igss
LLIBRES:
Oreilly.Arduino.Cookbook.2nd.Edition.Dec.2011: recull de problemes amb les seves explicacions corresponents i resolts.
Arduino__Manual_paso_a_paso: ús del programa Arduino i de cada llenguatge amb exemples i explicat de manera simple.
Arduino_user_manual_es: programes d’Arduino amb l’explicació de cadascuna de les funcions.
56
INS Torre del Palau
12.
Mà biònica
Aida Picón Fernàndez
Annexos
En el CD del treball hi ha diverses carpetes: treball escrit, vídeos, programes, imatges i llibres. En elles hi ha totes les fonts d’informació a partir de les quals vaig estructurar i fer el treball. N’hi ha de diverses i per això ho he separat per carpetes on cadascuna té elements que surten físicament al treball o d’altres que m’han servit per dur-lo a terme. - Treball escrit: en aquesta carpeta hi ha el document del treball de recerca en dos formats, pdf i docx. - Vídeos: hi ha tots els vídeos descarregats tant els que em vaig mirar al començar abans de dur a terme la mà com els que faig referència per a explicar els aplicacions d’Arduino i de la mà biònica. - Programes: dins d’aquesta carpeta hi ha dues més la dels programes de prova i el programa final. En els programes de prova i ha tots aquells simplificats que vaig creant poc a poc per a que la mà portés a terme cadascuna de les funcions, en el final hi ha la unió de tots ells. - Imatges: conté totes les imatges que van apareixent al llarg del treball. - Llibres: aquesta carpeta conté els llibres en format pdf que vaig consultar i mirar per a entendre o explicar en el meu treball els programes d’Arduino i la funcionalitat de cada llenguatge.
57