Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: 3D Print: Katawan, Gulong, Marble Caster, 6mm Bolt / nut, at Ultrasonic Sensor Mount
- Hakbang 2: I-program ang Arduino
- Hakbang 3: Magtipon ng Robot
- Hakbang 4: Maglakip ng Mga Wire ng Sensor
- Hakbang 5: Tapos !!! Ikonekta ang 9V Arduino Power Supply, I-on ang Battery Pack, at Simulan ang Pag-iwas sa Mga Hadlang Sa OAREE
Video: OAREE - 3D Printed - Obstacle Pag-iwas sa Robot para sa Edukasyon sa Engineering (OAREE) Sa Arduino: 5 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
OAREE (Obstacle Pag-iwas sa Robot para saEngineering Education)
Disenyo: Ang layunin ng itinuturo na ito ay upang magdisenyo ng isang robot ng OAR (Obstacle Avoiding Robot) na simple / compact, 3D na naka-print, madaling mag-ipon, gumagamit ng tuluy-tuloy na mga servo ng rotation para sa paggalaw, at mayroong ilang biniling bahagi hangga't maaari. Naniniwala ako na nagtagumpay ako sa paglikha ng kamangha-manghang robot na ito at pinangalanan itong OAREE (Obstacle Avoiding Robot for Engineering Education). Ang robot na ito ay makakaramdam ng mga hadlang, huminto, tumingin sa kaliwa at kanan, pagkatapos ay lumiko sa hindi nakaharang na direksyon at magpatuloy.
Background: Ang internet ay may maraming balakid sa pag-iwas sa mga robot, ngunit ang karamihan ay malaki, mahirap tipunin, at mahal. Marami sa mga robot na ito ay mayroong ibinigay na Arduino code, ngunit mahirap makahanap ng isang napag-isipang mabuti, halimbawa ng pagtatrabaho. Nais ko ring gumamit ng tuluy-tuloy na servos ng pag-ikot para sa mga gulong (sa halip na DC motors), na hindi pa nagagawa. Kaya, nag-misyon ako upang bumuo ng isang compact, inventive OAR robot upang maibahagi sa mundo.
Karagdagang Pag-unlad: Ang robot na ito ay maaaring karagdagang binuo para sa mas mahusay na kawastuhan ng pinging, pagdaragdag ng mga IR sensor para sa sumusunod na kakayahan, linya ng LCD upang ipakita ang distansya ng balakid, at marami pa.
Mga gamit
- 1x Arduino Uno -
- 1x V5 Sensor Shield -
- 1x 4xAA Battery Holder na may On / Of Switch -
- 1x SG90 Servo -
- 2x Patuloy na Pag-ikot ng Mga Serbisyo -
- 1x 9V Battery Power Cable para sa Arduino (OPSYONAL) -
- 1x HC-SR04 Ultrasonic Sensor -
- 4x Babae-Babae Jumper Wires -
- 2x Mga Rubber Bands
- 1x 9V Baterya (OPSYONAL)
- 4x Mga Baterya ng AA
- 4x Maliit na Mga Screw (4 x 1/2 o anumang katulad)
- Phillips Screw Driver
- Pandikit para sa pag-secure ng mga goma sa mga gulong
Hakbang 1: 3D Print: Katawan, Gulong, Marble Caster, 6mm Bolt / nut, at Ultrasonic Sensor Mount
Mayroong 5 mga bahagi sa 3D print.
- Katawan
- Mga gulong
- Marble Caster
- 6mm Bolt / Nut (opsyonal, maaaring mapalitan ang isang metal nut / bolt)
- Pag-mount ng Ultrasonic Sensor
Ang lahat ng kinakailangang mga file ng. STL ay kasama sa itinuturo na ito pati na rin ang mga Sketchup file. Inirekumenda ang 40% infill.
Hakbang 2: I-program ang Arduino
Magpadala ng Code sa Arduino UNO: Gamit ang Arduino IDE, ipadala ang code (sa kalakip na file) sa iyong Arduino module. Kakailanganin mong i-download at isama ang mga silid aklatan ng servo.h at newping.h gamit ang sketch na ito.
Ang code ay lubusang nagkomento, upang makita mo kung ano ang ginagawa ng bawat utos. Madali mong mababago ang distansya ng Ultrasonic Sensor sa isang mas malaki o mas maliit na halaga kung ninanais. Ito ay isang paunang code at sinadya upang mapalawak at magamit para sa karagdagang pag-unlad ng proyekto.
// OBSTACLE AVOIDING 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 Ulrasonic Sensor, 4) FS90 Servo (para sa Ultrasonic Sensor) // 5 & 6) 2x CONTINUOUS ROTATION SERVOS para sa mga gulong // 7) 16mm Marmol para sa likuran ng castor pivot, 8 & 9) 2 goma para sa gulong // 10- 15) 1x (4xAA) May hawak ng baterya na may on / off switch, 16 & 17) 9V na baterya na may konektor sa lakas Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrasonic Sensor I-mount, at 6mm Screw (tingnan ang mga nakalakip na file) // ------------------------------------ ---- --------------------- # isama // Magsama ng Servo Library # isama // Isama ang Newping Library // ------------------------------------------- ---- ------------------------------------ # tukuyin ang TRIGGER_PIN 1 2 // US trigger to pin 12 on Arduino #define ECHO_PIN 13 // US Echo to pin 13 on Arduino #define MAX_DISTANCE 250 // Distansya sa ping (max ay 250) int distansya = 100; // ----------------- ---- ------------------------------ Servo US_Servo; // Ultrasonic Sensor Servo Servo Left_Servo; // Left Wheel Servo Servo Right_Servo; // Right Wheel Servo NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup ng mga pin at maximum na distansya. // ----------------- ---- ------------------------------- void setup () // INPUT / OUTPUTS, WHERE to Attach, SET INITIAL POSITIION / MOVEMENT {pinMode (12, OUTPUT); // Trigger pin na itinakda bilang output pinMode (13, INPUT); // Echo pin set as input US_Servo.attach (11); // US Servo set to pin 11 US_Servo.write (90); // ANG SERVO NG US AY HUMANDANG SA PARAAN
Left_Servo.attach (9); // Left wheel servo upang i-pin 9
Left_Servo.write (90); // LEFT WHEEL SERVO nakatakda sa TIGIL
Right_Servo.attach (10); // Right Wheel servo na nakatakda sa pin 10
Right_Servo.write (90); // RIGHT WHEEL SERVO nakatakda sa STOP pagkaantala (2000); // Maghintay para sa 2 segundo distansya = readPing (); // Get Ping Distance at straight forward posisyon pagkaantala (100); // Maghintay para sa 100 ms moveForward (); // ROBOT MOVES FORWARD} // ------------------------------------------ ---- ------------------------------------- void loop () {int distanceRight = 0; // Initiate US distance to right at 0 int distanceLeft = 0; // Initiate US distance to left at 0 //US_Servo.write(90); // Center US servo // pagkaantala (50); // US_Servo.write (70); // Tumingin Bahagyang Kanan // pagkaantala (250); // US_Servo.write (110); // Tumingin Bahagyang Kaliwa // pagkaantala (250); // US_Servo.write (90); // Look Center
kung (distansya <= 20) // Ang Robot ay NAGLILIPAD PARA SA {moveStop (); // Robot STOPS at distansya = distansyaLeft) // Pagpasyahan kung aling direksyon ang laliko sa {turnRight (); // Ang kanang bahagi ay may pinakamalaking distansya, ROBOT TURNS RIGHT para sa 0.3s na pagkaantala (500); // Tinutukoy ng pagkaantala na ito ang haba ng paglipat ng moveStop (); // Robot STOPS} iba pa {turnLeft (); // Kaliwa sa pinakadakilang distansya, ROBOT TURNS LEFT para sa 0.3s na pagkaantala (500); // Tinutukoy ng pagkaantala na ito ang haba ng paglipat ng moveStop (); // Robot STOPS}} iba pa {moveForward (); // Robot MOVES FORWARD} distansya = readPing (); // US READS NEW PING para sa bagong direksyon ng paglalakbay} // ----------------------------------- ---- -------------------------------------------- int lookRight () // Ang Ultrasonic Sensor ay TINGNAN ANG KARAPATANG PAG-andar {US_Servo.write (30); // US servo MOVES RIGHT to anggulo pagkaantala (500); int distansya = readPing (); // Itakda ang halaga ng ping para sa tamang pagkaantala (100); US_Servo.write (90); // US servo MOVES TO CENTER return distansya; // Distansya ay itinakda} // ------------------------------------------ ---- ------------------------------------- int lookLeft () // Ultrasonic Sensor LOOK LEFT FUNCTION {US_Servo.sulat (150); // US servo MOVES LEFT to anggulo pagkaantala (500); int distansya = readPing (); // Itakda ang halagang ping para sa pagkaantala sa kaliwa (100); US_Servo.write (90); // US servo MOVES TO CENTER return distansya; // Distansya ay itinakda} // ------------------------------------------ ---- ------------------------------------ int intPing () // Basahin ang Ping Function para sa Ultrasonic Sensor. {pagkaantala (100); // 100ms sa pagitan ng mga ping (min ng oras ng ping = 0.29ms) int cm = sonar.ping_cm (); // PING distansya ay natipon at itinakda sa cm kung (cm == 0) {cm = 250; } bumalik cm; } // -------------------------------------------- ---- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 pasulong, 0 baligtarin ang Right_Servo.write (90); // RightServo 0 pasulong, 180 baligtad} // ------------------------------------ ---- --------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.sulat (180); // LeftServo 180 pasulong, 0 baligtarin ang Right_Servo.write (0); // RightServo 0 pasulong, 180 baligtad} // ------------------------------------ ---- --------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.sulat (0); // LeftServo 180 pasulong, 0 baligtarin ang Right_Servo.write (180); // RightServo 0 pasulong, 180 baligtad} // ------------------------------------ ---- --------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.sulat (180); // LeftServo 180 pasulong, 0 baligtarin ang Right_Servo.write (90); // RightServo 0 pasulong, 180 baligtad} // ------------------------------------ ---- --------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.sulat (90); // LeftServo 180 pasulong, 0 baligtarin ang Right_Servo.write (0); // RightServo 0 pasulong, 180 baligtad} // ------------------------------------ ---- ----
Hakbang 3: Magtipon ng Robot
Oras na nito upang pagsamahin ang iyong robot. Ang mga hakbang ay nakalista sa ibaba.
1) Maglakip ng Round Servo Disc at Rubber Bands sa Wheels: Ang lahat ng mga servo ay may kasamang plastic mounting hardware at turnilyo. Hanapin ang mga bilog na disc, at i-tornilyo ang mga ito sa dalawang butas sa patag na bahagi ng mga gulong. Ang mga goma ay umaangkop sa paligid ng gulong upang magbigay ng mahigpit na pagkakahawak. Maaaring gusto mong magdagdag ng isang maliit na pandikit upang mapanatili ang mga goma sa lugar.
2) Marble Caster Attachment: Gumamit ng dalawang maliliit na turnilyo upang ilakip ang marmol na caster sa dalawang triangles sa likuran. Ang marmol na caster ay isang simpleng kapalit para sa isang likurang gulong at nagbibigay ng likurang pivot point.
3) Ipasok ang Mga Servos sa Mga Puwang (hindi kinakailangan ng mga tornilyo): Ilagay ang FS90 Servo (para sa Ultrasonic Sensor) sa harap na puwang ng katawan. Ang dalawang tuluy-tuloy na servos ng pag-ikot ay dumidulas sa kaliwa at kanang mga puwang. Ang mga puwang ay idinisenyo para sa isang masikip, upang walang mga turnilyo na kinakailangan upang hawakan ang mga servo sa lugar. Siguraduhin na ang mga servo wires ay tumatakbo sa mga uka sa mga puwang upang sila ay nakaharap patungo sa likuran ng katawan.
4) 9V Battery Placed (OPSYONAL): Ilagay ang 9V na baterya + Arduino power konektor sa likod ng front servo.
5) Ultrasonic Sensor Mount Assembly: Gumamit ng dalawang maliliit na turnilyo upang ilakip ang isa sa mga kasamang puting plastik na mga servo na kalakip sa ilalim ng plate ng mounting Ultrasonic Sensor. Susunod, gamitin ang naka-print na 3D na 6mm bolt / nut (o kapalit ng isang metal bolt / nut) upang ikabit ang kaso ng Ultrasonic Sensor sa mount plate. Panghuli, ilagay ang sensor sa kaso na ang mga pin ay nakaharap pataas at iglap sa likod ng kaso.
6) 4x AA Battery Case: Ilagay ang case ng baterya ng AA sa malaking hugis-parihaba na lugar, na nakaharap patungo sa likuran ang on / off switch.
7) Arduino Uno + V5 Sensor Shield: Ikabit ang kalasag sa Arduino at ilagay sa mga mount sa itaas ng kaso ng baterya. Ang konektor ng kuryente ay dapat harapin sa kaliwa.
Ang iyong robot ay Itinayo! Anong natira? Pagprograma ng Arduino at Pagkonekta na Mga Jumper Wires: Mga Servo, Ultrasonic Sensor, at Power Supply.
Hakbang 4: Maglakip ng Mga Wire ng Sensor
Ikonekta ang mga wire ng Servo sa V5 Shield:
- Kaliwa Patuloy na Pag-ikot Servo ay nakakabit sa PIN 9
- Ang Karapatang Patuloy na Pag-ikot Servo ay nakakabit sa PIN 10
- Ang harapan ng FS90 Servo ay nakakabit sa PIN 11
Ikonekta ang Mga Ultrason Sensor Pins (sa pamamagitan ng 4x Babae sa Mga Babae na Jumper Wires) sa V5 Shield:
- Pag-trigger sa PIN 12
- I-echo sa PIN 13
- VCC sa alinman sa mga pin na minarkahan ng 'V'
- Ground sa alinman sa mga pin na minarkahan ng 'G'
Ikonekta ang Kaso ng Baterya ng AA sa V5 Shield:
- Ikabit ang positibo, pulang kawad sa konektor ng VCC
- Ikabit ang negatibo, itim na kawad sa koneksyon ng Ground
Hakbang 5: Tapos !!! Ikonekta ang 9V Arduino Power Supply, I-on ang Battery Pack, at Simulan ang Pag-iwas sa Mga Hadlang Sa OAREE
Tapos !!
1) Ikonekta ang 9V Arduino power supply (Opsyonal)
2) I-on ang pack ng baterya
3) Simulan ang Pag-iwas sa Mga Hadlang sa OAREE !!!
Sigurado akong magugustuhan mo ang iyong bagong kaibigan, OAREE, pagkatapos na panoorin ang pakiramdam na isang balakid, pag-back up, at pagbabago ng direksyon. Ang OAREE ay pinakamahusay na gumagana sa mga malalaking bagay na maaaring ma-ping ng (tulad ng mga dingding) ng Ultrasonic Sensor. Nahihirapan itong i-ping ang mga maliliit na bagay tulad ng mga paa ng upuan dahil sa kanilang maliit na lugar at sulok. Mangyaring ibahagi, paunlarin pa, at ipaalam sa akin ang anumang kinakailangang mga pagsasaayos o pagkakamali. Ito ay naging isang mahusay na karanasan sa pag-aaral at inaasahan kong mayroon kang kasing kasiyahan sa paggawa ng proyektong ito tulad ng ginawa ko!
Runner Up sa Paligsahan sa Robotics
Inirerekumendang:
BUGS ang Pang-edukasyon na Robot: 11 Mga Hakbang (na may Mga Larawan)
BUGS ang Pang-edukasyon na Robot: Sa huling taon ay ginugol ko ang lahat ng aking libreng oras sa pagdidisenyo at pag-aaral tungkol sa Open source 3D na naka-print na robotics kaya't nang makita ko na ang mga Instructable ay naglagay ng isang Robotics Contest walang paraan na hindi ako makilahok gusto ko ang desig
HeadBot - isang Robot na Nagbabago ng Sarili para sa Pag-aaral at Pag-abot sa STEM: 7 Mga Hakbang (na may Mga Larawan)
HeadBot - isang Self-Balancing Robot para sa STEM Learning and Outreach: Headbot - isang dalawang talampakan ang taas, self-balancing robot - ay ang ideya ng South Eugene Robotics Team (SERT, FRC 2521), isang mapagkumpitensyang pangkat ng robotics ng high school sa UNA Kompetisyon ng Robotics, mula sa Eugene, Oregon. Ang sikat na robot sa pag-abot na ito ay ginagawang
Paano Bumuo ng ProtoBot - isang 100% Bukas na Pinagmulan, Super-Murang, Pang-edukasyon na Robot: 29 Mga Hakbang (na may Mga Larawan)
Paano Bumuo ng ProtoBot - isang 100% Open Source, Super-Cheap, Educational Robot: Ang ProtoBot ay isang 100% bukas na mapagkukunan, naa-access, sobrang mura, at madaling bumuo ng robot. Ang Lahat ay Bukas na Pinagmulan - Hardware, Software, Gabay, at Kurikulum - na nangangahulugang maaaring ma-access ng sinuman ang lahat na kailangan nila upang maitayo at magamit ang robot. Ito ay isang
DIY 3D Printed Laser Engraver Na May Tinatayang. 38x29cm Area ng Pag-ukit: 15 Hakbang (na may Mga Larawan)
DIY 3D Printed Laser Engraver Na May Tinatayang. 38x29cm Area ng Pag-ukit: Isang salita nang maaga: Ginagamit ng proyektong ito ang isang laser na may malaking halaga ng nagniningning na lakas. Maaari itong maging napaka-nakakapinsala para sa iba't ibang mga materyales, iyong balat at lalo na ang iyong mga mata. Kaya maging maingat kapag ginagamit ang makina na ito at subukang harangan ang bawat direktang isang
Roomblock: isang Platform para sa Pag-aaral ng Pag-navigate sa ROS Sa Roomba, Raspberry Pi at RPLIDAR: 9 Mga Hakbang (na may Mga Larawan)
Roomblock: isang Platform para sa Pag-aaral ng Pag-navigate sa ROS Sa Roomba, Raspberry Pi at RPLIDAR: Ano ito? &Quot; Roomblock " ay isang robot platform na binubuo ng isang Roomba, isang Raspberry Pi 2, isang laser sensor (RPLIDAR) at isang mobile baterya. Ang mounting frame ay maaaring gawin ng mga 3D printer. Pinapayagan ang sistema ng nabigasyon ng ROS na gumawa ng isang mapa ng mga silid at gamitin ang