Taula de continguts:

OAREE - Imprès en 3D - Robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino: 5 passos (amb imatges)
OAREE - Imprès en 3D - Robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino: 5 passos (amb imatges)

Vídeo: OAREE - Imprès en 3D - Robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino: 5 passos (amb imatges)

Vídeo: OAREE - Imprès en 3D - Robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino: 5 passos (amb imatges)
Vídeo: PIXEL GUN 3D LIVE 2024, Juny
Anonim
Image
Image
OAREE - Impressió 3D: robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino
OAREE - Impressió 3D: robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino
OAREE - Imprès en 3D: robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino
OAREE - Imprès en 3D: robot per evitar obstacles per a l'educació en enginyeria (OAREE) amb Arduino

OAREE (Robot per evitar obstacles per a l'educació enginyeria)

Disseny: l'objectiu d'aquest instructiu era dissenyar un robot OAR (Obstacle Avoiding Robot) que fos senzill / compacte, imprimible en 3D, fàcil de muntar, que utilitzi servos de rotació contínua per al moviment i que tingui el mínim de peces comprades possible. Crec que he aconseguit crear aquest impressionant robot i l’he batejat com a OAREE (Robot Avoiding Robot for Engineering Education). Aquest robot detectarà els obstacles, s’aturarà, mirarà a l’esquerra i a la dreta, i després girarà en la direcció sense obstacles i continuarà endavant.

Antecedents: Internet té nombrosos obstacles per evitar robots, però la majoria són voluminosos, difícils de muntar i costosos. Molts d'aquests robots disposen de codi Arduino, però era difícil trobar un exemple de treball ben pensat. També volia utilitzar servos de rotació contínua per a les rodes (en lloc de motors de corrent continu), cosa que encara no s’havia fet. Per tant, em vaig llançar a la missió de desenvolupar un robot OAR compacte i inventiu per compartir amb el món.

Desenvolupament addicional: aquest robot es pot desenvolupar per millorar la precisió del ping, afegint sensors IR per a la capacitat de seguiment de la línia, pantalla LCD per mostrar la distància dels obstacles i molt més.

Subministraments

  • 1x Arduino Uno -
  • 1x Escut del sensor V5:
  • 1x suport de bateria 4xAA amb commutador encès / de -
  • 1x Servo SG90:
  • 2 servos de rotació contínua:
  • 1 cable d'alimentació de bateria de 9 V per Arduino (OPCIONAL) -
  • 1x sensor d'ultrasons HC-SR04 -
  • 4x cables de pont femení-femení: https://www.amazon.com/RGBZONE-120pcs-Multicolored …
  • 2 bandes de goma
  • 1 bateria de 9 V (OPCIONAL)
  • 4x piles AA
  • 4x cargols petits (4 x 1/2 o qualsevol cosa similar)
  • Tornavís Phillips
  • Cola per assegurar gomes a les rodes

Pas 1: impressió 3D: carrosseria, rodes, roda de marbre, cargol / femella de 6 mm i muntatge del sensor d'ultrasons

Impressió 3D: carrosseria, rodes, roda de marbre, cargol / femella de 6 mm i muntatge per a ultrasons
Impressió 3D: carrosseria, rodes, roda de marbre, cargol / femella de 6 mm i muntatge per a ultrasons
Impressió 3D: carrosseria, rodes, roda de marbre, cargol / femella de 6 mm i muntatge per a ultrasons
Impressió 3D: carrosseria, rodes, roda de marbre, cargol / femella de 6 mm i muntatge per a ultrasons
Impressió 3D: carrosseria, rodes, roda de marbre, cargol / femella de 6 mm i muntatge per a ultrasons
Impressió 3D: carrosseria, rodes, roda de marbre, cargol / femella de 6 mm i muntatge per a ultrasons

Hi ha 5 parts per imprimir en 3D.

  1. Cos
  2. Rodes
  3. Caster de marbre
  4. Pern / femella de 6 mm (opcional, es pot substituir una pern / femella de metall)
  5. Muntatge de sensor per ultrasons

Tots els fitxers. STL necessaris s'inclouen en aquest fitxer instructiu i en els fitxers Sketchup. Es recomana omplir un 40%.

Pas 2: programa l'Arduino

Image
Image
Munteu el robot
Munteu el robot

Enviar codi a Arduino UNO: mitjançant l'IDE Arduino, envieu el codi (al fitxer adjunt) al mòdul Arduino. Haureu de descarregar i incloure les biblioteques servo.h i newping.h amb aquest esbós.

El codi es comenta a fons, de manera que podeu veure què fa cada ordre. Podeu canviar fàcilment la distància del sensor d'ultrasons a un valor més gran o més petit si ho desitgeu. Aquest és un codi inicial i està pensat per ampliar-lo i utilitzar-lo per al desenvolupament de projectes posteriors.

// ROBOT EVITANT OBSTACLES // [email protected], [email protected], Universitat de TN a Chattanooga, Enginyeria elèctrica, TARDOR 2019 // Materials necessaris: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) Sensor ultrasònic HCSR04, 4) Servo FS90 (per sensor ultrasònic) // 5 i 6) 2x SERVICIS DE ROTACIÓ CONTINUA per a les rodes // 7) Marbre de 16 mm per al pivot de la roda posterior, 8 i 9) 2 gomes per a rodes // 10- 15) 1x (4xAA) Suport de bateria amb interruptor d’encès / apagat, 16 i 17) Bateria de 9V amb connector per alimentar Arduino UNO // IMPRESSIÓ 3D: // 18) Cos ROBOT, 19 i 20) 2x rodes, 21) Roda de marbre, 22) Sensor d’ultrasons Muntatge i cargol de 6 mm (veure fitxers adjunts) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Inclou Servo Library #include // Inclou Newping Library // ------------------------------------------- -------------------------------------------------- ------------------------------------ #define TRIGGER_PIN 1 2 // Activador dels EUA al pin 12 a Arduino #define ECHO_PIN 13 // US Eco al pin 13 a Arduino #define MAX_DISTANCE 250 // Distància al ping (màxim 250) int distance = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Servo Servo Sensor Ultrasònic Left_Servo; // Servo roda esquerra Servo dret_Servo; // Sonar NewPing Servo de roda dreta (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing configuració de pins i distància màxima. // ------------------------------------------------ -------------------------------------------------- ------------------------------- configuració nul·la () // ENTRADES / SORTIDES, ON ADJUNTAR-SE, CONFIGURAR LA POSICIÓ / MOVIMENT INICIAL {pinMode (12, OUTPUT); // Pin del gatet configurat com pinMode de sortida (13, INPUT); // Pin de ressò definit com a entrada US_Servo.attach (11); // Servo dels EUA configurat per fixar 11 US_Servo.write (90); // EL SERVO DELS ESTATS UNITS ESPERA

Left_Servo.attach (9); // Servo de roda esquerra al pin 9

Left_Servo.write (90); // SERVEI DE RODA ESQUERRA configurat a STOP

Right_Servo.attach (10); // Servo de roda dreta configurat al pin 10

Right_Servo.write (90); // SERVEI DE RODA DRETA configurat a STOP delay (2000); // Espereu una distància de 2 segons = readPing (); // Obtenir la distància de ping amb un retard de posició cap endavant (100); // Espereu 100 ms moveForward (); // EL ROBOT AVANÇA} // ------------------------------------------ -------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // Inicieu la distància dels EUA cap a la dreta a 0 int distanceLeft = 0; // Inicieu la distància dels EUA cap a l'esquerra a 0 //US_Servo.write(90); // Centre EUA servo // delay (50); // US_Servo.write (70); // Mira lleugerament cap a la dreta // demora (250); // US_Servo.write (110); // Mira lleugerament a l’esquerra // demora (250); // US_Servo.write (90); // Mireu al centre

if (distància <= 20) // El robot és AVANÇA {moveStop (); // El robot PARA a distància = distànciaEsquerra) // Decidiu quina direcció voleu girar {girRecta (); // El costat dret té la distància més gran, ROBOT GIRA A LA DRETA per 0,3 s de retard (500); // Aquest retard determina la longitud del gir moveStop (); // El robot PARA} else {turnLeft (); // Distància més gran del costat esquerre, ROBOT GIRA ESQUERRA per 0,3 s de retard (500); // Aquest retard determina la longitud del gir moveStop (); // El robot PARA}} else {moveForward (); // El robot es mou cap endavant} distància = readPing (); // EUA LLEGEIX NOU PING per a la nova direcció de viatge} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Sensor d'ultrasons FUNCIÓ DESTACADA {US_Servo.write (30); // El servo dels EUA es mou cap a la dreta cap al retard d’angle (500); int distance = readPing (); // Estableix el valor de ping per al retard correcte (100); US_Servo.write (90); // El servo nord-americà MOU AL CENTRE la distància de tornada; // Es defineix la distància} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Sensor d'ultrasons LOOK FUNCTION LEFT {US_Servo.write (150); // El servoamericà es mou cap a l'esquerra per retardar l'angle (500); int distance = readPing (); // Estableix el valor de ping per al retard esquerre (100); US_Servo.write (90); // El servo nord-americà MOU AL CENTRE la distància de tornada; // Distància establerta} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Funció de lectura de ping per al sensor d'ultrasons. {endarreriment (100); // 100 ms entre pings (temps de ping mínim = 0,29 ms) int cm = sonar.ping_cm (); // La distància de PING es recopila i es defineix en cm si (cm == 0) {cm = 250; } retorn cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // STOP ROBOT {Left_Servo.write (90); // LeftServo 180 endavant, 0 reverse Right_Servo.write (90); // RightServo 0 cap endavant, 180 cap enrere} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.write (180); // LeftServo 180 endavant, 0 reverse Right_Servo.write (0); // RightServo 0 cap endavant, 180 cap enrere} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.write (0); // LeftServo 180 endavant, 0 reverse Right_Servo.write (180); // RightServo 0 cap endavant, 180 cap enrere} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.write (180); // LeftServo 180 endavant, 0 reverse Right_Servo.write (90); // RightServo 0 cap endavant, 180 cap enrere} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.write (90); // LeftServo 180 endavant, 0 reverse Right_Servo.write (0); // RightServo 0 cap endavant, 180 cap enrere} // --------------------------------------- -------------------------------------------------- ----------------------------------------

Pas 3: Munteu el robot

Image
Image
Munteu el robot
Munteu el robot
Munteu el robot
Munteu el robot

Ara és el moment de reunir el vostre robot. A continuació es detallen els passos.

1) Col·loqueu les rodes de servodisc i de goma a les rodes: tots els servos vénen amb maquinari i cargols de muntatge de plàstic. Cerqueu els discs rodons i enrosqueu-los als dos forats del costat pla de les rodes. Les bandes de goma s’adapten al voltant de la roda per proporcionar adherència. És possible que vulgueu afegir una mica de cola per mantenir les gomes al seu lloc.

2) Fixació de rodes de marbre: utilitzeu dos petits cargols per fixar la roda de marbre als dos triangles de la part posterior. La roda de marbre és un simple substitut de la roda del darrere i proporciona un punt de gir posterior.

3) Inseriu servos a les ranures (no cal cargols): col·loqueu el servo FS90 (per al sensor d'ultrasons) a la ranura frontal del cos. Els dos servos de rotació contínua llisquen cap a les ranures esquerra i dreta. Les ranures estan dissenyades per a un ajust ajustat, de manera que no calen cargols per mantenir els servos al seu lloc. Assegureu-vos que els servocables passin per les ranures de les ranures de manera que estiguin orientades cap a la part posterior del cos.

4) Col·locació de la bateria de 9V (OPCIONAL): col·loqueu la bateria de 9V + el connector d'alimentació Arduino darrere del servo frontal.

5) Muntatge del muntatge del sensor d'ultrasons: utilitzeu dos cargols petits per connectar un dels accessoris de servo de plàstic blanc inclosos a la part inferior de la placa de muntatge del sensor d'ultrasons. A continuació, utilitzeu el cargol / femella de 6 mm impresos en 3D (o substituïu un cargol / femella de metall) per fixar la caixa del sensor d'ultrasons a la placa de muntatge. Finalment, col·loqueu el sensor a la caixa amb els passadors cap amunt i enganxeu-lo a la part posterior de la caixa.

6) Carcassa de bateria AA 4x: col·loqueu la carcassa de la bateria AA a la zona rectangular gran, amb l’interruptor d’encès / apagat cap a la part posterior.

7) Escut del sensor Arduino Uno + V5: col·loqueu l’escut a l’Arduino i col·loqueu-lo als suports situats a sobre de la caixa de la bateria. El connector d’alimentació ha d’anar cap a l’esquerra.

El vostre robot està construït. Què queda? Programació de l'Arduino i connexió de cables de pont: Servos, sensor d'ultrasons i font d'alimentació.

Pas 4: connecteu els cables del sensor

Image
Image
Acabat !!! Connecteu la font d’alimentació Arduino de 9V, activeu la bateria i comenceu a evitar obstacles amb OAREE
Acabat !!! Connecteu la font d’alimentació Arduino de 9V, activeu la bateria i comenceu a evitar obstacles amb OAREE

Connecteu els cables servo a V5 Shield:

  1. El servo de rotació contínua a l’esquerra s’adjunta al PIN 9
  2. El servo de rotació contínua dreta s’adjunta al PIN 10
  3. El servo FS90 frontal s’adjunta al PIN 11

Connecteu els pins del sensor d’ultrasons (mitjançant 4x cables femella a femella) a l’escut V5:

  1. Activa el PIN 12
  2. Ressò al PIN 13
  3. VCC a qualsevol dels pins marcats amb "V"
  4. Posada a terra a qualsevol dels pins marcats amb "G"

Connecteu la funda de la bateria AA a l’escut V5:

  1. Connecteu el cable vermell positiu al connector VCC
  2. Connecteu el cable negatiu negre a la connexió de terra

Pas 5: acabat !!! Connecteu la font d’alimentació Arduino de 9V, activeu la bateria i comenceu a evitar obstacles amb OAREE

Image
Image
Acabat !!! Connecteu la font d’alimentació Arduino de 9V, activeu la bateria i comenceu a evitar obstacles amb OAREE
Acabat !!! Connecteu la font d’alimentació Arduino de 9V, activeu la bateria i comenceu a evitar obstacles amb OAREE

Acabat !

1) Connecteu la font d'alimentació Arduino de 9V (opcional)

2) Engegueu la bateria

3) Comenceu a evitar obstacles amb OAREE !!!

Estic segur que us agradarà el vostre nou amic, OAREE, després de veure que detecta un obstacle, fer còpies de seguretat i canviar de direcció. OAREE funciona millor amb objectes grans dels quals el sensor ultrasònic pot separar-se (com les parets). És difícil fer ping a objectes petits com les potes de la cadira a causa de la seva superfície i cantonades reduïdes. Comparteix, desenvolupa més i fes-me saber els ajustos o errors necessaris. Aquesta ha estat una experiència d’aprenentatge fantàstica i espero que us divertiu fent aquest projecte igual que jo.

Concurs de robòtica
Concurs de robòtica
Concurs de robòtica
Concurs de robòtica

Accèssit al concurs de robòtica

Recomanat: