Stap 6: Enkele notities over de XBee
Met behulp van de XBee kan worden lastig en verwarrend zijn als u niet begrijpt wat/hoe dat de XBee eenheid communiceert met de Arduino en andere XBees. Deze sectie zal proberen en zo goed als ik kan uitleggen hoe het program van de Arduino met de XBee gehecht, evenals de XBee kunt verzenden en ontvangen van informatie.
Om te beginnen worden opgemerkt moet de de XBee is een seriële communicatie-apparaat. Aangezien dat het geval is, moet de XBee gebruiken de Tx en Rx pinnen (D0 en D1). Dit vormt een probleem. De USB-aansluiting voor de computer maakt ook gebruik van deze pinnen om te praten met de Arduino. Omdat dit het geval is, kunt u de XBee en de USB op hetzelfde moment. Om dit te verhelpen, moet u de jumpers voorzien van het schild XBee schakelen tussen draadloze communicatie XBee en USB-communicatie.
Om te programmeren van de Arduino, moet het schild in USB-communicatie-modus. Dit betekent dat de jumpers moeten worden geplaatst in het tweede standpunt gezien in het diagram van de pin en opnieuw in de eerste afbeelding van het schild.
Voor het gebruik van de draadloze communicatie XBee, moet het schild in XBee modus. Dit betekent dat de jumpers op de eerste positie in het diagram van de pin en opnieuw in de tweede afbeelding van het schild gezien moeten worden geplaatst.
Dit was een van de moeilijkste onderdelen van het project. Omdat het zo moeilijk was, heb ik wat debugging code opgenomen in de sectie zodat u uw XBee verbindingen testen kunt voordat vooruit. Er zijn 3 programma's binnen dit zip-bestand. Een is voor de ontvangende board, een is voor de verzendende board en de andere is een setup-script dat kan worden gebruikt voor het aanpassen van de XBee hardware met behulp van de X-CTU-terminal. De transmit code vertelt de ontvanger op en uitschakelen een LED op basis van een ontvangen teken. Om te testen de XBee comms, een Arduino met de code verzenden en andere met de ontvangen code te laden. Alle van de juiste verbindingen maken en Bekijk de LED-turn in- en uitschakelen.
Één meer nota over de XBee, timing is alles. Zorg ervoor dat er zijn geen onnodige vertragingen of onderbrekingen in uw code dingen neer vertragen. Ook is het van het grootste belang om duidelijk de seriële buffer (met Serial.flush()) na elke lezing cyclus. Als u dat niet doet, borgd achterstallige zal worden in de seriële buffer en de rover horten en stoten zal fungeren. De seriële buffer wissen na elke iteratie zorgt ervoor alleen de nieuwste opdracht dat wordt gelezen.