Stap 3: Auto - tot tank-logic signaal conversie
Ik kwam met de bovenstaande tabel en besloot dat ik ging moeten meer controle signalen van de zender te kunnen beheren niet alleen het manoeuvreren van de tank maar ook rotatie van de koepel en twee lasers (één voor de machine gun) en één voor de canon. Ik realiseerde er waren niet meer beschikbaar besturingsseinen uit de Tx/Rx. Dus, ik heb opgelost het probleem met software, gebruik te maken van de Tx controle opties op een wijze die vergelijkbaar is aan de knoppen van het vervoer op een muziekspeler, waar een constante druk FFWs op de muziek, en een kortstondige push de volgende muziektrack selecteert. Ik gecodeerd de uitgangssignalen in de Arduino-programma als volgt:
FWD/REV steady push - beweegt de tank FWD/REV
FWD momentary push - knevels het kanon laser in-/ uitschakelen
REV momentary push - schakelt de machine gun laser in-/ uitschakelen
LINKS/rechts hendel gestage push - beweegt de tank FWD links/rechts of links/rechts REV in combinatie met een constante druk van de hefboom FWD/REV. Indrukken van gestage links maakt alleen de tank spin links in plaats. Gestage pijl maakt alleen de tank spin recht op zijn plaats.
LINKER momentary push - knevels torentje CCW rotatie
RECHTS momentary push - knevels torentje CW rotatie
De code is zo geschreven dat geen andere ingangssignaal enig effect nemen zal na van een knevel op signaal ontvangst totdat de overeenkomstige knevel uit signaal is ontvangen. Dus, als u even links duwt, zal het torentje CCW draaien totdat je weer even links duwen. Terwijl het torentje is roterende, wordt verzenden van elke andere controle-signaal genegeerd. Voor eenvoud.
Het programma debounces de hendel push-signalen via de Tx door een lezing, een paar milliseconden te wachten, en nemen een tweede lezing. Als de tweede lezing hetzelfde als de eerste is, wordt het signaal uitgegaan van stabiele en geldig is, als niet, de signalen van de hendel opnieuw worden gelezen. Het de invoering van een vertraging, maar het is bijna niet merkbaar (voor mij toch).
Hier is de Arduino schets: