สารบัญ:

MrK Blockvader: 6 ขั้นตอน (พร้อมรูปภาพ)
MrK Blockvader: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: MrK Blockvader: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: MrK Blockvader: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Dark Riddle -Peter House Secret Room Door Open!! 2024, ตุลาคม
Anonim
Image
Image
การพิมพ์ 3 มิติ
การพิมพ์ 3 มิติ

ตลอดหลายปีที่ผ่านมา ฉันได้เห็นโครงการหุ่นยนต์โรเวอร์ที่พิมพ์ 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

เตรียม Arduino Nano
เตรียม Arduino Nano
เตรียม Arduino Nano
เตรียม Arduino Nano
เตรียม Arduino Nano
เตรียม Arduino Nano
เตรียม Arduino Nano
เตรียม Arduino Nano

ฉันได้เรียนรู้ว่าการเตรียมงานกับส่วนประกอบไฟฟ้าทั้งหมดเป็นกุญแจสำคัญสำหรับโปรเจ็กต์ที่สะอาด

โปรเจ็กต์นี้ประกอบด้วยการเดินสายบนบอร์ดฝ่าวงล้อม nRF24 ฉันได้ทำสิ่งนี้ในโปรเจ็กต์แยกต่างหากที่เรียกว่า NRF24 Wireless LED Box ซึ่งเป็นที่ที่คุณสามารถค้นหาข้อมูลเกี่ยวกับวิธีการเชื่อมต่อบอร์ดฝ่าวงล้อม nRF24 กับ Arduino

หมายเหตุ: ฉันใช้สาย 22AWG ที่หนากว่าในการจ่ายไฟให้กับสายนาโน และสายสีน้ำเงินและสีดำขนาด 26 AWG แบบบางเพื่อจุดประสงค์ด้านสัญญาณอื่นๆ ทั้งหมด ฉันชอบสายไฟขนาด 26 AWG นี้มาก พวกมันยืดหยุ่นแต่ยังแข็งแกร่งและมอบสิ่งที่ดีที่สุดสำหรับทั้งสองโลก

การเตรียมงาน Arduino Nano:

  1. ประสานส่วนหัวของขาสัญญาณเข้ากับ Arduino Nano
  2. ทำให้หมุดเหล่านี้เปียกด้วยตัวประสานจะทำให้การบัดกรีง่ายขึ้นมากในภายหลัง
  3. ประสานกลุ่มลวดสีน้ำเงินเข้ากับ 5V เพื่อจ่ายพลังงานให้กับเซ็นเซอร์และไฟ LED ทั้งหมด
  4. ประสานกลุ่มลวดสีดำเข้ากับ GND เพื่อให้กราวด์กับเซ็นเซอร์และไฟ LED ทั้งหมด

งานเตรียมคณะกรรมการฝ่าวงล้อม NRF 24:

  1. บัดกรีสายไฟ 5 เส้นเข้ากับบอร์ดฝ่าวงล้อม nRF24 สำหรับสัญญาณ
  2. บัดกรี 2 สายเข้ากับบอร์ดฝ่าวงล้อม nRF24 เพื่อจ่ายไฟ
  3. ตรวจสอบลิงก์เพื่อให้แน่ใจว่าจะต่อสายบอร์ดฝ่าวงล้อมกับ Arduino
  4. ประสานสัญญาณ 5 สายจาก nRF24 ไปยัง Arduino Nana

งานเตรียม Buzzer:

  1. บัดกรีลวดสีดำเข้ากับขากริ่งสำหรับกราวด์
  2. บัดกรีสายสีน้ำเงินกับขากริ่งอีกข้างเพื่อควบคุมสัญญาณ

งานเตรียมโฟโตรีซีสเตอร์:(มีแผนภาพ)

  1. บัดกรีลวดสีน้ำเงินเข้ากับขาโฟโตรีซีสเตอร์ตัวใดตัวหนึ่งเป็นเวลา 5V
  2. ประสานตัวต้านทาน 10K กับขาอีกข้างของโฟโตรีซีสเตอร์
  3. บัดกรีลวดสีน้ำเงินระหว่างตัวต้านทาน 10K และโฟโตรีซีสเตอร์สำหรับสัญญาณ
  4. บัดกรีลวดสีดำเข้ากับตัวต้านทาน 10K สำหรับกราวด์

LEDs เตรียมงาน:

  1. บัดกรีลวดสีน้ำเงินจาก LED ด้านขวาเป็นบวกไปยัง LED ด้านซ้ายที่เป็นบวก
  2. บัดกรีลวดสีดำจาก LED ลบด้านขวาไปยัง LED ลบด้านซ้าย
  3. บัดกรีสายสีน้ำเงินเข้ากับ LED ด้านขวาที่เป็นบวกเพื่อควบคุมสัญญาณ
  4. บัดกรีลวดสีดำกับ LED ลบด้านขวาสำหรับกราวด์

ขั้นตอนที่ 3: เตรียม DC Motor, DC Motor Driver และ Sensors

เตรียม DC Motor, DC Motor Driver และ Sensors
เตรียม DC Motor, DC Motor Driver และ Sensors
เตรียม DC Motor, DC Motor Driver และ Sensors
เตรียม DC Motor, DC Motor Driver และ Sensors

MrK_Blockvador มีตัวเลือกเซ็นเซอร์สองสามตัว และเซ็นเซอร์เพิ่มเติมไม่ส่งผลกระทบต่อการทำงานโดยรวม อย่างไรก็ตาม เซ็นเซอร์สีจะไม่สามารถติดตั้งได้หลังจากติดมอเตอร์ DC แล้ว

งานเตรียมมอเตอร์กระแสตรง:

  1. บัดกรีสายสีดำและสีแดงเข้ากับมอเตอร์กระแสตรง
  2. พันปลายมอเตอร์ด้วยเทปเลียร์
  3. เติมพื้นที่ด้วยกาวร้อนเพื่อปิดผนึกขั้วต่อมอเตอร์

งานเตรียมไดรเวอร์มอเตอร์กระแสตรง:

  1. ประสานสายสัญญาณ 6 เส้นบนตัวขับมอเตอร์
  2. ประสานสายสัญญาณเข้ากับพินที่ถูกต้องบน Arduino Nano
  3. ติดตั้งสายไฟ 12V เพื่อจ่ายไฟให้ไดรเวอร์มอเตอร์จากแบตเตอรี่ ตรวจสอบให้แน่ใจว่าคุณมีสายไฟที่ยาวพอที่จะลากลงมาด้านล่างและด้านหลังของหุ่นยนต์
  4. ติดตั้งสายไฟ 5V เพื่อจ่ายไฟให้กับ Arduino Nano จากไดรเวอร์มอเตอร์

งานเตรียมเซ็นเซอร์สี (ตัวเลือก):

  1. บัดกรี 2 สายสำหรับสัญญาณ
  2. บัดกรีสายไฟ 2 เส้นเพื่อจ่ายไฟ
  3. บัดกรีสาย 1 เพื่อควบคุม LED ที่สว่างมาก

งานเตรียมเซ็นเซอร์ระยะ: (อุปกรณ์เสริม)

  1. บัดกรีสายสีน้ำเงินสำหรับสัญญาณ
  2. บัดกรีลวดสีน้ำเงินอีกเส้นบนพอร์ตบวกสำหรับบวก 3V
  3. บัดกรีลวดสีดำบนพอร์ตลบสำหรับกราวด์

ขั้นตอนที่ 4: ประกอบ

Image
Image
ประกอบ
ประกอบ

หลังจากการเตรียมงานทั้งหมด ตอนนี้เป็นเวลาที่สิ่งต่างๆ มารวมกัน

หมายเหตุ: ฉันใช้กาวร้อนสำหรับมอเตอร์กระแสตรงและตัวขับมอเตอร์กระแสตรง เนื่องจากกาวร้อนสามารถดูดซับแรงกระแทกได้เล็กน้อย และหากคุณต้องการถอดออก แอลกอฮอล์ขัดถูเล็กน้อยจะทำให้กาวร้อนหลุดออก

กระบวนการประกอบ:

  1. กาวเซ็นเซอร์สีกับแชสซีด้วยความร้อนแล้วเดินสายเซ็นเซอร์สีผ่านช่องสัญญาณ (ไม่จำเป็น)
  2. กาวมอเตอร์ DC เข้ากับแชสซีด้วยความร้อน ตรวจสอบให้แน่ใจว่ามอเตอร์ DC อยู่ในแนวราบกับแชสซี
  3. กาวซุปเปอร์กาว Blocvader ไปที่แชสซีเพื่อให้แน่ใจว่าสายไฟทั้งหมดวิ่งผ่าน
  4. เซ็นเซอร์ระยะกาวร้อน (ไม่จำเป็น)
  5. ไฟ LED กาวร้อนสำหรับดวงตา Blockvador
  6. เสียบสายมอเตอร์กระแสตรงเข้ากับตัวขับมอเตอร์กระแสตรงจนสุดและขันสกรูให้แน่น
  7. เรียกใช้สายไฟ 12V จากไดรเวอร์ DC ด้านล่างและด้านหลังแชสซีสำหรับสวิตช์เปิด/ปิด
  8. ตรวจสอบให้แน่ใจว่าสายไฟทั้งหมดจากเซ็นเซอร์ทั้งหมดมีความชัดเจนก่อนที่จะทากาวไดรเวอร์มอเตอร์กระแสตรง
  9. อัปโหลดรหัสทดสอบและแก้ไขปัญหาหากมี

ขั้นตอนที่ 5: รหัส

Image
Image
อะไรต่อไป?
อะไรต่อไป?

รหัสพื้นฐาน:

หุ่นยนต์ใช้ 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

แนะนำ: