Mikrokontrollerikitit - loppuraportti

Samankaltaiset tiedostot
Mikrokontrollerikitit - väliraportti

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

A13-03 Kaksisuuntainen akkujen tasauskortti. Projektisuunnitelma. Automaatio- ja systeemitekniikan projektityöt AS-0.

A13-03 Kaksisuuntainen akkujen tasauskortti. Väliaikaraportti. Automaatio- ja systeemitekniikan projektityöt AS Syksy 2013

Akkujen aktiivinen balansointi

S Portaalinosturi AS Projektisuunnitelma Oleg Kovalev

AS Automaatio- ja systeemitekniikan projektityöt

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

LUMA SUOMI -kehittämisohjelma LUMA FINLAND -utvecklingsprogram LUMA FINLAND development programme Ohjelmointia Arduinolla

Electric power steering

S13-02 Linear motor controller for CAN-bus

A11-02 Infrapunasuodinautomatiikka kameralle

AS Automaatio- ja systeemitekniikan projektityöt. Projektisuunnitelma. Peltorobotin akselimoduulin ohjain

Power Steering for ATV

Peltorobotin akselimoduulin kontrolleri

S11-09 Control System for an. Autonomous Household Robot Platform

A13-03 Kaksisuuntainen akkujen tasauskortti. Loppuraportti. Automaatio- ja systeemitekniikan projektityöt AS Syksy 2013

AS Automaatio- ja systeemitekniikan projektityöt

AS Automaatio- ja systeemitekniikan projektityöt

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

ZigBee-ohjaus kuorma-autolle

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

AS Automaatio- ja systeemitekniikan projektityöt

LED- päivyrinäyttö. 1: Anssi Kalliomäki, Marko Virtanen, Tomas Truedsson, Petri Syvälähde

Semifinaalin aikataulu ja paikka. Semifinaalikoordinaattori. Kilpailijamäärä. Elektroniikkalajin semifinaalitehtävien kuvaukset

Projektityöt. Sami Alaiso, Jyri Lujanen 30. marraskuuta 2009

Projektisuunnitelma. Radio-ohjattavan pienoismallin mekatroniikan ja ohjelmiston kehitys

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

S09 04 Kohteiden tunnistaminen 3D datasta

ELEC-C1110 Automaatio- ja systeemitekniikan. Luento 11 Esimerkki automaation soveltamisesta

A11-02 Infrapunasuodinautomatiikka kameralle

Elektroniikkalajin semifinaalitehtävien kuvaukset

Teknologiaa kouluun -projekti

Tieverkon kunnon stokastinen ennustemalli ja sen soveltaminen riskienhallintaan

Ohjelmoi Arduino Grovella

Siimasta toteutettu keinolihas

Akkujen aktiivinen balansointi

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

Akkujen aktiivinen balansointi

Tehtävä 5. ECIO dataloggeri lämpötila-anturilla

LOPPURAPORTTI Paperikonekilta Versio 1.0

Projektisuunnitelma: Vesipistekohtainen veden kulutuksen seuranta, syksy Mikko Kyllönen Matti Marttinen Vili Tuomisaari

Projekti A: iskunvaimennindynamometri

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

JOHDATUS ELEKTRONIIKKAAN. Oppitunti 2 Elektroniikan järjestelmät

Sisäilman laadun mittausjärjestelmän rakentaminen ZigBee-verkon avulla

Tehtävään on varattu aikaa 8:30 10:00. Seuraavaan tehtävään saat siirtyä aiemminkin. Välipalatarjoilu työpisteisiin 10:00

AS Automaatio- ja systeemitekniikan projektityöt. Robottialustan instrumentointi ja käyttöönotto

Toteutusvaihe T2 Edistymisraportti

ENG-A1002 ARTS-ENG-Projekti. B-kori

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Elektroniikka II lopputyön ohje

1 YLEISTÄ. Taitaja2002, Imatra Teollisuuselektroniikkatyö Protorakentelu 1.1 PROJEKTIN TARKOITUS

A15 - Inertial Measurement Unit

Kirja on jaettu kahteen osaan: varsinaiseen- ja lisätieto-osioon. Varsinainen

TTY/OHJ: OHJ-3500 Ohjelmistotuotannon projektityö

Robottialustan instrumentointi ja käyttöönotto

Asiakas ja tavoite. Tekninen toteutus

602 Elektroniikka. Kilpailutehtävä 1. Asiakirjan nimi 1(2) LEDeillä toteutetun nuolimoduulin kokoaminen ja testaus (10p)

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Kirja on jaettu kahteen osaan: varsinaiseen- ja lisätieto-osioon. Varsinainen

