Faire un Web connecté Robot (à environ 500 $) (à l’aide d’un Arduino et Netbook) (3 / 6 étapes)

Étape 3: Logiciel - (Arduino)

Pour ceux nouveaux pour Arduino, Découvrez le grand guide de démarrage sur Arduino.cc

Tout d’abord le logiciel en cours d’exécution sur l’Arduino. C’est un programme très simple, en quoi consiste l’Arduino est surveiller son port série pour les données.

Ce qu’il cherche est une conversation de 5 octets de longs.

  • Octet 1-3 (cocher octets « AAA »)
  • Octet 4 commande (dit l’arduino quoi faire) (pris en charge les commandes "F" - vers l’avant, "B" - vers l’arrière, « L » - gauche, « R » - droit, les de ' - vitesse, « X » - SetSpeedLeft, 'Y' - SetSpeedRight, « C » - Stop)
  • Paramètre Byte 5 - pour le passage des commandes c’est interprété comme un intervalle de temps (paramètre * 100 ms), et pour la vitesse commande un pourcentage compris entre 0 et 100

Le code est commenté abondamment et compte tenu de ce cadre en ajoutant des commandes supplémentaires devraient être faciles.

Pour télécharger :

  • Téléchargez le fichier zip ci-joint. (05-WEBB-Arduino Code.zip)
  • Dézipper dans votre répertoire de Arduino Sketch. (par défaut : My Documents\Arduino\)
  • Ouvrez votre environnement de développement arduino et publiez votre Arduino.

Pour copier et coller

  • Copiez le code d’en bas.
  • Coller dans l’environnement de développement Arduino.
  • Publiez votre Arduino.

Annexe : Le programme Arduino

 /* * Arduino Controlled Web Connected Robot (WEBB) - Serial Host * For more details visit: http://www.oomlout.com/serb * * Behaviour: The Arduino listens to its Serial port for a command * in format 254, 88, 88, (COMMAND), (TIME) * Supported Commands - 'F' - 70 - Forward * 'B' - 66 - Backward * 'L' - 76 - Left * 'R' - 82 - Right * 'S' - 83 - Speed * 'X' - 88 - SetSpeedLeft * 'Y' - 89 - SetSpeedRight * 'C' - 67 - Stop * Supported Times - 0 - 255 (0 to 25.5 Seconds) value * 100 milliseconds *sp * Wiring: Right Servo Signal - pin 9 * Left Servo Signal - pin 10 * * License: This work is licenced under the Creative Commons * Attribution-Share Alike 3.0 Unported License. To * view a copy of this licence, visit * http://creativecommons.org/licenses/by-sa/3.0/ * or send a letter to Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * USA. * */ //-------------------------------------------------------------------------//START OF ARDUINO SERIAL SERVER PREAMBLE//Defining constants corresponding to each command (also the ascii code number) #define FORWARD 70 //F#define BACKWARD 66 //B#define LEFT 76 //L#define RIGHT 82 //R#define SETSPEED 83 //S#define STOP 67 //C#define SETSPEEDLEFT 88 //X#define SETSPEEDRIGHT 89 //Y/*The three check bytes (used to keep the robot from responding to random serial *data) currently "AAA" */#define checkByte1 65 // "A"#define checkByte2 65 // "A"#define checkByte3 65 // "A" //--------------------------------------------------------------------------// START OF ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE#include <Servo.h>#define LEFTSERVOPIN 10 //The pin the left servo is connected to#define RIGHTSERVOPIN 9 //The pin the right servo is connected toServo leftServo; Servo rightServo; int leftSpeed = 50; //holds the speed of the robots leftServo //a percentage between 0 and 100int rightSpeed = 100; //holds the speed of the robots rightServo //a percentage between 0 and 100// END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE//--------------------------------------------------------------------------//Gets everything up and runningvoid setup() { Serial.begin(9600); //Starts the serial port serbSetup(); //sets the state of all neccesary //pins and adds servos to your sketch}//The main program loopvoid loop() { serbPollSerialPort(); //continuously looks to the serial port //if there is data it processes it}//-----------------------------------------------------------------------//START OF ARDUINO SERIAL SERVER ROUTINES/* * Processes commands delivered to the arduino's serial port */void serbPollSerialPort(){ int dta; //variable to hold the serial byte if ( Serial.available() >= 5) { //if 5 bytes are in the buffer (length pf a full request) dta = Serial.read(); if ( dta = checkByte1){ //Checks for first check byte dta = Serial.read(); if ( dta = checkByte2){ //Checks for second check byte dta = Serial.read(); if ( dta = checkByte3){ //Checks for third check byte int command = Serial.read(); //Fourth byte is the command int param1 = Serial.read(); //Fifth byte is param1 interpretCommand(command, param1); //sends the parsed request to it's handler } } } }}/* * Takes the command and parameter and passes it to the robot */void interpretCommand(int command, int param1){if (command == FORWARD){goForward(); delay(param1 * 100); goStop();} //if forward else if(command == BACKWARD){goBackward(); delay(param1 * 100); goStop();} //if backwards else if(command == LEFT){goLeft(); delay(param1 * 100); goStop();} //if left else if(command == RIGHT){goRight(); delay(param1 * 100); goStop();} //if right else if(command == SETSPEED){setSpeed(param1);} //if setting speed else if(command == STOP){goStop();} //if stop else if(command == SETSPEEDLEFT){setSpeedLeft(param1);} //if setting left speed else if(command == SETSPEEDRIGHT){setSpeedRight(param1);} //if setting right speed else{ //if unrecognized command do a little shimmey goLeft(); delay(150); goRight(); delay(150); goStop(); }}//------------------------------------------------------------------------//START OF ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES/* * sets up your arduino to address your SERB using the included routines*/void serbSetup(){ setSpeed(leftSpeed); pinMode(LEFTSERVOPIN, OUTPUT); //sets the left servo signal pin //to output pinMode(RIGHTSERVOPIN, OUTPUT); //sets the right servo signal pin //to output leftServo.attach(LEFTSERVOPIN); //attaches left servo rightServo.attach(RIGHTSERVOPIN); //attaches right servo goStop();}/* * sets the speed of the robot between 0-(stopped) and 100-(full speed) * NOTE: speed will not change the current speed you must change speed * then call one of the go methods before changes occur.*/ void setSpeed(int newSpeed){ setSpeedLeft(newSpeed); //sets left speed setSpeedRight(newSpeed); //sets right speed}/* * Sets the speed of the left wheel */void setSpeedLeft(int newSpeed){ if(newSpeed >= 100) {newSpeed = 100;} //if speed is greater than 100 //make it 100 if(newSpeed <= 0) {newSpeed = 0;} //if speed is less than 0 make //it 0 leftSpeed = newSpeed * 0.9; //between 0 and 90}/* * Sets the speed of the right wheel */void setSpeedRight(int newSpeed){ if(newSpeed >= 100) {newSpeed = 100;} //if speed is greater than 100 //make it 100 if(newSpeed <= 0) {newSpeed = 0;} //if speed is less than 0 make //it 0 rightSpeed = newSpeed * 0.9; //scales the speed to be }/* * sends the robot forwards */void goForward(){ leftServo.write(90 + leftSpeed); rightServo.write(90 - rightSpeed);} /* * sends the robot backwards */void goBackward(){ leftServo.write(90 - leftSpeed); rightServo.write(90 + rightSpeed);} /* * sends the robot right */void goRight(){ leftServo.write(90 + leftSpeed); rightServo.write(90 + rightSpeed);}/* * sends the robot left */void goLeft(){ leftServo.write(90 - leftSpeed); rightServo.write(90 - rightSpeed);}/* * stops the robot */void goStop(){ leftServo.write(90); rightServo.write(90);}//END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES//--------------------------------------------------------------------------- 

Articles Liés

Comment faire un Tracker de localisation GSM avec le AdaFruit FONA et Arduino

Comment faire un Tracker de localisation GSM avec le AdaFruit FONA et Arduino

IntroductionDans ce tutoriel, que nous allons faire un web connecté enregistreur de localisation utilisant le Service de données Sparkfun Adafruit FONA Conseil et un Arduino. Elle va obtenir son emplacement en utilisant la triangulation et publiez-le
Comment faire une plateforme Mobile Robot faible coût

Comment faire une plateforme Mobile Robot faible coût

Ce Instructable agit ici de développer une base robotique pour prendre en charge vos expériences.Ce Instructable s'adresse à toute mise en route sur une plate-forme mobile de basse tension. Autres lecteurs pourraient trouver quelque chose d'intéressa
Comment faire un Obstacle évitant Robot

Comment faire un Obstacle évitant Robot

Obstacle évitant robot est un robot simple qui est actionné par un arduino et ce qu'il fait c'est qu'il erre juste autour et évite les obstacles. Il détecte les obstacles avec un capteur à ultrasons HC-SR04 en d'autres termes si le robot détecte obje
Comment faire un costume de Robot

Comment faire un costume de Robot

Hé les gars !Avez-vous jamais eu l'envie irrésistible de construire un costume de robot bizarre pour faire peur à vos proches, mais ne savais pas comment ? Amis, vos ennuis sont terminent ! Nous avons un bon tutoriel ici pour créer votre costume de r
Comment faire un obstacle évitant Robot Arduino Style

Comment faire un obstacle évitant Robot Arduino Style

vous avez toujours rêvé de faire un de ces robots cool qui peuvent éviter pratiquement n'importe quel objet. Pourtant, vous n'avez pas assez d'argent pour acheter un de ceux-là vraiment cher, avec des pièces déjà découpées où toutes les matières où l
Comment faire un masque de Robot d’Avant-Garde

Comment faire un masque de Robot d’Avant-Garde

faire un masque de plâtre robot effrayant... sans utiliser de Vaseline ! Poser comme un mannequin dans des vitrines de magasins, ou se cacher dans un placard et faire peur à vos amis.Étape 1: matériaux Ce que vous aurez besoin pour ce projet :Rouleau
Comment faire un cadre de Robot RC

Comment faire un cadre de Robot RC

dans ce Instructable, je vais vous montrer comment faire un robot facile et peu coûteux de base avec un bras. Profitez !Etape 1: Coller la Base de l'ensemble Étape 2: Fixez les moteurs aux roues Étape 3: Ruban adhésif les moteurs à la BaseÉtape 4: Fa
Comment faire un appât poisson piéger pour environ 2 $ à l’aide de corbeilles de fil 1 $

Comment faire un appât poisson piéger pour environ 2 $ à l’aide de corbeilles de fil 1 $

Bonjour.  Pour ce bricolage je va vous montrer comment faire un piège à poisson appât à l'aide de deux corbeilles fil trouvé dans les magasins à un dollar.  J'ai trouvé la mienne à la Dollar Tree.Vous aurez besoin :2 corbeilles filCisailles de fil ou
GSM base polyvalent robotique véhicule à l’aide de microcontrôleur PIC

GSM base polyvalent robotique véhicule à l’aide de microcontrôleur PIC

ce projet vise à développer un véhicule robotisé qui peut être contrôlé par un téléphone cellulaire. Envoient des commandes DTMF d'un téléphone à un autre téléphone cellulaire qui est monté sur le véhicule robotisé. Ces commandes servent à nourrir un
Comment faire pour afficher la température en utilisant un LM35 et Arduino UNO

Comment faire pour afficher la température en utilisant un LM35 et Arduino UNO

Dans ce instructable, je vais montrer vous comment Connectez une sonde de température LM35 à l'Arduino UNO et lire la température en degrés Celsius sur le moniteur de la série.Etape 1: Voici ce que vous aurez besoin Pour ce projet, vous aurez besoin
Bras robotique mobile à l’aide de PHIRO + Arduino

Bras robotique mobile à l’aide de PHIRO + Arduino

Nous sommes de retour avec un autre tutoriel pour vous montrer comment transformer PHIRO Pro en un bras robotique mobile cool qui peut choisir et placer les trucs ! Semblable à notre précédent capteur couleur Arduino PHIRO instructable, nous allons u
Comment faire une serrure électronique à l’aide d’un Arduino UNO

Comment faire une serrure électronique à l’aide d’un Arduino UNO

Il s'agit d'un projet assez facile. Vous n'avez pas besoin de souder. Autre que l'Arduino UNO, tous les matériaux sont faciles à trouver et ne sont pas si coûteux. Ce projet, c'est une bonne façon de verrouiller la porte de votre chambre et est entiè
Comment faire des piquants bordées de fleurs à l’aide de papier d’Art Quilling | DIY

Comment faire des piquants bordées de fleurs à l’aide de papier d’Art Quilling | DIY

Comment faire des piquants bordées de fleurs à l'aide de papier d'Art Quilling | BRICOLAGEDans ce tutoriel, que vous apprendrez à piquants bordées de fleurs en seulement quelques étapes. Let's get started.Eh bien, j'espère que vous avez aimé ce métie
Faire un simple robot de RF sans fil en utilisant Arduino !

Faire un simple robot de RF sans fil en utilisant Arduino !

MISE À JOUR : J'AI AJOUTÉ LA COMMANDE JOYSTICK À CE ROBOT. VEUILLEZ VOUS RÉFÉRER À L'ÉTAPE 7 SI VOUS VOULEZ CONTRÔLER VOTRE ROBOT VIA JOYSTICK.SalutIl s'agit de mon premier instructable et dans ce tutoriel, je vais vous montrer, comment construire un