Arduino sans fil Programming with XBee série 1 ou 2 (2 / 5 étapes)

Étape 2: Circuit et Code

C’est le circuit qui sera handel la programmation de l’Arduino Duemilanove. Drôle, son basé sur un microcontrôleur Arduino lui-même. J’ai joint une photo du schéma dans le cas où vous ne pouvez pas ouvrir le fichier d’eagle.

Un rappel sur le circuit :
La chose plus unique sur ce circuit est probablement le fait qu’il utilise une interruption sur la broche numérique 2 qui est connecté à la broche RX de la destination Arduino (l’Arduino qui est destiné à être programmé). Il s’agit de détecter le premier bit bas de données sérielles, qui seront l’IDE vous essayez de réinitialiser l’arduino pour un téléchargement de croquis. Toutefois, l’IDE ne peut pas réinitialiser la destination Arduino directement, mais c’est la raison pour laquelle j’ai inclus l’Arduino intermédiaire (The Arduino qui réinitialisera la destination Arduino). Une fois qu’une interruption est déclenchée une minuterie, vraiment une fonction de retard, qui déclenche un faible à haute impulsion sur D8 commencera. À son tour, D8 est relié à la ligne reset de l’Arduino destination et entraînera sa réinitialisation.

J’ai trouvé un bon moment pour retarder était presque 500ms ou 499500us pour être exact. Je suis arrivé à ceci de surveiller la communication série et réinitialiser la ligne d’un Arduino qui était connecté VIA USB à mon ordinateur portable alors que j’ai téléchargé un programme pour elle et de tâtonnements. J’ai posté une photo des résultats dans cette étape, c’est celui avec le programme Matlab fonctionnant comme un oscilloscope. C’est peut-être un point d’amélioration, car selon l’image, je peux raccourcir le délai à 100ms ou 250ms de la première commande de réinitialisation série. J’ai coincé avec 499500us parce que cela a fonctionné et un deuxième téléchargement plus court ne valait pas une autre heure de débogage pour moi. Vous pouvez voir que 499500us n’est pas un nombre très genral pour arriver à. J’ai dû essayer 490ms, 495ms, 499ms, 500ms, 501ms, 505ms,... avant mon arrivée à 499500us.

Afin de maintenir l’interruption de réinitialisation la destination Arduino sur chaque reçue tranmission de série lors du téléchargement, j’ai inclus un délai d’attente de 60 s. Qui semble être de combien de temps il faudrait pour télécharger même un programme de ~ 30kb; la taille maximale possible. Cependant le temps de télécharger un programme de 1 100 octets est environ 5 s donc j’ai inclus une autre interruption qui interrompt le délai d’attente si une haute tension est détecté sur la broche de A0 de la destination Arduino. Par conséquent, si vous incluez quelques lignes de code qu’un niveau élevé sur la broche A0 dans la routine setup() de votre destination Arduino entre que vous permettra de réduire considérablement le temps des impulsions télécharge pour vos petits croquis. J’ai programmé une DEL bleue d’allumer sur lorsque le délai d’attente est actif. Indiquant que vous téléchargez, et rien d’autre peut être transmise à l’époque.

Un dernier mot pour cette étape. Je recommande fortement de mettre ce circuit sur un bouclier et en utilisant les en-têtes femelles pour monter le XBee. Cela va non seulement faire votre circuit beaucoup plus robuste, une œuvre d’art, pas définitivement réglées un XBee, mais également accélérer votre prototypage ainsi ; qui est probablement ce que vous faites lorsque votre téléchargement de code assez souvent à benift de le faire sans fil. Si vous n'êtes pas prêt pas souder, cependant, ou Don't belive me lol, vous pouvez toujours planche à pain le ciruit et utilisez-le comme ça. Qui est ce que j’ai fait quand j’étais prototypage ce circuit.

Pour une raison quelconque, que je ne peux pas joindre mon code ici, savez-vous pourquoi ? J’ai essayé Chrome et Explorer. Donc j’ai collé ci-dessous.

/*
Cette esquisse est destinée à être monté sur un Arduino (j’ai utilisé un 5v UNO) qui va être utilisé
pour réinitialiser un Arduino Duemilanove qui est censé programmé sans fil. Il a un
interruption sur la broche 2 (lié au RX sur destination Arduino pour savoir quand un téléchargement
est tentée et donc réinitialiser la destination Arduino au moment approriate.
Une autre interruption existe sur la broche 3 (lié au A0 sur destination Arduino) qui est utilisée
comme une épingle de signalisation de l’Arduino programmée à raconter cet Arduino qui le
processus de programmation a conclu. Un exemple d’une telle routine de signalisation
ci-dessous. Concernant les meilleures pratiques, incluez-le dans la première ligne de votre routine setup() de votre
Arduino programmée.

pinMode (A0, sortie) ;
digitalWrite (A0, faible) ;
Delay(1) ;
digitalWrite (A0, élevé) ;
Delay(1) ;
digitalWrite (A0, faible) ;
pinMode (entrée, A0) ;

Cependant, ce n’est pas nécessaire, parce que ce programme comprend une 60 s timeout après
qui encore une fois, vous pouvez programmer cette puce. Les précités code arrête simplement la
délai d’attente, ce qui vous permet de télécharger le code immeadelty après votre téléchargement précédent. Dans l’un
cas, que vous ne pouvez pas télécharger jusqu'à ce que la LED bleue sur D4 s’éteigne.
*/

volatil démarrage booléen = false ;
boolean volatile = false ;

public static byte resetpin = 8 ;
public static 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, révisable, faible) ;      Cette broche est reliée à la ligne RX de l’autre Arduino
attachInterrupt (1, stopignore, HIGH) ;   Cette broche est attachée à A0, d’autre l’Arduino
detachInterrupt(1) ;    Cependant cette interruption est nécessaire uniquement lorsque l’un a déclenché

}

void loop()
{
if(Startup)
{
detachInterrupt(0) ;  donc nous ne pas re-encore une fois au milieu de l’upload
digitalWrite(resetpin,LOW) ;

delayMicroseconds(499500) ; 499500us a bien fonctionné

digitalWrite(blueledpin,HIGH) ;
digitalWrite(resetpin,HIGH) ;  porter haut pour arrêter la réinitialisation de l’Arduino
peut-être insérer une petite pause ici
attachInterrupt (1, stopignore, HIGH) ;
Startup = false ;

pour (unsigned int j’ai = 0; j’ai < 60000; i = i + 50) //delay un total de 60 s à moins que « fait » est vrai
{
digitalWrite(blueledpin,LOW) ;
Delay(25) ;
digitalWrite(blueledpin,HIGH) ;
Delay(25) ;
if(Done) //then arrêter timeout parce que le téléchargement est terminé
{
J’ai = 60000 ;
rupture ;
}
}

réinitialiser pour le téléchargement de code suivant
attachInterrupt (0, révisable, faible) ;
detachInterrupt(1) ;
= false ;
digitalWrite(blueledpin,LOW) ;

}
}

resetter() Sub //triggered seulement au début d’un téléchargement. Par exemple premier octet de poids faible d’un téléchargement
{
Startup = true ;
digitalWrite(blueledpin,HIGH) ;
}

Sub stopignore()
{
= true ;
}

Articles Liés

Tutoriel de Shield Arduino sans fil SD

Tutoriel de Shield Arduino sans fil SD

comme son nom l'indique, le bouclier de l'Arduino sans fil SD remplit deux fonctions. Avant tout, ce bouclier permet de vous facilement l'interface avec les modules EMETTEUR-RECEPTEUR Xbee pour créer maillez de réseaux et autres périphériques sans fi
Rendre votre projet Arduino sans fil en quelques minutes, avec le bouclier d’inventeurs sans fil

Rendre votre projet Arduino sans fil en quelques minutes, avec le bouclier d’inventeurs sans fil

le bouclier inventeurs utilise un tuyau sans fil, qui est un module RF sans fil spécial qui vous permet facilement et de manière fiable, envoyer et recevoir les données sans erreur sans fil entre deux ou plusieurs cartes Arduino.C'est Long Range – le
Arduino sans fil voiture

Arduino sans fil voiture

SalutCe projet est réalisé avec 2 planches arduinos (UNO pour voiture) et NANO pour l'émetteur.J'utilise aussi puce H-Bridge pour commander des moteurs.L'émetteur-récepteur est NRFL2401 qui est SPI contrôlé par Arduino.La voiture châssis est sur Ebay
Alimenter un Arduino sans fil

Alimenter un Arduino sans fil

voulez jamais pensé d'alimenter un Arduino sans fil ? Vérifiez-le dehors.Etape 1: Obtenir ces choses Ces pour ce dont vous avez besoin.1.Arduino(must)2. compartiment (6v)3.4 x piles AAQuelqu'un at-il essayer avec une batterie 9v. Si les travaux, s'il
Streaming Audio et la reconnaissance vocale avec Arduino sans fil

Streaming Audio et la reconnaissance vocale avec Arduino sans fil

dans ce projet j'ai connecter ma carte Arduino à un WiFly module (https://www.sparkfun.com/products/10822) de Roving Networks et de flux audio pour le PC, alors que BitVoicer (http://www.bitsophia.com/BitVoicer.aspx) peut exécuter la reconnaissance v
Arduino sans fil Animatronic main

Arduino sans fil Animatronic main

BTW!!! Cette instructable est awsomeeeeeeC'est un très simple mais en même temps un projet très difficile selon votre niveau de compétence. Permet d'obtenir à bâtiment !Ce qu'il s'agit, est un coup de main animatronique sans fil qui ne nécessite pas
Arduino sans fil contrôlée de réservoir (nRF24L01)

Arduino sans fil contrôlée de réservoir (nRF24L01)

Salut!Aujourd'hui je vais vous montrer comment construire un réservoir d'Arduino contrôlée et télécommande. La 3d imprimés parties du réservoir (à l'exception du contrôleur, suivre le guide et le réservoir de la couverture) ont été conçus par timmicl
Arduino WiFi thermomètre (avec page web) - Arduino sans fil

Arduino WiFi thermomètre (avec page web) - Arduino sans fil

Ce dont vous avez besoinUne carte Arduino (n'importe quelle plaque compatible est OK).LM-35 (pour utiliser avec le fichier fourni, vous pouvez utiliser DS18B20 mais vous devez convertir le code source respectivement).Module de HLK-RM04 WiFi de routeu
Maille simple Arduino sans fil

Maille simple Arduino sans fil

Construire un faible coût maillé sans fil simple à l'aide des arduinos et modules de radio longue portée APC220. Réseaux maillés sans fil peuvent gérer les nœuds individuels ne fonctionne ne pas et tolèrent aux environnements comme les forêts et coll
Système de panneau d’affichage en utilisant Arduino sans fil

Système de panneau d’affichage en utilisant Arduino sans fil

Ici, dans cette Instrcutable, je vous présente un système simple de panneau d'affichage sans fil en utilisant deux Arduinos et 434 MHz demander des Modules RF.Ce système peut servir dans les écoles et collèges à clignoter un avis ou un message sur un
Contrôler quoi que ce soit avec la manette ps2 et Arduino (sans fil)

Contrôler quoi que ce soit avec la manette ps2 et Arduino (sans fil)

dans ce instructable vous apprendrez comment contrôler une led avec un contrôleur de la playstation 2 et un Arduino, mais vous pouvez contrôler pratiquement tout ce que vous voulez.Étape 1: matériauxVous aurez besoin :Arduinomanette PS2 (sans fil ou
Clavier avec Arduino sans fil

Clavier avec Arduino sans fil

Salut tout le monde, dans ce tutoriel je vais vous montrer comment construire un clavier sans fil avec arduino et bluetooth qui permet d'écrire à distance dans notre Pc avec système d'exploitation windows.Voir la vidéoLe programme permet uniquement d
NRF2L401 système de Transmission de données PC avec Arduino sans fil

NRF2L401 système de Transmission de données PC avec Arduino sans fil

L'équipe ICStation vous présenter comment faire ce NRF2L401 sans fil PC Data Transmission système basé sur ICStation UNO et l'ICStation mega2560 avec Arduino.Le système de Transmission de données NRF2L401 sans fil PC fonctionne sous tension DC5V et u
Dispositif de détecteur de boîtes aux lettres Arduino sans fil

Dispositif de détecteur de boîtes aux lettres Arduino sans fil

Si vous êtes comme moi, vous attends avec impatience la boîte aux lettres qui arrivent comme un gamin attendant nerveusement ses cadeaux le soir de Noël. Étant donné que le temps qu'arrive de ma boîte aux lettres n'est pas toujours cohérent, j'ai vér