Tech

Byggeprosjekt del 1 - oppsummering

Handleliste:

  • 1x TS-100 tank chassis (inkl. 2x 12V motor, 300 rpm)
  • 2x Arduino Uno
  • 1x Arduino Motor Shield
  • 2x HC-12 433Mhz Wireless Serial Transceiver Module
  • 2x KY-023 joystick


Alt dette bør være grei skuring å kjøpe på ebay, banggood eller aliexpress, selv kjøpte jeg alt på aliexpress selv om levering fort tar 4-6 uker med mindre man er villig til å betale litt ekstra.

Batteri til å drive motorene kjøpte jeg ikke fra Kina, men fra elfun.no. Siden det er ca 3V spenningsfall i H-broen på motorkontrolleren så gikk jeg for et 4s lipo batteri. De holder 14,8V og da blir det ca 12V ut til motor som passer rimelig greit til de motorene som fulgte med chassiet.

Koden min finnes ikke pen, men gjør det den skal gjøre og kan lastes ned her.

Når jeg koblet opp første gangen så glemte jeg at motorkontrolleren bruker pin 3 til PWM på motor A så arduinoen hang seg hver gang jeg forsøkte å kjøre venstremotoren for da ble det to forskjellige ting på den pinnen. I tillegg så kjørte jeg meg fast på et par andre punkter under selve kodingen og startet fra scratch på koden til motorkontrolleren, derfor er HC-12 kortet koblet forskjellig på sender og mottaker.

motor controller
joystick sender bb


Da joystickene er litt unøyaktige og har litt forskjellig frigang så er det veldig vanskelig å få de to motorene til å gå likt på lav hastighet. Like mye bevegelse på joystickene gir litt forskjellig utslag på motorene. Derfor lurer jeg på om jeg skal skrive om koden til å bruke bare en joystick, men begge aksene slik at det blir lettere å kjøre rett i lav hastighet.

Arduinobasert fjernkontroll som fungerer

Etter å ha gjort dusinvis små endringer i koden i et forsøk på å bli kvitt de tre sekundene med forsinkelser løsnet det hele i går kveld når jeg droppet koden min og begynte på nytt med en litt annen innfallsvinkel.

Koden min ser mer ryddig ut, det er ingen merkbar forsinkelse mellom fjernkontrollen og motorene. Problemet som i går kveld og i formiddag førte til at den hang seg hver gang jeg gjorde brukte venstremotoren viste seg å være en pin som jeg forsøkte å bruke både til motorkontroll og radiomottak.

Unga har stort sett vært entusiastiske mens jeg har testet den på stuegulvet i dag, men når Ingeborg ba meg slutte å bråke så skjønte jeg at jeg like gjerne kunne ta den med ut og teste den der.

Da ville selvfølgelig alle være med.


Etter at Ragnhild hadde testet den fikk unga også kjøre litt og Ingeborg var en liten stund veldig lei seg fordi hun hadde hjulpet den løs når Tallak kjørte den fast under søppelskuret. Siden den bare er hastig satt sammen for en test så er ikke ledningene loddet fast og en ledning løsnet. Heldigvis var det lett og fikse og hun fikk selv prøve den etterpå.

Det gjenstår en del mer før jeg kan si meg ferdig, men jeg tror jeg skal ta meg noen dagers pause før jeg fortsetter. Koden på motorkontrolleren trenger noe som gjør at den stopper motorene om den skulle miste signalet fra fjernkontrollen. Som det er nå så må det komme en endring i signalet for at den skal gjøre noe, så en kodesnutt som stopper motoren hvis det ikke har kommet noe signal inn i løpet av 1 sekund ville nok vært gunstig.

It’s alive

Sist helg klarte jeg ikke vente lenger på Arduino Uno kortene og kjøpte et til så jeg kunne gå videre og teste ut koden og den fungerte jo på et vis. Fryktelig mye lag, men det jeg gjorde på fjernkontrollsiden fikk ting til å skje på mottagersiden.

Så, på tirsdag plukket jeg opp litt småtterier på posten, inkludert batteri og de lenge etterlengtede arduinoene slik at jeg nå også kunne teste med litt mer enn et 9 volts batteri.

Jeg har fått rettet opp i et par småfeil i koden, men jeg har ikke blitt kvitt hovedproblemet og dessverre så tror jeg at mine programmeringskunnskaper egentlig ikke strekker til. Jeg skal prøve et par alternative måter å løse det på for å se om det reduserer problemet, men hvem vet.

Uansett så følte jeg i går kveld for å sette sammen alt og se hvordan det fungerte helt trådløst og ikke bare teste det koblet til datamaskinen

IMG 6506


Og virket gjorde det.

Jeg er superhappy med resultat. Gleder meg til å tweake videre på den og til å skrive ny kode i helga som forhåpentligvis fungerer litt bedre.

mens vi venter på UNO...

Som sagt så venter jeg på et par ekstra Arduino UNO som er på vei i posten. Det er litt frustrerende å ikke vite når de kommer og at uten 2 arduinoer så kan jeg ikke bygge fjernkontroll og mottaker og får heller ikke testet stort.

Om ikke annet så kan jeg jo koble opp et av HC-12 kortene til arduinoen og se om det er liv i den. Så litt lodding for å få på en pinnelist så kortet blir litt enklere å bruke på koblingsbrettet så var det bare å koble det opp og sende et par enkle kommandoer for å se om det virker.

FullSizeRender (1)


Og vist virker det.

Screen Shot 2017-09-02 at 11.08.33


Ikke akkurat kode som gjør stort i fjernkontrollmessig, men den viser at jeg får kontakt med HC-12 kortet og kan kommunisere med det.

Akkurat nå er det litt fristende å plukke opp et nytt arduinokort i byen i dag bare for å kunne gå videre og teste ut kode for å snakke mellom to arduinoer med hjelp av HC-12 kortet.

Joysticker og arduinokode

FullSizeRender

Joystickene har kommet. 10 stk av dem da det var billigere enn å kjøpe bare 2.

Jeg koblet de opp til Arduinoen og fikk veldig rare verdier som lignet mer på verdier fra logaritmiske potensiometer enn fra lineære potensiometere. Mye knoting og irritasjon senere kom jeg på at motor kontrollkortet bruker port A0 og A1 til spenningsmåling på motor og derfor gir 3,3V på de portene som selvfølgelig gjorde at jeg fikk underlige verdier. Når jeg så flyttet joystickene over til A2 og A3 så fikk jeg helt normale måleverdier og kunne skrive koden som gjør at forover på joysticken blir forover på motoren og bakover blir bakover. 

En test med et 9V batteri rundt midnatt viste at koden fungerer som den skal selv om 9V ikke er i nærheten av nok til å drive to 12V motorer skikkelig når det i tillegg er ca 3V spenningstap i motorkontrolleren. Greit da at et 14,8 LiPo-batteri er på vei til meg så motorene kan få den strømmen de trenger for å gå skikkelig.


Neste skritt er selve radiooverføringen av kontrollsignalene.

Lorem ipsum dolor sit amet.