สารบัญ:

Raspberry SPy Robot: 8 ขั้นตอน (พร้อมรูปภาพ)
Raspberry SPy Robot: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry SPy Robot: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry SPy Robot: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Learn to be a spy with the Raspberry Pi! 2024, พฤศจิกายน
Anonim
Image
Image
หุ่นยนต์ Raspberry Spy
หุ่นยนต์ Raspberry Spy

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

ขั้นตอนที่ 1: Robot Electronics

หุ่นยนต์อิเล็กทรอนิกส์
หุ่นยนต์อิเล็กทรอนิกส์

ฉันเริ่มต้นด้วยการประกอบชุดแชสซี 2WD MiniQ จาก DFRobot ฉันเลื่อนล้อไปบนเพลามอเตอร์ จากนั้นใส่เข้าไปในโครงยึดและติดเข้ากับแชสซี ในที่สุดฉันก็เพิ่มส่วนรองรับโลหะ ตอนนี้ได้เวลาสร้างกระดานหลักแล้ว ไดรเวอร์มอเตอร์ L293d ได้รับการบัดกรีพร้อมกับสายไฟที่วิ่งไปยังหมุด GPIO ของ Raspberry Pi ต่อไปฉันบัดกรีขั้วต่อสำหรับแบตเตอรี่เพราะมันจะให้พลังงานหลัก หลังจากเพิ่มแหล่งพลังงานแล้ว ฉันติดตั้งตัวควบคุม 5V

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

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

DFRobot ยื่นมือมาหาฉันและส่งโมดูลกล้อง Raspberry Pi 3 และ Raspberry Pi ดังนั้น หลังจากที่ฉันเปิดกล่องออกมา ฉันก็เริ่มทำงานโดยตั้งค่าการ์ด SD ก่อนอื่นฉันไปที่หน้าดาวน์โหลด Raspberry Pi และดาวน์โหลด Raspbian เวอร์ชันล่าสุด จากนั้นฉันก็แตกไฟล์และใส่ลงในไดเร็กทอรีที่สะดวก คุณไม่สามารถคัดลอก/วางไฟล์.img ลงในการ์ด SD ได้ แต่คุณต้อง "เบิร์น" ลงในการ์ด คุณสามารถดาวน์โหลดยูทิลิตี้การเบิร์น เช่น Etcher.io เพื่อถ่ายโอนอิมเมจ OS ได้อย่างง่ายดาย หลังจากที่ไฟล์.img อยู่ในการ์ด SD ของฉันแล้ว ฉันจึงเสียบมันเข้าไปใน Raspberry Pi และให้พลังงานแก่มัน หลังจากนั้นประมาณ 50 วินาที ผมก็ถอดสายและถอดการ์ด SD ออก ต่อไปฉันใส่การ์ด SD กลับเข้าไปในพีซีและไปที่ไดเร็กทอรี "บูต" ฉันเปิดแผ่นจดบันทึกและบันทึกเป็นไฟล์เปล่าชื่อ "ssh" โดยไม่มีนามสกุล นอกจากนี้ยังมีไฟล์ที่ฉันเพิ่มชื่อ "wpa_supplicant.conf" และใส่ข้อความนี้ลงไป:

เครือข่าย={ ssid= psk= }

จากนั้นฉันก็บันทึกและนำการ์ดออกมาแล้วใส่กลับเข้าไปใน Raspberry Pi 3 ซึ่งตอนนี้น่าจะอนุญาตให้ใช้ SSH และเชื่อมต่อกับ WiFi ได้

ขั้นตอนที่ 3: เตรียมกล้องให้พร้อม

เตรียมกล้องให้พร้อม
เตรียมกล้องให้พร้อม

โดยค่าเริ่มต้น กล้องจะถูกปิดใช้งานบน Pi ดังนั้นคุณต้องเปิดเทอร์มินัลประเภท sudo raspi-config เพื่อเรียกเมนูขึ้นมา ไปที่ "ตัวเลือกการเชื่อมต่อ" แล้วเปิดใช้งานกล้อง ตอนนี้เพียงแค่เลือก "เสร็จสิ้น" และใส่สายแพของโมดูลกล้องลงในพื้นที่ที่ถูกต้องของ Pi

ขั้นตอนที่ 4: การติดตั้งซอฟต์แวร์

มีซอฟต์แวร์ต่างๆ มากมายที่สามารถสตรีมวิดีโอได้ เช่น vlc และภาพเคลื่อนไหว แต่ฉันตัดสินใจใช้ mjpeg-streamer เนื่องจากมีเวลาแฝงต่ำและติดตั้งง่าย ตามคำแนะนำบนเว็บไซต์ ทำการ git clone https://github.com/jacksonliam/mjpg-streamer.git ลงในโฟลเดอร์ จากนั้นพิมพ์ sudo apt-get install cmake libjpeg8-dev เพื่อติดตั้งไลบรารีที่ต้องการ เปลี่ยนไดเร็กทอรีของคุณลงในโฟลเดอร์ที่คุณดาวน์โหลดแล้วพิมพ์ make ตามด้วย sudo make install เพื่อคอมไพล์ซอฟต์แวร์ สุดท้ายป้อนการส่งออก LD_LIBRARY_PATH= และเรียกใช้ประเภท./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" คุณสามารถเข้าถึงสตรีมได้โดยไปที่ https://:8080/stream.html เพื่อดูสตรีม

ขั้นตอนที่ 5: ตัวควบคุม

คอนโทรลเลอร์
คอนโทรลเลอร์
คอนโทรลเลอร์
คอนโทรลเลอร์

ต่อมาคือส่วนหนึ่งของวิธีการควบคุม Raspberry Pi ผ่าน WiFi เนื่องจากบลูทูธมีช่วงสัญญาณน้อยเกินไป ฉันตัดสินใจใช้เซิร์ฟเวอร์ Flask ที่ทำงานบน Raspberry PI และโมดูล ESP8266 ESP12E เพื่อส่งข้อมูลไป ESP8266 มีอินพุตแบบอะนาล็อกเพียงช่องเดียว ซึ่งหมายความว่าฉันไม่สามารถใช้จอยสติ๊กได้โดยตรง เนื่องจากต้องใช้อินพุตแบบอะนาล็อกสองช่อง ตัวเลือกที่ดีที่สุดคือ ADS1115 ซึ่งเป็นอุปกรณ์ I2C ที่อ่านสัญญาณแอนะล็อกที่ความละเอียด 16 บิต ฉันเพียงแค่เชื่อมต่อ SDA กับ 4 และ SCL ถึง 5 พร้อมกับ VCC และ GND แกน X ของจอยสติ๊กเชื่อมต่อกับ A0 บน ADS1115 และแกน Y เชื่อมต่อกับ A1 แต่ฉันทำ ADS1115 ไหม้โดยไม่ได้ตั้งใจ ดังนั้นฉันจึงต้องใช้สิ่งที่ดีที่สุดถัดไป: ปุ่ม! ตอนนี้การตั้งค่าของฉันคือ ESP8266 Sparkfun Thing Dev Board ที่มี 3 ปุ่มไปข้างหน้า ขวา และซ้าย ตอนนี้ทุกครั้งที่มีการกด มันจะส่งข้อมูลเพื่อหมุนล้อไปในทิศทางนั้น

ขั้นตอนที่ 6: รหัสสำหรับหุ่นยนต์

รหัสสำหรับหุ่นยนต์
รหัสสำหรับหุ่นยนต์

ฉันสร้างโปรเจ็กต์ก่อนหน้านี้ที่ใช้ไลบรารี GPIO PWM ของ Pi เพื่อควบคุมมอเตอร์ผ่าน json ดังนั้นฉันจึงกำหนดรหัสใหม่เพื่อยอมรับข้อมูลผ่านแอป Flask แทน Flask เป็นไลบรารี Python ที่เปลี่ยน Pi ของคุณให้เป็นเว็บเซิร์ฟเวอร์ที่สามารถส่งและรับข้อมูลได้ ด้วยการใช้ PWM จะทำให้สามารถควบคุมมอเตอร์ได้อย่างแม่นยำมากขึ้นเมื่อเทียบกับตัวขับถัง นี่ยังหมายความว่าหุ่นยนต์สามารถเคลื่อนที่ด้วยความเร็วที่หลากหลายมากกว่าความเร็วคงที่ แอปขวดของฉันได้รับการกำหนดค่าให้เปลี่ยน PWM ของมอเตอร์เมื่อได้รับข้อมูลจากคำขอ GET ผ่าน http จาก ESP12e นอกจากนี้ยังใช้ไลบรารี subprocess. Popen เพื่อเรียกใช้สคริปต์การสตรีมเว็บในพื้นหลัง ฉันได้แนบรหัสเข้ากับหน้าโครงการ ดังนั้นทั้งหมดที่จำเป็นคือการดาวน์โหลด

ขั้นตอนที่ 7: รหัสคอนโทรลเลอร์

โค้ดนั้นค่อนข้างเรียบง่าย เพียงแค่อ่านค่าจากพินทั้ง 3 พิน เรียกใช้คำสั่ง if เพื่อกำหนดทิศทางของล้อ และสุดท้ายส่งค่าเหล่านั้นไปยัง Raspberry Pi การเพิ่มบอร์ด ESP8266 สำหรับ Arduino IDE มาพร้อมกับไลบรารี HTTPClient ซึ่งจัดการส่วนหัวและการส่งข้อมูล เซิร์ฟเวอร์ Flask จำเป็นต้องรับข้อมูลผ่านการเรียก POST ดังนั้นรหัสจึงเริ่มต้นการเชื่อมต่อกับเว็บเซิร์ฟเวอร์ Raspberry Pi จากนั้นจึงเพิ่มส่วนหัวให้กับข้อมูลที่ระบุว่ามีการเข้ารหัส JSON และสุดท้ายจะส่งข้อมูลในรูปแบบของวัตถุ JSON. ฉันเพิ่มการหน่วงเวลา 40 ms เพื่อป้องกันไม่ให้ Raspberry Pi มีข้อมูลมากเกินไป

ขั้นตอนที่ 8: เรียกใช้ Raspberry SPy

เรียกใช้ Raspberry SPy
เรียกใช้ Raspberry SPy
เรียกใช้ Raspberry SPy
เรียกใช้ Raspberry SPy

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

แนะนำ: