Stap 3: programmeren
Software voor dit project bestaat uit twee delen, één voor de afstandsbediening (die ik noem "Host" later), en anderzijds voor de robot ("Client").
De programmering op de afstandsbediening heeft een stroomschema weergegeven op de eerste afbeelding. Het is verantwoordelijk voor het initialiseren verbinding verbroken verbinding opnieuw tot stand brengen, codering van opdrachten en feedback van client voor de gebruiker. Ook zal er een LCD menusysteem voorzien van huidige statusgegevens van de controller, zodat real-time parameter aanpassing, kalibratie, enzovoort.
Tweede foto is het stroomschema voor de client. Het is verantwoordelijk voor het accepteren van verbinding, decoderen van opdrachten en communiceren terug.
Communicatie
Voor het verzenden van gegevens, want we zijn met behulp van de seriële pinnen op de Arduino, zal mij zitten using Serial.write() voor het verzenden van gegevens. Deze functie stuurt één byte van gegevens waardoor de max waarde die we kunnen overbrengen is 255 telkens wanneer die we deze functie aanroepen.
Je zou kunnen afvragen wat we moeten doen over de ingangen van de potentiometers en joysticks, zoals zij een max waarde van 1023 hebben. We hebben twee opties, een downgrade van de resolutie de waarde tussen 0 en 1023 toewijzen aan een nieuwe waarde tussen 0 en 255, die kunnen worden geschikt in één byte. Tweede optie is voor de behandeling van het nummer op termijn van bits (1024 kan worden weergegeven met 10 bits), die kan afzonderlijk als twee pakketten verzenden. Toen ze op de client-kant aankwamen, brengen wij terug samen als één getal. Zoals u, voor een enkele waarde weet wellicht, zou verzenden van twee bytes langer duren dan één byte. Hoewel er minder nauwkeurig, we soms niet nodig dat niveau van nauwkeurigheid en liever kleinere latentie. Zo ben ik van plan om het nemen van beide methoden in de mededeling van de afstandsbediening, zodat de gebruiker kan kiezen welke weg te gaan is afhankelijk van de situatie.
Koppeling naar het bronbestand kan worden gevonden op het project log. Zoals ik al zei, moet u weten hoe te gebruiken Arduino te gebruiken van de broncode.