Arduino draadloze programmeren met XBee serie 1 of 2 (2 / 5 stap)

Stap 2: Circuit en Code


Dit is het circuit dat de programmering van de Arduino Duemilanove Georg Friedrich Händel. Grappig genoeg, zijn gebaseerd op een Arduino microcontroller zelf. Ik gehecht een beeld van het schema in het geval dat u de adelaar-bestand niet openen.

Een achtergrond op het circuit:
Het meest unieke ding over dit circuit is waarschijnlijk het feit dat het gebruik maakt van een interrupt op digitale pin 2 die is aangesloten op de RX-pin van de Arduino (de Arduino die is bestemd om te worden geprogrammeerd)-bestemming. Dit is om te ontdekken de eerste lage bitsnelheid van seriële data, die de IDE zullen proberen te herstellen van de arduino voor het uploaden van een schets. Echter de IDE niet rechtstreeks de bestemming Arduino herstellen, maar dat is waarom ik opgenomen de intermediaire Arduino (The Arduino dat zal opnieuw de bestemming Arduino). Zodra een interrupt wordt geactiveerd een timer, echt een vertraging-functie, die een lage tot hoge puls aan D8 activeert zal beginnen. Op zijn beurt D8 is verbonden met de bestemming Arduino van reset lijn en zal leiden tot het opnieuw instellen.

Ik vond het een goed moment om de vertraging was bijna 500ms, of 499500us moet exact. Ik arriveerde bij dit door monitioring de seriële communicatieboekjes en reset lijn van een Arduino die is aangesloten VIA USB op mijn laptop terwijl ik heb geüpload een programma aan het, en trial and error. Ik postte een foto van de resultaten in deze stap, is degene met de Matlab-programma fungeren als een oscilloscoop. Dit kan zijn een punt van verbetering, omdat volgens de foto ik de vertraging 100ms of 250ms uit de eerste seriële herstelopdracht verkorten kan. Ik geplakt met 499500us omdat het werkte en de helft van een tweede kortere upload niet waard een uur was van foutopsporing voor mij. U kunt zien dat 499500us is geen zeer genral getal om te komen tot. Mij had voor uitproberen 490ms, 495ms, 499ms, 500ms, 501ms, 505ms,... voordat ik aankwam aan 499500us.

Om te voorkomen dat de interrupt reseting de bestemming Arduino op elke ontvangen seriële tranmission tijdens het uploaden ik opgenomen een time-out van de jaren 60. Die lijkt te zijn hoe lang het zou duren om te uploaden zelfs een ~ 30kb programma; de maximale grootte die mogelijk is. Echter de tijd voor het uploaden van een programma van 1.100 byte is ongeveer 5s zodat ik opgenomen een andere interrupt die stopt de time-out als een hoog voltage wordt ontdekt op de A0-pin van de Arduino-bestemming. Daarom, als u opneemt van een paar lijnen van code die een hoog niveau op de A0 pin in de setup-routine van uw bestemming Arduino die u aanzienlijk van de tijd tussen verkorten zal pulse uploads voor uw kleine schetsen. Ik een blauwe LED licht op wanneer de time-out actief is geprogrammeerd. Die aangeeft dat u uploadt, en niets anders kan worden overgedragen op het moment.

Één laatste nota voor deze stap. I recommend highly dit circuit zetten een schild, en met behulp van de vrouwelijke headers te monteren de XBee. Dit zal niet alleen uw circuit veel steviger, een kunstwerk te maken, niet permanent comission een XBee, maar ook vaart opwaarts uw prototyping evenals; dat is waarschijnlijk wat je doet wanneer uw uploaden vaak genoeg code te benift draadloos doen. Als u bent niet klaar niet solderen, wel of niet belive me lol, u kunt altijd het ciruit breadboard en dergelijks gebruiken. Dat is wat ik deed toen ik prototyping dit circuit.

Voor sommige reden hecht ik kan niet mijn code hier, weet u waarom? Ik heb geprobeerd Chrome en Explorer. Dus ik het hieronder geplakt.

/*
Deze sketch is bedoeld om te worden gemonteerd op een Arduino (ik gebruikte een UNO-5v) dat zal worden gebruikt
bedoeld om te herstellen van een Arduino Duemilanove thats draadloos geprogrammeerd. Het heeft een
onderbreken op pin 2 (gebonden aan RX op bestemming Arduino om te weten wanneer een upload
wordt geprobeerd en daarom opnieuw instellen van de bestemming Arduino op het geëigende moment.
Een andere interrupt bestaat op pin 3 (gebonden aan A0 op bestemming Arduino) die wordt gebruikt
Als een signalering pin door de geprogrammeerde Arduino te vertellen dit Arduino die de
programmeringsproces heeft gesloten. Een voorbeeld van een dergelijke signalering routine wordt weergegeven
hieronder. Beste praktijken, opnemen als de eerste regel in uw setup-routine van uw
geprogrammeerde Arduino.

pinMode (A0, uitvoer);
digitalWrite (A0, laag);
delay(1);
digitalWrite (A0, hoge);
delay(1);
digitalWrite (A0, laag);
pinMode (A0, INPUT);

Echter is dit niet nodig, omdat dit programma een 60s omvat time-out na
die kunt u opnieuw programmeren van deze chip. De hiervoor genoemde code gewoon stopt de
timeout, zodat u kunt uploaden van code immeadelty na het uploaden van uw vorige. In een
geval die u kan niet uploaden totdat de blauwe LED op D4 uitschakelt.
*/

vluchtige opstarten van Boole = vals;
vluchtige boolean = false;

statische byte resetpin = 8;
statische byte blueledpin = 4;
VOID Setup
{
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(blueledpin,OUTPUT);
pinMode(resetpin,OUTPUT);
pinMode(13,OUTPUT);
digitalWrite(blueledpin,LOW);
digitalWrite(resetpin,HIGH);

attachInterrupt (0, resetter, laag);      deze pin is aangesloten op de RX-lijn van de andere Arduino
attachInterrupt (1, stopignore, HIGH);   deze pin is op A0 van de andere Arduino aangesloten
detachInterrupt(1);    Deze interrupt is echter alleen noodzakelijk wanneer het ene heeft geactiveerd

}

void loop
{
if(Startup)
{
detachInterrupt(0);  dus we niet weer opnieuw in het midden van de upload instellen doen
digitalWrite(resetpin,LOW);

delayMicroseconds(499500); 499500us werkte goed

digitalWrite(blueledpin,HIGH);
digitalWrite(resetpin,HIGH);  brengen hoge te stoppen opnieuw de Arduino
misschien een kleine vertraging hier invoegen
attachInterrupt (1, stopignore, HIGH);
opstarten = false;

voor (unsigned int ik = 0; ik < 60000; i = i + 50) //delay totaal 60s tenzij "done" geldt
{
digitalWrite(blueledpin,LOW);
delay(25);
digitalWrite(blueledpin,HIGH);
delay(25);
if(done) //then stoppen timeout omdat de upload is voltooid
{
Ik = 60000;
breken;
}
}

Reset voor de volgende code upload
attachInterrupt (0, resetter, laag);
detachInterrupt(1);
= false;
digitalWrite(blueledpin,LOW);

}
}

ongeldig resetter() //triggered alleen aan het begin van een upload. B.V. eerste lage byte van een upload
{
opstarten = true;
digitalWrite(blueledpin,HIGH);
}

VOID stopignore()
{
= true;
}

Gerelateerde Artikelen

Lange afstand, 1.8 km, Arduino Arduino draadloze mededeling met de HC-12.

Lange afstand, 1.8 km, Arduino Arduino draadloze mededeling met de HC-12.

In dit instructable leert u hoe te communiceren tussen Arduinos over een lange afstand tot 1,8 km in open lucht.De HC-12 is een draadloze seriële communicatiemodule die is zeer nuttig, uiterst krachtige en makkelijk te gebruiken.Eerst leert u hoe een
Eenvoudige WF32 programmeren met behulp van de Arduino IDE

Eenvoudige WF32 programmeren met behulp van de Arduino IDE

Deze handleiding krijgt u begon met basic Arduino IDE programmeren met behulp van uw chipKIT WF32 board. Voordat je kunt krijgen bij het programmeren van je board is een paar stappen nodig om de troep op opwaarts.Wat u nodig zult hebben is uw WF32 be
Maak van uw project van Arduino draadloze in minuten, met de draadloze uitvinders Shield

Maak van uw project van Arduino draadloze in minuten, met de draadloze uitvinders Shield

de uitvinders-shield gebruik van een draadloze pijp, dat een speciale draadloze RF-module die u toelaat is om gemakkelijk en betrouwbaar, verzenden en ontvangen van draadloze foutvrij gegevens tussen twee of meer Arduino boards Arduino boards.Het is
Arduino WiFi Thermometer (met web page) - Arduino draadloze

Arduino WiFi Thermometer (met web page) - Arduino draadloze

Wat je nodig hebtEen Arduino board (compatibel bestuur is OK).LM-35 (om te gebruiken met de meegeleverde bestand kunt u DS18B20 maar je moet de broncode respectievelijk converteren).HLK-RM04 WiFi router module.5V voeding of Power supply en verordenin
Het gebruik van kras of Arduino te programmeren een mBot met Makeblock

Het gebruik van kras of Arduino te programmeren een mBot met Makeblock

Een paar dagen geleden, maakte ik een robot door Makeblock. Wij noemen het mBot---een robot die beter aansluit bij onderwijs en thuisgebruik. Het is eenvoudig te gebruiken, en meer betaalbaar. Wij geloven dat dit de beste robotic product in zijn cate
De ESP8266 WeMos-D1R2 programmeren met behulp van de Arduino software/IDE

De ESP8266 WeMos-D1R2 programmeren met behulp van de Arduino software/IDE

In dit Instructable begeleidt ik u door de benodigde stappen voor het installeren, configureren en het bestuur van de WeMos-D1R2 met behulp van de Arduino IDE program.WeMos-D1R2 is dat een ESP8266-12 WiFi ingeschakeld microprocessor eenheid gebaseerd
Arduino RC auto met FPV Camera

Arduino RC auto met FPV Camera

Dit Instructable beschrijft een afstandsbediening auto die heb ik samen te stellen. De auto heeft geen echte doel - het was gewoon een uitdaging, om te zien wat kan worden gemaakt met algemeen beschikbare hardware. Het heeft de volgende functies:-4 x
Xbees (serie 2) gebruiken voor het besturen van een motor

Xbees (serie 2) gebruiken voor het besturen van een motor

met twee xbees, een arduino, een xbee exploreren een h-brug, draadloos bedienen een gelijkstroommotor om te draaien in beide richtingen (laatste video).Opmerking: Ik gebruikte de xbee ik gekoppeld aan, maar voor een één op één communicatie, in plaats
Verwerking van controles R/C auto met XBee modules

Verwerking van controles R/C auto met XBee modules

dit instructable is een wijziging van mijn presentatie naar Chicago verwerking Gemeenschap bij de (EVL) elektronische Visualization Laboratory, Universiteit van Illinois in Chicago op 1 oktober 2012. In het onderwerp vanProcessing Library serieVerwer
Arduino draadloze SD Shield Tutorial

Arduino draadloze SD Shield Tutorial

zoals de naam al impliceert, het schild van de Arduino Wireless SD heeft twee functies. Bovenal kunt dit schild u gemakkelijk interface met Xbee transceiver modules maken mesh netwerken en andere draadloze apparaten. Ten tweede, de micro SD-aansluiti
Arduino draadloze upload programma zonder USB-kabel

Arduino draadloze upload programma zonder USB-kabel

Arduino draadloze programmeur is ontworpen voor upload het programma van uw PC/laptop aan Arduino board gewoon door Bluetooth.Dus nu dat kunt u het programma bijwerken tot Arduino boards Arduino boards die in het vak of de koffer zonder elke USB-aans
Arduino-scheet-O-Meter

Arduino-scheet-O-Meter

OH NO! Hij deed het niet!Ja deed ik!Mijn project is eenvoudig: scheten in een stoel en het verzenden van het signaal draadloos aan een panel waarin de intensiteit van de scheet!Woorden van voorzichtigheid: Neem dan forceer niet jezelf aan fart, u mis
Arduino "Knipperen praten" met behulp van Charlieplexing

Arduino "Knipperen praten" met behulp van Charlieplexing

Dit project kan worden geclassificeerd als een apparaat van AAC (alternatief en Augmentative communicatie), die worden gebruikt als een communicatiemiddel voor mensen die lijden aan slopende ziekten zoals ALS en dergelijke, die leiden tot volledige v
Arduino RC auto met lange afstand en aangepaste zender.

Arduino RC auto met lange afstand en aangepaste zender.

Hallo! Dit is mijn eerste instructable.Daarin zal ik u tonen hoe te maken van een RC auto met Arduino en de draadloze nrf24l01 +-module, of hoe om te upgraden een goedkope 27 MHz RC auto.De oude RC auto, die van I het chassis, en de heli Controller n