Stap 4: Wijzig de lineFollowing.ino programma
We moeten nu ons programma lineFollow.ino wijzigen als de RF-radiokit iets andere eisen heeft dan onze hard gecodeerde seriële poort.
Hier zijn de veranderingen die we moeten maken:
#include "SoftwareSerial.h"
#include "MakeItRobotics.h"
#define rxPin 4
#define txPin 5
MakeItRobotics line_following;
SoftwareSerial mySerial = SoftwareSerial (rxPin, txPin);
int de teller;
We moeten in onze definitie sectie toevoegen van een teller-variabele die wordt gebruikt voor het testen van de draadloze seriële poort. Dit item zal hebben een gegevenstype van int.
VOID Setup
{
Serial.begin(10420);
vertellen van de Arduino te communiceren met zorg: het
PCBdelay(500); vertraging 500 ms
line_following.line_following_setup();
initialiseren van de status van de regel die volgt op robot
line_following.all_stop(); alle motoren stoppen
pinMode (rxPin, INPUT);
pinMode (txPin, OUTPUT);
Stel de gegevenssnelheid voor de SoftwareSerial-poort
mySerial.begin(9600);
mySerial.begin(1200);
Counter = 0;
}
We moeten in onze Setup-functie de volgende wijzigingen aanbrengen: We moeten commentaar uit de mySerial.begin(9600); Command en voeg de volgende opdracht:
mySerial.begin(1200);
1200 is de baud-rate (snelheid van gegevensoverdracht) die de RF Radio's met elkaar communiceren kunnen. Deze waarde kan afwijken voor uw radio's.
Raadpleeg de documentatie bij. In mijn situatie kwam de radio met geen documentatie, dus ik eerst 2400 baud, die niet werken, probeerde dus ik liet vervolgens de baud-rate aan 1200 baud, die werkte.
Ook initialiseren we de variabele counter tot een waarde van 0. In de loop functie moeten we het volgende aan toevoegen:
mySerial.println (sensor_in, HEX);
mySerial.println (counter, DEC);
teller ++;
Eerst commentaar wij uit de mySerial.printLn (sensor_in, HEX); lijn en voeg de volgende regel:
mySerial.printLn (counterm DEC);
Om te testen dat wij onze RF Radio's correct geconfigureerd wil we enkele nummers verzenden onze werkstation. Later wanneer we ervoor zorgen dat onze RF-verbindingen werken we terug naar wat het was voordat de mySerial.printLn() zal veranderen.
Dit zijn al de veranderingen die we moeten maken.
Net hechten de USB-kabel aan op de Arduino USB-connector op uw robot. We zullen eerst compileren en uploaden van het programma naar onze Arduino.
Herinneren we om te controleren om ervoor te zorgen dat we de juiste seriële poortnummer gebruiken, Check de eerdere blog entry "Make: it Robotics starterskit-Software deel", 2", voor meer informatie over het uitvoeren van deze taak.
Vergeet niet dat u niet hoeft te schakelen op de batterij vak switches om de robot communicatie via de seriële poort.
Zodra uw lineFollow.ino programma heeft geüpload naar de Arduino, sluit u uw FTDI USB-kabel op uw computer. Laden van de Arduino IDE, selecteert u de juiste seriële poort en open het programma seriële Monitor. Selecteer de juiste baudrate, in mijn geval heb ik geselecteerd 1200 baud.
Als u alle taken correct uitgevoerd moet dan u het volgende in uw seriële monitorprogramma. Het programma ziet er een beetje anders als dit scherm schot werd genomen uit de ATMEL Studio IDE:
Als uw seriële monitor ontvangt, wat lijkt te zijn een heleboel ongewenste tekens of een heleboel vraagtekens.
Vervolgens uw baud-rate op de seriële monitor komt niet overeen met de baud-rate die u in het programma van uw lineFollow.ino instelt of u moet de baud-rate die door het programma wordt gebruikt als de RF Radio's mogelijk niet ondersteund door deze baud-rate wijzigen:
Het is ook gemakkelijk te corrumperen van de seriële poort, dus in vele situaties, het best gewoon een koppel alle USB-poorten en probeer het opnieuw is, misschien zelfs uw computer te rebooten als je niet kunt krijgen om te werken.
In de volgende blog, tutorial zullen we het opzetten van het programma van de lineFollow.ino sensorgegevens te sturen naar onze computer terwijl de robot draait rond de zwarte cirkel real-time gegevens draadloos worden verzonden naar onze computer.