Stap 8: Seriële communicatie (deel 2) - draadloze Serial
Voor draadloze seriële communicatie kocht ik in eerste instantie sommige XBee Series 1 1mW modules, gewoon om te proberen hen. Een XBee schild is vereist voor de Arduino en een XBee USB Explorer (of equivalent) is vereist op de zijkant van de laptop. Aangezien ik een Arduino Mega gebruikte, verbonden ik heb de relevante pinnen op het schild XBee in de Arduino Mega pinnen voor de tweede seriële hardware-interface.
Ik vond dat de serie 1-modules waren vrij gemakkelijk te installeren met behulp van de toepassing van de XCTU (Zie de handleiding van Sparkfun: https://learn.sparkfun.com/tutorials/exploring-xbees-and-xctu). Ik kwam echter in enkele beperkingen. De eerste is een voor de hand liggende - met 1mW modules, het bruikbare bereik was zeer beperkt, en voor geen verloren gegane berichten, kon ik alleen gaan zo ver als ongeveer 3m! Ik kon krijgen beter bereik met een lange USB-kabel. De tweede is een belangrijker beperking en lijkt te zijn hardware gebaseerd. Ik vond dat ik niet betrouwbare communicatie bij 50Hz, zelfs met de XBees die is geconfigureerd voor een baud-rate van 38400 krijgen kon. Ik verhoogde de vertraging, zodat het bericht tarief zou ongeveer 25Hz, en ik had veel beter succes. Bij 25Hz, kon ik krijgen stabiele communicatie binnen 3m. Ik vond ook dat toen ik ging buiten het bereik, de berichten zou worden geschrapt, maar meteen herstellen zou wanneer teruggebracht in bereik. Om te controleren als de seriële communicatie goed werkt was, ik zag de seriële input / output textboxes op de C# programma GUI. Het seriële invoervak moet een zeer stabiele tekenreeks, die overeenkomt met de uitgang voor seriële vak worden weergegeven. Als de seriële invoervak met lege of beschadigde gegevens het opvlammen gestart, dat betekende dat de berichten waren niet doordringt.
Na het krijgen van deze modules werken, bestelde ik sommige hogere aangedreven modules. Zien dat zowel de hoge aangedreven Series 1 als de Series 2 modules beschikbaar waren, ging ik voor de iets goedkopere XBee serie 2 Pro (63mW)-modules, in plaats van de XBee serie 1 Pro (60mW)-modules. Ik had gelezen dat ze moeilijker te installeren waren, maar kunnen worden gebruikt in transparant (AT) modus, net als de serie 1-modules. Ik geconfigureerd de modules en heb ze om te praten met elkaar op 38400 baud (Opmerking: één module moet worden geflitst als een "coördinator" en de andere modules moet een "router"). Ik vervolgens geïnstalleerd in het schild van de Arduino, en kwam onmiddellijk in de problemen. Bij 25Hz, kon ik niet helemaal betrouwbare communicatie krijgen. Als u wilt controleren wat er gebeurde, weerklonk ik de ontvangen berichten van de Arduino via de Arduino de eerste seriële poort (d.w.z. USB-kabel). Met behulp van de Arduino seriële monitor op mijn laptop, vond ik dat de serie 2 XBees berichten in de helft hakken of opeenvolgende berichten samen stampen waren. De Arduino zou ontvangen dus, soms het einde de helft van een tekenreeks aan de eerste helft van de volgende tekenreeks vast. Ik moest het verhogen van de vertraging, zodat de frequentie gedaald tot ongeveer 13Hz voordat ik schijnbaar betrouwbare seriële communicatie over korte bereiken krijgen kon. Het nadeel van de lagere frequentie bericht is dat het meer vertraging tussen controller input, en van de auto verkeer introduceert. De lagere frequentie heeft de problemen echter niet volledig opgelost. Over langere afstanden, de seriële data corruptie nog gebeurd, en de interface hebben niet herstellen als meegebracht in te sluiten bereik.
Dus, uiteindelijk heb ik met al deze problemen, kopen van een paar van serie 1 Pro 60mW-modules. In termen van de seriële interface, ze werken net zo goed als de 1mW Series 1 modules - er is geen gegevensbeschadiging of een vreemd bericht gedrag bij bereik. Hun verspreidingsgebied is ook veel beter dan de 1mW modules (zoals verwacht).
Kortom, als u van XBees in een project voor eenvoudige point-to-point communicatie gebruikmaakt, blijf weg uit de serie 2 XBee modules! De serie 1-modules uitvoeren oneindig veel beter en zijn minder problematisch (dat verklaart wellicht hun populariteit en hogere prijs).
(Op een verwante nota, is er iemand in Australië die wil kopen sommige licht XBee serie 2 Pro 63mW-modules gebruikt?:-P)