SOVELLUSPROJEKTIN ARVIOINTILOMAKE

Joulupukin työpaja leipomalla piparkakkutaikinasta kolmen kurssin yhteinen harjoitustyö

Jyrki Kullaa ohjaava opettaja. Mika Miettinen puheenjohtaja

Harjoitustyö - Mikroprosessorit Liikennevalot

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Väliraportti

OMNIA OPINNÄYTETYÖ AMMATTIOPISTO. Diginoppa ICTP09SLG OMNIAN AMMATTIOPISTO

Liikennevalot. Arduino toimii laitteen aivoina. Arduinokortti on kuin pieni tietokone, johon voit ohjelmoida toimintoja.

MUISTILANGAT. Position Control of Shape Memory Alloy Muscles for Robotics. Pia Lindqvist Joni Leppänen Alexander Kokka

MSnS-extra PCB v1.0. Kevyt käyttöohje

OPISKELIJAN MUISTILISTA

Pienitehoisen keinokuorman suunnittelu ja rakentaminen. AS Automaation ja systeemitekniikan projektityöt Lauri Mäkelä, Henrik Vento 4.2.

AS Automaatio- ja systeemitekniikan projektityöt A13 12 Online-mittausten kunnonvalvonta vedenpuhdistusprosessissa (6 op)

Electric power steering

S12-02 Infrapunasuodinautomatiikka kameralle

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

PS-vaiheen edistymisraportti Kuopio

Mallintarkistus ja sen

PVA-CSK PAVIRO -kuulutuskojesarja

Sähköautoprojekti Pienoissähköauto Elektroniikan kokoonpano Moottoriohjain.

IDH E1. Asennusohje IDH E1 / PUHZ Ulkoyksiköt IDH

Anturit ja Arduino. ELEC-A4010 Sähköpaja Tomi Pulli Signaalinkäsittelyn ja akustiikan laitos Mittaustekniikka

AS Automaatio- ja systeemitekniikan projektityöt

Taitaja2011, Kuopio Elektronisen laitteen rakentaminen

Hybridivalvomon tilatiedon hallinnan kehittäminen

LOPPURAPORTTI S13-12 PROSESSIAUTOMAATION TEHTÄVIÄ LUKIOLAISILLE 3OP

2009 Mat Operaatiotutkimuksen Projektityöseminaari L

Nokeval No Käyttöohje. Tekstinäyttö 580-ALF

Nosturirobotti. robotin tarkoitus. mikä on robotin tehtävä. Kurssin robottiohjelmointi, kesä 2011 harjoitustyö


Laboratorioraportti 3

T Käyttäjäkeskeisen tuotekehityksen harjoitustyö kevät 2005

SUPIKOIRA-projekti. Tommi Berg Eero Alkkiomäki. (Tero Huttunen, Sami Kiiskilä, Ossi Mäkinen, Ilpo Suominen, Mikko Suominen, Asser Vuola)

TAITAJA 2006, Elektroniikka ( /OL) Hakkurivirtalähteen kokoaminen ja testaaminen, Nokia

A09-05 OSGi IRC Bot For Coffee Maker

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Kansallisen vaarallisia kemikaaleja koskevan ohjelman arviointi (KELO-arviointi) Työsuunnitelman esittely Piia Pessala

Adafruit Circuit Playground Express

Teknisen työn didaktiikka/aihepiirisuunnittelu Tiina Pyhälahti Syksy 1996 Ohjaaja: Ossi Autio

Transkriptio:

Mikrokontrollerikitit - loppuraportti AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Aihe: S13-04 Design and assembly of microcontroller kits Työn laajuus: 5 op Hannu Leppinen 78673R, AUT, hannu.leppinen@aalto.fi Petri Niemelä 221643, AUT, petri.niemela@aalto.fi Markus Peltola 84765H, AUT, markus.peltola@aalto.fi Työn valvojat: Mika Strömman, Konsta Hölttä 8.5.2013

Työn kuvaus Projektityön tarkoituksena oli koota mikrokontrollerikittejä, jotka mahdollistavat erilaisten sensorien ja toimilaitteiden helpon ja nopean kytkemisen Teensy-mikrokontrolleriin. Projektityön alussa kitteihin oli olemassa alustavat suunnitelmat ja jonkin verran hankittuja komponentteja. Projektityön puitteissa suunniteltiin ja valmistettiin piirilevyt ja kolvattiin niihin komponentit, sekä toteutettiin kolme kittejä käyttävää demoa. Työn lopputulos Työn lopputuloksena saatiin aikaiseksi 4 kpl valmista mikrokontrollerikittiä. Lisäksi saatiin aikaan dokumentaatio, joka mahdollistaa kittien käyttämisen opetuksessa sekä lisäkittien rakentamisen. Kittejä on mahdollista rakentaa ylijääneistä osista vielä 1-2 kappaletta. Työn kulku Työ käynnistyi tammikuussa 2013 suunnittelemalla aikataulua sekä tutkimalla Konsta Höltältä saatuja suunnitelmia. III periodin aikana päätettiin toteuttaa piirilevysuunnittelu, ja varsinainen kittien valmistus jäisi IV periodiin. III periodille haluttiin vähemmän kuormitusta aikatauluongelmien vuoksi. III periodissa aikataulussa päästiin jopa edelle, sillä ensimmäiset prototyypit olivat jo kurssin väliraporttiin mennessä valmiita. Loppuraporttiin mennessä kitit olivat valmiita, mutta dokumentaatio ja käyttöohje oli vielä viimeistelyä vailla. Toteutunut aikataulu Projektin suunnitellussa aikataulussa pysyttiin melko hyvin. Väliraporttiin mennessä oli jo saatu valmiiksi prototyyppiversiot kitin piirilevyistä. Lopulliset levyt tilattiin EuroCircuitsilta ja niihin kolvattiin komponentit vapun tienoilla. Samoihin aikoihin piirilevyt kiinnitettiin pleksiin ja dokumentaatiota alettiin kirjoittamaan. Työ hiottiin loppuun keskiviikon 8.5. loppudemoa edeltävänä maanantaina ja tiistaina. Toteutunut työnjako Alunperin suunniteltu työnjako oli: Piirilevysuunnittelu: Petri ja Markus Esitestaus: Markus Kokoonpano: yhteisesti Demot: Hannu, Petri Dokumentointi: yhteisesti Suunnittellussa työnjaossa eri työvaiheita oli jaettu eri ihmisille, mutta käytännössä kaikki ryhmäläiset osallistuivat kaikkiin työvaiheisiin. Myöhemmin vastuuta jaettiin toteutettavien PCB:eiden perusteella.

Pää-PCB (mikrokontrolleri): Petri Moottoriohjain-PCB: Markus Analogi-PCB: Hannu LCD-PCB: Hannu Vastuualueet menivät kuitenkin lopulta melko päällekkäin, ja kaikki ryhmäläiset tekivät kaikkia osa-alueita: piirilevyjen kolvailua, piirisuunnittelua, pleksin sahausta, demojen ohjelmointia, dokumentointia ja niin edelleen. Käytetyt työtunnit Tässä on kuvattu keskimääräinen projektin tekijän tuntityömäärä. Tuntimäärät saattoivat vaihdella hieman henkilöittäin riippuen päivästä. Ajankäyttö poikkesi suunnitellusta pääasiassa siten, että prototyyppi tehtiin valmiiksi ennen välidemoa ja varsinaiset kitit ennen loppudemoa. Alkuperäisessä suunnitelmassa ei mainittu prototyyppiä. 1. Suunnitelmademoon valmistautuminen, alustava kittien ja demojen suunnittelu ja materiaalien kokoaminen 10h 2. Piirilevyjen suunnittelu 20 h 3. Prototyypin valmistus 15 h 4. Välidemoon valmistautuminen 5h 5. Piirilevyjen tilaus, kolvaus, pleksien tekeminen, kittien kokoaminen 30 h 6. Demon tarkempi suunnittelu 10 h 7. Demon toteutus (ja kittien testaus) 25 h 8. Loppudemoon valmistautuminen, dokumentointi ja viimeistely 15 h Yhteensä 130 h Tuntimäärä vastaa hyvin projektiin varattua viittä opintopistettä. Työn tulokset Kitit Työn lopputuloksena syntyi 4 kappaletta kuvassa 1 näkyvän kaltaista mikrokontrollerikittiä. Lisäksi suunniteltiin kiteillä toteutettavia demoesimerkkejä kolme kappaletta. Kittejä varten myös kirjoitettiin käyttöohje. Yli jääneistä osista ja levyistä olisi mahdollista rakentaa vielä 1-2 kittiä lisää.

