สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การพิมพ์ 3 มิติ
- ขั้นตอนที่ 2: เตรียม Arduino Nano
- ขั้นตอนที่ 3: เตรียม DC Motor, DC Motor Driver และ Sensors
- ขั้นตอนที่ 4: ประกอบ
- ขั้นตอนที่ 5: รหัส
- ขั้นตอนที่ 6: อะไรต่อไป
วีดีโอ: MrK Blockvader: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ตลอดหลายปีที่ผ่านมา ฉันได้เห็นโครงการหุ่นยนต์โรเวอร์ที่พิมพ์ 3 มิติที่น่าสนใจมากมาย และฉันชอบที่เทคโนโลยีการพิมพ์ 3 มิติช่วยให้ชุมชนหุ่นยนต์มีความหลากหลายมากขึ้นในด้านการออกแบบและการเลือกใช้วัสดุ ฉันต้องการเพิ่มการสนับสนุนเล็กน้อยให้กับชุมชนหุ่นยนต์โดยเผยแพร่ MrK_Blockvader บน Instructable สำหรับชุมชน Maker
MrK_Blockvader เป็นหุ่นยนต์ตัวเล็กแสนสนุกที่มีออดจิ๋ว แต่อย่าปล่อยให้บล็อกนี้ดูหลอกคุณ เขาสามารถติดตั้งเซ็นเซอร์สี เซ็นเซอร์วัดระยะทาง โมดูลวิทยุเพื่อสื่อสารกับ Blocky อื่นที่มีความสามารถเหมือนกัน โดยใช้ฐานหรือตัวควบคุม
MrK_Blockvader จะเป็นส่วนหนึ่งของเครือข่ายหุ่นยนต์ที่สามารถกำหนดให้เป็นผู้บัญชาการให้กับกลุ่มหุ่นยนต์เพื่อเก็บถาวรวัตถุประสงค์เดียวกัน
เสบียง
1 * Arduino นาโน
1 * ตัวขับมอเตอร์กระแสตรง
2 * มอเตอร์ DC พร้อมกระปุก
1*650 mAh Venom LiPo แบตเตอรี่
2*1/24 RCล้อรถบรรทุก
2 * ไฟ LED สีขาว
1 * เซ็นเซอร์ระยะทาง
1 * เซ็นเซอร์สี
1 * กระดานฝ่าวงล้อม nRF24
1 * บอร์ดวิทยุ nRF24
1 * Buzzer
1 * สวิตช์
1*26 ส.ค. สายสีดำ
1*26 ส.ค. สายสีน้ำเงิน
1*22 ส.ค. สายสีดำ
1*22 ส.ค. สายสีแดง
ขั้นตอนที่ 1: การพิมพ์ 3 มิติ
ฉันใช้เครื่องพิมพ์ CEL Robbox 3D ที่พิมพ์ด้วยวัสดุคาร์บอนเพื่อให้มีน้ำหนักเบาและทนทาน ฉันจะแนบไฟล์ STL ด้านล่าง โปรดใส่ความคิดเห็นหากคุณมีคำถามใดๆ เกี่ยวกับกระบวนการและการตั้งค่าการพิมพ์ 3 มิติ
ขั้นตอนที่ 2: เตรียม Arduino Nano
ฉันได้เรียนรู้ว่าการเตรียมงานกับส่วนประกอบไฟฟ้าทั้งหมดเป็นกุญแจสำคัญสำหรับโปรเจ็กต์ที่สะอาด
โปรเจ็กต์นี้ประกอบด้วยการเดินสายบนบอร์ดฝ่าวงล้อม nRF24 ฉันได้ทำสิ่งนี้ในโปรเจ็กต์แยกต่างหากที่เรียกว่า NRF24 Wireless LED Box ซึ่งเป็นที่ที่คุณสามารถค้นหาข้อมูลเกี่ยวกับวิธีการเชื่อมต่อบอร์ดฝ่าวงล้อม nRF24 กับ Arduino
หมายเหตุ: ฉันใช้สาย 22AWG ที่หนากว่าในการจ่ายไฟให้กับสายนาโน และสายสีน้ำเงินและสีดำขนาด 26 AWG แบบบางเพื่อจุดประสงค์ด้านสัญญาณอื่นๆ ทั้งหมด ฉันชอบสายไฟขนาด 26 AWG นี้มาก พวกมันยืดหยุ่นแต่ยังแข็งแกร่งและมอบสิ่งที่ดีที่สุดสำหรับทั้งสองโลก
การเตรียมงาน Arduino Nano:
- ประสานส่วนหัวของขาสัญญาณเข้ากับ Arduino Nano
- ทำให้หมุดเหล่านี้เปียกด้วยตัวประสานจะทำให้การบัดกรีง่ายขึ้นมากในภายหลัง
- ประสานกลุ่มลวดสีน้ำเงินเข้ากับ 5V เพื่อจ่ายพลังงานให้กับเซ็นเซอร์และไฟ LED ทั้งหมด
- ประสานกลุ่มลวดสีดำเข้ากับ GND เพื่อให้กราวด์กับเซ็นเซอร์และไฟ LED ทั้งหมด
งานเตรียมคณะกรรมการฝ่าวงล้อม NRF 24:
- บัดกรีสายไฟ 5 เส้นเข้ากับบอร์ดฝ่าวงล้อม nRF24 สำหรับสัญญาณ
- บัดกรี 2 สายเข้ากับบอร์ดฝ่าวงล้อม nRF24 เพื่อจ่ายไฟ
- ตรวจสอบลิงก์เพื่อให้แน่ใจว่าจะต่อสายบอร์ดฝ่าวงล้อมกับ Arduino
- ประสานสัญญาณ 5 สายจาก nRF24 ไปยัง Arduino Nana
งานเตรียม Buzzer:
- บัดกรีลวดสีดำเข้ากับขากริ่งสำหรับกราวด์
- บัดกรีสายสีน้ำเงินกับขากริ่งอีกข้างเพื่อควบคุมสัญญาณ
งานเตรียมโฟโตรีซีสเตอร์:(มีแผนภาพ)
- บัดกรีลวดสีน้ำเงินเข้ากับขาโฟโตรีซีสเตอร์ตัวใดตัวหนึ่งเป็นเวลา 5V
- ประสานตัวต้านทาน 10K กับขาอีกข้างของโฟโตรีซีสเตอร์
- บัดกรีลวดสีน้ำเงินระหว่างตัวต้านทาน 10K และโฟโตรีซีสเตอร์สำหรับสัญญาณ
- บัดกรีลวดสีดำเข้ากับตัวต้านทาน 10K สำหรับกราวด์
LEDs เตรียมงาน:
- บัดกรีลวดสีน้ำเงินจาก LED ด้านขวาเป็นบวกไปยัง LED ด้านซ้ายที่เป็นบวก
- บัดกรีลวดสีดำจาก LED ลบด้านขวาไปยัง LED ลบด้านซ้าย
- บัดกรีสายสีน้ำเงินเข้ากับ LED ด้านขวาที่เป็นบวกเพื่อควบคุมสัญญาณ
- บัดกรีลวดสีดำกับ LED ลบด้านขวาสำหรับกราวด์
ขั้นตอนที่ 3: เตรียม DC Motor, DC Motor Driver และ Sensors
MrK_Blockvador มีตัวเลือกเซ็นเซอร์สองสามตัว และเซ็นเซอร์เพิ่มเติมไม่ส่งผลกระทบต่อการทำงานโดยรวม อย่างไรก็ตาม เซ็นเซอร์สีจะไม่สามารถติดตั้งได้หลังจากติดมอเตอร์ DC แล้ว
งานเตรียมมอเตอร์กระแสตรง:
- บัดกรีสายสีดำและสีแดงเข้ากับมอเตอร์กระแสตรง
- พันปลายมอเตอร์ด้วยเทปเลียร์
- เติมพื้นที่ด้วยกาวร้อนเพื่อปิดผนึกขั้วต่อมอเตอร์
งานเตรียมไดรเวอร์มอเตอร์กระแสตรง:
- ประสานสายสัญญาณ 6 เส้นบนตัวขับมอเตอร์
- ประสานสายสัญญาณเข้ากับพินที่ถูกต้องบน Arduino Nano
- ติดตั้งสายไฟ 12V เพื่อจ่ายไฟให้ไดรเวอร์มอเตอร์จากแบตเตอรี่ ตรวจสอบให้แน่ใจว่าคุณมีสายไฟที่ยาวพอที่จะลากลงมาด้านล่างและด้านหลังของหุ่นยนต์
- ติดตั้งสายไฟ 5V เพื่อจ่ายไฟให้กับ Arduino Nano จากไดรเวอร์มอเตอร์
งานเตรียมเซ็นเซอร์สี (ตัวเลือก):
- บัดกรี 2 สายสำหรับสัญญาณ
- บัดกรีสายไฟ 2 เส้นเพื่อจ่ายไฟ
- บัดกรีสาย 1 เพื่อควบคุม LED ที่สว่างมาก
งานเตรียมเซ็นเซอร์ระยะ: (อุปกรณ์เสริม)
- บัดกรีสายสีน้ำเงินสำหรับสัญญาณ
- บัดกรีลวดสีน้ำเงินอีกเส้นบนพอร์ตบวกสำหรับบวก 3V
- บัดกรีลวดสีดำบนพอร์ตลบสำหรับกราวด์
ขั้นตอนที่ 4: ประกอบ
หลังจากการเตรียมงานทั้งหมด ตอนนี้เป็นเวลาที่สิ่งต่างๆ มารวมกัน
หมายเหตุ: ฉันใช้กาวร้อนสำหรับมอเตอร์กระแสตรงและตัวขับมอเตอร์กระแสตรง เนื่องจากกาวร้อนสามารถดูดซับแรงกระแทกได้เล็กน้อย และหากคุณต้องการถอดออก แอลกอฮอล์ขัดถูเล็กน้อยจะทำให้กาวร้อนหลุดออก
กระบวนการประกอบ:
- กาวเซ็นเซอร์สีกับแชสซีด้วยความร้อนแล้วเดินสายเซ็นเซอร์สีผ่านช่องสัญญาณ (ไม่จำเป็น)
- กาวมอเตอร์ DC เข้ากับแชสซีด้วยความร้อน ตรวจสอบให้แน่ใจว่ามอเตอร์ DC อยู่ในแนวราบกับแชสซี
- กาวซุปเปอร์กาว Blocvader ไปที่แชสซีเพื่อให้แน่ใจว่าสายไฟทั้งหมดวิ่งผ่าน
- เซ็นเซอร์ระยะกาวร้อน (ไม่จำเป็น)
- ไฟ LED กาวร้อนสำหรับดวงตา Blockvador
- เสียบสายมอเตอร์กระแสตรงเข้ากับตัวขับมอเตอร์กระแสตรงจนสุดและขันสกรูให้แน่น
- เรียกใช้สายไฟ 12V จากไดรเวอร์ DC ด้านล่างและด้านหลังแชสซีสำหรับสวิตช์เปิด/ปิด
- ตรวจสอบให้แน่ใจว่าสายไฟทั้งหมดจากเซ็นเซอร์ทั้งหมดมีความชัดเจนก่อนที่จะทากาวไดรเวอร์มอเตอร์กระแสตรง
- อัปโหลดรหัสทดสอบและแก้ไขปัญหาหากมี
ขั้นตอนที่ 5: รหัส
รหัสพื้นฐาน:
หุ่นยนต์ใช้ photoresistor และตรวจจับระดับแสงในห้องและทำปฏิกิริยาหากมีการเปลี่ยนแปลงของระดับแสงเมื่อเวลาผ่านไป
หัวใจของรหัส:
วงเป็นโมฆะ () { lightLevel = analogRead (Photo_Pin); Serial.print("ระดับแสง:");Serial.println(ระดับแสง); Serial.print("ไฟปัจจุบัน:");Serial.println(Current_Light); if (lightLevel >= 200){ Chill_mode();analogWrite(eyes_LED, 50);Serial.println("Chill mode");} if (lightLevel < 180){ Active_mode();analogWrite(eyes_LED, 150);Serial println("โหมดแอ็คทีฟ");} }
หุ่นยนต์สามารถควบคุมได้โดยใช้ตัวควบคุมและเปลี่ยนเป็นโหมดอัตโนมัติบางส่วนโดยใช้ตัวควบคุม
หัวใจของรหัส:
วงเป็นโมฆะ () {int debug = 0; lightLevel = analogRead (Photo_Pin); Dis = analogRead (Dis_Pin); // ตรวจสอบว่ามีข้อมูลที่จะได้รับหรือไม่ (radio.available()) { radio.read(&data, sizeof(Data_Package)); ถ้า (data. C_mode == 0){Trim_Value = 10; Direct_drive();} ถ้า (data. C_mode == 1) {Trim_Value = 0; Autonomous_mode();} ถ้า (data. C_mode == 2){Trim_Value = 0; Chill_mode();} if(debug >= 1) { if (data. R_SJoy_State == 0){Serial.print("R_SJoy_State = HIGH; ");} if (data. R_SJoy_State == 1) {Serial.print() "R_SJoy_State = LOW; ");} if (data. S_Switch_State == 0){Serial.print("S_Switch_State = HIGH; ");} ถ้า (data. S_Switch_State == 1){Serial.print("S_Switch_State = LOW; ");} if (data. M_Switch_State == 0){Serial.println("M_Switch_State = HIGH");} if (data. M_Switch_State == 1){Serial.println("M_Switch_State = LOW");} อนุกรม.print("\n"); Serial.print("โหมดโรเวอร์: ");Serial.println(data. C_mode); Serial.print("L_XJoy_Value= ");Serial.print(data. L_XJoy_Value); Serial.print("L_XJoy_Value= ");อนุกรม.print(data. L_XJoy_Value); Serial.print("; L_YJoy_Value= ");Serial.print(data. L_YJoy_Value); Serial.print("; R_YJoy_Value= ");Serial.print(data. R_YJoy_Value); Serial.print("; Throtle_Value= "); Serial.println (data. Throtle_Value); ล่าช้า (ดีบัก*10); } lastReceiveTime = มิลลิวินาที (); // ขณะนี้เราได้รับข้อมูลแล้ว } // ตรวจสอบว่าเรารับข้อมูลต่อไปหรือไม่ หรือเรามีการเชื่อมต่อระหว่างสองโมดูล currentTime = millis(); if (currentTime - lastReceiveTime > 1000) // หากเวลาปัจจุบันมากกว่า 1 วินาทีตั้งแต่เราได้รับข้อมูลล่าสุด { // หมายความว่าเราสูญเสียการเชื่อมต่อ resetData(); // หากขาดการเชื่อมต่อ ให้รีเซ็ตข้อมูล ช่วยป้องกันพฤติกรรมที่ไม่พึงประสงค์ เช่น หากโดรนมีคันเร่งและเราขาดการเชื่อมต่อ มันสามารถบินต่อไปได้เว้นแต่เราจะรีเซ็ตค่า } }
ขั้นตอนที่ 6: อะไรต่อไป
โปรเจ็กต์นี้เป็นจุดเริ่มต้นของโปรเจ็กต์ที่ใหญ่ขึ้น ซึ่งเครือข่ายของคนตัวเล็กเหล่านี้ทำงานร่วมกันเพื่อบรรลุเป้าหมายร่วมกัน
อย่างไรก็ตาม หุ่นยนต์เหล่านี้จะต้องรายงานสถานะของตนไปยังสถานีสื่อสาร จากนั้นสถานีนี้จะรวมรายงานทั้งหมดจากบอททั้งหมดเพื่อตัดสินใจว่าจะทำอะไรที่จำเป็นต่อไป
ด้วยเหตุผลดังกล่าว ขั้นตอนต่อไปของโครงการจึงเป็นตัวควบคุมเพื่อทำหน้าที่เป็นสถานีสื่อสาร ซึ่งจะช่วยในการพัฒนาโครงการต่อไป
ตัวควบคุมนั้นเป็นหุ่นยนต์ อย่างไรก็ตาม มันอยู่เฉยๆ มากกว่า Blockader ดังนั้นผู้ควบคุมจึงละทิ้งบทความที่สอนได้ดังนั้นโปรดติดตามโครงการในอนาคต;D
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-