AS-84.3284 Automaatiotekniikan projektityöt (kesä 2008) Moottoroitu nousutuki II Teemu Kuusisto 4.7.2008 Työn ohjaaja: Panu Harmo TÄMÄ TYÖ KUULUU OPISKELIJOIDEN MIDE-TEKNOLOGIA- PROJEKTIIN "YLÄMUMMO HEILAHTAA"
Sisältö 1. Tehtävänanto... 3 2. Yleiskuvaus ja projektityön tavoitteet... 3 3. Asennustyö... 4 4. Ohjelmointityö... 5 5. Tulokset ja testaus... 6 6. Parannusehdotukset ja jatkokehittelyt... 8 LIITE 1... 9
1. Tehtävänanto Kehittää ja parantaa olemassa olevaa moottoroitua nousutankoa. Tässä projektityössä tankoon liitetään kiihtyvyysanturi, pienennetään koteloa ja suunnitellaan nousukahvaa. Työmäärä: 3 op / 2 ov Työnhjaaja: Panu Harmo 2. Yleiskuvaus ja projektityön tavoitteet Jatkoin Taru Laamasen ja Sofia Piltzin tekemää projektityötä, jossa he olivat toteuttaneet katon ja lattian väliin viritettävän moottoroidun nousutangon, jonka avulla vanhusten ja liikuntarajoitteisten on helpompi nousta itsenäisesti ylös. Taru ja Sofia olivat saaneet tangon vaiheeseen, jossa sen saa viritettyä moottorin avulla tukevasti lattian ja katon väliin. Tanko ilmoittaa ledin avulla, kun se on tukevasti paikallaan. Nousukahvaa ja kiihtyvyysanturia he eivät olleet vielä toteuttaneet. Heidän projektityöstään voi lukea lisää BSCW-serveriltä. Kuva 1. Nousutanko projektityön alussa
Tangon toiminta on seuraavanlainen: Ensin tanko viritetään karkeasti käsikäyttöisellä korkeussäädöllä lähelle kattoa, jonka jälkeen tanko kiristetään katon ja lattian väliin tukevasti moottorin avulla. Moottorilla kiristettäessä tangossa oleva jousi puristuu kasaan ja liukupotentiometristä luetaan onko tango tukevasti (haluttu raja-arvo). Ledi sytytetään ja moottori pysäytetään, kun raja-arvo saavutetaan. Moottoria ohjataan napilla ylös ja alas. Kiihtyvyysanturilla tanko saataisiin pystytettyä helposti suoraan, minkä avulla voitaisiin välttää vaaratilanteet. Ensisijainen tehtäväni oli liittää nousutankoon kiihtyvyysanturi, joka ilmoittaa tangon suoruuden ledien avulla. Tämän lisäksi tehtäväni oli tehdä nousutankoon parannuksia parhaalla katsomallani tavalla ja suunnitella tankoon nousukahva. 3. Asennustyö Siirsin ohjauspaneelin pienempään koteloon (kuva 1), koska edellinen kotelo (kuva 2) oli turhan suuri ja kömpelö käyttää etenkin, jos koteloa pitää toisessa kädessä, kun toisella kädellä säätää tangon suoraan. Asensin tangon runkoon ja koteloon tarrateipit, jotta kotelon voi kiinnittää runkoon niin, että sen saa tarvittaessa myös irti. Kuva 2. Uusi kotelo Kuva 3. Vanha kotelo Asensin kiihtyvyysanturin tankoon kiinni kuvassa 3 näkyvään kohtaan ja vedin kiihtyvyysanturin johdot ensin tangon runkoa pitkin ja tämän jälkeen muiden johtojen rinnalla ohjauspaneelikoteloon. Juotin ohjaus- ja kiihtyvyysanturin piirilevyn i2cväyliin uudet liittimet, koska edellisiin ei löytynyt liittimiä, jotka olisivat pysyneet
kunnolla kiinni. Uusi liitin näkyy hyvin kuvassa 4. Asensin myös uuteen koteloon ledit, jotka kertovat, onko tanko vinossa johonkin suuntaan vai onko se suorassa. Kuva 4. Kiihtyvyysanturi tangossa kiinni Kuva 5. Kiihtyvyysanturi 4. Ohjelmointityö Ennen kuin aloin taistella kiihtyvyysanturin kanssa laitoin summerin soimaan, kun tanko on tukevasti ja nappi on ylös painettuna. Käytin Tarun ja Sofian tekemää summeri-luokkaa ja lisäsin toiminnon keskeytys-luokkaan. Kiihtyvyysanturin kanssa oli lukuisia ongelmia. Antti Karjalaisen avustuksella laitoin ohjelman printtaamaan UARTväylän kautta näytölle kiihtyvyysarvoja, jotta tiedettiin mitä arvoja anturista tulee. UART-luokka jouduttiin korjaamaan UART2-luokalla, koska prosessorissa oli kaksi UARTia. En millään meinannut saada luettua arvoja kiihtyvyysanturilta, mutta lopulta asia ratkesi, kun Antti korjasi kiihtyvyysanturin ajurin muokkaamalla luku- ja kirjoitusfunktioita. Anturin rekistereihin oli viitattu väärällä tavalla. Kiihtyvyysanturilta saadut arvot olivat aluksi vain positiivisia ja sijoittuivat väleille 0-1000 ja 3000-4000. Skaalasin arvot uudestaan etumerkillisiksi 16 bittisiksi arvoiksi. Tämän jälkeen raja-arvojen asettelu luonnistui helposti. Ensiksi tein liukuvan keskiarvon suodatuksen kiihtyvyysanturin arvoille, jotta heilahtelut jäisivät pois. Antin kaverin toimesta kokeiltiin tämän jälkeen ensimmäisen kertaluvun alipäästösuodatinta.
Suodatin optimoitiin laskennallisesti eikä taajuuden mukaan. Suodatin toimi hyvin ja se jäi pysyvästi ohjelmakoodiin. Tarun ja Sofian valmista ledit-luokkaa jouduin muokaamaan, jotta sain ledit toimimaan oikein niiden asentamisen jälkeen. 5. Tulokset ja testaus Sain liitettyä kiihtyvyysanturin nousutankoon onnistuneesti. Kun tankoa kallistaa johonkin suuntaan, syttyy kallistuneen suunnan ledi palamaan. Kuvat 6 ja 7 havainnollistavat tilannetta. Kuvan 6 ledien mukaan tanko on käyttäjästä katsottuna eteenpäin ja oikealle kallellaan. Kun tanko on suorassa, palaa vihreä ledi. Tankoa voi nostaa/kiristää vain kun tanko on suorassa mutta ei tukevasti, minkä seurauksena tukevasti-ledi ei pala. Kuva 6. Ledit palavat vinouden merkiksi Kuva 7. Ledit palavat vinouden merkiksi Tankoa testattaessa ledien toiminnassa ei havaittu mitään ongelmia. Raja-arvot tangon suoruudesta olisivat voineet olla hieman pienemmät eli tangon pitäisi olla tarkemmin suorassa. Kun moottoria nosti tai laski pidempiä aikoja tai vaihtoi suuntaa useasti, koko ohjelma jumittui. Tähän lienee syynä huono tai virheellinen moottorin pwm-ohjaus. Tutkin
yhdessä Antin kanssa tätä ongelmaa, mutta aika tuli vastaan, emmekä saaneet tarkasti selville, miksi ohjelma jumittui. Kuva 8. Nousutanko projektin lopussa Nousukahvaa en ehtinyt miettiä tai suunnitella rajoitetun ajan johdosta.
6. Parannusehdotukset ja jatkokehittelyt Yhtenä tärkeänä parannuksena olisi korjata ohjelma niin, ettei ohjelma jumittuisi. Toinen parannusehdotus olisi tangoin suoruuden tarkastelu toteutus siten, että kun tanko on melko suorassa ei yksikään ledeistä palaisi ja kun taas tanko on täysin suorassa syttyy vihreä ledi. Tankoa voisi kuitenkin nostaa, vaikka tanko olisi vain melko suorassa, mutta esimerkiksi kiristäminen onnistuisi vain tangon ollessa täysin suorassa. Ympyräkaaren suuntaisesti eteen- ja ylöspäin liikkuva moottoroitu nousukahva olisi seuraava iso lisäys projektiin. Kahva ikään kuin vetäisi käyttäjän ylös. Akun ja moottorin ohjauksen piirilevyn kotelointi voisi olla myös työn alla seuraavaksi. Lisää parannusehdotuksia löytyy Taru Laamasen ja Sofia Piltzin dokumentista.
LIITE 1: Ajan käyttö päivämäärä työ tunnit 27.5. Tapaaminen ja työn esittely 2 5.6. Tapaaminen ja työhön tutustumista 3 10.6. Ohjelmien asennus, olemassa olevaan koodiin tutustuminen 5 11.6. Ongelmien ratkomista 3 12.6. Kiihtyvyysanturin testailua ilman tuloksia, uuden kotelon teko 5 17.6. Kiihtyvyysanturin testailua, UARTin liittäminen ja sen kautta 6 printtausta debuggausta varten ja pari juottoa 24.6. Kiihtyvyysanturi toimii, k-anturin kiinnittäminen tankoon ja 8 uusien johtojen ja kiinnikkeiden asentaminen 27.6. Testailua 2 30.6. Testailua ja demon kuvaus 3 3.7. Raportin kirjoittaminen 3 4.7. Raportin kirjoittaminen 2 yht 42