Kuva 1. Mikrokontrollerin sisältö (ilman kaapeleita): 1. Potentiometrimoduuli, 2. Moottoriohjainmoduuli, 3. Näppäinmatriisi, 4. Analogi/etäisyysmittausmoduuli, 5. Päämoduuli. Mikrokontrollerikitti koostuu mikrokontrollerin sisältävästä päälevystä sekä lisämoduuleista, jotka toimivat mikrokontrollerin ohjaamina sensoreina tai toimilaitteina. Lisämoduulit voi kytkeä 10-pinnisillä kaapeleilla suoraan päälevyyn. Kuvassa 2 on esitetty 10-pinnisen liittimen pinnijako. Mikrokontrollerikitti koostuu seuraavista moduuleista: Päämoduuli: Mikrokontrollerilevy 8 painiketta LCD-moduuli Lisämoduuli 1: Näppäinmatriisi (valmis moduuli) Lisämoduuli 2: A/D-testaus- ja haaroitinlauta potentiometreillä (valmis moduuli) Lisämoduuli 3: Etäisyysmittaus/analogimuunnoslevy Lisämoduuli 4: Servomoottorilevy

Kuva 2. 10-pinnisen liittimen pinnit, kun PCB:llä olevaa liitintä katsotaan ylhäältä päin. Pinneissä 1-8 kulkevat analogi- ja digitaalisignaalit, VCC on käyttöjännite ja GND on maa. Vaikka lisämoduulit 1 ja 2 olivat kaupasta ostettuja, tehtiin myös niihin jalusta pleksistä. Pleksit suunniteltiin, mitattiin, sahattiin ja porattiin, Lisämoduulit voidaan kytkeä päämoduuleihin 10-pinnisellä liittimellä, jonka pinnijako on joka kitissä sama. (8 signaalia, käyttöjännite ja maa). Yhdessä päämoduulin liittimistä on kuitenkin myös analogimahdollisuus, jota lisämoduulit 2 ja 3 hyödyntävät. Päämoduulin mikrokontrollerilevyssä on mikrokontrollerin lisäksi virtaliitin, 8 lediä, RS232 - UART-muunnin ja I2C-liitäntä, JTAG-liitin debuggaukseen ja jännitereferenssiliitin. Kaksi päälevyistä toteutettiin ulkoiselle virtalähteelle tarkoitetuksi ja kaksi USB-virransyötölle. USB-virransyöttö havaittiin riittäväksi jopa moottoreita käytettäessä. Demot Työssä suunniteltiin kolme mikrokontrollerikiteillä toteutettavaa demoa, jotka esittelevät kittien mahdollisuuksia. Demoilla voidaan myös testata, että kitit toimivat suunnitellulla tavalla. Kuvassa 3 on nähtävissä demon 3 prototyyppiversio. Demojen koodit ovat liitteessä 2. Demojen toteutus on kuvattu tässä melko ylimalkaisesti, ja käyttöohjeeseen tulee tarkempi kuvaus. 1. Ledien vilkutus Mikrokontrolleri vilkuttelee päälevyn ledejä Knight Rider -tyyliin. Demossa tarvitaan ainoastaan päämoduulia. 2. Etäisyys LCD-näytöllä LCD-näyttö näyttää infrapunaetäisyyssensorin mittaaman etäisyyden. Etäisyys lasketaan kolmen mittauksen keskiarvosta. Toimii huonevalaistuksessa käytännössä n. 10-30 cm etäisyyksillä suht tarkasti. Demossa käytetään päämoduulia ja analogi/etäisyysmittausmoduulia. Analogi/etäisyysmittausmoduuli kytketään analogisignaalin vuoksi päämoduulin porttiin F.

3. Moottorin pyörimisnopeus LCD-näytöllä Moottorin pyörimisnopeus on säädettävissä potikalla. Moottorin pyörimisnopeus näkyy LCD-näytöllä. Potentiometrimoduuli kytketään analogisignaalien vuoksi päämoduulin porttiin F. Demossa tarvitaan päämoduuli, moottoriohjainmoduuli ja potentiometrimoduuli. Kuva 3. Moottoridemon protoilua. Käyttöohje Työn tuloksena syntyy myös PDF-muotoinen käyttöohje. Tätä loppuraporttia kirjoitettaessa käyttöohje on vielä keskeneräinen, mutta se tulee olemaan englanniksi ja se sisältää teknisen kuvauksen mikrokontrollerikiteistä, ohjeet niiden ohjelmointiin sekä suunnitellut kolme esimerkkidemoa. Työssä opittua Työssä opimme pääasiassa piirilevysuunnittelua Eaglellä ja KiCadillä. Opimme myös ettei kahta piirilevysuunnitteluohjelmaa kannata käyttää rinnakkain. Moottoriohjain suunniteltiin alun perin KiCadillä, mutta yhteensopivuusongelmien vuoksi se jouduttiin käsin suunnittelemaan uudestaan Eagleen. Työssä päästiin myös prototyyppiversiota valmistettaessa tutustumaan Kone 3:n piirinlevyvalmistusmahdollisuuksiin. Prototyypin ja valmiiden kittien kokoaminen myös opetti TUASin elektroniikkahuoneen ja prosessihallin käyttöä, vaikka tiimin kaikilla jäsenillä oli näihin liittyvistä toimenpiteistä jo aiempaa kokemusta elektroniikkaharrastelujen vuoksi.

