Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: 3D -print: Karosseri, hjul, marmorhjul, 6 mm bolt/møtrik og ultralydssensormontering
- Trin 2: Programmer Arduino
- Trin 3: Saml robotten
- Trin 4: Fastgør sensortråde
- Trin 5: Færdig !!! Tilslut 9V Arduino -strømforsyning, tænd batteripakken, og begynd at undgå forhindringer med OAREE
Video: OAREE - 3D -printet - Hindring for at undgå robot til ingeniøruddannelse (OAREE) med Arduino: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
OAREE (Hindring for at undgå robot til ingeniøruddannelse)
Design: Målet med denne instruktør var at designe en OAR (Obstacle Avoiding Robot) robot, der var enkel/kompakt, 3D -udskrivbar, let at samle, bruger kontinuerlige rotationsservoer til bevægelse og har så få indkøbte dele som muligt. Jeg tror på, at det er lykkedes mig at skabe denne fantastiske robot og har navngivet den OAREE (Obstacle Avoiding Robot for Engineering Education). Denne robot vil fornemme forhindringer, stoppe, se til venstre og højre, derefter vende i uhindret retning og fortsætte fremad.
Baggrund: Internettet har adskillige hindringer for at undgå robotter, men de fleste er omfangsrige, svære at samle og dyre. Mange af disse robotter har Arduino -kode leveret, men det var svært at finde et gennemtænkt, fungerende eksempel. Jeg ville også bruge kontinuerlige rotationsservoer til hjulene (i stedet for DC -motorer), hvilket ikke var blevet udført endnu. Så jeg tog ud på en mission om at udvikle en kompakt, opfindsom OAR -robot, der skal deles med verden.
Videreudvikling: Denne robot kan videreudvikles for bedre pingingsnøjagtighed, tilføjelse af IR -sensorer til linjefølge, LCD -skærm til visning af forhindringsafstand og meget mere.
Forbrugsvarer
- 1x Arduino Uno -
- 1x V5 Sensor Shield -
- 1x 4xAA batteriholder med tænd/sluk -switch -
- 1x SG90 Servo -
- 2x kontinuerlig rotationsserver -
- 1x 9V batteristrømkabel til Arduino (VALGFRIT) -
- 1x HC -SR04 ultralydssensor -
- 4x Kvinde-Kvinde Jumper Wires-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
- 2x gummibånd
- 1x 9V batteri (valgfrit)
- 4x AA batterier
- 4x små skruer (4 x 1/2 eller noget lignende)
- Phillips skruetrækker
- Lim til fastgørelse af gummibånd til hjul
Trin 1: 3D -print: Karosseri, hjul, marmorhjul, 6 mm bolt/møtrik og ultralydssensormontering
Der er 5 dele til 3D -print.
- Legeme
- Hjul
- Marmor Caster
- 6 mm bolt/møtrik (valgfri, en metalmøtrik/bolt kan udskiftes)
- Ultrasonic Sensor Mount
Alle de påkrævede. STL -filer er inkluderet i denne instruerbare såvel som i Sketchup -filerne. 40% udfyldning anbefales.
Trin 2: Programmer Arduino
Send kode til Arduino UNO: Brug Arduino IDE til at sende koden (i den vedhæftede fil) til dit Arduino -modul. Du skal downloade og inkludere servo.h og newping.h bibliotekerne med denne skitse.
Koden er grundigt kommenteret, så du kan se, hvad hver kommando gør. Du kan nemt ændre afstanden til ultralydssensoren til en større eller mindre værdi, hvis det ønskes. Dette er en indledende kode og er beregnet til at blive udvidet og brugt til videre projektudvikling.
// OBSTACLE UNDGÅR ROBOT // [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Materialer påkrævet: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ultralydssensor, 4) FS90 Servo (til Ultralydssensor) // 5 & 6) 2x KONTINUERLIGE ROTATIONSSERVOS til hjulene // 7) 16 mm Marmor til baghjulsdreje, 8 & 9) 2 gummibånd til hjul // 10- 15) 1x (4xAA) Batteriholder med tænd/sluk -kontakt, 16 & 17) 9V batteri med stik til strømforsyning Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrasonic Sensor Montering og 6 mm skrue (se vedhæftede filer) // -------------------------------------- ---------------------------------------------------------- ----------------------------------------- #include // Include Servo Library #include // Inkluder Newping-bibliotek // ------------------------------------------- ---------------------------------------------------------- ------------------------------------ #definer TRIGGER_PIN 1 2 // US trigger til pin 12 på Arduino #define ECHO_PIN 13 // US Echo til pin 13 på Arduino #define MAX_DISTANCE 250 // Distance til ping (max er 250) int distance = 100; // ------------------------------------------------ ---------------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasonic Sensor Servo Servo Left_Servo; // Venstre hjul Servo Servo Right_Servo; // Højre hjul servo NewPing ekkolod (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing opsætning af stifter og maksimal afstand. // ------------------------------------------------ ---------------------------------------------------------- ------------------------------- ugyldig opsætning () // INPUT/OUTPUTS, HVOR AT FÆSTE, INDSTILLET Oprindelig position/bevægelse {pinMode (12, OUTPUT); // Trigger pin indstillet som output pinMode (13, INPUT); // Echo pin indstillet som input US_Servo.attach (11); // US Servo indstillet til pin 11 US_Servo.write (90); // US SERVO GLÆDER FREM
Venstre_Servo.attach (9); // Venstre hjul servo til pin 9
Venstre_Servo.skrive (90); // LEFT WHEEL SERVO indstillet til STOP
Right_Servo.attach (10); // Højre hjul servo indstillet til pin 10
Right_Servo.write (90); // RIGHT WHEEL SERVO indstillet til STOP forsinkelse (2000); // Vent i 2 sekunder afstand = readPing (); // Få pingafstand ved lige forsinket positionsforsinkelse (100); // Vent på 100 ms moveForward (); // ROBOT BEVÆGER FREM} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // Start US afstand til højre ved 0 int distanceLeft = 0; // Start amerikansk afstand til venstre ved 0 //US_Servo.write(90); // Center US servo // forsinkelse (50); // US_Servo.write (70); // Se lidt til højre // forsinkelse (250); // US_Servo.write (110); // Se lidt til venstre // forsinkelse (250); // US_Servo.write (90); // Look Center
hvis (afstand <= 20) // Robot bevæger sig fremad {moveStop (); // Robot STOPPER på afstand = distanceLeft) // Beslut, hvilken retning der skal drejes {turnRight (); // Højre side har størst afstand, ROBOT DREJER HØJRE for 0,3s forsinkelse (500); // Denne forsinkelse bestemmer drejelængde moveStop (); // Robot STOPPER} else {turnLeft (); // Venstre side største afstand, ROBOT VENDER VENSTRE for 0,3s forsinkelse (500); // Denne forsinkelse bestemmer drejelængde moveStop (); // Robot STOPS}} else {moveForward (); // Robot bevæger sig fremad} distance = readPing (); // USA LÆS NYT PING for den nye rejseretning} // ----------------------------------- ---------------------------------------------------------- -------------------------------------------- int lookRight () // Ultralydssensor SE HØJRE FUNKTION {US_Servo.write (30); // US servo FØLGER HØJRE til vinkelforsinkelse (500); int distance = readPing (); // Indstil pingværdi for højre forsinkelse (100); US_Servo.write (90); // US servo FLYTTER TIL CENTER returafstand; // Afstand er indstillet} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------ int lookLeft () // Ultrasonic Sensor LOOK LEFT FUNCTION {US_Servo.skrive (150); // US servo FØLGER VENSTRE til vinkelforsinkelse (500); int distance = readPing (); // Indstil pingværdi for venstre forsinkelse (100); US_Servo.write (90); // US servo FLYTTER TIL CENTER returafstand; // Afstand er indstillet} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int readPing () // Læs Ping-funktion til ultralydssensor. {forsinkelse (100); // 100ms mellem ping (min ping tid = 0.29ms) int cm = sonar.ping_cm (); // PING -afstanden indsamles og indstilles i cm hvis (cm == 0) {cm = 250; } cm tilbage; } // ----------------------------------------------- ---------------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 fremad, 0 bagud Right_Servo.write (90); // RightServo 0 fremad, 180 bagud} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- ugyldig moveForward () // ROBOT FREM {Left_Servo.skriv (180); // LeftServo 180 fremad, 0 bagud Right_Servo.write (0); // RightServo 0 fremad, 180 bagud} // --------------------------------------- -------------------------------------------------- ---------------------------------------- ugyldig bevægelseBackward () // ROBOT BACKWARD {Left_Servo.skriv (0); // LeftServo 180 fremad, 0 bagud Right_Servo.write (180); // RightServo 0 fremad, 180 bagud} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- ugyldig turnRight () // ROBOT HØJRE {Left_Servo.skriv (180); // LeftServo 180 fremad, 0 bagud Right_Servo.write (90); // RightServo 0 fremad, 180 bagud} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.skriv (90); // LeftServo 180 fremad, 0 bagud Right_Servo.write (0); // RightServo 0 fremad, 180 bagud} // --------------------------------------- ---------------------------------------------------------- ----------------------------------------
Trin 3: Saml robotten
Nu er det tid til at sammensætte din robot. Trinene er anført nedenfor.
1) Fastgør rund servoskive og gummibånd til hjul: Alle servoer leveres med monteringsbeslag i plast og skruer. Find de runde skiver, og skru dem fast i de to huller på den flade side af hjulene. Gummibåndene passer rundt om hjulet for at give greb. Du kan eventuelt tilføje lidt lim for at holde elastikkerne på plads.
2) Montering af marmorhjul: Brug to små skruer til at fastgøre marmorhjulet til de to trekanter på bagsiden. Marmorhjulet er en simpel erstatning for et baghjul og giver et bageste drejepunkt.
3) Sæt servoer i åbninger (ingen skruer er nødvendige): Anbring FS90 -servoen (til ultralydssensoren) i husets forreste åbning. De to kontinuerlige rotation servoer glider ind til venstre og højre slot. Slidserne er designet til en tæt pasform, så der ikke kræves skruer for at holde servoerne på plads. Sørg for, at servotrådene løber gennem rillerne i åbningerne, så de vender mod bagsiden af kroppen.
4) 9V batteriplacering (VALGFRIT): Placer 9V batteri + Arduino -strømstik bag den forreste servo.
5) Ultrasonic Sensor Mount Assembly: Brug to små skruer til at fastgøre en af de medfølgende hvide plast servotilbehør til bunden af Ultrasonic Sensor mount pladen. Brug derefter den 3D -trykte 6 mm bolt/møtrik (eller udskift en metalbolt/møtrik) til at fastgøre ultralydssensorhuset til monteringspladen. Til sidst placeres sensoren i kabinettet med stifterne opad og klikker på bagsiden af kabinettet.
6) 4x AA -batterikasse: Anbring AA -batterikassen i det store rektangulære område, med tænd/sluk -knappen vendt mod bagsiden.
7) Arduino Uno + V5 Sensor Shield: Sæt skjoldet på Arduino og placer det på holderne over batterikassen. Strømstikket skal vende mod venstre.
Din robot er bygget! Hvad er der tilbage? Programmering af Arduino og tilslutning af jumperledninger: Servoer, ultralydssensor og strømforsyning.
Trin 4: Fastgør sensortråde
Tilslut Servoledninger til V5 Shield:
- Venstre kontinuerlig rotation Servo fastgøres til PIN 9
- Højre kontinuerlig rotation Servo fastgøres til PIN 10
- Front FS90 Servo fastgøres til PIN 11
Tilslut ultralyds sensorstifter (via 4x hun til hun -jumperkabler) til V5 Shield:
- Udløser til PIN 12
- Ekko til PIN 13
- VCC til en af stifterne mærket med 'V'
- Jord til en af stifterne markeret med 'G'
Tilslut AA -batterikassen til V5 -skærmen:
- Fastgør den positive, røde ledning til VCC -stikket
- Fastgør den negative, sorte ledning til jordforbindelsen
Trin 5: Færdig !!! Tilslut 9V Arduino -strømforsyning, tænd batteripakken, og begynd at undgå forhindringer med OAREE
Færdig!
1) Tilslut 9V Arduino -strømforsyningen (valgfri)
2) Tænd batteripakken
3) Start med at undgå forhindringer med OAREE !!!
Jeg er sikker på, at du vil blive glad for din nye ven, OAREE, efter at have set det fornemme en forhindring, sikkerhedskopier og skift retning. OAREE fungerer bedst med store objekter, som ultralydssensoren kan pinge af (som vægge). Det har svært ved at pinge små genstande som stoleben på grund af deres lille overflade og hjørner. Del, udvikl dig videre, og lad mig vide om eventuelle nødvendige justeringer eller fejl. Dette har været en stor læringsoplevelse, og jeg håber, at du har lige så sjov med at lave dette projekt som jeg!
Runner Up i Robotics -konkurrencen
Anbefalede:
"GRECO" - Arduino Object Undgå robot for begyndere: 6 trin (med billeder)
"GRECO" - Arduino Object Undgå robot for begyndere: Nå, hvis du er nybegynder, her finder du den nemmeste måde at bygge dit eget objekt på, så du undgår robot! Vi vil bruge et mini -rundt robotchassis med to DC -motorer til at bygge det lettere . Endnu en gang vælger vi at bruge det berømte Arduino UNO -bord. Vores
Ardublock -forhindring for at undgå robot: 7 trin (med billeder)
Ardublock -forhindring ved at undgå robot: Denne instruktive vejledning handler om " Sådan bygger du en Arduino -hindring for at undgå robot " .Youtube -video, som jeg har uploadet for nylig. Jeg anbefaler dig på det kraftigste at tjekke det ud. Lad os komme igang
Hinder-undgå robot med en personlighed !: 7 trin (med billeder)
Hinder-undgå robot med en personlighed !: I modsætning til de fleste roaming 'bots, strejfer denne faktisk på en sådan måde, at det faktisk ser ud til at være' tænkning '! Med en BASIC Stamp mikrokontroller (Basic Atom, Parallax Basic Stamps, Coridium Stamp osv.), Et chassis af en eller anden art, et par sensorer og nogle s
PIC -baseret LF og undgå robot: 16 trin (med billeder)
PIC -baseret LF og undgå robot: Introduktion I denne instruktive vil du lære at lave en let følge og undgå robot. Min inspiration kommer fra robotter, der efterligner almindelig menneskelig adfærd, for eksempel vil du ikke bare gå ind i en væg uden grund. Din hjerne kommunikerer med
Sådan laver du en OAWR (forhindring i at undgå vandrerobot): 7 trin (med billeder)
Sådan laver du en OAWR (Obstacle Avoiding Walking Robot): Denne instruktør viser, hvordan du laver en lille gårobot, der undgår forhindringer (meget gerne mange kommercielt tilgængelige muligheder). Men hvad er sjovt ved at købe et legetøj, når du i stedet kan starte med en motor, et stykke plast og en bunke bolte og pro