Arduino

Arduino en XBee (2)

Sunday, September 2, 2012
Arduino en XBee (2)Like0

Zoals ik in mijn vorige test al uitlegde, heb ik twee XBees besteld bij iPrototype.nl. Dat vind ik zelf een fijne Nederlandse webwinkel die redelijke prijzen heeft. Een collega zweert zelf bij Piet Floris en weer een andere collega koopt regelmatig in Amerika rechtstreeks bij Sparkfun.

Ik heb zelf twee van deze 1 mW XBees gekocht, waarvan ik er eentje als verzender en een andere als ontvanger wilde gaan gebruiken. Omdat ik twee Arduinos heb momenteel (een Mega en een Uno) heb ik er meteen twee XBee Shields bij gekocht. Die klik je bovenop je Arduino en daar bevestig je je eigen XBees dan weer op. Mocht je later een sterkere XBee nodig hebben, dan past die op zo’n zelfde shield. Ikzelf had twee shields gekocht omdat ik lui ben en niet zelf wilde uitzoeken hoe ik zo’n ding op een breadboard moet bevestigen en welke pin outputs ik dan nodig heb, maar, zo bleek later, er zijn andere redenen die een shield tot een verstandige keuze maken. Daaover zo meteen meer.

Toen ik mijn XBee op het shield klikte begon er een rood lampje vervaarlijk te knipperen, maar alles werkt gewoon dus ik denk dat dat hetzelfde is als onze kat: het blaast en lijkt gevaarlijk maar doet eigenlijk helemaal niks.

Leren praten

Als je alles op elkaar geklikt hebt (shield op Arduino, Xbee op shield) zul je je XBee moeten inregelen. Hiervoor is een programma beschikbaar dat X-CTU heet. Dat kun je gratis downloaden en installeren.

Omdat de XBee op mijn Arduino zit en de USB aansluiting in principe op zoek is naar de Arduino, zul je de Arduino even buitenspel moeten zetten voordat X-CTU kan praten met je XBee. Dat schijnt onder andere te kunnen door daadwerkelijk de langwerpige processor van je Arduino af te trekken, maar dat heb ik zelf niet geprobeerd. De manier die ik heb gebruikt is de ‘ground’ te verbinden met ‘reset’ op je Arduino door ze met een jumpwire te verbinden. Dat heeft hetzelfde resultaat maar de kans is kleiner dat je wat verbuigt of anderzijds sloopt.

De tutorial die ik heb gebruikt voor het programmeren van mijn XBees is te vinden op Youtube:
How to Setup configurate Xbee Devices (Hard and Software) with Arduino HQ Part 1

Wat kanttekeningen bij dat filmpje:
Het model dat ik besteld heb, had de “Function Set” opties niet zoals beschreven in het Youtube filmpje. Dit blijkt, in ieder geval om één XBee met een andere XBee te laten praten, niet uit te maken – het werkt, na instellen van het Destination Adress gewoon.

Een ander probleem waar ik tegenaan liep is dat in eerste instantie de Com test niet werkte (6:06). Na wat steviger aandrukken van het shield en de XBee verliep het beter.

Het XBee shield dat je kan bestellen bij iPrototype.nl heeft een kleine switch “USB / XBee”. Die switch heb ik zelf erg vaak gebruikt. Als je een Arduino sketch wil uploaden naar je board met het XBee shield erop dan moet deze switch op “USB” staan. Deed ik dat niet, dan bleef de Arduino software hangen na “compiling…” en gaf hij de COM(4, in mijn geval) poort niet meteen vrij.

Als je wil dat de XBee contact kan leggen met andere XBees, dan moet de switch dus op XBee staan. Normaal gesproken als je iets aan je sketch wil veranderen, zet je dus je switch van Xbee op USB, je upload je sketch en je zet de switch weer terug op XBee. Dan duurt het een paar seconden voor je XBees weer contact hebben en dan zou het moeten werken!

Xbee zonder shield

Zo’n shield is natuurlijk handig, maar ik besloot dat het handiger zou zijn als ik alles, inclusief XBee, op een printplaat (perboard) kwijt zou kunnen. Dat bleek niet zo makkelijk als je in eerste instantie zou bedenken. Ik vond het na een tijdje niet belangrijk genoeg om het helemaal uit te zoeken, maar mocht jij dat wel van plan zijn, houd hier dan rekening mee:

– De afstand tussen de pootjes van de XBee is niet hetzelfde als de afstand tussen de gaatjes op je breadboard of perfboard. Dat is niet zo’n groot probleem – je kan adapter setjes (breakout boards) kopen op de grote Arduino sites. Vergeet dan ook niet de XBee sockets en male pin headers erbij aan te schaffen om ze te kunnen bevestigen.

– Een groter pr0bleem vond ik dat Xbees op 3.3 volt werken. In eerste instantie lijkt dat ook niet zo’n groot probleem. Immers, de Arduino heeft een 3v3 pin-uitgang. En dat is voor de stroomvoorziening prima. Maar de Tx en Rx (transmit and receive) uitgangen, dus de daadwerkelijke data die je verzend van je XBee naar je Arduino, wordt, voor zover ik het begrijp, ook verzonden met 5 volt. Die moet je dus ook terugbrengen naar 3.3 volt. Dat blijkt allemaal niet zo makkelijk te zijn als het lijkt, dus het beste kun je een bestaande adapter kopen.  Misschien zoiets als dit.

Maar ikzelf besloot  uiteindelijk dat een shield goed genoeg zou werken.

Multipoint netwerken

Ik heb alleen nog tests gedaan met 1 mW XBee op 1 mW XBee, maar het is ook mogelijk om meerdere  XBees met dezelfde XBee te laten praten. Omdat ik daar voor een toekomstig persoonlijk project in de toekomst ongetwijfeld tijdellijk in geïnteresseerd raak, zal ik daar later vast nog een keer op terugkomen.

0

Leave a Reply

Your email address will not be published.

Follow @ Guerrilla Games
Instagram has returned invalid data.