สารบัญ:

รถหุ่นยนต์พร้อม Bluetooth, กล้อง และ MIT App Inventor2: 12 ขั้นตอน (พร้อมรูปภาพ)
รถหุ่นยนต์พร้อม Bluetooth, กล้อง และ MIT App Inventor2: 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: รถหุ่นยนต์พร้อม Bluetooth, กล้อง และ MIT App Inventor2: 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: รถหุ่นยนต์พร้อม Bluetooth, กล้อง และ MIT App Inventor2: 12 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: สอน เขียนโปรแกรม ภาษาซี Arduino | ESP32 DIY สร้าง รถบังคับ Robot bluetooth motor #EP2 2024, พฤศจิกายน
Anonim
Image
Image
ชิ้นส่วนและซอฟต์แวร์
ชิ้นส่วนและซอฟต์แวร์

คุณเคยต้องการที่จะสร้างรถหุ่นยนต์ของคุณเองหรือไม่? ก็…นี่คือโอกาสของคุณ!!

ในคำแนะนำนี้ ฉันจะแนะนำวิธีสร้าง Robot Car ที่ควบคุมผ่าน Bluetooth และ MIT App Inventor2 โปรดทราบว่าฉันเป็นมือใหม่และนี่เป็นครั้งแรกที่ฉันสามารถควบคุมได้ ดังนั้นโปรดแสดงความคิดเห็นของคุณอย่างสุภาพ

มีคำแนะนำมากมาย แต่ในอันนี้ฉันได้พยายามรวมคุณสมบัติมากมายเช่น: การสตรีมกล้อง, การหลีกเลี่ยงสิ่งกีดขวาง, เซ็นเซอร์ช่วงอัลตราโซนิก, สแกนเนอร์ Larson (พร้อม charlieplexing) และการตรวจสอบแบตเตอรี่ไปยังแอพ Android !!

มาเริ่มกันเลยและพบกับแฟรงกี้ (ใช้แนวคิดจากหลายๆ ที่….เพราะฉะนั้น Robo Frankenstein)

ขั้นตอนที่ 1: ชิ้นส่วนและซอฟต์แวร์

ชิ้นส่วนและซอฟต์แวร์
ชิ้นส่วนและซอฟต์แวร์
ชิ้นส่วนและซอฟต์แวร์
ชิ้นส่วนและซอฟต์แวร์

ที่นี่ในบ้านเกิดของฉันยากที่จะได้ชิ้นส่วนทั้งหมดดังนั้นฉันจึงสามารถหาชิ้นส่วนส่วนใหญ่ได้จาก www.aliexpress.com

ฉันประเมินว่าโครงการนี้สามารถสร้างได้ในราคา USD 25 - 30 โดยไม่ต้องคำนึงถึงมือถือรุ่นเก่าๆ

  • โครงรถ: 3 ล้อ 2 มอเตอร์ 6V (9)
  • Arduino นาโน (USD 2)
  • บลูทูธ HC-05 (USD 3 ถึง 4)
  • ตัวขับมอเตอร์ L293D เพื่อขับเคลื่อนมอเตอร์ล้อ (USD 1.50 สำหรับล็อต 5 ชิ้น)
  • มือถือเก่าพร้อมกล้องและ Wi-Fi
  • เซ็นเซอร์อัลตราโซนิก HC-SR04 สำหรับการวัดไปยังวัตถุใกล้เคียง (USD 1)
  • ไฟ LED 6 ดวงสำหรับเครื่องสแกน Larson
  • ATtiny85 สำหรับเครื่องสแกน Larson (USD 1)
  • เขียงหั่นขนม (USD 1)
  • สายไฟ
  • ตัวต้านทาน 100K โอห์ม (4)
  • ตัวต้านทาน 1K โอห์ม (2)
  • ตัวต้านทาน 2K โอห์ม (1)
  • ตัวต้านทาน 270 โอห์ม (3)
  • Buzzer

ซอฟต์แวร์:

  • Arduino IDE
  • IP Webcam (สำหรับ Android มือถือรุ่นเก่า)
  • MIT App Inventor2: แอปนี้ยอดเยี่ยม แต่ใช้งานได้กับระบบปฏิบัติการ Android เท่านั้น (ไม่มีไอโฟน…ขออภัย!)

ขั้นตอนที่ 2: ขั้นตอนการก่อสร้าง

กระบวนการก่อสร้าง
กระบวนการก่อสร้าง
กระบวนการก่อสร้าง
กระบวนการก่อสร้าง
กระบวนการก่อสร้าง
กระบวนการก่อสร้าง
กระบวนการก่อสร้าง
กระบวนการก่อสร้าง

โครงรถประกอบง่ายมาก มีมอเตอร์ 2 ตัว 6V ที่ขับเคลื่อนล้อหลังและแบตเตอรี่ 4 ก้อน

รถหุ่นยนต์ถูกควบคุมผ่าน Bluetooth และ Wi-Fi Bluetooth ควบคุมการสื่อสารแบบอนุกรมระหว่าง Car และ MIT App inventor2 และ Wi-Fi ใช้เพื่อสื่อสารกับกล้อง (มือถือเครื่องเก่า) ที่ติดตั้งไว้หน้ารถ

สำหรับโครงการนี้ ฉันใช้แบตเตอรี่สองชุด: Arduino ใช้พลังงานจากแบตเตอรี่ 9V และมอเตอร์ในรถยนต์ใช้แบตเตอรี่ 6V (แบตเตอรี่ AA 1.5V สี่ก้อน)

Arduino Nano เป็นสมองของโครงการนี้ที่ควบคุมรถยนต์, ออด, เซ็นเซอร์ระยะอัลตราโซนิก HC-SR04, Bluetooth HC-05, เครื่องสแกน Larson (ATtiny85) และตรวจสอบแบตเตอรี่ แบตเตอรี่ 9V ไปที่ Vin (พิน 30) และพิน 27 ของ Arduino ให้พลังงาน 5V ที่ควบคุมกับเขียงหั่นขนม ต้องผูกกราวด์ทั้งหมดจากไอซีและแบตเตอรี่ทั้งหมดเข้าด้วยกัน

แนบแผนภาพวงจรสร้างใน Excel (ขออภัย…. ครั้งหน้าฉันจะลอง Fritzing) ฉันเชื่อมต่อทุกอย่างโดยใช้เขียงหั่นขนมและขั้วต่อสายตัวผู้กับตัวผู้ของฉันดูเหมือนรังหนู

ขั้นตอนที่ 3: ไดรเวอร์มอเตอร์ L293D

ตัวขับมอเตอร์ L293D
ตัวขับมอเตอร์ L293D
ตัวขับมอเตอร์ L293D
ตัวขับมอเตอร์ L293D

L293D เป็นไดร์เวอร์ half-H กระแสสูงสี่เท่า ออกแบบมาเพื่อให้กระแสของไดรฟ์แบบสองทิศทางสูงถึง 600 mA ที่แรงดันไฟฟ้า 4.5V ถึง 36V ใช้สำหรับขับล้อรถ

ใช้พลังงานจากชุดแบตเตอรี่ 6V (สี่ 1.5V AA) สำหรับมอเตอร์และใช้ 5V สำหรับตรรกะที่มาจาก 5V ที่ได้รับการควบคุม (พิน 27) ใน Arduino Nano การเชื่อมต่อจะแสดงในแผนผังที่แนบมา

ไม่จำเป็นต้องติดตั้งในอ่างความร้อน

ขั้นตอนที่ 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth ใช้พลังงานจาก 5V (arduino pin 27) แต่สิ่งสำคัญคือต้องเข้าใจว่าระดับลอจิกคือ 3.3V นั่นคือการสื่อสาร (Tx และ Rx) กับ 3.3V นั่นคือเหตุผลที่ต้องกำหนดค่า Rx ด้วยค่าสูงสุด 3.3V ซึ่งสามารถทำได้ด้วยตัวแปลงระดับหรือในกรณีนี้ด้วยตัวแบ่งแรงดันไฟฟ้าโดยใช้ตัวต้านทาน 1K และ 2K ตามที่เห็นในวงจร

ขั้นตอนที่ 5: การตรวจสอบแบตเตอรี่

เพื่อตรวจสอบระดับแบตเตอรี่ ฉันได้ตั้งค่าตัวแบ่งแรงดันไฟฟ้าเพื่อให้ระดับแรงดันไฟฟ้าต่ำกว่า 5V (ช่วงสูงสุดของ Arduino) ตัวแบ่งแรงดันไฟฟ้าจะลดแรงดันไฟฟ้าที่วัดให้อยู่ภายในช่วงของอินพุตอนาล็อกของ Arduino

ใช้อินพุตแบบอะนาล็อก A4 และ A6 และใช้ตัวต้านทานสูง (100K โอห์ม) เพื่อไม่ให้แบตเตอรี่หมดในกระบวนการวัดมากเกินไป เราจำเป็นต้องประนีประนอม ถ้าตัวต้านทานต่ำเกินไป (10K โอห์ม) ผลการโหลดน้อยกว่า การอ่านแรงดันไฟฟ้ามีความแม่นยำมากขึ้น แต่มีกระแสไฟมากขึ้น หากสูงเกินไป (1M โอห์ม) เอฟเฟกต์การโหลดที่มากขึ้น การอ่านแรงดันไฟฟ้าจะแม่นยำน้อยกว่า แต่มีกระแสไฟน้อยกว่า

การตรวจสอบแบตเตอรี่จะทำทุกๆ 10 วินาทีและแสดงโดยตรงในโทรศัพท์มือถือคอนโทรลเลอร์ของคุณ

ฉันแน่ใจว่ายังมีช่องว่างให้ปรับปรุงอีกมากในส่วนนี้ เนื่องจากฉันอ่านจากพินอะนาล็อกสองตัวและ MUX ภายในกำลังสลับไปมาระหว่างหมุดทั้งสอง ฉันไม่ได้หาค่าเฉลี่ยของการวัดหลายๆ ค่า และอาจนั่นคือสิ่งที่ฉันควรทำ

ให้ฉันอธิบายสูตรต่อไปนี้:

// อ่านแรงดันไฟฟ้าจากขาอนาล็อก A4 และทำการปรับเทียบสำหรับ Arduino:

แรงดันไฟฟ้า 1 = (อ่านแบบแอนะล็อก (A4)*5.0/1024.0)*2.0; //8.0V

บอร์ด Arduino nano ประกอบด้วยตัวแปลงอนาล็อกเป็นดิจิตอล 8 ช่อง 10 บิต ฟังก์ชัน analogRead() คืนค่าตัวเลขระหว่าง 0 ถึง 1023 ซึ่งเป็นสัดส่วนกับปริมาณแรงดันไฟฟ้าที่ใช้กับพิน ให้ความละเอียดระหว่างการอ่าน: 5 โวลต์ / 1024 หน่วย หรือ.0049 โวลต์ (4.9 mV) ต่อหน่วย

ตัวแบ่งแรงดันแบ่งแรงดันลงครึ่งหนึ่งและเพื่อให้ได้แรงดันจริงต้องคูณ 2!!

สำคัญ: ฉันแน่ใจว่ามีวิธีที่มีประสิทธิภาพมากขึ้นในการขับเคลื่อน Arduino มากกว่าวิธีที่ฉันทำ !! ในฐานะที่เป็นมือใหม่ ฉันได้เรียนรู้วิธีที่ยาก พิน Arduino Vin ใช้ตัวควบคุมแรงดันไฟฟ้าเชิงเส้น ซึ่งหมายความว่าด้วยแบตเตอรี่ 9V คุณจะเผาผลาญพลังงานก้อนใหญ่ในตัวควบคุมเชิงเส้นตรง! ไม่ดี. ฉันทำแบบนี้เพราะมันเร็วและเพราะฉันไม่รู้ดีกว่านี้ …แต่ต้องแน่ใจว่าใน Robo Frankie เวอร์ชัน 2.0 ฉันจะทำให้มันแตกต่างออกไปอย่างแน่นอน

ฉันกำลังคิด (ออกมาดังๆ) ว่า DC DC Step up Switching Power Supply และแบตเตอรี่ Li-ion แบบชาร์จไฟได้อาจเป็นวิธีที่ดีกว่า ข้อเสนอแนะของคุณจะเป็นมากกว่าการต้อนรับ …

ขั้นตอนที่ 6: HC-SR04 Ultrasonic Range Sensor

HC-SR04 เซ็นเซอร์ช่วงอัลตราโซนิก
HC-SR04 เซ็นเซอร์ช่วงอัลตราโซนิก

HC-SR04 เป็นเซ็นเซอร์ช่วงอัลตราโซนิก เซ็นเซอร์นี้ให้การวัดตั้งแต่ 2 ซม. ถึง 400 ซม. โดยมีความแม่นยำตั้งแต่ 3 มม. ในโครงการนี้ ใช้เพื่อหลีกเลี่ยงสิ่งกีดขวางเมื่อถึง 20 ซม. หรือน้อยกว่า และเพื่อวัดระยะทางไปยังวัตถุใดๆ ที่ส่งกลับไปยังโทรศัพท์มือถือของคุณ

มีปุ่มในหน้าจอมือถือของคุณที่ต้องคลิกเพื่อขอระยะห่างจากวัตถุใกล้เคียง

ขั้นตอนที่ 7: Larson Scanner

Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner

ฉันอยากใส่อะไรสนุกๆ ลงไป ฉันเลยใส่เครื่องสแกน Larson ที่คล้ายกับ K. I. T. T. จากอัศวินขี่ม้า

สำหรับเครื่องสแกน Larson ฉันเคยใช้ ATtiny85 กับ charlieplexing Charlieplexing เป็นเทคนิคในการขับเคลื่อนจอแสดงผลแบบมัลติเพล็กซ์ซึ่งใช้พิน I/O ค่อนข้างน้อยบนไมโครคอนโทรลเลอร์เพื่อขับเคลื่อนอาร์เรย์ของ LED วิธีนี้ใช้ความสามารถลอจิกแบบไตรสถานะของไมโครคอนโทรลเลอร์เพื่อให้ได้ประสิทธิภาพเหนือมัลติเพล็กซ์แบบเดิม

ในกรณีนี้ ผมใช้ 3 พินจาก ATtiny85 เป็นไฟ LED 6 ดวง!!

คุณสามารถเปิดไฟ LED "X" ด้วยหมุด N ใช้สูตรต่อไปนี้เพื่อหาจำนวน LED ที่คุณสามารถขับได้:

X= N(N-1) ไฟ LED พร้อม N พิน:

3 พิน: 6 LEDs;

4 พิน: ไฟ LED 12 ดวง;

5 พิน: ไฟ LED 20 ดวง…คุณเข้าใจแล้ว;-)

กระแสไหลจากขั้วบวก (ขั้วบวก) ไปเป็นขั้วลบ (ขั้วลบ) ปลายลูกศรเป็นแคโทด

สิ่งสำคัญคือต้องทราบว่าพิน 1 (ในรหัส Arduino IDE) หมายถึงพินจริง 6 ใน ATtiny85 (โปรดดูพินที่แนบมา)

แนบ โปรดค้นหารหัสที่ต้องอัปโหลดไปยัง ATtiny85 ที่ควบคุมเครื่องสแกน Larson ฉันไม่ได้อธิบายวิธีอัปโหลดรหัสไปยัง ATtiny85 เนื่องจากมีคำแนะนำมากมายที่ทำเช่นนั้น

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

รหัส
รหัส

ฉันกำลังแนบรหัสที่ต้องอัปโหลดไปยัง ATtiny85 ซึ่งควบคุมเครื่องสแกน Larson และรหัสสำหรับ Arduino nano

สำหรับ Arduino nano ฉันได้ใช้ส่วนหนึ่งของรหัสจากคำแนะนำอื่น ๆ (ที่นี่) และทำการเปลี่ยนแปลงเพื่อให้เหมาะกับความต้องการของฉัน ฉันได้รวมผังงาน (รวมถึงในคำเพื่อให้เห็นภาพที่ชัดเจนขึ้น) ของโค้ดเพื่อให้เข้าใจวิธีการทำงานของสวิตช์ - เคสได้ดีขึ้น

สำคัญ: ในการอัปโหลดรหัส CarBluetooth ลงใน Arduino nano คุณต้องยกเลิกการเชื่อมต่อ Rx และ Tx จากโมดูล Bluetooth HC-05!

ขั้นตอนที่ 9: กล้อง

กล้อง
กล้อง
กล้อง
กล้อง

ต้องดาวน์โหลดแอป IP Webcam จาก play store และติดตั้งในโทรศัพท์มือถือเครื่องเก่าของคุณ ตรวจสอบการตั้งค่าวิดีโอ ปรับความละเอียดตามนั้น และสุดท้ายไปที่คำสั่งสุดท้าย “เริ่มเซิร์ฟเวอร์” เพื่อเริ่มการส่ง อย่าลืมเปิด Wi-Fi ในมือถือ !!

ขั้นตอนที่ 10: MIT App Inventor2

MIT App Inventor2
MIT App Inventor2

MIT App inventor2 เป็นเครื่องมือบนคลาวด์ที่ช่วยสร้างแอปในเว็บเบราว์เซอร์ของคุณ แอปนี้ (สำหรับมือถือที่ใช้ Android เท่านั้น) สามารถอัปโหลดไปยังเซลล์ของคุณและควบคุมรถหุ่นยนต์ของคุณได้

ฉันกำลังแนบรหัส.apk และ.aia เพื่อให้คุณเห็นว่าฉันทำอะไรไปบ้าง และแก้ไขได้ตามที่คุณต้องการ ฉันใช้รหัสจากอินเทอร์เน็ต (แอพ MIT) และทำการแก้ไขด้วยตัวเอง รหัสนี้ควบคุมการเคลื่อนที่ของรถหุ่นยนต์ รับสัญญาณจากเซ็นเซอร์อัลตราโซนิก เปิดไฟและส่งเสียงบี๊บ นอกจากนี้ยังรับสัญญาณจากแบตเตอรี่เพื่อแจ้งให้เราทราบถึงระดับแรงดันไฟฟ้า

ด้วยรหัสนี้ เราจะสามารถรับสัญญาณที่แตกต่างกันสองสัญญาณจากรถ: 1) ระยะทางไปยังวัตถุใกล้เคียง และ 2) แรงดันไฟฟ้าจากมอเตอร์และแบตเตอรี่ของ Arduino

เพื่อระบุสตริงอนุกรมที่ได้รับ ฉันได้รวมแฟล็กในโค้ดของ Arduino ที่ระบุประเภทของสตริงที่ส่ง หาก Arduino ส่งระยะทางที่วัดจากเซ็นเซอร์อัลตราโซนิกก็จะส่งตัวอักษร "A" ที่ด้านหน้าสตริง เมื่อใดก็ตามที่ Arduino ส่งระดับแบตเตอรี่ จะส่งแฟล็กพร้อมถ่าน "B" ในโค้ด MIT App inventors2 ฉันได้แยกวิเคราะห์สตริงอนุกรมที่มาจาก Arduino และตรวจสอบแฟล็กเหล่านี้ อย่างที่ฉันพูดไป ฉันเป็นมือใหม่และฉันแน่ใจว่ามีวิธีที่มีประสิทธิภาพมากกว่านี้ในการทำเช่นนี้ และฉันหวังว่าจะมีใครบางคนสามารถให้ความกระจ่างแก่ฉันในทางที่ดีขึ้น

ส่ง Arduino_Bluetooth_Car.apk ไปยังโทรศัพท์มือถือของคุณ (ผ่านอีเมลหรือ Google Drive) และติดตั้ง

ขั้นตอนที่ 11: เชื่อมต่อโทรศัพท์มือถือของคุณกับรถ RC ของคุณ

เชื่อมต่อโทรศัพท์มือถือของคุณกับรถ RC ของคุณ
เชื่อมต่อโทรศัพท์มือถือของคุณกับรถ RC ของคุณ
เชื่อมต่อโทรศัพท์มือถือของคุณกับรถ RC ของคุณ
เชื่อมต่อโทรศัพท์มือถือของคุณกับรถ RC ของคุณ

ก่อนอื่น เปิด wi-fi ในมือถือเครื่องเก่า (อันที่อยู่ในหุ่นยนต์ RC)

ในโทรศัพท์มือถือคอนโทรลเลอร์ของคุณให้เปิด wi-fi, Bluetooth และเปิด Arduino_Bluetooth_Car.apk ที่คุณเพิ่งติดตั้ง ที่ส่วนท้ายของหน้าจอ (เลื่อนลงหากมองไม่เห็น) คุณจะเห็นปุ่มสองปุ่ม: อุปกรณ์ และ เชื่อมต่อ คลิก อุปกรณ์ และเลือก Bluetooth จากรถ RC ของคุณ (ควรเป็น HC 05) จากนั้นคลิก เชื่อมต่อ และคุณจะเห็นข้อความ CONNECTED ที่ด้านล่างซ้ายของหน้าจอ ครั้งแรก คุณจะถูกถามรหัสผ่าน (ป้อน 0000 หรือ 1234)

มีกล่องที่คุณต้องพิมพ์ที่อยู่ IP ของเซลล์เก่าของคุณ (โทรศัพท์มือถือที่อยู่ในรถ RC ของคุณ) ในกรณีของฉันคือ

หมายเลข IP นี้สามารถตรวจพบได้ในเราเตอร์ Wi-Fi ของคุณ คุณต้องเข้าสู่การกำหนดค่าเราเตอร์ของคุณ เลือกรายการอุปกรณ์ (หรืออะไรทำนองนั้นขึ้นอยู่กับแบรนด์เราเตอร์ของคุณ) และคุณควรจะเห็นอุปกรณ์มือถือเครื่องเก่าของคุณ คลิกที่อุปกรณ์นั้นแล้วป้อนหมายเลข IP นี้ลงในช่องนี้

จากนั้นเลือก CAMERA และคุณควรเริ่มดูการสตรีมกล้องจากรถ RC ของคุณ

ขั้นตอนที่ 12: คุณทำเสร็จแล้ว

คุณทำเสร็จแล้ว!
คุณทำเสร็จแล้ว!

คุณทำเสร็จแล้ว! เริ่มเล่นกับมัน

การเปลี่ยนแปลงในอนาคต: ฉันจะเปลี่ยนแบตเตอรี่ 9V ด้วยแบตเตอรี่ Li-ion เพื่อชาร์จใหม่และใช้ตัวควบคุมแรงดันไฟฟ้า DC-DC และฉันต้องการปรับปรุงการตรวจสอบแบตเตอรี่โดยรวมการปรับให้เรียบ (เฉลี่ย) ของการอ่านอนาล็อก ไม่ได้วางแผนที่จะรวม A. I. ยัง …;-)

ฉันได้เข้าร่วมการแข่งขันที่สอนได้เป็นครั้งแรก…ดังนั้นโปรดลงคะแนน;-)

แนะนำ: