Tämä kirjoitus on jatkoa Ilmahirviradan rakentelua osa 2:lle.
VIHDOINKIN! Viimeinen ja tämän aiheen päättävä päivitys! Tästä aiheesta olen viimeksi kirjoittanut viime joulun alla, joten aikaa on vierähtänyt joku tovi, mutta paljon on myös tullut tehtyä tämän projektin tiimoilta. Tämän kirjoituksen asiat ovat tapahtuneet useiden menneiden kuukausien aikana ja koitan näitä asioita tähän postaukseen hieman selvitellä parhaani mukaan. Paljon jää varmasti kirjoittamatta, mutta jos nyt olennaisimmat edes...
Kuten viime osassa sanoin, niin aikaa on tämän radan tekemiseen tullut laitettua kymmeniä ja kymmeniä tunteja. Kokonaisuudessaan tähän on lopulta kulunut noin 120-140 tuntia aktiivista tekemistä. Aktiivisella tekemisellä tarkoitan fyysisen radan, elektroniikan ja muiden mekaanisten osien rakennusta, suunnittelua ja 3D-printtausta sekä tietenkin itse ohjelmointia. Itse asiassa, ohjelman tekeminen olikin tässä projektissa suurin haaste.
Kelkan päätykytkimen aktivoinnin korotuspala
Edellisessä osassa kelkkaan jäi pieni suunnitteluvirhe, sillä edellisen kaltaisella päätyrakenteella rajakytkin ei koskaan aktivoituisi. Olin kuitenkin jo suunnitellut uuden päädyn kelkkaan joten nyt piti vain tulostaa ne:
Korotuspalojen paikalleen asentamisen jälkeen näyttää tältä:
Ilman uusia korotuspaloja päätykytkimet eivät siis toimisi.
Prototyypin ohjainyksikkö/elektroniikka
Prototyypin ohjainyksikön liitinrajapinta on seuraavanlainen:
Punaisella on kuvaan merkitty liitinnumero ja keltaisella liittimen pinninumero.
X1 = Sähkönsyöttö
X2 = Moottorille
X3 ja X4 = lättäkaapelit arduinolle
X5 = LCD-näytön liityntä
X6 = Etupaneelin, kaukosäätimen ja rajakytkinten liityntä
Tarkemmat kytkennät löytyvät ilmahirviradan käyttöoppaasta.
Kuvan yläreunassa nähdään MOSFET-transistoreista tehty H-ohjainsilta jäähdytyselementteineen. Jäähdytyselementtejä ei saa yhdistää galvaanisesti toisiinsa, koska moottorinohjauksen aikana niihin tulee jännite toiselle puolen ja toiselle puolen yhdistyy maa-potentiaali. Ei mikään ideaaliratkaisu, mutta toimii tässä protossa ja tarkoituksena on vain saada lämpöä siirtymään ohjaavilta feteiltä pois. Jäähdyttimeen on kiinnitetty myös pieni tuuletin, joka ottaa +12 volttia pienestä 7812 regulaattorista (myös jäähdytetty) joka näkyy kuvan oikeassa reunassa.
Protolevyn alapuoli näyttää tältä:
Tarkkaavainen lukija saattaa huomata, että MOSFETtien bodydiodien rinnalle on juotettu myös lisädiodit suojaamaan transistoreita moottorilta tulevilta jännitepiikeiltä.
Sivusta päin hökötys näyttää tältä:
Ilmahirviradan ohjelman lähtövaatimukset
Ilmahirviradan ohjelman toiminta perustuu "asiakkaan" antamalle speksille, joka lyhkäisyydessään, vapaasti lainattuna kuuluu näin:
Taulu kulkee 2 m leveän ampuma-alueen aukosta ja kummassakin päässä taulu menee kokonaan piiloon näkösuojan taakse.
Juoksutusohjelmat:
- 2 m / 5 sek (perus hirvinopeus)
- 2 m / 2,5 sek (villikarjun nopea)
- Random 2,5 tai 5 sek / 2m (villikarjun finaali)
- Valitaan minimi ja maksini joiden väliltä tulee randomina jokin nopeus (harjoituskäyttöön)
Jokaiselle ohjelmalle lähtöön valittavissa oleva viive tai ei viivettä. Siis yksin ampuessa tarvitseen viiveen ja kaverin kanssa ei tarvitse viivettä. Viiveen säätö.
Maali lähtee juoksuun vain startista.
Pysäytys keskelle taulun vaihtoa ja aseen kohdistusta varten.
Ohjelmat siis liikuttavat kelkkaa eri nopeuksilla edestakaisin rajakytkinten välillä, lähtien aina käskystä liikkeelle joko viiveen kanssa tai ilman.
Lisäksi, toiveena "asiakkaalla" oli, että jos ohjausta pystyisi tekemään muullakin tavalla kuin olemalla fyysisesti läsnä laitteen luona. Tämän lisäksi piti tietenkin ottaa huomioon nopeuden kalibrointi, ohjelman valintametodi, rajakytkimet ja käyttöliittymän teko.
Ilmahirviradan ohjelmat
Ilmahirviradassa on neljä eri ohjelmavaihtoehtoa, joiden väliltä voidaan valita kuinka rata toimii. Valittavat ohjelmat ovat: hirvi, villikarju, villikarju finaali ja harjoitus. Ohjelmat voidaan valita laitteen käyttöliittymästä painonappien ja LCD-näytön avulla, mutta myös etäältä kaukosäätimen avulla.
Hirvi
Hirviohjelmassa rata "juoksee" noin 0,4 m/s päädystä päätyyn yhden kerran ajo-napin painalluksen jälkeen. Ohjelma käynnistyy ainoastaan ajo-napin painalluksesta. Ohjelma odottaa käyttäjän määrittelemän minimi- ja maksimiviiveen välillä ennen radan ajoa, mikäli viive on asetettu aktiiviseksi.
Villikarju
Villikarjuohjelmassa rata "juoksee" noin 0,8 m/s päädystä päätyyn yhden kerran ajo-napin painalluksen jälkeen. Ohjelma käynnistyy ainoastaan ajo-napin painalluksesta. Ohjelma odottaa käyttäjän määrittelemän minimi- ja maksimiviiveen välillä ennen radan ajoa, mikäli viive on asetettu aktiiviseksi.
Villikarju finaali
Villikarju finaali (LCD näytössä KARJUFINAALI) ohjelmassa rata "juoksee" noin 0,4 m/s tai 0,8 m/s päädystä päätyyn yhden kerran ajo-napin painalluksen jälkeen. Ohjelma käynnistyy ainoastaan ajo-napin painalluksesta. Ohjelma odottaa käyttäjän määrittelemän minimi- ja maksimiviiveen välillä ennen radan ajoa, mikäli viive on asetettu aktiiviseksi. Ohjelma valitsee satunnaisesti nopeuden joko 0,4 m/s tai 0,8 m/s.
Harjoitus
Harjoitusohjelmassa taulua ajetaan minimi- ja maksiminopeuksien väliltä satunnaisessa järjestyksessä. Ohjelma käynnistyy ainoastaan ajo-napin painalluksesta. Ohjelma odottaa käyttäjän määrittelemän minimi- ja maksimiviiveen välillä ennen radan ajoa, mikäli viive on asetettu aktiiviseksi.
Kaukosäätimen teko
Projektille kaukosäädin löytyi näppärästi Arduino aloituspakkauksesta ja IR-vastaanottimesta.
Kaukosäätimelle piti tehdä kuitenkin kustomointia mm-nappien tarkoitusta selventämään. Se onnistuikin helposti tekstinkäsittelyohjelman avulla, mutta yhtä hyvin sen olisi voinut tehdä myös kuvankäsittelyohjelman avulla. Kustomoidun kaukosäätimen layoutista tuli alla olevan kuvan mukainen.
Tulostin layoutin väritulostimella ihan tavalliselle A4-paperille ja teippasin sen läpinäkyvän teipin avulla ohjaimeen kiinni.
Näyttää itse tehdyltä, mutta ei voi mitään. Kauko-ohjaimen kalvokytkimet on liimattu alkuperäisten napin printteihin, joten tätä ei voinut oikein muulla tavalla helposti kustomoida. Alla olevassa kuvassa nähdään kun hieman raotin näppäinkalvoa piirilevyn päältä - juu ei.
Ilmahirviradan toiminnan esittely
Kuvasin hätäisesti viime viikonloppuna lyhkäisiä videopätkiä radan eri toiminnoista. Käsikirjoittamattomista ja melkeinpä "tuulesta temmatuista" pätkistä sain tehtyä nopeasti pienen videon, missä radan ydintoiminnallisuus käy ilmi. En tiedä tuleeko se kovin selväksi, mutta jos aihe kiinnostaa niin saattaa se ehkä hieman enemmän avata koko projektia.
Tarkemmat tiedot ohjelman toiminnasta löytyvät ilmahirviradan käyttöoppaasta ja lähdekoodia tutkimalla. Lataa lähdekoodi tästä.
Video alla:
Radassa on myös muita toimintoja, mutta niitä en nyt tähän hätään ole joutanut lisäilemään.
Projektin ajallinen kesto
Projektin varsinainen aloitus oli keväällä 2017 ja prototyyppi oli luovutusvalmiina elokuussa 2018. Kalenteriajassa pitkä aika, mutta koska näihin hommiin ei voi laittaa tunteja edes joka viikko, niin sivuprojektit tuppaavat kestämään.
Lähdekoodin yhteenveto
Koodissa 2676 riviä, poislukien *.h -tiedosto ja muut tiedostot jotka pitää sisällään vain tekstiä.
Käännettäessä Arduino IDE antaa ohjelman koodin "täyttöasteeksi" seuraavat lukemat. Eli tähän vielä pystyy jotain ominaisuuksia lisäämään, mutta ei mitään älyttömyyksiä. Arduino bootloaderin viemä tila on noin 2kt, joten ohjelmaa on tullut naputettua noin 24 kilotavun edestä.
Global variables use 968 bytes (47%) of dynamic memory, leaving 1080 bytes for local variables. Maximum is 2048 bytes.