Ilmahirviradan rakentelua, osa 3/3

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:

3d-tulostetut korotuspalat

Korotuspalojen paikalleen asentamisen jälkeen näyttää tältä:

kelkan kytkimen korotuspala

Ilman uusia korotuspaloja päätykytkimet eivät siis toimisi.

Prototyypin ohjainyksikkö/elektroniikka

Prototyypin ohjainyksikön liitinrajapinta on seuraavanlainen:

ilmahirvirata liitinrajapinta

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ä:

prototyypin takapuoli

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ä:

hökötys

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:

  1. 2 m / 5 sek (perus hirvinopeus)
  2. 2 m / 2,5 sek (villikarjun nopea)
  3. Random 2,5 tai 5 sek / 2m (villikarjun finaali)
  4. 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.

Arduino kaukosäädin

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.

Arduino kaukosäädin kustomointi

Tulostin layoutin väritulostimella ihan tavalliselle A4-paperille ja teippasin sen läpinäkyvän teipin avulla ohjaimeen kiinni.

omatekoinen kauko-ohjain

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.

kalvokytkimet ohjaimen alla

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ä.

Sketch uses 26534 bytes (82%) of program storage space. Maximum is 32256 bytes.
Global variables use 968 bytes (47%) of dynamic memory, leaving 1080 bytes for local variables. Maximum is 2048 bytes.

Jätä kommentti

Sähköpostiosoitettasi ei julkaista.

This site uses Akismet to reduce spam. Learn how your comment data is processed.