Ohjelmoinnin suhteen ei tapahtunut suurempaa oppimista, sillä käytimme Arduino-kirjastoa Teensylle. Arduino oli kaikille tiimin jäsenille tuttu entuudestaan. Jatkotyöehdotuksia Jos kittien parissa työskentelyä jatketaan, seuraavia parannusehdotuksia voi käyttää jatkotyön pohjana: lisämoduulin toteutus: analoginen viiden vapausasteen IMU (kiihtyvyysanturit ja gyrot) lisämoduulin toteutus: langaton ZigBee-radiolinkki kommunikointiin tietokoneen tai toisen mikrokontrollerin kanssa kahden lisäkitin kokoaminen jäljelle jääneistä osista lisädemojen kehittäminen, jotta kaikki olemassa olevat moduulit tulevat hyödynnetyksi uusien lisämoduulien ideointi jonkin järjestelmän toteuttaminen kitin mahdollisuuksia hyödyntäen uusien ominaisuuksien dokumentointi Yhteenveto Projektityön tarkoituksena oli tuottaa opetustarkoitukseen soveltuvia mikrokontrollerikittejä. Asetetut tavoitteet saavutettiin, sillä kittejä toteutettiin 4 kappaletta. Myös ylimääräisiä osia jäi jäljelle, joista voisi rakentaa vielä muutaman kitin. Opetustarkoitusta korostaa myös se, että kitteihin tuotetaan käyttöohje. Käyttöohjeessa tulee olemaan kuvattuna esimerkkidemoja, jotka hyödyntävät kittien ominaisuuksia. Demojen koodit myös kommentoidaan paremmin käyttöohjeeseen. Työhön käytettiin noin 8 henkilökohtaista tuntia (4 tuntia ryhmätyötä ja 4 tuntia yksilötyötä) viikossa koko kevään ajan, mikä vastaa melko hyvin työn 5 opintopisteen laajuutta.

Liite 1. Toteutettujen levyjen suunnitelmat Päälevy

Analogilevy

LCD-adapteri

Moottoriohjainlevy

Liite 2. Demojen koodit (esimerkkejä) Viimeisimmät versiot ovat käyttöohjeessa 1. Ledien vilkutus /* *Knightrider */ voidsetup(){ DDRA=0xFF; PORTA=0x00; voidloop(){ PORTA=0x01; while(pina!=0x80){ delay(200); PORTA<<=1; PORTA=0x80; while(pina!=0x01){ delay(200); PORTA>>=1; 2.Etäisyysmittaus /* *IRdistancesensor */ #include<liquidcrystal.h> LiquidCrystallcd(20,21,22,23,24,25,26); floatread_gp2d12_range(bytepin){ inttmp; tmp=analogread(pin); if(tmp<3)

return-1;//invalidvalue return(6787.0/((float)tmp-3.0))-4.0; voidsetup(){ lcd.begin(16,2); voidloop(){ floatval=0.5f*read_gp2d12_range(38); lcd.clear(); lcd.setcursor(0,0); lcd.print("distance:"); lcd.setcursor(0,1); lcd.print(val); lcd.print("cm"); delay(200); 3. Moottorin pyörimisnopeus LCD-näytöllä /* MOTOR */ #include<liquidcrystal.h> LiquidCrystallcd(32,33,34,35,28,29,30);//PORTA voidsetup() { //Initializelcd lcd.begin(16,2); pinmode(22,output);//in1 pinmode(23,output);//in2 voidloop() { //Readvalue

intval=analogread(38)/2; // lcd.clear(); lcd.print("setpoint:"); lcd.print(val-256); if(val>240&&val<280){ //Freespinning digitalwrite(22,low); digitalwrite(23,low); analogwrite(27,0); elseif(val>280){ //Spinfoward digitalwrite(22,high); digitalwrite(23,low); analogwrite(27,val-257); else{ //Spinbackward digitalwrite(22,low); digitalwrite(23,high); analogwrite(27,255-val); delay(100);