Timo Pudas Metropolian Virtuoso-robottikäden elektroniik- kasuunnittelu ja ohjelmointi Metropolia Ammattikorkeakoulu Insinööri (AMK) Automaatiotekniikka Insinöörityö 11.1.2015 Tiivistelmä Timo Pudas Tekijä(t) Metropolian Virtuoso-robottikäden elektroniikkasuunnittelu ja Otsikko ohjelmointi Sivumäärä 36 sivua + 4 liitettä Aika 11.1.2015 Tutkinto Insinööri (AMK) Koulutusohjelma Automaatiotekniikka Suuntautumisvaihtoehto Automaation tietotekniikka Ohjaaja(t) Teknologiajohtaja Sami Kalliokoski Lehtori Antti Liljaniemi Tämän opinnäytetyön aiheena on Metropolian Virtuoso-robottikäden elektroniikkasuunnittelu ja ohjelmointi. Kyseessä on pienikokoinen ja monipuolinen robottikäsi, jota pystytään oh- jaamaan sekä USB- että Ethernet-väylien kautta. Tavoitteena oli saada aikaiseksi mahdollisimman edullinen, alle tuhannen euron hintainen, robottikäsi käyttämällä 3D-printattuja osia sekä edullisia moottoreita ja komponentteja. Työn toteutukseen käytettiin Arduino Mega 2560 R3 -kehitysalustaa, Ethernet-shieldiä, sekä itse suunniteltua piirilevyä, joka sisältää moottorinohjaimia DC-moottoreita varten, jänniteregu- laattorin, liitännät kehitysalustalle ja moottoreille sekä tarvittavat alasvetovastukset. Mootto- reina käytettiin sekä servo- että DC-moottoreita. Robottikäden ohjelma kirjoitettiin Arduino IDE -ohjelmointiympäristöllä. Ethernet- kommunikaation testaamista varten kirjoitettiin Processing-kielinen apuohjelma, jolla voitiin lähettää robottikädelle komentoja UDP-paketteina. Työn tuloksena valmistui toimiva ohjelmoinnin opetukseen soveltuva robottikäden proto- tyyppi. Hintatavoitteeseen päästiin, mutta edullisten moottoreiden ja komponenttien käytöstä syntynyt säästö syntyi toimintatarkkuuden kustannuksella. Sitä voidaan parantaa tulevai- suudessa lisäämällä robottikäden anturointia. Avainsanat Robottikäsi, mikrokontrolleri, Arduino, sulautettu järjestelmä Abstract Timo Pudas Author(s) The Electronics Design and Programming of Metropolia’s Virtu- Title oso Hand Number of Pages 36 pages + 4 appendices Date 11 January 2015 Degree Bachelor of Engineering Degree Programme Automation Engineering Specialisation option Information Technology in Automation Instructor(s) Sami Kalliokoski, Technology Manager Antti Liljaniemi, Principal Lecturer The topic of this final project is the electronics design and programming of Metropolia’s Virtuoso Hand. It is a small and versatile robot hand that can be controlled via USB and Ethernet busses. The goal of the work was to develop an affordable robot hand that costs less than thou- sand euros using 3D printed parts and affordable motors and components. The work was carried out using Arduino Mega 2560 R3 development board, Ethernet shield, and a self- made circuit board consisting of motor controllers for DC motors, a voltage regulator, bus- ses for robot’s control signals and all required pull-down resistors. Both servo and DC mo- tors were used. The robot hand was programmed using Arduino IDE development environment. A small utility program was written with Processing language for testing the Ethernet communica- tion. It made sending commands to the robot hand in UDP packet format possible. The result of the project was a robot hand prototype that can be used as an aid for teach- ing programming. The price target was accomplished but the savings made using cheap motor and components were born with the cost of the accuracy of movements. In the fu- ture it can be improved by adding more sensors to the robot hand. Keywords Robot hand, micro controller, Arduino, embedded system Sisällys Lyhenteet 1 Johdanto 1 2 Electria 3 3 Robottikädet maailmalla 4 4 Elektroniikka 6 4.1 Arduino Mega 2560 R3 -kehitysalusta 6 4.2 Ethernet Shield 7 4.3 Piirilevyn suunnittelu 8 4.3.1 EAGLE PCB 8 4.3.2 ITEAD Studio 9 4.4 Käyttöjännitteet ja jänniteregulointi 10 4.5 Moottorit 11 4.6 Moottoriohjaimet 13 4.7 Rajakytkimet ja potentiometrit 15 4.8 LCD-näyttö, LED-valot ja äänet 17 5 Ohjelmointi 18 5.1 Arduino IDE 19 5.2 Ohjelman rakenne 20 5.3 Kirjastot 21 5.4 Funktioita 22 5.4.1 UDP-pakettien ja sarjaväylän lukeminen 22 5.4.2 Taulukkomuotoisen demo-ohjelman suorittaminen 24 5.4.3 Komentorivin pilkkominen 25 5.4.4 Moottoreiden liikuttaminen ja tavoiteasema 26 6 Kommunikointi 27 6.1 Ethernet UDP 27 6.1.1 IP-osoite 28 6.1.2 UDP-testiohjelma 29 6.1.3 Processing 30 6.2 Kommunikaatio sarjaväylän kautta 30 6.3 Robottikäden komennot 30 7 Jatkosuunnitelmia 32 7.1 Sormien anturit 32 7.2 DC-moottorit servojen tilalle 32 7.3 Muotoilu 33 7.4 Ohjelmointirajapinta 33 7.5 Koordinaatistot ja liikkeenohjaus 33 8 Yhteenveto 34 Lähteet 35 Liitteet Liite 1. Piirilevyn kytkentäkaavio Liite 2. Ohjelman rakenne yksinkertaistettuna Liite 3. Funktion lueUDP lähdekoodi Liite 4. Funktion liikutaMoottoreita lähdekoodi Lyhenteet API Ohjelmointirajapinta (Application Programming Interface). Arduino Arduino on avoimeen lähdekoodiin perustuva ohjelmoitava kehitysympä- ristö, joka sisältää ohjelmointiympäristön sekä lukuisia erilaisia kehitys- alustoja. AVR AVR on Atmelin mikrokontrolleriperhe, joka sisältää laajan valikoiman 8- ja 32-bittisiä mikrokontrollereita. CISC Suoritinarkkitehtuuri, jossa käskykanta on laaja ja yksittäiset käskyt voivat suorittaa kerralla useampia alemman tason operaatioita (Complex Inst- ruction Set Computer). DC Tasavirta (Direct Current). DHCP Dynamic Host Configuration Protocol on verkkoprotokolla, jota käytetään verkko-osoitteiden jakamiseen lähiverkkoon kytkeytyville laitteille. IDE Joukko samaan pakettiin integroituja ohjelmia, esimerkiksi tekstieditori ja kääntäjä, joilla voidaan suunnitella ja tehdä ohjelmia (Integrated Deve- lopment Environment). IP Internet Protocol, verkkosovittimien yksilöimiseen käytettävä numero- sarja. ISO International Organization for Standardization, kansainvälinen standardi- sointijärjestö. LDO LDO-regulaattori (Low-Dropout Regulator) on jänniteregulaattori, joka pystyy toimimaan hyvin pienellä sisääntulo- ja ulostulojännitteiden erotuk- sella. LED Hohtodiodi (Light-Emitting Diode) on puolijohdekomponentti, joka säteilee valoa, kun sen läpi johdetaan sähkövirta. MAC MAC-osoite (Media Access Control) on yksilöllinen verkkolaitteille annet- tava tunniste. MCU Mikrokontrolleri (Microcontroller Unit) on pieni tietokone yhdellä integ- roidulla piirillä sisältäen usein ainakin mikroprosessorin, muistia ja yleis- käyttöisiä lähtö- ja tuloportteja. MIT Massachusetts Institute of Technology. OSI Open Systems Interconnection Reference Model on malli, jossa tiedon- siirtoprotokollat on esitetty seitsemässä kerroksessa. PWM Pulse Width Modulation on keino hallita kuormaan syötettävää jännitettä määrittämällä pulssimuotoisen jännitesyötön jaksojen pituudet halutulla tavalla. RISC Suoritinarkkitehtuurin suunnittelussa käytetty filosofia, jossa konekielinen käskykanta on suhteellisen suppea, yksinkertainen ja nopeasti suoritetta- va (Reduced Instruction Set Computer). SPI Serial Peripheral Interface Bus on synkronoitu sarjamuotoisen tiedon siir- tämiseen kehitetty menetelmä. SRAM Static Random Access Memory on puolijohdetekniikalla toteutettu staatti- nen muistityyppi, joka säilyttää tilansa niin kauan kuin käyttöjännite on kytkettynä. UDP Tiedonsiirtoprotokolla, joka ei edellytä yhteyttä laitteiden välillä (User Da- tagram Protocol). USB Sarjaväyläarkkitehtuuri, joka on kehitetty helpottamaan ulkoisten oheis- laitteiden liittämistä tietokoneeseen (Universal Serial Bus). 1 1 Johdanto Tämän opinnäytetyön aiheena on Metropolian Virtuoso-robottikäden elektroniikka- suunnittelu ja ohjelmointi. Virtuoso-robottikäsi on pienikokoinen pöydällä pidettävä laite, jonka pääasiallisena käyttötarkoituksena on toimia robotiikkaohjelmoinnin alkeiskurssin oheisvälineenä (kuva 1). Kuva 1. Metropolian Virtuoso-robottikäsi. Robottikäsiprojekti alkoi vuoden 2013 lopulla, kun Sami Kalliokoski Electriasta sai ide- an kehittää robottikäsi alle tuhannen euron hintaluokassa käyttäen 3D-printattuja osia sekä edullisia moottoreita ja komponentteja. Halpojen komponenttien aiheuttamia tole- ransseja oli tarkoitus kompensoida sekä anturoinnilla että ohjelmallisesti. Allekirjoitta- neelle ja Vesa Helmiselle tarjoutui mahdollisuus alkaa yhdessä kehittää robottikättä aluksi innovaatioprojektina ja myöhemmin kesäharjoittelijoina. Ensimmäisenä vaiheena tehtiin esiselvitystyö projektin edellytyksistä. Esiselvityksen tarkoituksena oli tutkia onko kyseisen hintaluokan robottikäden valmistaminen mahdol- 2 lista sekä tutkia erilaisia tekniikoita, joilla tavoitteeseen voitaisiin päästä. Markkinoilla olevia ratkaisuja tutkittiin huolellisesti ja todettiin, että halvemman hintaluokan robotti- kädelle voisi olla kysyntää, koska markkinoilta löytyvät robottikädet olivat esiselvitys- työn tekemisen aikaan hinnoiltaan kohtuuttoman kalliita. Yksi kysynnän edellytyksistä olisi kuitenkin se, että robottikädelle kehitettäisiin myös luontevia sovelluksia. Mahdol- listen käyttökohteiden selvittäminen lisättiin osaksi työtämme. Varsinainen rakentamistyö alkoi vuodenvaihteen jälkeen opiskelun yhteydessä, kun kurssi nimeltään Kolmannen vuoden projekti alkoi. Saimme hyväksytettyä robottikäsi- projektin kurssiprojektiksemme. Rakensimme kevätlukukauden aikana oman versiom- me InMoov-nimisestä Open Source -robottikädestä, jonka 3D-mallinnettujen osien tie- dostot saimme suoraan projektin verkkosivuilta. Elektroniikkapiirit ja robottikäden oh- jelmat tehtiin itse. InMoov-käden avulla saatiin hyvää kokemusta robottikäden toimin- nasta ja suunnittelusta. Samassa yhteydessä testattiin myös itse tehtyjä paineantureita robottikäden sormenpäihin. InMoov oli kuitenkin mahdollista opetuskäyttöä ajatellen liian suuri ja kömpelö. Lisäksi se tarvitsi tukevan kiinnityksen, mikä rajoitti sen käyttökelpoisuutta. Luokkahuoneope- tusta ajatellessamme tulimme siihen tulokseen, että robottikäden tulisi olla pöydällä pidettävä ja sopivan pieni mahtuakseen vaikkapa samalle pöydälle tietokoneen kans- sa. Lisäksi siinä olisi hyvä olla Ethernet-portti ja riittävä joukko komentoja ulkopuolista kommunikointia ja ohjelmointia varten. Näistä lähtökohdista käsin aloimme suunnitte- lemaan kokonaan uutta robottikättä toukokuussa aloittaessamme kesätyön harjoitteli- joina Electriassa. Kehitystyössä pyrittiin käyttämään luovia ongelmanratkaisumenetelmiä, mikä olikin tarpeen niukaksi asetetun budjetin takia. Ideoiden ja toteutusmahdollisuuksien etsin- tään saatiin runsaasti apua Metropolia Ammattikorkeakoulun eri koulutusohjelmien henkilökunnalta ja opiskelijoilta. Myöhemmässä vaiheessa kiinnitettiin huomiota myös helppoon valmistettavuuteen. Esimerkiksi muoviosat suunniteltiin niin, että ne pysty- tään tarvittaessa valamaan ja elektroniikkapuolella käytimme yleisiä helposti saatavia komponentteja. 3 2 Electria Electria on Metropolia Ammattikorkeakoulun tutkimus- ja kehitysyksikkö, jonka toimin- nan tavoitteena on tuottaa uusia innovaatioita ja saada ne kaupallistettua. Electrian tilat sijaitsevat Vantaan Technopoliksessa Helsinki-Vantaan lentokentän lähistöllä. Electrian tutkimus- ja kehitystoiminta on keskittynyt vähävirtaiseen langattomaan elektroniik- kaan. [1.] Viime aikoina Electria on kuitenkin laajentanut tutkimuskohteitaan myös mui- hin lupaaviin tekniikan osa-alueisiin, kuten robotiikka ja terveellinen rakentaminen. Mui- ta Electrian tarjoamia palveluita ovat prototyyppien ja piensarjojen valmistus, koulutus sekä testaus- ja tarkastuspalvelut [2]. Electria toimii yhteistyössä monien Metropolia Ammattikorkeakoulun koulutusohjelmien kanssa ja tarjoaa opiskelijoille mahdollisuuksia harjoittelun suorittamiseen. Usein har- joittelussa tehty työ myös jatkuu projektien jatkokehitystyönä. Metropolian Virtuoso-robottikädestä saatuja kokemuksia on tarkoitus hyödyntää myös tulevissa hankkeissa. Electria on käynnistämässä tutkimustoimintaa soft-robotiikan alueella ja erityisesti sen hyödyntämisessä terveydenhoito- ja hyvinvointipalveluissa. [3.]
Description: