INHOUDSOPGAWE:

OAREE - 3D -gedruk - obstakel om robot te vermy vir ingenieursopleiding (OAREE) met Arduino: 5 stappe (met foto's)
OAREE - 3D -gedruk - obstakel om robot te vermy vir ingenieursopleiding (OAREE) met Arduino: 5 stappe (met foto's)

Video: OAREE - 3D -gedruk - obstakel om robot te vermy vir ingenieursopleiding (OAREE) met Arduino: 5 stappe (met foto's)

Video: OAREE - 3D -gedruk - obstakel om robot te vermy vir ingenieursopleiding (OAREE) met Arduino: 5 stappe (met foto's)
Video: Прекрасная дама бежит за сокровищами! - Relic Runway Gameplay 🎮📱 2024, Junie
Anonim
Image
Image
OAREE - 3D -gedruk - hindernis om robot te vermy vir ingenieursopleiding (OAREE) met Arduino
OAREE - 3D -gedruk - hindernis om robot te vermy vir ingenieursopleiding (OAREE) met Arduino
OAREE - 3D -gedruk - hindernis om robot te vermy vir ingenieursopleiding (OAREE) met Arduino
OAREE - 3D -gedruk - hindernis om robot te vermy vir ingenieursopleiding (OAREE) met Arduino

OAREE (Obstacle Vermy Robot for Engineering Education)

Ontwerp: Die doel van hierdie instruksies was om 'n OAR (Obstacle Avoiding Robot) robot te ontwerp wat eenvoudig/kompak was, 3D -drukbaar, maklik om te monteer, deurlopende rotasieservo's gebruik vir beweging en wat so min as moontlik gekoopte onderdele het. Ek glo dat ek daarin geslaag het om hierdie wonderlike robot te skep en het dit OAREE (Obstacle Avoiding Robot for Engineering Education) genoem. Hierdie robot voel hindernisse, stop, kyk links en regs, draai dan in die onbelemmerde rigting en gaan vorentoe.

Agtergrond: Die internet het talle hindernisse om robotte te vermy, maar die meeste is lywig, moeilik om te monteer en duur. Baie van hierdie robotte het Arduino -kode verskaf, maar dit was moeilik om 'n deurdagte, werkende voorbeeld te vind. Ek wou ook servo's met deurlopende rotasie vir die wiele gebruik (in plaas van DC -motors), wat nog nie gedoen is nie. Dus het ek 'n missie aangepak om 'n kompakte, vindingryke OAR -robot te ontwikkel om met die wêreld te deel.

Verdere ontwikkeling: Hierdie robot kan verder ontwikkel word vir 'n beter ping -akkuraatheid, deur IR -sensors by te voeg vir lynvolgvermoë, LCD -skerm om hindernisafstand te wys, en nog baie meer.

Voorrade

  • 1x Arduino Uno -
  • 1x V5 sensorskerm -
  • 1x 4xAA batteryhouer met aan/uit -skakelaar -
  • 1x SG90 Servo -
  • 2x deurlopende rotasieservo's -
  • 1x 9V batterykragkabel vir Arduino (opsioneel) -
  • 1x Ultrasoniese sensor HC -SR04 -
  • 4x Jumper Wires-Female-Female-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x rubberbandjies
  • 1x 9V battery (opsioneel)
  • 4x AA -batterye
  • 4x klein skroewe (4 x 1/2 of iets soortgelyks)
  • Phillips skroewedraaier
  • Gom om rubberbande aan wiele vas te maak

Stap 1: 3D -druk: bak, wiele, marmeren wiel, 6 mm bout/moer en ultrasoniese sensorhouer

3D -druk: bak, wiele, marmeren wiel, 6 mm -bout/moer en ultrasoniese sensorhouer
3D -druk: bak, wiele, marmeren wiel, 6 mm -bout/moer en ultrasoniese sensorhouer
3D -druk: bak, wiele, marmeren wiel, 6 mm -bout/moer en ultrasoniese sensorhouer
3D -druk: bak, wiele, marmeren wiel, 6 mm -bout/moer en ultrasoniese sensorhouer
3D -druk: bak, wiele, marmeren wiel, 6 mm -bout/moer en ultrasoniese sensorhouer
3D -druk: bak, wiele, marmeren wiel, 6 mm -bout/moer en ultrasoniese sensorhouer

Daar is 5 dele om 3D te druk.

  1. Liggaam
  2. Wiele
  3. Marmer Caster
  4. 6 mm bout/moer (opsioneel, 'n metaalmoer/bout kan vervang word)
  5. Ultrasoniese sensorhouer

Al die vereiste. STL -lêers is ingesluit in hierdie instruksies sowel as die Sketchup -lêers. 40% vul word aanbeveel.

Stap 2: Programmeer die Arduino

Image
Image
Monteer die robot
Monteer die robot

Stuur kode na Arduino UNO: stuur die kode (in die aangehegte lêer) met die Arduino IDE na u Arduino -module. U moet die servo.h- en newping.h -biblioteke aflaai en by hierdie skets insluit.

Die kode word deeglik kommentaar gelewer, sodat u kan sien wat elke opdrag doen. U kan die afstand van die ultrasoniese sensor maklik verander na 'n groter of kleiner waarde indien nodig. Dit is 'n aanvanklike kode en is bedoel om uitgebrei te word en gebruik te word vir verdere projekontwikkeling.

// OBSTACLE UNOIDING ROBOT // [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Materials Required: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ultrasone sensor, 4) FS90 Servo (vir ultrasoniese sensor) // 5 & 6) 2x KONTINUWE ROTASIESERVOS vir die wiele // 7) 16 mm marmer vir agterste draaipunt, 8 & 9) 2 rubberbande vir wiele // 10- 15) 1x (4xAA) Batteryhouer met aan/uit -skakelaar, 16 en 17) 9V -battery met aansluiting vir krag Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrasonic Sensor Monteer en 6 mm skroef (sien aangehegte lêers) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Sluit Servobiblioteek in #include // Sluit Newping-biblioteek in // ------------------------------------------- -------------------------------------------------- ------------------------------------ #definieer TRIGGER_PIN 1 2 // Amerikaanse sneller na pen 12 op Arduino #define ECHO_PIN 13 // US Echo na pen 13 op Arduino #define MAX_DISTANCE 250 // Afstand tot ping (maksimum is 250) int afstand = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasoniese sensor Servo Servo Left_Servo; // Linkerwiel Servo Servo Right_Servo; // Right Wheel Servo NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing -opstelling van penne en maksimum afstand. // ------------------------------------------------ -------------------------------------------------- ------------------------------- ongeldige opstelling () // INGANG/UITGANGE, WAAR OM HEG TE HEG, STEL OORSPRONKLIKE POSISIE/BEWEGING {pinMode (12, OUTPUT); // Snellerpen gestel as uitvoer pinMode (13, INPUT); // Echo -pen stel as invoer US_Servo.attach (11); // Amerikaanse servo stel vas aan US 11S_Servo.write (90); // VS SERVO KYK UIT

Links_Servo.aanheg (9); // Linkerwiel servo tot pen 9

Left_Servo.write (90); // LINKERWIEL SERVO ingestel op STOP

Regs_Servo.aanheg (10); // Regterwiel servo stel op pen 10

Right_Servo.write (90); // REGSWIEL SERVO ingestel op STOP vertraging (2000); // Wag vir 2 sekondes afstand = readPing (); // Kry Ping -afstand met 'n reguit vorentoe posisie vertraging (100); // Wag vir 100 ms moveForward (); // ROBOT BEWEG VOORUIT} // ------------------------------------------ -------------------------------------------------- ------------------------------------- leegloop () {int distanceRight = 0; // Begin Amerikaanse afstand na regs by 0 int distanceLeft = 0; // Begin Amerikaanse afstand na links by 0 //US_Servo.write(90); // Sentreer Amerikaanse servo // vertraging (50); // US_Servo.write (70); // Kyk effens regs // vertraag (250); // US_Servo.write (110); // Kyk effens links // vertraag (250); // US_Servo.write (90); // Look Center

as (afstand <= 20) // Robot VOORUIT beweeg {moveStop (); // Robot STOP op afstand = afstandLinks) // Besluit watter rigting {turnRight () moet draai; // Die regterkant het die grootste afstand, ROBOT draai regs vir 'n vertraging van 0,3 sekondes (500); // Hierdie vertraging bepaal draai lengte moveStop (); // Robot STOPS} anders {turnLeft (); // Die grootste afstand aan die linkerkant, ROBOT draai links na 'n vertraging van 0,3 sek. (500); // Hierdie vertraging bepaal draai lengte moveStop (); // Robot STOPS}} else {moveForward (); // Robot beweeg vorentoe} afstand = readPing (); // VSA LEES NUWE PING vir die nuwe reisrigting} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultrasoniese sensor KYK REGTE FUNKSIE {US_Servo.write (30); // Amerikaanse servo beweeg regs na hoekvertraging (500); int afstand = readPing (); // Stel pingwaarde vir regte vertraging (100); US_Servo.write (90); // Amerikaanse servo beweeg na die sentrum terugkeerafstand; // Afstand is ingestel} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Ultrasoniese sensor KYK LINKS FUNKSIE {US_Servo.skryf (150); // Amerikaanse servo beweeg links na hoekvertraging (500); int afstand = readPing (); // Stel pingwaarde vir vertraging links (100); US_Servo.write (90); // Amerikaanse servo beweeg na die sentrum terugkeerafstand; // Afstand is ingestel} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int readPing () // Lees Ping-funksie vir ultrasoniese sensor. {vertraging (100); // 100ms tussen pings (min pingtyd = 0.29ms) int cm = sonar.ping_cm (); // PING -afstand word ingesamel en in cm gestel as (cm == 0) {cm = 250; } cm terug; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- nietig moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 vorentoe, 0 agteruit Right_Servo.write (90); // RightServo 0 vorentoe, 180 agteruit} // --------------------------------------- -------------------------------------------------- ---------------------------------------- ongeldig moveForward () // ROBOT VOORUIT {Left_Servo.skryf (180); // LeftServo 180 vorentoe, 0 agteruit Right_Servo.write (0); // RightServo 0 vorentoe, 180 agteruit} // --------------------------------------- -------------------------------------------------- ---------------------------------------- ongeldig skuif Terug () // ROBOT TERUG {Left_Servo.skryf (0); // LeftServo 180 vorentoe, 0 agteruit Right_Servo.write (180); // RightServo 0 vorentoe, 180 agteruit} // --------------------------------------- -------------------------------------------------- ---------------------------------------- nietig turnRight () // ROBOT REGS {Left_Servo.skryf (180); // LeftServo 180 vorentoe, 0 agteruit Right_Servo.write (90); // RightServo 0 vorentoe, 180 agteruit} // --------------------------------------- -------------------------------------------------- -------------------------------------- void turnLeft () // ROBOT LINKS {Left_Servo.skryf (90); // LeftServo 180 vorentoe, 0 agteruit Right_Servo.write (0); // RightServo 0 vorentoe, 180 agteruit} // --------------------------------------- -------------------------------------------------- ----------------------------------------

Stap 3: Monteer die robot

Image
Image
Monteer die robot
Monteer die robot
Monteer die robot
Monteer die robot

Dit is nou tyd om u robot saam te stel. Die stappe word hieronder gelys.

1) Bevestig ronde servoskyfies en rubberbande aan wiele: alle servo's word voorsien van plastiekbevestigingshardeware en skroewe. Soek die ronde skywe en skroef dit in die twee gate aan die plat kant van die wiele. Die rekkies pas om die wiel om vas te hou. U kan 'n bietjie gom byvoeg om die rekkies op hul plek te hou.

2) Marble Caster Attachment: Gebruik twee klein skroewe om die marmer caster aan die twee driehoeke aan die agterkant vas te maak. Die marmerwiel is 'n eenvoudige vervanging vir 'n agterwiel en bied 'n draaipunt agter.

3) Steek servo's in gleuwe (geen skroewe nodig nie): Plaas die FS90 -servo (vir die ultrasoniese sensor) in die voorste gleuf van die liggaam. Die twee deurlopende rotasieservo's skuif na die linker en regter gleuwe. Die gleuwe is ontwerp om styf te pas, sodat geen skroewe nodig is om die servo's vas te hou nie. Maak seker dat die servodrade deur die groewe in die gleuwe loop sodat dit na die agterkant van die liggaam wys.

4) 9V -batteryplasing (opsioneel): plaas 'n 9V -battery + Arduino -aansluiting agter die servo.

5) Ultrasonic Sensor Mount Assembly: Gebruik twee klein skroewe om een van die meegeleverde wit plastiek servo -aanhangsels aan die onderkant van die ultrasoniese sensor -monteerplaat vas te maak. Gebruik vervolgens die 3D -gedrukte 6 mm -bout/moer (of vervang 'n metaalbout/moer) om die ultraklank sensorkas aan die monteerplaat vas te maak. Plaas die sensor ten slotte in die omhulsel met die penne na bo en klik agter in die omhulsel.

6) 4x AA -batterykas: Plaas die AA -batterykas in die groot reghoekige gebied, met die aan/uit -skakelaar na agter.

7) Arduino Uno + V5 sensorskerm: Bevestig die skild aan die Arduino en plaas dit op die houers bo die batterykas. Die kragaansluiting moet na links wys.

Jou robot is gebou! Wat is oor? Programmering van die Arduino en verbindingsdrade: servo's, ultrasoniese sensor en kragtoevoer.

Stap 4: Bevestig sensordrade

Image
Image
Klaar !!! Koppel die 9V Arduino -kragtoevoer aan, skakel die battery aan en begin om hindernisse met OAREE te vermy
Klaar !!! Koppel die 9V Arduino -kragtoevoer aan, skakel die battery aan en begin om hindernisse met OAREE te vermy

Koppel Servo -drade aan V5 Shield:

  1. Deurlopende draai aan die linkerkant Servo word aan PIN 9 geheg
  2. Regs deurlopende rotasie servo word aan PIN 10 geheg
  3. Voorste FS90 -servo word aan PIN 11 geheg

Koppel ultrasoniese sensorpenne (via 4x vroulike na vroulike springdrade) aan V5 Shield:

  1. Skakel na PIN 12
  2. Echo na PIN 13
  3. VCC aan enige van die penne gemerk met 'V'
  4. Gemaal op enige van die penne gemerk met 'G'

Koppel die AA -batterykas aan die V5 -skild:

  1. Koppel die positiewe, rooi draad aan die VCC -aansluiting
  2. Koppel die negatiewe, swart draad aan die grondaansluiting

Stap 5: klaar !!! Koppel die 9V Arduino -kragtoevoer aan, skakel die battery aan en begin om hindernisse met OAREE te vermy

Image
Image
Klaar !!! Koppel die 9V Arduino -kragtoevoer aan, skakel die battery aan en begin om hindernisse met OAREE te vermy
Klaar !!! Koppel die 9V Arduino -kragtoevoer aan, skakel die battery aan en begin om hindernisse met OAREE te vermy

Klaar !

1) Koppel die 9V Arduino -kragtoevoer (opsioneel)

2) Skakel die battery in

3) Begin om hindernisse te vermy met OAREE !!!

Ek is seker dat u van u nuwe vriend, OAREE, sal hou, nadat u 'n hindernis gesien het, 'n rugsteun maak en van rigting verander. OAREE werk die beste met groot voorwerpe waarvan die ultrasoniese sensor (soos mure) kan klop. Dit is moeilik om klein voorwerpe soos stoelpote te pik as gevolg van hul klein oppervlakte en hoeke. Deel, ontwikkel verder en laat weet my van die nodige aanpassings of foute. Dit was 'n wonderlike leerervaring, en ek hoop dat u net soveel plesier sal hê as ek!

Robotiekompetisie
Robotiekompetisie
Robotiekompetisie
Robotiekompetisie

Naaswenner in die robotiese kompetisie

Aanbeveel: