Communication série de Ryerson MEC830 Mechbot Custom (3 / 4 étapes)

Étape 3: Algorithme pour la réception et de transmission de données

Afin de transmettre des données, j’ai écrit deux fonctions pour mener à bien ce processus, ils sont : send_data(int num) et completion_Scan().

J’ai affecté des variables avec le code correspondant à ma table pour les 2 premiers scénarios appelé à droite et à gauche. Pour cet exemple, nous nous concentrerons uniquement sur la communication que la balle est sur le côté gauche ou droit. Lorsque l’emplacement de la balle est déterminé, la valeur est envoyée à la fonction de send_data où l’entier est divisé en un tableau et les valeurs high(1) pulsé ou low(0). Lorsque toutes les valeurs sont pulsés, la fonction completion_Scan() est appelée et sort uniquement lorsqu’un signal de fin est envoyé de l’Arduino original qui a reçu le message.

Pseudo-code :

 int right=10100; int left = 10010; if (ball is on left side){ send_data(right); completion_Scan(); } if (ball is on the right side){ send_data(left); completion_Scan(); } 

Lorsque send_Data est appelé, l’entier passé est haché dans un tableau de 5 bits en utilisant l’algorithme suivant :

 int send_data(int num){ data[4] = num % 10; data[3] = (num % 100 - data[4])/10; data[2] = (num % 1000 - data[3] - data[4])/100; data[1] = (num % 10000 - data[2] - data[3] - data[4])/1000; data[0] = (num % 100000 - data[1] - data[2] - data[3] - data[4])/10000; 

En utilisant le modulo fonction, j’ai créé un algorithme pour stocker les bits individuels dans une position de choix unique nommée data. Par exemple, si 10100 est envoyé à send_data, puis données [4] vont stocker le reste de 10100 divisé par 10.

données [4] = (10100 mod 10) = 0 ;

données [3] = ((10100 mod 100) - 0) / 10 = 0

données [2] = 1

données [1] = 0

Data [0] = 1

Le tableau d’ensemble des données est traité par une instruction « for » et chaque fois qu’une valeur de 1 est détectée, un signal élevé est pulsé à travers les barbelés pour 200ms. À l’inverse, lorsqu’une valeur de 0 est détectée, un signal faible est pulsé à travers les barbelés pour le même laps de temps.

 for (y=0; y<5; y++){ //send high or low if (data[y]==1){ turn PC5 HIGH } else{ turn PC5 LOW } delay(200); } 

Afin de recevoir des données, le récepteur Arduino est toujours en attente d’un signal initial élevé. Immédiatement après qu’il est détecté, le message envoyé est stocké dans un tableau d’une manière similaire. Le code final est ensuite comparé pour déterminer la sortie désirée.

J’ai inclus le code complet pour les Mechbot et les EVShield. La seule différence est que j’ai inclus les Serial.prints pour le débogage, boutons pour envoyer ou interrompre la communication et un témoin clignotant pendant la transmission. Remarque : vous pouvez télécharger les deux fichiers ou faites un clic droit et sélectionnez « Ouvrir dans un nouvel onglet » pour afficher le code.

Articles Liés

Communication série - Arduino et Linkit One

Communication série - Arduino et Linkit One

Dans ce instructable je vais vous montrer comment établir une communication série entre l'arduino et le One Linkit. Cela vous aiderait à faire un projet plus complexe, avec ces deux conseils.Étape 1: composantsVoici une liste de tous les composants n
Pyduino, interface Arduino avec Python par le biais de communication série

Pyduino, interface Arduino avec Python par le biais de communication série

Apprenez comment interfacer arduino par le biais de communication série avec python en utilisant la bibliothèque de pyduino. Il y a quelques autres tutoriels là-bas sur instructables quant à l'interface arduino avec python, mais ils ne vous montrent
Passer un moteur utilisant Arduino et communication série

Passer un moteur utilisant Arduino et communication série

avez-vous déjà demandé comment les robots se déplacent ?  Avez-vous jamais voulu écrire un programme pour contrôler un robot ?  Dans l'affirmative, ce tutoriel sera un excellent pied-à-terre pour apprendre les commandes électroniques avec l'Arduino M
Communication série une particule Photon et Linkit

Communication série une particule Photon et Linkit

Le Linkit on est une grande planche et la meilleure partie de celui-ci est il est portatif et portable il, est excellent concevoir des dispositifs portables utilisant le microcontrôleur. Un autre microcontrôleur cool qui avec qui je travaille est le
MSP430 COMMUNICATION série à l’aide de ENERGIA et traitement

MSP430 COMMUNICATION série à l’aide de ENERGIA et traitement

Salut tout le monde. Je suis vigneshraja. ici j'ai fait la modification de la couleur selon la valeur analogique lire à partir de 10 k potentiomètre à l'aide de MSP430G2231. J'utilise logiciel Energia pour le programme de communication série. pour fa
Communication série entre android et arduino via telnet

Communication série entre android et arduino via telnet

ObligatoireLogiciel Python 2.7 avec pyserial paquetApplication android mobile TelnetLogiciel ArduinoÉtape 1: IntroductionIci, dans ce instructable j'ai décrit sur une communication série entre Téléphone android et arduino via telnet. Pour tester ceci
Arduino et Matlab : laissez parler utilisant des communications série !

Arduino et Matlab : laissez parler utilisant des communications série !

Salut tout le monde !car lorsque j'ai commencé à jouer avec Arduino, j'ai toujours été errance comment je pourrais faire parler et d'interagir avec l'environnement Matlab d'une manière simple et efficace. Je suis tombé sur de nombreux Instructables e
Communication série avec Arduino

Communication série avec Arduino

à ce stade, vous devriez avoir un robot qui peut penser à lui seul, nous devons être en mesure de puiser dans son processus de pensée. Voir ce qu'il voit. Certaines de ses décisions pour lui faire. essentiellement, nous devons être en mesure de d'ess
Communication série entre android et arduino via bluetooth portable

Communication série entre android et arduino via bluetooth portable

A propos de :Cette instructable parle de communication série entre android et arduino via intégré portable Bluetooth. Je n'ai pas de module Bluetooth séparé. J'ai donc décidé d'utiliser mon ordinateur portable intégré Bluetooth pour une communication
NUC140 Communication série

NUC140 Communication série

Dans ce projet, nous allons faire une communication entre Arduino et Nuvoton NUC140 qui transfèrent des informations vitales en envoyant des données un bit à la fois.Communication série est essentielles pour chaque Micro-controleurs communiquer entre
Processus de communication série en Arduino

Processus de communication série en Arduino

Le matériel de l'Arduino a un support intégré pour communication série sur les broches 0 et 1 (qui va également à l'ordinateur via la connexion USB). La prise en charge native série arrive via un morceau de matériel (intégré dans la puce) appelé un U
Arduino Wireless Communication série

Arduino Wireless Communication série

il y a plusieurs façons de communiquer avec Arduinos distant. J'ai constaté que beaucoup d'entre eux atteint un point de prix légèrement plus élevé que ce que je voudrais. Aussi, ethernet shields (et wifi dito?) consomment beaucoup pins précieux maté
ATtiny85 & ATtiny84 analogiques broches, Communication série, etc.

ATtiny85 & ATtiny84 analogiques broches, Communication série, etc.

j'aime utiliser un ATtiny84 ou un ATtiny85 sur mes projets. Ils peuvent économiser quelques centimes et faire la conception un peu plus petit. L'instruction meilleure pour le paramétrage de ces puces pour être utilisé avec l'IDE Arduino est sur le si
Fil moins Communication série

Fil moins Communication série

Ce projet est pour des protocoles de communication. ITCJ.Etape 1: DescriptionCe projet contient des informations sur la façon d'effectuer une communication série entre deux des microcontrôleurs en utilisant un capteur infrarouge, communication sans f