Arduino Robot som undviker mänskliga (3 / 3 steg)

Steg 3: Koden

Handhavande i detalj av ultraljud avstånd sensorn kunde hittas i HC_SR04 datablad.

Den kod som används i denna robot är egentligen enkel. I det viktigaste kretsar (loop()), det Mät avståndet genom att funktionen getDistance().

Om avståndet mellan roboten och hindret (i detta fall, mina händer) är alltför nära (säg 10cm), roboten flytta bakåt för 300 millisekunder och slumpmässigt slå vänster eller höger för ytterligare 200 millisekunder.

void loop()
{
avståndet = getDistance();
Serial.Print ("avstånd =");
Serial.Print(Distance);
Serial.println("cm");
om (avstånd < 10) {
robotBackward(300);
om (random(2)==0) {
robotRight(200);
} annat {
robotLeft(200);
}
}
robotStop(50);
}

Här är hur den "getDistance()" fungerar arbete:

float getDistance() {
digitalWrite (TRIGGER_PIN, låg);
delayMicroseconds(2);
digitalWrite (TRIGGER_PIN, hög);
delayMicroseconds(10);
digitalWrite (TRIGGER_PIN, låg);
Return (pulseIn (ECHO_PIN, hög) * 0,017);
}

Det sänder ut en stigande kanten på "Trig" stift genom första sända ut låg och följt av hög. Efter 10 micro-sekunder sänker det "Trig" signalen igen. Detta gör sensorn sänder ut ultraljud pulser. Det övervakar senare eko reflekteras av hinder. Om hindret är närmare, tar det mindre tid att ta emot ekon. Å andra sidan, om hindret är långt borta, tar det mer tid att vänta på ekon. Sensorn skickar ut en hög puls på "Echo" stift och puls bredd är lika med tur och retur fördröjningen av ultraljud pulserar (i mikrosekunder).

Eftersom ljudets hastighet är 340 meter/sekund, avståndet kunde beräknas av D = 0,5 * pulse_width * 340 m/s * 1e-6

Det fullständiga programmet listas här:

Pins controller motorer
#define motor1_pos 3
#define motor1_neg 10
#define motor2_pos 6
#define motor2_neg 9
#define motor_en A2
#define TRIGGER_PIN 15 / / (A1) Arduino PIN-kod knuten till utlösa pin på ultrasonic sensor.
#define ECHO_PIN 14 / / (A0) Arduino PIN-kod knuten till echo pin på ultrasonic sensor.
float avstånd;

void setup()
{
Serial.BEGIN(57600);
setupMotor();
}

void loop()
{
avståndet = getDistance();
Serial.Print ("avstånd =");
Serial.Print(Distance);
Serial.println("cm");
om (avstånd < 10) {
robotBackward(300);
om (random(2)==0) {
robotRight(200);
} annat {
robotLeft(200);
}
}
robotStop(50);
}

void setupMotor() {
pinMode(motor1_pos,OUTPUT);
pinMode(motor1_neg,OUTPUT);
pinMode(motor2_pos,OUTPUT);
pinMode(motor2_neg,OUTPUT);
pinMode(motor_en,OUTPUT);
enableMotor();
robotStop(50);
}
//-----------------------------------------------------------------------------------------------------
Ultrasonic avstånd Sensor
//-----------------------------------------------------------------------------------------------------
float getDistance() {
digitalWrite (TRIGGER_PIN, låg);
delayMicroseconds(2);
digitalWrite (TRIGGER_PIN, hög);
delayMicroseconds(10);
digitalWrite (TRIGGER_PIN, låg);
Return (pulseIn (ECHO_PIN, hög) * 0,017);
}
//-----------------------------------------------------------------------------------------------------
motor
//-----------------------------------------------------------------------------------------------------

void enableMotor() {
Slå på motorn förarens chip: L293D
digitalWrite (motor_en, hög);
}

void disableMotor() {
Stäng av motorn förarens chip: L293D
digitalWrite (motor_en, låg);
}

void robotStop (int ms) {
digitalWrite (motor1_pos, låg);
digitalWrite (motor1_neg, låg);
digitalWrite (motor2_pos, låg);
digitalWrite (motor2_neg, låg);
Delay(MS);
}

void robotForward (int ms) {
digitalWrite (motor1_pos, hög);
digitalWrite (motor1_neg, låg);
digitalWrite (motor2_pos, hög);
digitalWrite (motor2_neg, låg);
Delay(MS);
}

void robotBackward (int ms) {
digitalWrite (motor1_pos, låg);
digitalWrite (motor1_neg, hög);
digitalWrite (motor2_pos, låg);
digitalWrite (motor2_neg, hög);
Delay(MS);
}
void robotRight (int ms) {
digitalWrite (motor1_pos, låg);
digitalWrite (motor1_neg, hög);
digitalWrite (motor2_pos, hög);
digitalWrite (motor2_neg, låg);
Delay(MS);
}

void robotLeft (int ms) {
digitalWrite (motor1_pos, hög);
digitalWrite (motor1_neg, låg);
digitalWrite (motor2_pos, låg);
digitalWrite (motor2_neg, hög);
Delay(MS);
}

Se Steg
Relaterade Ämnen

Spåras Arduino Robot

Detta Instructable visar dig hur man bygger en spårad Arduino styrd robot.Innehållet är organiserade enligt följande:Sourcing delar: Har alla nödvändiga delar sammanställts och resurser att granska deras specifikationer och länkar till där delarna ka...

Temperatur inspelning Arduino Robot

min son och jag själv gjorde en liten arduino robot som registrerar temperatur. Han ville att jag skulle Rita en robot, jag ville experimentera med blinkande lysdioder återutläggning data så en plan kläcktes. Hur LEDs arbetet är som följer: grön = lä...

YourDuino: Grundläggande Arduino-kompatibel att undvika kollision Robot

Hur man bygger en grundläggande Arduino-kompatibel kollision-undvika RobotObs: Se de tillgängliga Arduino programvara Test skisser och kollisionsundvikande programvara här (klicka)Obs: Senare måste du ha Arduino "IDE" programvara utvecklingssyst...

Hur man gör ett hinder att undvika Arduino Robot

Hej alla! I detta Instructable kommer jag att visa dig hur man gör en robot som liknar "Mobile Arduino experimentella plattformen" (MAEP) som jag gjort. Den är utrustad med två motorer som kan styra roboten och förmågan att se hinder framför den...

LDRs + Arduino = en enkel robot som kan känna av ljuset!

An LDR är en ljus beroende av motstånd och har många användningsområden, till exempel en photocel som kan förvandla ljus i ditt hus på när dess blir mörkt ute.Ett intressant sätt att förstå hur det fungerar är att läsa sina värderingar med en Arduino...

Arduino Robot

Någonsin funderat på att bygga en robot men tycker att det är för svårt, ja nu inte är det. Det är en enkel robot som drivs av en arduino och vad den gör är att det bara strövar runt och undviker hinder. Den upptäcker hinder med en HC-SR04 ultrasonic...

RC lastbil på Arduino Robot w / flera sensorer

detta instructable täcker omvandling av en RC lastbil till en Arduino kontrollerade robot. Min avsikt när början detta projekt var att A) Läs mer om Arduino och programmering B) bygga en pålitlig låg kostnad plattform att utveckla C) spenderar mer pe...

Humanoid Robot härmar mänskliga

Hej alla,Mitt projekt använder Microsoft Kinect för Xbox 360 och en mänsklig tvåbent robot. Jag ser alltid företag som gör människor kunna styra tvåbent robotar, men de gör alltid användaren bära sensorer. Så jag tänkte, varför inte skapa en billigt...

Enkla 3D tryckt Arduino Robot

Vem vill inte bygga en robot? Som barn drömde jag att bygga robotar. Nu, alla i alla åldrar med bara lite kunskap kan bygga en enkel robot! Jag kommer att visa dig hur man gör just detta.RobotenDenna robot har en 3D tryckta chassi. Den har en arduino...

(med Video) Grundläggande Arduino Robot, ljus sökare!

Många gånger jag har googlade för "Arduino Robot" i hopp om att hitta en robot att bygga. Jag hamnar att hitta många versioner av ett hinder att undvika robot som använder antingen IR eller en sonar avståndsmätare sensor monterad på en servo att...

3-fingrade Arduino robot hand

IntroI detta instructable kommer jag förklara grunderna i att bygga din egen robot hand, kontrolleras av en arduino.Handen använder en handske, utrustat med flex sensorer som kommer att fånga din handrörelser. Handrörelser kommer vara översatt av ard...

En robot som jag byggde för 2009 World Robot Olympiad öppna kategori artist robot (mästare)

ta gärna en titt på videon av den (gjort under nationell nivå)video av robot i aktion här http://www.youtube.com/watch?v=ZZwF1Y9GgYoledsen, jag inte har många bilder av roboten mer produkterta gärna en titt på roboten jag byggt 2008 som vann andra pl...

Android G1 följetong till Arduino Robot

lära sig hur din Android mobiltelefon kan styra en robot med en Arduino ombord. Telefonen tar kommandon via telnet från en annan telefon eller en PC, så kan du fjärrstyra roboten. Detta projekt kommer annars inte ändra G1 så du kan fortsätta använda...

Arduino Robot handledning

Jag var forskande Instructable databasen för en handledning för officiella Arduino Robot, men jag kunde inte hitta en! Så arg jag denna handledning för att hjälpa andra som en smula behövde lite hjälp med sina nya Arduino Robot.Steg 1: Konfigurera di...

Arduino Robot för lägsta kostnad

SE MIG PÅ NYC MAKER FAIRE!Det hela började med detta:Arduino Robot utmaning: Hur billigt kan du skapa en robot med en Arduino för 5: e klassare?Jag hoppas att detta instructable har en viss elegans till dess enkelhet och kommer att övertyga dig att b...

Arduino Robot Arm

jag hade lovat i ett tidigare inlägg att dela med dig en arduino robot arm projektet vid ett senare tillfälle. Tja, är den dagen idag! Men istället för att använda en joystick för att styra arduino robotarm, kommer jag att pre program armrörelser. Va...

Carlitos' projekt: Trådlös tal-kontrollerade Arduino Robot

Vi alla drömmer om att ha apparater och maskiner som kan lyda våra röstkommandon. Nåväl, låt oss ta det första steget mot att göra detta hända och bygga en tal-kontrollerade Arduino-baserad mobil robot.Du kanske tänker att göra sådan robot måste vara...

Johnny5 Arduino Robot DfRobotshop rover med fjärrkontroll HTML-gränssnitt

I det här inlägget jag förklara steg för steg hur jag bygga en Arduino baserad Robot och program det med Javascript. Jag förklara vilken design val jag gjort, vilka ramar och tekniker jag använde och hur jag programmet och konfigurerat roboten.Du kan...

RC bil till autonoma Arduino Robot

Har du någonsin önskat att konstruera en enkel autonoma Arduino robot? Jag blev inspirerad att bygga en grundläggande Arduino robot för att hjälpa min förståelse av Arduino, Arduino IDE och driften av ultraljudssensorer och motor förare. Och så, jag...