Სარჩევი:
- მარაგები
- ნაბიჯი 1: 3D ბეჭდვა: სხეული, ბორბლები, მარმარილოს კასტერი, 6 მმ ჭანჭიკი/კაკალი და ულტრაბგერითი სენსორის მთა
- ნაბიჯი 2: პროგრამირება Arduino
- ნაბიჯი 3: შეიკრიბეთ რობოტი
- ნაბიჯი 4: მიამაგრეთ სენსორის მავთულები
- ნაბიჯი 5: დასრულდა !!! შეაერთეთ 9V Arduino კვების წყარო, ჩართეთ ბატარეის პაკეტი და დაიწყეთ დაბრკოლებების თავიდან აცილება OAREE– ით
ვიდეო: OAREE - 3D ბეჭდვით - საინჟინრო განათლებისთვის რობოტის თავიდან აცილება (OAREE) არდუინოსთან ერთად: 5 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
OAREE (დაბრკოლების თავიდან აცილება რობოტისთვის საინჟინრო განათლებისთვის)
დიზაინი: ამ ინსტრუქციის მიზანი იყო OAR (დაბრკოლების თავიდან აცილების რობოტი) რობოტის შემუშავება, რომელიც იყო მარტივი/კომპაქტური, 3D დასაბეჭდი, ადვილად ასაწყობი, მოძრაობისთვის იყენებს უწყვეტი ბრუნვის სერვისებს და შეძლებისდაგვარად რამდენიმე შეძენილი ნაწილი. მე მჯერა, რომ მე შევძელი ამ გასაოცარი რობოტის შექმნა და მას დავარქვი OAREE (საინჟინრო განათლებისთვის რობოტის თავიდან აცილების დაბრკოლება). ეს რობოტი იგრძნობს დაბრკოლებებს, გაჩერდება, იყურება მარცხნივ და მარჯვნივ, შემდეგ გადაუხვევს შეუფერხებლად და გააგრძელებს წინ.
ფონი: ინტერნეტს აქვს მრავალი დაბრკოლება რობოტების თავიდან აცილების მიზნით, მაგრამ უმეტესობა არის მოცულობითი, რთული ასაწყობი და ძვირი. ბევრ ამ რობოტს აქვს Arduino კოდი, მაგრამ ძნელი იყო კარგად გააზრებული, სამუშაო მაგალითის პოვნა. მე ასევე მინდოდა გამომეყენებინა ბორბლების უწყვეტი ბრუნვის სერვისები (DC ძრავების ნაცვლად), რაც ჯერ არ იყო გაკეთებული. ამრიგად, მე დავიწყე მისიის შემუშავება კომპაქტური, გამომგონებელი OAR რობოტისთვის, რომელიც მსოფლიოს გავუზიარე.
შემდგომი განვითარება: ეს რობოტი შეიძლება შემდგომ განვითარდეს უკეთესი პინგის სიზუსტისთვის, დაამატოთ IR სენსორები ხაზის შემდგომი შესაძლებლობებისთვის, LCD ეკრანი დაბრკოლებების მანძილის საჩვენებლად და მრავალი სხვა.
მარაგები
- 1x Arduino Uno -
- 1x V5 სენსორული ფარი -
- 1x 4xAA ბატარეის დამჭერი ჩართვით/გადამრთველით -
- 1x SG90 სერვო -
- 2x უწყვეტი როტაციის სერვისი -
- 1x 9V ბატარეის კვების კაბელი Arduino– სთვის (სურვილისამებრ) -
- 1x HC -SR04 ულტრაბგერითი სენსორი -
- 4x ქალი-ქალი მხტუნავის მავთულები-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
- 2x რეზინის ზოლები
- 1x 9V ბატარეა (სურვილისამებრ)
- 4x AA ბატარეები
- 4x მცირე ხრახნები (4 x 1/2 ან მსგავსი რამ)
- ფილიპსის ხრახნიანი დრაივერი
- წებო ბორბლებზე რეზინის ზოლების დასაფიქსირებლად
ნაბიჯი 1: 3D ბეჭდვა: სხეული, ბორბლები, მარმარილოს კასტერი, 6 მმ ჭანჭიკი/კაკალი და ულტრაბგერითი სენსორის მთა
3D ბეჭდვისთვის არის 5 ნაწილი.
- სხეული
- Დისკები
- მარმარილოს კასტერი
- 6 მმ ჭანჭიკი/თხილი (სურვილისამებრ, ლითონის კაკალი/ჭანჭიკი შეიძლება შეიცვალოს)
- ულტრაბგერითი სენსორის მთა
ყველა საჭირო. STL ფაილი შედის ამ ინსტრუქციულ და Sketchup ფაილებში. რეკომენდირებულია შევსება 40%.
ნაბიჯი 2: პროგრამირება Arduino
გაგზავნეთ კოდი Arduino UNO– ზე: Arduino IDE– ს გამოყენებით, გაგზავნეთ კოდი (თანდართულ ფაილში) თქვენს Arduino მოდულში. თქვენ უნდა გადმოწეროთ და ჩართოთ servo.h და newping.h ბიბლიოთეკები ამ ესკიზით.
კოდი დეტალურად არის კომენტარი, ასე რომ თქვენ შეგიძლიათ ნახოთ რას აკეთებს თითოეული ბრძანება. სურვილისამებრ შეგიძლიათ მარტივად შეცვალოთ ულტრაბგერითი სენსორის მანძილი უფრო დიდ ან მცირე მნიშვნელობაზე. ეს არის საწყისი კოდი და იგულისხმება მისი გაფართოება და გამოყენება შემდგომი პროექტის შემუშავებისთვის.
// ROBOT- ის თავიდან აცილება // [email protected], [email protected], TN University of Chattanooga, Electronic Engineering, FALL 2019.0, 3) HCSR04 ულტრაბგერითი სენსორი, 4) FS90 სერვო (ულტრაბგერითი სენსორისთვის) // 5 & 6) 2x უწყვეტი ბრუნვის სერვისი ბორბლებისთვის // 7) 16 მმ მარმარილო უკანა აბუსალათინის ბრუნვისთვის, 8 & 9) 2 რეზინის ბორბალი ბორბლებისთვის // 10- 15) 1x (4xAA) ბატარეის დამჭერი ჩართვის/გამორთვის გადამრთველით, 16 & 17) 9V ბატარეა დენის კონექტორით Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrasonic Sensor მთა და 6 მმ ხრახნი (იხილეთ თანდართული ფაილები) // ------------------------------------------ ------------------------------------------------------ ----------------------------------------- #მოიცავს // მოიცავს სერვო ბიბლიოთეკას #მოიცავს // ახალი ბიბლიოთეკის ჩართვა // ----------------------------------------------- ------------------------------------------------------ ---------------------------------------- #განსაზღვრეთ TRIGGER_PIN 1 2 // აშშ იწვევს Arduino- ს #12 განსაზღვრეთ ECHO_PIN 13 // აშშ Echo აფიქსირებს 13 Arduino #define MAX_DISTANCE 250 // მანძილი პინგამდე (მაქსიმუმი 250) int მანძილი = 100; // ---------------------------------------------------- ------------------------------------------------------ -------------------------------- სერვო US_Servo; // ულტრაბგერითი სენსორი Servo Servo Left_Servo; // მარცხენა ბორბალი სერვო სერვო მარჯვენა_სერვო; // მარჯვენა ბორბალი სერვო NewPing სონარი (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // ქინძისთავების NewPing და მაქსიმალური მანძილი. // ---------------------------------------------------- ------------------------------------------------------ ---------------- {pinMode (12, OUTPUT); // გამომწვევი პინის დაყენება, როგორც გამომავალი pinMode (13, INPUT); // ექოს პინი მითითებული, როგორც შესასვლელი US_Servo.attach (11); // აშშ სერვო დაყენებულია 11 US_Servo.write (90); // აშშ -ს სერვო წინ მიიწევს
Left_Servo.attach (9); // მარცხენა ბორბლის სერვისი პინ 9 -ზე
Left_Servo.write (90); // LEFT WHEEL SERVO დაყენებულია STOP
Right_Servo.attach (10); // მარჯვენა ბორბლის სერვო დაყენებულია პინ 10 -ზე
Right_Servo.write (90); // RIGHT WHEEL SERVO დაყენებულია STOP დაგვიანებით (2000); // დაელოდეთ 2 წამი მანძილს = readPing (); // მიიღეთ Ping მანძილი პირდაპირ წინ გადადგმული პოზიციის დაყოვნებით (100); // დაელოდეთ 100 ms moveForward (); // რობოტი წინ მიიწევს} // ---------------------------------------------- ------------------------------------------------------ ---------------------------------------- void loop () {int distanceRight = 0; // ინიცირება აშშ მანძილი მარჯვნივ 0 int მანძილზე მარცხნივ = 0; // ინიცირება აშშ მანძილი მარცხნივ 0 //US_Servo.write(90); // ცენტრი აშშ სერვო // შეფერხება (50); // US_Servo.write (70); // შეხედე ოდნავ მარჯვნივ // გადადება (250); // US_Servo.write (110); // შეხედე ოდნავ მარცხნივ // გადადება (250); // US_Servo.write (90); // შეხედეთ ცენტრს
if (მანძილი <= 20) // რობოტი არის MOVES FORWARD {moveStop (); // რობოტი აჩერებს მანძილზე = distanceLeft) // გადაწყვიტეთ რომელი მიმართულებით მოუხვიოთ {turnRight (); // მარჯვენა მხარეს აქვს უდიდესი მანძილი, რობოტი ბრუნდება მარჯვნივ 0.3 წამიანი დაგვიანებით (500); // ეს შეფერხება განსაზღვრავს ბრუნვის სიგრძის moveStop (); // Robot STOPS} else {turnLeft (); // მარცხენა მხარეს უდიდესი მანძილი, რობოტი ბრუნდება მარცხნივ 0.3 წამიანი დაგვიანებით (500); // ეს შეფერხება განსაზღვრავს ბრუნვის სიგრძის moveStop (); // Robot STOPS}} სხვა {moveForward (); // Robot MOVES FORWARD} მანძილი = readPing (); // აშშ კითხულობს ახალ პინგს მოგზაურობის ახალი მიმართულებით} // -------------------------------------- ------------------------------------------------------ -------------------------------------------- int lookRight () // ულტრაბგერითი სენსორი LOOK RIGHT FUNCTION {US_Servo.write (30); // აშშ სერვო მოძრაობს მარჯვნივ კუთხის დაყოვნებაზე (500); int მანძილი = readPing (); // დააყენეთ პინგის მნიშვნელობა მარჯვენა დაყოვნებისთვის (100); US_Servo.write (90); // აშშ სერვო გადადის ცენტრში დასაბრუნებელი მანძილი; // მანძილი დადგენილია} // ---------------------------------------------- ------------------------------------------------------ ------------------------------------- int lookLeft () // ულტრაბგერითი სენსორი LOOK LEFT FUNCTION {US_Servo. დაწერე (150); // აშშ სერვო მოძრაობს მარცხნივ კუთხის დაყოვნებამდე (500); int მანძილი = readPing (); // მარცხენა დაყოვნების პინგის მნიშვნელობის დაყენება (100); US_Servo.write (90); // აშშ სერვო გადადის ცენტრში დასაბრუნებელი მანძილი; // მანძილი დადგენილია} // ---------------------------------------------- ------------------------------------------------------ ------------------------------------- int readPing () // წაკითხვის პინგის ფუნქცია ულტრაბგერითი სენსორისთვის. {დაგვიანება (100); // 100ms პინგებს შორის (min ping time = 0.29ms) int cm = sonar.ping_cm (); // PING მანძილი იკრიბება და დადგენილია სმ – ში, თუ (სმ == 0) {სმ = 250; } დაბრუნება სმ; } // -------------------------------------------------- ------------------------------------------------------ ------------------------------------ void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 წინ, 0 უკანა Right_Servo.write (90); // RightServo 0 წინ, 180 უკანა} // ------------------------------------------ ------------------------------------------------------ ----------------------------. დაწერე (180); // LeftServo 180 წინ, 0 უკანა Right_Servo.write (0); // RightServo 0 წინ, 180 უკანა} // ------------------------------------------ ------------------------------------------------------ -------------------------------------------- ბათილად ცვლაBackward () // ROBOT BACKWARD {Left_Servo. დაწერე (0); // LeftServo 180 წინ, 0 უკანა Right_Servo.write (180); // RightServo 0 წინ, 180 უკანა} // ------------------------------------------ ------------------------------------------------------ ---------------------------------------- ძალადაკარგული turnRight () // ROBOT RIGHT {Left_Servo. დაწერე (180); // LeftServo 180 წინ, 0 უკანა Right_Servo.write (90); // RightServo 0 წინ, 180 უკანა} // ------------------------------------------ ------------------------------------------------------ -------------------------------------------- ბათილად turnLeft () // ROBOT LEFT {Left_Servo. დაწერე (90); // LeftServo 180 წინ, 0 უკანა Right_Servo.write (0); // RightServo 0 წინ, 180 უკანა} // ------------------------------------------ ------------------------------------------------------ --------------------------------------------
ნაბიჯი 3: შეიკრიბეთ რობოტი
ახლა დროა გავაერთიანოთ თქვენი რობოტი. ნაბიჯები ჩამოთვლილია ქვემოთ.
1) მიამაგრეთ მრგვალი სერვო დისკი და რეზინის ლენტები ბორბლებს: ყველა სერვისს გააჩნია პლასტმასის სამონტაჟო ტექნიკა და ხრახნები. იპოვნეთ მრგვალი დისკები და დააწებეთ ისინი ორ ხვრელში ბორბლების ბრტყელ მხარეს. რეზინის ზოლები ჯდება საჭესთან, რათა უზრუნველყოს ძალაუფლება. შეიძლება დაგჭირდეთ ცოტა წებოს დამატება, რათა რეზინის ზოლები ადგილზე დარჩეს.
2) Marble Caster Attachment: გამოიყენეთ ორი პატარა ხრახნი, რომ მიამაგროთ მარმარილოს კასტერი უკანა ორ სამკუთხედზე. მარმარილოს კასტერი არის მარტივი შემცვლელი უკანა ბორბლისთვის და უზრუნველყოფს უკანა ბრუნვის წერტილს.
3) ჩადეთ სერვოები სლოტებში (არ არის საჭირო ხრახნები): მოათავსეთ FS90 Servo (ულტრაბგერითი სენსორისთვის) სხეულის წინა ჭრილში. ორი უწყვეტი ბრუნვის სერვისი სრიალებს მარცხენა და მარჯვენა სლოტებზე. სლოტები განკუთვნილია მჭიდროდ მორგებისთვის, ისე რომ ხრახნები არ არის საჭირო სერვოების დასაჭერად. დარწმუნდით, რომ სერვო მავთულები გადის ხვრელებში არსებული ღარები ისე, რომ ისინი სხეულის უკანა ნაწილისკენ იყოს მიმართული.
4) 9 ვ ბატარეის განთავსება (სურვილისამებრ): მოათავსეთ 9 ვ ბატარეა + არდუინოს დენის კონექტორი წინა სერვოს უკან.
5) ულტრაბგერითი სენსორის სამონტაჟო ასამბლეა: გამოიყენეთ ორი პატარა ხრახნი, რომ მიამაგროთ ერთ – ერთი მოთავსებული თეთრი პლასტიკური სერვო მიმაგრება ულტრაბგერითი სენსორის სამონტაჟო ფირფიტის ბოლოში. შემდეგი, გამოიყენეთ 3D დაბეჭდილი 6 მმ ჭანჭიკი/კაკალი (ან შეცვალეთ ლითონის ჭანჭიკი/კაკალი), რომ მიამაგროთ ულტრაბგერითი სენსორის საქმე სამონტაჟო ფირფიტაზე. დაბოლოს, მოათავსეთ სენსორი კორპუსში, ქინძისთავებით მიმართული ზემოთ და დააკარით საქმის უკანა ნაწილში.
6) 4x AA ბატარეის ქეისი: მოათავსეთ AA ბატარეის კორპუსი დიდ მართკუთხა ზონაში, ჩართული/გამორთული გადამრთველი უკანა მიმართულებით.
7) Arduino Uno + V5 სენსორული ფარი: მიამაგრეთ ფარი Arduino– ზე და მოათავსეთ ბატარეის კორპუსზე მაღლა. დენის კონექტორი უნდა იყოს მარცხნივ.
შენი რობოტი აშენებულია! რა დარჩა? Arduino– ს და Jumper Wires– ის დაკავშირება: სერვოები, ულტრაბგერითი სენსორი და ელექტრომომარაგება.
ნაბიჯი 4: მიამაგრეთ სენსორის მავთულები
შეაერთეთ Servo მავთულები V5 Shield– თან:
- მარცხენა უწყვეტი ბრუნვის სერვისი მიმაგრებულია PIN 9 -თან
- მარჯვენა უწყვეტი ბრუნვის სერვისი მიმაგრებულია PIN 10 -თან
- წინა FS90 Servo ერთვის PIN 11 -ს
შეაერთეთ ულტრაბგერითი სენსორის ქინძისთავები (4x ქალი მდედრობითი Jumper Wires) V5 Shield- თან:
- ჩართეთ PIN 12
- ექო PIN 13 -ზე
- VCC ნებისმიერი '' V '' - ით მონიშნული ქინძისთავებისთვის
- დასაბამი "P" - ით მონიშნული
შეაერთეთ AA ბატარეის ყუთი V5 ფარისთვის:
- მიამაგრეთ დადებითი, წითელი მავთული VCC კონექტორზე
- მიამაგრეთ უარყოფითი, შავი მავთული Ground შეერთებასთან
ნაბიჯი 5: დასრულდა !!! შეაერთეთ 9V Arduino კვების წყარო, ჩართეთ ბატარეის პაკეტი და დაიწყეთ დაბრკოლებების თავიდან აცილება OAREE– ით
დასრულდა !
1) შეაერთეთ 9V Arduino კვების ბლოკი (სურვილისამებრ)
2) ჩართეთ ბატარეის პაკეტი
3) დაიწყეთ დაბრკოლებების თავიდან აცილება OAREE– ით !!!
დარწმუნებული ვარ, რომ თქვენ შეგიყვარდებათ თქვენი ახალი მეგობარი, OAREE, მას შემდეგ რაც ნახავთ, რომ იგრძნობთ დაბრკოლებას, დააბრუნეთ უკან და შეცვალეთ მიმართულება. OAREE საუკეთესოდ მუშაობს დიდ ობიექტებთან, რომელთაგან ულტრაბგერითი სენსორი იშლება (კედლების მსგავსად). მას უჭირს პატარა საგნების სკამი, როგორიცაა სკამის ფეხები მათი მცირე ზედაპირისა და კუთხეების გამო. გთხოვთ გააზიაროთ, განავითაროთ და გამაგებინეთ ნებისმიერი საჭირო კორექტირების ან შეცდომის შესახებ. ეს იყო დიდი სასწავლო გამოცდილება და ვიმედოვნებ, რომ თქვენც ისევე გაერთობით ამ პროექტის განხორციელებაში, როგორც მე!
მეორე ადგილი რობოტების კონკურსში
გირჩევთ:
დაბრკოლება LEGO რობოტის თავიდან აცილება: 8 ნაბიჯი (სურათებით)
დაბრკოლების თავიდან აცილება LEGO რობოტს: ჩვენ გვიყვარს LEGO და ჩვენ ასევე გვიყვარს Crazy Circuits, ასე რომ ჩვენ გვინდოდა გავაერთიანოთ ეს ორი უბრალო და სახალისო რობოტად, რომელსაც შეუძლია თავიდან აიცილოს კედლებსა და სხვა საგნებში მოხვედრა. ჩვენ გაჩვენებთ თუ როგორ ავაშენეთ ჩვენი და განვსაზღვრავთ საფუძვლებს, რომ თქვენ შეძლოთ საკუთარი
რობოტის თავიდან აცილება (Arduino): 8 ნაბიჯი (სურათებით)
Robot- ის დაბრკოლების თავიდან აცილება (Arduino): აქ მე ვაპირებ გაგიწიოთ ინსტრუქცია არდუინოზე დაფუძნებული Robot- ის თავიდან აცილების შესახებ. ვიმედოვნებ, რომ ეტაპობრივად გავაკეთებ ამ რობოტის დამზადების მარტივ გზას. რობოტის თავიდან აცილების დაბრკოლება არის სრულად ავტონომიური რობოტი, რომელსაც შეუძლია თავიდან აიცილოს ყოველგვარი შეშფოთება
რობოტის თავიდან აცილება ულტრაბგერითი სენსორების გამოყენებით: 9 ნაბიჯი (სურათებით)
დაბრკოლება რობოტის თავიდან აცილების მიზნით ულტრაბგერითი სენსორების გამოყენებით: ეს არის მარტივი პროექტი დაბრკოლების თავიდან აცილების შესახებ რობოტის გამოყენებით ულტრაბგერითი სენსორების (HC SR 04) და Arduino Uno დაფის საშუალებით. რობოტი მოძრაობს დაბრკოლებების თავიდან აცილების მიზნით და ირჩევს სენსორების საუკეთესო გზას. და გთხოვთ გაითვალისწინოთ, რომ ეს არ არის სასწავლო პროექტი, გაგიზიარებთ
არდუინოს დაბრკოლება რობოტის თავიდან აცილება (განახლების ვერსია): 7 ნაბიჯი (სურათებით)
არდუინოს დაბრკოლება რობოტის თავიდან აცილება (განახლების ვერსია): ეს პოსტი პირველად გამოქვეყნდა ამ ვებგვერდზე https://truescience22.blogspot.com/2018/01/arduino-obstacle-avoiding-robotupgrade.html გამარჯობა მეგობრებო, დღეს მე გავაკეთე არდუინოს განახლებული ვერსია დაბრკოლება რობოტის თავიდან აცილების მიზნით. ეს არის მარტივი, მაგრამ გარკვეული თვისება და შენ
დაბრკოლების თავიდან აცილება რობოტის გამოყენებით EBot8: 4 ნაბიჯი (სურათებით)
დაბრკოლების თავიდან აცილება რობოტის გამოყენებით EBot8: ამ გაკვეთილში თქვენ შეისწავლით თუ როგორ უნდა ავაშენოთ რობოტი მანქანა, რომელიც თავიდან აიცილებს დაბრკოლებებს მის გზაზე. კონცეფციის გამოყენება და გამოყენება შესაძლებელია სხვადასხვა გზით, პირობების შესაბამისად. საჭირო მასალები: 1.ბორბლები x4 2.შასი (შეგიძლიათ შეიძინოთ