Arduino 4wd robot med ping sensor "J-Bot" (5 / 6 steg)

Steg 5: Steg 5 - nu tid att programmet!


Detta är verkligen roligt i del. himlen är gränsen när det gäller programmering din J-Bot. Förväg kan du programmera vägen till godis office maskinen eller kaffekanna till har din office kompis göra en pick-up. Lägga till en web-cam to peer runt höga skåp väggar, lägga högtalarna sänds låtar, tillsätt lemmar och en fjärrkontroll att hämta din favorit gadgets. J-Bot väntar på din fantasi att köra helt enkelt botty.

Först måste du Hämta programvaran Arduino. Nästa Hämta Arduino Stepper/Servo mjukvarubibliotek och följ anvisningarna på hur man sätter biblioteket i dess respektive mapp.

Öppna programvaran Arduino och klistra in koden.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include < AFMotor.h > / / aktiverar Motor biblioteket
#include < Servo.h > / / aktiverar Servo biblioteket

Servo PingServo;
AF_DCMotor motor1(1); Motor 1 är ansluten till port 1 motor sköld
AF_DCMotor motor2(2); Motor 2 är ansluten till port 2 motor sköld
int minSafeDist = 11; Minsta avstånd för ping sensor att veta när man ska vända
int pingPin = A0; Ping sensor är ansluten till port A0
int centerDist, leftDist, rightDist, backDist; Definiera variabler center, vänster, höger och tillbaka avstånd
lång varaktighet, tum, cm; Definiera variabler för Ping sensor

void setup() {
PingServo.attach(10); Servo är kopplad till pinne 10 i motor sköld
PingServo.write(90); Centrera den Ping sensor (uttrycker det i 90 grader)
motor1.setSpeed(215); Anger hastigheten på den första motorn (0, motorerna är vände bort 255 är den snabbaste inställning som du kan använda, jag brukade 215 inte driva motorerna för hårt.)
motor2.setSpeed(215); Anger hastigheten på den andra motorn (0, motorerna är vände bort 255 är den snabbaste inställning som du kan använda, jag brukade 215 inte driva motorerna för hårt.)

Serial.BEGIN(9600); Aktiverar seriella monitor för felsökning ändamål
Serial.println ("Serial test!"); Testa den seriell kommunikationen

}

void AllStop() {
motor1.Run(release); Stänger av motorn 1
motor2.Run(release); Stänger av motorn 2
}
void AllForward() {/ / gör roboten gå framåt
motor1.Run(forward); Motor 1 går framåt
motor2.Run(forward); Motor 2 går framåt
Serial.println ("kommer fram"); En linje i följetong monitor
}
void turnRight() {/ / gör roboten gå rätt
motor2.Run(Backward); Stänger av motorn 2
motor1.Run(forward); Motor 1 går framåt
Delay(1600); Tidsåtgången vid sväng höger (1,6 sekunder)
Serial.println ("motorer går rätt"); En linje i följetong monitor
}
void GoBack() {/ / gör roboten gå tillbaka
motor2.Run(Backward); Motor 2 går tillbaka
motor1.Run(Backward); Motor 1 går tillbaka
Delay(1600); Tiden som krävs för att gå tillbaka (1,6 sekunder)
Serial.println("Backward"); En linje i följetong monitor
}
void turnLeft() {/ / gör roboten gå vänster
motor2.Run(forward); Motor 2 går framåt
motor1.Run(Backward); stänger av motorn 1
Delay(1600); Tiden som krävs för att vända vänster (1,6) sekunder
Serial.println ("motorer går vänster"); / / en linje i följetong monitor
}

Startar en slinga för att besluta vad man ska göra
void loop()
{
LookAhead();
Serial.Print(inches);
Serial.println ("inches"); En linje i följetong monitor
om (tum > = minSafeDist) / * om inches framför ett objekt är större än eller lika med de minsta säkerhetsavstånd (11 tum), reagerar * /
{
AllForward(); Alla hjul fram
Delay(110); Vänta 0.11 sekunder
} annat / / om inte:

{
AllStop(); Stoppa alla motorer
LookAround(); Kontrollera din omgivning för bästa vägen
IF(rightDist > leftDist) / / om rätt avstånd är större än vänster avståndet, sväng höger
{
turnRight();
} else om (leftDist > rightDist) / / om vänster avståndet är större än rätt avstånd, sväng vänster
{
turnLeft();
} else om (leftDist & & rightDist < minSafeDist) / / om vänster och höger avståndet är mindre än minuten säkert avstånd (11 tum) gå tillbaka
{
GoBack();
}
}
}

osignerade långa ping() {
pinMode (pingPin, produktionen); Göra Pingpin att mata
digitalWrite (pingPin, låg); Skicka en låg puls
delayMicroseconds(2); vänta två mikrosekunder
digitalWrite (pingPin, hög); Skicka en hög puls
delayMicroseconds(5); vänta i 5 sekunder för mikro
digitalWrite (pingPin, låg); Skicka en låg puls
pinMode(pingPin,INPUT); Växla Pingpin att mata in
längd = pulseIn (pingPin, hög); lyssna efter echo

/ * Konvertera mikro sekunder till Inches
-------------------------------------*/

tum = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
}

långa microsecondsToInches (lång mikrosekunder) / / konverterar tid till ett avstånd
{
återvända mikrosekunder / 74 / 2;
}
långa microsecondsToCentimeters (lång mikrosekunder) / / konverterar tid till ett avstånd
{
återvända mikrosekunder / 29 / 2;
}

void LookAhead() {
PingServo.write(90); / / vinkel för att se fram
Delay(175); vänta 0.175 sekunder
ping();
}

void LookAround() {
PingServo.write(180); 180° vinkel
Delay(320); vänta 0.32 sekunder
ping();
rightDist = inches; få rätt avstånd
PingServo.write(0); se till andra sidan
Delay(620); vänta 0,62 sekunder
ping();
leftDist = inches; få den vänstra distans
PingServo.write(90); 90° vinkel
Delay(275); vänta 0,275 sekunder

En linje i följetong monitor
Serial.Print ("RightDist:");
Serial.println(rightDist);
Serial.Print ("LeftDist:");
Serial.println(leftDist);
Serial.Print ("CenterDist:");
Serial.println(centerDist);
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Se Steg
Relaterade Ämnen

Med en Arduino ritning Robot med timme av koden Tutorials

Jag skapade en Arduino ritning robot för en workshop för att hjälpa tonåring flickor få intresserade av STEM ämnen (se). Roboten var avsedd att använda sköldpadda stil programmering kommandon som forward(distance) och turn(angle) för att skapa intres...

Bygga en Arduino Gripper Robot med en DynamixShield.

I detta instructable jag kommer att visa dig hur du snabbt och enkelt bygga en fjärrkontroll gripdon med hjälp av robot och Arduino noll och en DynamixShield. DynamixShield är en ny tillägg för antingen Arduino Due, noll eller Mega som jag är att frä...

Arduino-baserad robot med IR radar

robot prototypen i detta Instructable är min andra Arduino-baserad "slumbot" som är en autonom robot. Den är kopplad med husgeråd och skrotar. Roboten ser"" med en IR-scanning sensor roteras ett servo. Det ser vänster, framåt, och rätt...

Arduino LCD-termometer med Temp Sensor LM35

: uppdatering av stift 13: Tack vare cybersbför fångsten.Den schematiska Fritzing visar med hjälp av stift 12 och 13. Detta inte korrekt. Bör använda stiften som anges i koden, stift 11 och 12.Detta är som titeln antyder, en Arduino powered LCD överv...

Baserade Arduino humanoid robot med servomotorer

Hej alla,Detta är min första humanoid robot, gjord av tjock plast ark som jag inte vet namnet på bladet. Den finns i olika tjocklek. Här, använde jag 0,5 mm. Vid nu denna robot kan bara gå när jag bytte ON. Nu jobbar jag på att koppla Arduino och mob...

Mobil drivs arduino Uno robot med hjälp av DTMF

HejDetta är min första instructable. Så skulle jag försöka få dig att förstå hur man gör det. Nuförtiden, vill vi Visa våra vänner hur intelligent kan vi vara så detta är en perfekt modell måste du göra. Det är inte en autonom robot men du kan kalla...

Hinder undvika Robot med IR-sensorer utan Microcontroller

Detta projekt är Tja ett äldre projekt, jag gjorde det 2014 i juli eller augusti, månad tänkte dela den med er. Dess en enkel hinder undvika robot som använder IR-sensorer och fungerar utan mikrokontroller. IR-sensorer använder opamp IC dvs LM358N. D...

Pipe-Bot - en smart arduino bluetooth robot

Detta är min första instructables. Här visar jag hur man gör en billig två hjulförsedda arduino bluetooth robot, med PVC-rör och dess leder (för att göra kroppen). Det är enkelt att göra och lätt att programmet. Det har mycket roligt att spela med de...

Arduino nano 7segment 4digit display ping sensor av sarigiannis

i detta instructable ansluter vi arduino nano till en ping sensor och vi exportera resultatet till en 7 segment 4 siffrig display.Steg 1: Samla alla delar du behöver1 - skärbräda2 - hoppare ledningar3 - arduino nano v34 - ping sensor5 - 7 segment dek...

Billiga 4WD invända att undvika Robot med fyra IR närhet sensorer...

Detta är en billig grundläggande fyra motorer, fyra sensorer, programmerbara 8051 objekt att undvika robot med breadboad. Denna robot kan också användas som en linje efter robot bara ändra programmet. Jag installerade två batterier för mer makt, men...

Arduino-baserad rad efterföljare robot med hjälp av Pololu kvart-8RC line sensor

uppdatering FEB 2012: denna guide är med på Adafruits blogghttp://www.adafruit.com/blog/2012/02/14/Arduino-based-line-Follower-robot/Detta är Faz3a II, min första linje-efter roboten, vilket jag hoppas också att använda för labyrint-lösa. Jag använde...

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...

Hinder att undvika Robot med arduino

HINDER - ATT UNDVIKA ROBOTEtt hinder att undvika ROBOT är en som kan undvika ett hinder med hjälp av ultraljud sensor och gå i sin egen väg. Med en skärbräda bifogas roboten kan du spela roliga inom en kort tid. En sådan är vad vi ska diskutera här....

MANUELL / AUTONOM kontroll ROBOT (med SENSOR FUSION teknik)

DTMF eller två tonar flera frekvenser är fiffiga lilla sätt att kontrollera maskiner med din mobiltelefon. Detta instructable visar du, milda läsaren hur man gör en billigare än smuts DTMF kontrollerade robot som kan också fungera SJÄLVSTÄNDIGT, yeh!...

2WD röst kontrollerat Robot med Arduino och BitVoicer Server

I detta Instructable ska jag visa hur man bygger en 2WD röststyrd robot. Även om jag kontrollera endast DC motorer om du vill flytta roboten, samma tillvägagångssätt kan användas till röststyrning stegmotorer och servomotorer, så om du planerar att b...

Billig Robot med Arduino

jag ville lära mig elektronik, Arduino programmering, och lödning så jag tänkte att jag skulle plocka en av Randys projekt och kopiera den.Jag slutade med en annan motor konfiguration. Min front motor pekar ner och vänder lite kvartalet växel som vän...

Hinder att undvika Robot med hjälp av ultraljud med evive (Arduino powered embedded plattform)

Vi har byggt ett hinder att undvika robot med evive. Till skillnad från andra, har vi monterat ultrasonic sensor på en servo. Så efter att ha upptäckt en kollision, roboten analyserar vilken riktning är bäst att gå med avstånd i olika vinklar från ul...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

2-wheel Self Balancing Robot med hjälp av Arduino och MPU6050

2-Wheel Self Balancing Robot med hjälp av Arduino och MPU6050.Använda Arduino som controller och sensor MPU6050 för att styra balansen. Bara lägga till en enkel seriell Bluetooth-modul och använda en Bluetooth Serial Controller APP för Android-telefo...