Eenvoudig licht na Robot (5 / 6 stap)

Stap 5: Programmeren van de Arduino

Het volgende programma in de Arduino laden.

Het programma kan worden gedownload vanaf hier:

http://www.zagrosrobotics.com/files/Mag_Light_Follower_04062013.Ino

Dit programma gebruikt een terminalprogramma om te communiceren met de robot.  Hier kunt u de seriële Monitor vanuit de ontwikkelomgeving van Arduino.  Ook kunt u Hyperterminal of Realterm (een van die zal zijn gemakkelijker te gebruiken).

Het programma omvat fundamentele motorische controlefuncties:

'f' - Forward
'b' - achteruit
'l' - linksom draaien
'r' - rechtsom
de ' - stop

Deze opdracht kan worden gebruikt voor het instellen van de richting van uw motoren.

De nieuwe opdracht 'g' dat werd toegevoegd aan het programma voor dit project zal vertellen de robot om te beginnen op zoek naar de lichtbron.

De analoge input pinnen 0 en 1 zal luiden naar de analoge waarde van de photosensors en zet het op een integer waarde tussen 0 en 255.

Elke motor heeft een richting en PWM (snelheid) waarde.  De waarde van de PWM zijn beperkt tussen 0 en 255.

###################################   Arduino code   ###############################

Lijn naar voorbeeld 4/6/2013

int pwm_a = 10;  PWM-controle voor motor uitgangen 1 en 2 is op digitale pin 10
int pwm_b = 11;  PWM-controle voor motor output 3 en 4 is op digitale pin 11
int dir_a = 12;  richtingscontrole voor motor uitgangen 1 en 2 is op digitale pin 12
int dir_b = 13;  richtingscontrole voor motor output 3 en 4 is op digitale pin 13
int incomingByte = 0; voor binnenkomende seriële gegevens
int encoderCount = 0;
int encoderOld = 0;
int encoderState = 0;
int sensorState = 0;
int lightsensor_left = 0;
int lightsensor_right = 0;
int temp_var = 0;
int winst = 2; controlesysteem krijgen var
Const int encoderPin = 2;
Const int sensorPin = 3;

VOID Setup
{
pinMode (pwm_a, OUTPUT);  Besturingselement instellen pinnen te worden uitgangen
pinMode (pwm_b, OUTPUT);
pinMode (dir_a, OUTPUT);
pinMode (dir_b, OUTPUT);

analogWrite (pwm_a, 0);  instellen van beide motoren uit te voeren op (100/255 = 39) % taakcyclus (langzaam)
analogWrite (pwm_b, 0);

Serial.begin(115200);


Serial.Print ("Zagros Robotics, Inc");
Serial.Print ("tovenaar lichte aanhanger Demo 4/6/2013\n");


}

void loop
{

Serial.Print ("Zagros Robotics, Inc");

Als (Serial.available() > 0) {}
Lees de binnenkomende byte:
incomingByte = Serial.read();
}

Lees lichtsensoren

lightsensor_left=analogRead(0);
lightsensor_right=analogRead(1);
Serial.println(lightsensor_left);
Serial.println(lightsensor_right);

switch(incomingByte)
{
geval van ':
digitalWrite (dir_a, laag);
analogWrite (pwm_a, 0);
digitalWrite (dir_b, laag);
analogWrite (pwm_b, 0);
Serial.println("Stop\n");
incomingByte ='* ';

breken;

Case "f":
digitalWrite (dir_a, laag);
analogWrite (pwm_a, 255);
digitalWrite (dir_b, laag);
analogWrite (pwm_b, 255);
Serial.println("Forward\n");
incomingByte ='* ';
breken;

Case "b":
digitalWrite (dir_a, hoge);
analogWrite (pwm_a, 255);
digitalWrite (dir_b, hoge);
analogWrite (pwm_b, 255);
Serial.println("Backward\n");
incomingByte ='* ';
breken;

geval 'l':
digitalWrite (dir_a, laag);
analogWrite (pwm_a, 255);
digitalWrite (dir_b, hoge);
analogWrite (pwm_b, 255);
Serial.println ("Left\n draaien");
incomingByte ='* ';
breken;

Case 'r':
digitalWrite (dir_a, hoge);
analogWrite (pwm_a, 255);
digitalWrite (dir_b, laag);
analogWrite (pwm_b, 255);
Serial.println ("Left\n draaien");
incomingByte ='* ';
breken;

geval 'g': //follow het licht

krijgen = 3;

temp_var = (lightsensor_left - lightsensor_right) * krijgen;

Als (temp_var > 0)
{
digitalWrite (dir_a, hoge);
digitalWrite (dir_b, laag);
Serial.println ("Left\n draaien");
}
anders
{
digitalWrite (dir_a, laag);
digitalWrite (dir_b, hoge);
Serial.println ("Right\n draaien");
}


Serial.println(temp_var);

temp_var=ABS(temp_var);


if(temp_var > 255)
{
temp_var = 255;
}


analogWrite (pwm_a, temp_var);
analogWrite (pwm_b, temp_var);




breken;

Case "v":
Serial.println ("versie 04042013a\n");
incomingByte ='* ';
breken;

delay(500);

}



} / / einde lus

Gerelateerde Artikelen

Eenvoudige licht volgende Robot

Eenvoudige licht volgende Robot

bouwen van een eenvoudige lichte volgende robot met gemeenschappelijke low-cost delen.  Je moet een soldeerbout, hete lijmpistool en een ohmmeter als er geen overeenkomende lichtsensor cellen.  Deze robot zal volgen licht van een zaklamp.  Deze onder
Eenvoudige licht op zoek naar Robot

Eenvoudige licht op zoek naar Robot

het bouwen van de robotDeze robot is ontworpen als een project voor middelbare scholieren te bouwen op de dag van een activiteit.  Het chassis werd verleend aan de leerlingen pre-cut.  De volledige kosten van de onderdelen per robot was net onder de
555 timer op basis van licht-seeking robot

555 timer op basis van licht-seeking robot

ik heb altijd al gefascineerd door robots vooral de een met de wielen omdat ze goedkoop, eenvoudig zijn en leuk om te maken en spelen rond met. Onlangs kwam ik over een circuit in een van de boeken. Het was een licht gevoelige led circuit gebaseerd o
Licht volgende Robot (Lighttode)

Licht volgende Robot (Lighttode)

enige tijd geleden maakte ik deze lichte volgende robot. Het is een echt eenvoudige robot met eenvoudig delen.Delen:Arduino uno3 photoresistors3 2.2 k weerstandenjumper kabel draden2 servo's (continue 360 rotatie)9V batterijStap 1: Eerste, neem een s
EENVOUDIGE regel VOLGELING ROBOT (interne Sensor)

EENVOUDIGE regel VOLGELING ROBOT (interne Sensor)

Hallo jongens in deze tutorial laat zien hoe maak je een eenvoudige lijn volgeling robot met één infrarood sensor.Stap 1: Inleiding:Meestal voor beginners in robotica is dit uw eerste robot om mee te spelen aangezien deze robot enkele basisfuncties h
Licht na robot

Licht na robot

dit is een lichte volgende robot die ik heb gemaakt.
Eenvoudig licht op zoek naar robot met 555 timing IC

Eenvoudig licht op zoek naar robot met 555 timing IC

In dit Instructable zal ik u tonen hoe maak je een robot die kunnen zullen toewerken naar een nabij door lichtbron. Dit project maakt gebruik van een heel eenvoudige schakeling, dus zowat dat iedereen kan het maken. Ik heb nog enkele verbeteringen te
Eenvoudige en goedkope ROBOT HAND met slechts één MOTOR!

Eenvoudige en goedkope ROBOT HAND met slechts één MOTOR!

Hi iedereen,Ik wilde delen dit idee om een eenvoudige, goedkope robotic hand (of einde effector) met behulp van slechts één motorte maken.Met behulp van slechts één motor voor de hele hand kunt de hand te zijn:-zeer goedkoop, dat goed voor uw portemo
Domo Kun WobblyBot, eenvoudige Self Balancing Robot

Domo Kun WobblyBot, eenvoudige Self Balancing Robot

Een self balancing robot van de twee wielen die wiebelt, vandaar de naam WobblyBot.Misschien wel de eenvoudigste ontwerp voor een robot die zelf (soort van) op twee wielen, zonder het gebruik van de gyroscoop, versnellingsmeter en microcontroller eve
Eenvoudige regel volgeling robot met behulp van een Actobotics Runt Rover Sprout

Eenvoudige regel volgeling robot met behulp van een Actobotics Runt Rover Sprout

Naast obstakel robots te vermijden, zou de meest voorkomende beginner bot een volgeling van de lijn. Ik zelf hou lijn volgelingen, en ze zijn enkele van mijn favoriete weekend bouwt. Het is gewoon zo leuk kijken een beetje bot na weinig zwarte lijn o
Eenvoudige RC wig Robot

Eenvoudige RC wig Robot

Ik heb liefgehad Remote Controlled Robots jarenlang en mijn kinderen opgegroeid blootgesteld aan hen. Mijn zoon is eindelijk oud genoeg waar hij zijn eigen robot beginnen te krijgen de knie van het rijden met een joystick kan hebben. Ik ging met een
Maak een eenvoudige draadloze RF robot met behulp van Arduino!

Maak een eenvoudige draadloze RF robot met behulp van Arduino!

UPDATE: IK HEB JOYSTICK-CONTROLE TOEGEVOEGD AAN DEZE ROBOT. GELIEVE TE VERWIJZEN NAAR DE STAP 7, ALS U WILT BEPALEN UW ROBOT VIA JOYSTICK.HalloDit is mijn eerste instructable en in deze tutorial, I 'm gonna Toon u hoe te bouwen van een eenvoudige dra
Super eenvoudige licht Tent

Super eenvoudige licht Tent

ik was geïnspireerd om dit project te doen na het zien van de PVC lichte tent geplaatst op de blog maken. Deze lichte tent maakt gebruik van een kartonnen doos, en wat witte materiaal (Tyvek) en kunt u redelijk foto's te nemen van producten zoals fle
Eenvoudige licht Detector met gevoeligheid controle

Eenvoudige licht Detector met gevoeligheid controle

licht detectoren zijn een van de meest populaire sensor en ze worden gewoonlijk aangetroffen in vele real-world-toepassingen. Ze worden veel gebruikt door elektronische hobbyisten en projecten omdat ze praktisch en intrigerende nog verrassend gemakke