สารบัญ:

Raspberry Pi, Android, IoT และ Bluetooth Powered Drone: 7 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi, Android, IoT และ Bluetooth Powered Drone: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi, Android, IoT และ Bluetooth Powered Drone: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ทำไมคุณถึงควรเปลี่ยนไปใช้ Raspberry Pi 4 Model B แทน Raspberry Pi 3 Model B, B+ 2024, กรกฎาคม
Anonim
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone
Raspberry Pi, Android, IoT และ Bluetooth Powered Drone

คอมพิวเตอร์พกพาขนาดกะทัดรัดนี้ใช้ Raspberry Pi สำหรับลอจิกออนบอร์ด จะสร้างพอร์ตในเครื่องที่สตรีมวิดีโอแบบเรียลไทม์พร้อมๆ กันสร้างซ็อกเก็ตบลูทูธเพื่ออ่านค่าที่ส่งโดยแอป Android ที่กำหนดเอง แอปจะซิงค์กับโดรนและใช้การป้อนข้อมูลของผู้ใช้เพื่อส่งคำแนะนำไปยังโดรนทันที

โครงการนี้ค่อนข้างยากที่จะทำตั้งแต่เริ่มต้น หวังว่าข้อมูลต่อไปนี้จะให้ข้อมูลเชิงลึกสำหรับแอพพลิเคชั่นโดรนหลายตัว มีการออกแบบซอฟต์แวร์และวงจรทั้งหมดที่เกี่ยวข้องกับโครงการนี้ อย่าลังเลที่จะแก้ไขและแบ่งปันรหัสตามที่คุณต้องการ โปรดใช้ข้อมูลที่ให้ไว้อย่างรับผิดชอบและอย่าลังเลที่จะแสดงความคิดเห็นด้านล่าง

ขั้นตอนที่ 1: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์

ด้านล่างนี้คือรายการฮาร์ดแวร์ที่ฉันใช้

  • Raspberry Pi 3 รุ่น B
  • โมดูลกล้อง Raspberry PI
  • ตัวขับมอเตอร์ L298N
  • 2, มอเตอร์กระแสตรง
  • แป้นพิมพ์ จอภาพใดๆ เมาส์ สายเคเบิลอีเทอร์เน็ต และสาย HDMI (สำหรับ pi)
  • การ์ด MicroSD 8GB
  • สกรู, เทป, ect.
  • 2 ล้อ
  • อุปกรณ์ Android Bluetooth (โทรศัพท์ของฉัน)
  • 2, 18650 เซลล์
  • ตัวควบคุม 5 โวลต์
  • คอมพิวเตอร์สำหรับตั้งโปรแกรมแอพบน

A Raspberry Pi: สำหรับความละเอียดในการสตรีมที่สูงขึ้น (หรือสำหรับผู้เริ่มต้น) ฉันขอแนะนำรุ่น B ใหม่ล่าสุด ในขณะที่รุ่นที่กะทัดรัดกว่าอาจใช้รุ่น A+ ใหม่ล่าสุดหรือ Pi Zero (เวอร์ชันกล้อง) จำไว้ว่าถ้าคุณใช้ Raspberry Pi Zero คุณจะต้องมีดองเกิล Bluetooth และ/หรือ WiFi สำหรับมัน บทช่วยสอนนี้จะถือว่าคุณใช้ Raspberry Pi 3 B

ตัวขับมอเตอร์: ฉันใช้ L298N แม้ว่าตัวขับมอเตอร์ตัวใดก็ตามควรใช้งานได้ เพียงตรวจสอบให้แน่ใจว่าสามารถจัดการกับแรงดันและกระแสของมอเตอร์ของคุณได้

มอเตอร์ DC 2 ตัว: ตรวจสอบให้แน่ใจว่าพวกมันสามารถรองรับน้ำหนักของโดรนของคุณได้

ตัวเครื่อง: ใช้ยึดส่วนประกอบทั้งหมดไว้ด้วย โดยปกติพลาสติกแข็งหรืออะลูมิเนียมเป็นวัสดุที่ทนทานและน้ำหนักเบา เพื่อผลลัพธ์ที่ดีที่สุด แม้แต่เครื่องพิมพ์ 3 มิติก็สามารถใช้ได้

แหล่งพลังงาน: เป็นการตัดสินใจที่ยากที่สุดในการเลือกชิ้นส่วน แบตเตอรี่ที่ต้องการขึ้นอยู่กับการวาดปัจจุบัน สำหรับการใช้งานที่ใช้พลังงานต่ำ (เช่น 1 หรือ 2 แอมป์) แบตเตอรี่ 9v ก็เพียงพอแล้ว สำหรับค่าแอมแปร์ที่สูงขึ้น ฉันขอแนะนำเซลล์ลิเธียมไอออน 18650 หรือแบตเตอรี่ลิเธียมโพลิเมอร์ เนื่องจากมีน้ำหนักเบา สามารถเก็บพลังงานได้มากตามขนาด และสามารถชาร์จใหม่ได้

2 ล้อ: เพียงตรวจสอบให้แน่ใจว่าล้อของคุณมีขนาดรูเท่ากับเพลาของมอเตอร์ของคุณ ตรวจสอบให้แน่ใจด้วยว่าเส้นผ่านศูนย์กลางของล้อใหญ่เพียงพอสำหรับโดรนของคุณ เนื่องจากพวกมันมีรูปแบบและการออกแบบที่เป็นไปได้มากมายสำหรับโปรเจ็กต์นี้ จึงมีประเภทและขนาดล้อที่แตกต่างกันหลายแบบให้เลือกใช้

ตัวควบคุมแรงดันไฟฟ้า: ต้องใช้ตัวควบคุม 5 โวลต์เพื่อจ่ายไฟให้กับ pi ผ่านแบตเตอรี่ ฉันใช้ตัวแปลงบั๊ก LM2596 DC-DC

ผลิตภัณฑ์ส่วนใหญ่ในลิงก์ถูกใช้ในโครงการนี้และเป็นข้อเสนอที่ดีที่สุดที่ฉันสามารถหาได้ในขณะนั้น

ตอนนี้คุณมีทุกสิ่งที่ต้องการแล้ว มาตั้งค่า pi กัน

ขั้นตอนที่ 2: การตั้งค่า Raspberry Pi

การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi

ขั้นตอนนี้จะแสดงวิธีตั้งค่า Raspberry Pi เพื่อให้คุณสามารถเริ่มเขียนโค้ดได้ หากคุณมีการตั้งค่า pi กับ Raspbian อยู่แล้ว คุณสามารถไปยังขั้นตอนต่อไปได้เลย

ขั้นแรก คุณต้องดาวน์โหลดระบบปฏิบัติการสำหรับราสเบอร์รี่ รับ NOOBS หากคุณเป็นมือใหม่ หากคุณมีประสบการณ์ที่โดดเด่นกับ raspberry pi แล้ว คุณอาจสนใจ Raspbian ฉันจะถือว่าคุณกำลังใช้ NOOBS สำหรับบทช่วยสอนนี้

ในขณะที่กำลังดาวน์โหลด ให้ฟอร์แมตการ์ด SD ของคุณด้วยตัวฟอร์แมต SD

ตอนนี้แยกและคัดลอกเนื้อหาของการดาวน์โหลดลงในรูทของการ์ด SD ของคุณ รูทก็หมายความว่ามันไม่ได้อยู่ภายในโฟลเดอร์ใด ๆ หากมีการสร้างโฟลเดอร์ใหม่เพื่อเก็บไฟล์ที่แยกออกมาทั้งหมด ให้คัดลอกข้ามไฟล์นั้น

ถัดไปแนบการ์ด SD กับ pi ขณะแทรก ควร "คลิก" หรือเพียงแค่นั่งที่ด้านล่างของ pi

เสียบเมาส์และคีย์บอร์ดของคุณเข้ากับ pi จากนั้นเสียบสาย HDMI เข้ากับ pi จากจอภาพ ในที่สุดก็เสียบอะแดปเตอร์ซ็อกเก็ตผนัง micro USB ขนาด 3 แอมป์เข้ากับ pi แม้ว่าจะแนะนำให้ใช้เต้ารับบนผนัง แต่ฉันใช้แล็ปท็อปเป็นแหล่งพลังงาน (USB จากแล็ปท็อปของฉันไปยัง Micro USB ใน pi)

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

เสียบสาย Ethernet จากเราเตอร์ของคุณเข้ากับ pi จากนั้นเปิดบรรทัดคำสั่ง (ไอคอน "กล่อง" สีดำที่ด้านบนของหน้าจอ) คุณจะต้องอัปเดต pi ผ่านเครือข่ายแบบมีสายเพื่อเชื่อมต่อกับเครือข่ายไร้สาย

จากนั้นคลิกที่ไอคอนเคเบิลที่ด้านบนของหน้าจอ พิมพ์รายละเอียดเครือข่ายของคุณเมื่อได้รับแจ้ง

พิมพ์ข้อความในบรรทัดถัดไปตามที่แสดงและกด Enter สิ่งนี้จะอัปเดต pi อาจใช้เวลาสักครู่ แค่ปล่อยให้มันทำหน้าที่ของมัน

sudo apt-get update

จากนั้นพิมพ์รหัสในบรรทัดถัดไป การดำเนินการนี้ยังต้องใช้เวลา อย่าทำอะไรจนกว่าจะเสร็จ

sudo apt-get dist-upgrade

ตอนนี้ คุณควรจะสามารถถอดสายอีเทอร์เน็ตออกได้แล้ว คลิกไอคอนไร้สายที่ด้านบนของหน้าจอ ป้อนข้อมูลเครือข่ายของคุณ และสุดท้ายเชื่อมต่อกับเครือข่ายของคุณผ่านระบบไร้สาย

ตอนนี้ให้โค้ดในส่วนของโดรนที่จัดการการเคลื่อนไหว

ขั้นตอนที่ 3: การจัดการการเคลื่อนไหว (เซิร์ฟเวอร์ Bluetooth)

การจัดการการเคลื่อนไหว (เซิร์ฟเวอร์ Bluetooth)
การจัดการการเคลื่อนไหว (เซิร์ฟเวอร์ Bluetooth)

สำหรับการจัดการการเคลื่อนไหวจะใช้ภาษาโปรแกรม "Python 3" ข้อความที่บอกให้หุ่นยนต์เคลื่อนที่จะถูกส่งผ่านบลูทูธจากแอป

ขั้นแรก คุณต้องติดตั้งไลบรารี Bluetooth พิมพ์คำสั่งต่อไปนี้เพื่อดำเนินการดังกล่าว

sudo apt-get update

sudo apt-get ติดตั้งบลูทูธ

sudo apt-get ติดตั้ง bluez

sudo apt-get ติดตั้ง python-bluez

จากเดสก์ท็อป ให้คลิกที่ไอคอนเมนูเริ่ม จากนั้นคลิก Programming แล้วตามด้วย Python 3 จากนั้นคลิก File, new จากแถบเครื่องมือ หน้าต่างใหม่ควรปรากฏขึ้น

คัดลอกเนื้อหาของไฟล์แนบ "bluetoothpi.rtf" ลงในหน้าต่าง

บนแถบเครื่องมือ คลิกที่ ไฟล์ บันทึกเป็น บันทึกไว้ในไดเร็กทอรี /home/pi/Desktop/ เป็น movements.py

ตอนนี้เพื่อทดสอบรหัส ให้คลิกที่ไอคอน Bluetooth ที่มุมบนขวาของหน้าจอ จับคู่ราสเบอร์รี่ pi กับอุปกรณ์ Android ของคุณ ดาวน์โหลดแอป BlueTerm บนอุปกรณ์ Android ของคุณ จากนั้นในบรรทัดคำสั่ง พิมพ์รหัสต่อไปนี้เป็นตัวหนา สิ่งนี้จะรันโค้ดหลาม

sudo python /home/pi/Desktop/movements.py

ข้อความ "กำลังรอการเชื่อมต่อ" ควรปรากฏบน pi

เริ่ม BlueTerm และคลิกที่ไอคอนตัวเลือก จากนั้นปุ่ม "ค้นหาการเชื่อมต่อ"

ในแอพ ชื่อราสเบอร์รี่ pi ของคุณควรปรากฏขึ้น คลิกที่ปุ่มที่มีชื่อของพาย ข้อความ "Accepted connection from" ควรปรากฏบน pi ตามด้วยที่อยู่ ตอนนี้สิ่งที่คุณพิมพ์ในโทรศัพท์ควรแสดงใน pi

คุณเข้ารหัสซ็อกเก็ตเซิร์ฟเวอร์ Bluetooth ของคุณสำเร็จแล้ว!

ขั้นตอนที่ 4: แอพ Android (ไคลเอนต์ Bluetooth)

แอพ Android (ไคลเอนต์ Bluetooth)
แอพ Android (ไคลเอนต์ Bluetooth)
แอพ Android (ไคลเอนต์ Bluetooth)
แอพ Android (ไคลเอนต์ Bluetooth)
แอพ Android (ไคลเอนต์ Bluetooth)
แอพ Android (ไคลเอนต์ Bluetooth)
แอพ Android (ไคลเอนต์ Bluetooth)
แอพ Android (ไคลเอนต์ Bluetooth)

ดาวน์โหลด Android Studio ที่นี่ ติดตั้งและทำตามคำแนะนำที่ให้ไว้ในโปรแกรมติดตั้ง

เริ่มโครงการใหม่ สร้างกิจกรรมเปล่าที่เรียกว่า MainActivity

คัดลอกเนื้อหาของไฟล์แนบ "Logic.txt" ในไฟล์ "MainActivity.java" (แท็บ) ซึ่งรวมถึงตรรกะทั้งหมดที่อยู่เบื้องหลังแอป คุณอาจต้องเปลี่ยนชื่ออุปกรณ์ของคุณที่ด้านล่างของไฟล์

จากนั้นคัดลอกเนื้อหาของไฟล์ "GUI" ในไฟล์ "activity_main.xml" (แท็บ) ซึ่งมี GUI ที่ง่ายมากสำหรับแอป

ตอนนี้ คุณจะต้องนำเข้าปุ่มลูกศร (รูปภาพ) ลงในแอป เปิดเครื่องรูดไฟล์แนบ Arrows.zip ทางด้านซ้ายของ android studio เปิดโครงสร้างไฟล์เพื่อดูแอพ, res, minimap คัดลอกรูปภาพลูกศร (ไฟล์ PNG) คลิกขวาที่แผนที่ย่อของไฟล์ แล้ววางรูปภาพลงในไฟล์ โดยคงชื่อลูกศรไว้เหมือนเดิม ควรมีลักษณะเหมือนภาพเมื่อเสร็จแล้ว

สุดท้ายคัดลอกเนื้อหาของไฟล์ "Manifest" ไปยังไฟล์ "AndroidManifest.xml" (แท็บ)

ในการทดสอบแอป คุณจะต้องเปิดแอปบนอุปกรณ์ของคุณ ในการดำเนินการนี้ คุณจะต้องตั้งค่าอุปกรณ์เป็นโหมดนักพัฒนาซอฟต์แวร์และเปิดใช้งานการดีบัก USB สำหรับอุปกรณ์ส่วนใหญ่ คุณจะต้องไปที่ "การตั้งค่า" "เกี่ยวกับโทรศัพท์" เลื่อนลงมาด้านล่างแล้วคลิก "หมายเลขรุ่น" เจ็ดครั้งจนกว่าคุณจะเห็นข้อความ "ตอนนี้คุณเป็นนักพัฒนาแล้ว!" ย้อนกลับไปแล้วคุณจะเห็นแท็บ "ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์" คลิกที่มันและเปิดใช้งานการดีบัก USB

เชื่อมต่ออุปกรณ์ Android ของคุณกับคอมพิวเตอร์ผ่าน USB คลิกที่ไอคอนเรียกใช้บน Android Studio และเลือกอุปกรณ์ของคุณ

บน pi ให้เริ่มโค้ด python ที่สร้างในขั้นตอนที่ 3 โดยพิมพ์คำสั่งที่เป็นตัวหนา:

sudo python /home/pi/Desktop/movements.py

จากนั้นคลิกที่ปุ่มเชื่อมต่อในแอป เมื่อเชื่อมต่อแล้ว ลูกศรบางอันควรปรากฏบนแอพ เมื่อใดก็ตามที่คุณคลิก จะเป็นการอัปเดตสถานะ "ย้าย" ของ pi

ไม่เป็นไรหากพื้นหลังของแอปแสดงข้อผิดพลาด ซึ่งจะได้รับการแก้ไขในภายหลัง

คุณเพิ่งสร้างแอพและไคลเอนต์ Bluetooth ของคุณเอง

ขั้นตอนที่ 5: การเชื่อมต่อฮาร์ดแวร์

การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์

ประสานการเชื่อมต่อในแผนภาพด้านบน แนบโมดูลกล้องเข้ากับ pi ด้วย

เรียกใช้แอพและรันไฟล์ movements.py หากมอเตอร์เคลื่อนที่ได้ถูกต้องเมื่อใช้แอปนี้ อย่าลังเลที่จะใส่ส่วนประกอบทั้งหมดลงในเปลือกสุดท้ายสำหรับโดรน คุณอาจต้องแก้ไขค่ารหัส "สูง" และ "ต่ำ" เพื่อให้เคลื่อนที่ได้อย่างถูกต้อง

ในขั้นตอนต่อไป เราจะเพิ่มคุณสมบัติการสตรีมของโดรน

ขั้นตอนที่ 6: สตรีมมิ่ง

สตรีมมิ่ง
สตรีมมิ่ง
สตรีมมิ่ง
สตรีมมิ่ง
สตรีมมิ่ง
สตรีมมิ่ง

มีหลายวิธีในการสตรีมวิดีโอโดยใช้ Pi แต่การใช้ uv4l เป็นวิธีที่ง่ายที่สุดโดยแทบไม่มีความล่าช้า

โปรดทราบว่าหากคุณประกอบโดรนเข้าด้วยกันแล้วและไม่สามารถเชื่อมต่อกับจอภาพและคีย์บอร์ดได้ คุณจะต้องใส่ SSH ลงในโดรนของคุณ ในการดำเนินการนี้ ให้ดาวน์โหลด Putty บนคอมพิวเตอร์ของคุณ เปิดและพิมพ์ที่อยู่ IP ของราสเบอร์รี่ของคุณ (ค้นหาที่อยู่ IP โดยพิมพ์คำสั่ง ifconfig) จะแจ้งให้คุณใส่ชื่อผู้ใช้และรหัสผ่าน ชื่อผู้ใช้และรหัสผ่านเริ่มต้นคือ pi และ raspberry ตามลำดับ ตอนนี้สิ่งที่คุณพิมพ์ในกล่องคำสั่งจะเหมือนกับการป้อนคำสั่งลงในโดรนโดยตรง

ติดตั้ง uv4l

พิมพ์คำสั่งนี้:

sudo nano /etc/apt/sources.list

เพิ่มบรรทัดต่อไปนี้ในบรรทัดสุดท้ายของไฟล์

deb https://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main

ออกและบันทึกไฟล์โดยกด Ctrl-X แล้วพิมพ์ Yes

จากนั้นพิมพ์บรรทัดต่อไปนี้แล้วกด Enter

sudo apt-get update

แล้วนี้:

sudo apt-get ติดตั้ง uv4l uv4l-raspicam

พิมพ์คำสั่งต่อไปนี้ทีละบรรทัด รอให้เสร็จสิ้นสิ่งที่ทำก่อนที่จะพิมพ์ในบรรทัดถัดไป

sudo apt-get install uv4l-raspicam-extras

บริการ sudo uv4l_raspicam รีสตาร์ท

sudo rpi-update

sudo apt-get ติดตั้ง uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp

sudo apt-get ติดตั้ง uv4l-webrtc

sudo apt-get install uv4l-xmpp-bridge

sudo apt-get install uv4l-raspidisp-extras

หลังจากนั้น สิ่งที่คุณต้องทำคือพิมพ์คำสั่งต่อไปนี้เพื่อเริ่มการสตรีม (แทนที่ "raspberrypi" ด้วยที่อยู่ IP ของราสเบอร์รี่/ ชื่อโฮสต์ในเครือข่ายของคุณ)

cvlc

การดำเนินการนี้จะเริ่มสตรีมวิดีโอแบบเรียลไทม์บนพอร์ต 8080 สตรีมควรปรากฏอยู่ในพื้นหลังของแอปของคุณทันที หากต้องการดูสตรีมในเบราว์เซอร์ใด ๆ ให้พิมพ์ URL นี้ (โดยที่ "raspberrypi" คือที่อยู่ IP ของโดรนของคุณ)

https://raspberrypi:8080/stream/video.mjpeg

ยินดีด้วย คุณทำโดรนสายลับเสร็จแล้ว

ขั้นตอนที่ 7: ขับรถ

พลิกสวิตช์ไฟแล้วเริ่มสำรวจ

ถ้าอยากรู้วิธีทำอย่างอื่น ถามฉันสิ แล้วฉันจะดูว่าทำอะไรได้บ้าง

หากคุณมีคำถามใด ๆ โปรดแสดงความคิดเห็นด้านล่างและเราจะพยายามตอบคำถามเหล่านี้ให้ดีที่สุด

ขอบคุณที่อ่าน!

แนะนำ: