Maak een Web aangesloten Robot (voor ongeveer $500) (met behulp van een Arduino en Netbook) (3 / 6 stap)

Stap 3: Software - (Arduino)


Voor die nieuw aan Arduino check out de grote krijgen gestarte guide op Arduino.cc

Eerst uit de software draait op de Arduino. Het is een zeer eenvoudig programma, wat de Arduino doet is de seriële poort voor data volgen.

Wat het zoekt is een gesprek 5 bytes lang.

  • Byte 1-3 (Check bytes 'AAA')
  • Byte 4 opdracht (vertelt de arduino wat te doen) (ondersteunde opdrachten 'F' -, 'B' - achteruit, 'L' - links, 'R' - recht, de ' - snelheid, 'X' - SetSpeedLeft, 'Y' - SetSpeedRight, 'C' - Stop)
  • Byte 5 Parameter - voor onderweg opdrachten dit is interpretted als een tijdsinterval (Parameter * 100 ms), en voor de snelheid een percentage van 0-100 opdrachten

De code is grondig besproken en gegeven dit kader toe te voegen extra opdrachten gemakkelijk zou moeten zijn.

Om te downloaden:

  • Het bijgevoegde zipbestand downloaden. (05-WEBB-Arduino Code.zip)
  • Unzip naar uw directory van de Arduino schets. (standaard: mijn Documents\Arduino\)
  • Open uw arduino ontwikkeling milieu en uploaden naar je Arduino.

Kopiëren en plakken

  • Kopieer de code uit de onderstaande lijst.
  • Plak in de Arduino-ontwikkelomgeving.
  • Uploaden naar je Arduino.

Bijlage: Het programma van de 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//--------------------------------------------------------------------------- 

Gerelateerde Artikelen

Geluid Ranging voor de slechtzienden met behulp van de Arduino Prototype Design Concept

Geluid Ranging voor de slechtzienden met behulp van de Arduino Prototype Design Concept

dit was mijn idee voor een apparaat dat zou kunnen helpen de personen met gezichtsstoornissen met behulp van een ultra sonic opgezette sensor gemonteerd op een hoed.  Het concept is in principe dat het apparaat zou Toon uit afstanden voor een visueel
DIY-navigatiesysteem voor blinde mensen met behulp van de Arduino en Android smartphone

DIY-navigatiesysteem voor blinde mensen met behulp van de Arduino en Android smartphone

In dit project kunt u betrekking hebben op je ogen en laat uw smartphone navigeren u om te voorkomen dat belemmeringen, de toepassing is vooral een DIY navigatieapparaat voor blinde mensen.Ik wist dat 1Sheeld is bezig met het starten van een nieuwe t
Hoe maak je een autopatcher voor windows xp met behulp van batchbestanden

Hoe maak je een autopatcher voor windows xp met behulp van batchbestanden

hoe maak je een autopatcher voor windows xp met behulp van batchbestandenAlleen beschrijving, foto's kunnen nooit bestaan :)Stap 1: Alle stappen hier omdat het te moeilijk om te lezen in meerdere pagina 's1. Maak een nieuwe map op uw bureaublad2. all
Draadloos bedienen een Robot met behulp van de Arduino en RF Modules!

Draadloos bedienen een Robot met behulp van de Arduino en RF Modules!

/*Bewerken van 05/05/2016Hey jongens, ik druk bezig geweest met college en kon niet antwoorden naar commments. De meeste van jullie wilde de code en schema's gedaan een beetje beter dus ik heb het schema op Eagle 7.2.0 gemaakt en geüpload alles op Gi
Hoe maak je een Thermometer met behulp van de Arduino en LM35

Hoe maak je een Thermometer met behulp van de Arduino en LM35

vandaag ga ik u tonen hoe te maken van een Thermometer met Arduino en LM35 temperatuursensor, LCD Display, op een breadboard samen met draden aangesloten. Het zal temperatuur weergegeven in Celsius en Fahrenheit.Andro RootStap 1: Vereisten:- Dit is d
Hoe maak je aangepaste grepen voor uw camera met behulp van sugru

Hoe maak je aangepaste grepen voor uw camera met behulp van sugru

Deze gids zal u tonen hoe te maken van aangepaste tangen voor je camera met behulp van sugru.sugru is een zelf ingestelde rubber die met de hand kan worden gevormd. Het mallen zoals spel-deeg, obligaties aan bijna alles en verandert in een sterke, fl
Rijden van een webpagina in realtime met behulp van de Arduino, SensorMonkey en Processing.js

Rijden van een webpagina in realtime met behulp van de Arduino, SensorMonkey en Processing.js

externe visualisatie van real-time sensorgegevens.Deze tutorial beschrijft in detail hoe u met de gratis SensorMonkey -service push realtime sensor data van een Arduino naar een webpagina voor visualisatie met behulp van Processing.js. Geen server-si
2-wiel Self Balancing Robot met behulp van de Arduino en MPU6050

2-wiel Self Balancing Robot met behulp van de Arduino en MPU6050

2-wiel Self Balancing Robot met behulp van de Arduino en MPU6050.Arduino als de controller en de sensor MPU6050 gebruiken om te bepalen van het evenwicht. Gewoon een eenvoudige seriële Bluetooth module toevoegen en een Bluetooth seriële Controller AP
ESP8266 WiFi temp vochtigheid monitoring web app met behulp van de Arduino IDE

ESP8266 WiFi temp vochtigheid monitoring web app met behulp van de Arduino IDE

Vorige week ontving ik een ESP8266(adafruit). de nieuwe ESP8266 heeft arduino-bootloader, dus het maakt mogelijk om programmacode arduino rechtstreeks in de ESP8266. Deze ESP8266 komt met I2C, UART en GPIO. met deze nieuwe wifi module hoeft u niet el
ESP8266 ESP-12E NodeMCU met behulp van de Arduino IDE - een Tutorial programmering

ESP8266 ESP-12E NodeMCU met behulp van de Arduino IDE - een Tutorial programmering

NodeMCU Dev Board is gebaseerd op grote schaal onderzocht esp8266 systeem op Spaander van Expressif. Het gecombineerde functies van WIFI accesspoint en station + microcontroller en gebruikt eenvoudige LUA gebaseerde programmeertaal. ESP8266 NodeMCU a
Eenvoudige controlemechanisme van de held van de gitaar voor de PC met behulp van Teensy (geschikt voor multi-speler)

Eenvoudige controlemechanisme van de held van de gitaar voor de PC met behulp van Teensy (geschikt voor multi-speler)

Na het maken van de eenvoudige geplakt van DDR Pad, de natuurlijke volgende stap is natuurlijk een guitar hero-controller :)Wat ik begreep ik zal draaien van pinnen op mijn bord als ik wilde toevoegen meer spelers.De oplossing?Met behulp van analoge
Hoe maak je Drift auto met behulp van de Arduino

Hoe maak je Drift auto met behulp van de Arduino

Hallo iedereen. Laat me voorstellen over hoe ik een DRIFT-auto met behulp van de arduino, pololu VNH5019, NRC-20 controlesysteem en verwoeste lichaam van RC auto gemaakt.Stap 1: Deze DRIFT auto bevat... 1. de Arduino UNO R3 programmeerbare bestuur2.
Bluetooth Robot gecontroleerd met behulp van de Arduino

Bluetooth Robot gecontroleerd met behulp van de Arduino

Bluetooth gecontroleerde auto met behulp van de Arduino uno vanaf Android mobiele telefoonStap 1: Apparatuur nodig:1 X Arduino Atmega3281 X Bluetooth module (HC-06)1 X Chassis 4 X wielen (of) 2 x wielen ondersteunt op chassis4 x Motors (OR) 2 x Motor
Hoe maak je een robot die praat terug met behulp van AIML in c#

Hoe maak je een robot die praat terug met behulp van AIML in c#

In dit instructable ik zal u tonen hoe maak je een AI AIML vanaf nul de AIML bibliotheken gebruiken. De AI kan reageren op meeste de vraag van de standaardsjabloon AIML bieden. In deze tutorial zal ik u tonen hoe te opstelling AIML met de standaardsj