สารบัญ:

รถ RasbperryPi พร้อมกล้อง FPV ควบคุมโดยเว็บเบราว์เซอร์: 31 ขั้นตอน (พร้อมรูปภาพ)
รถ RasbperryPi พร้อมกล้อง FPV ควบคุมโดยเว็บเบราว์เซอร์: 31 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: รถ RasbperryPi พร้อมกล้อง FPV ควบคุมโดยเว็บเบราว์เซอร์: 31 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: รถ RasbperryPi พร้อมกล้อง FPV ควบคุมโดยเว็บเบราว์เซอร์: 31 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: STM32 + ESP8266 and Android Tutorial - Remote Robot Car 2024, พฤศจิกายน
Anonim
Image
Image

เราจะสร้างรถ 4wd - พวงมาลัยจะเหมือนในถัง - การเลี้ยวด้านหนึ่งของล้อจะหมุนด้วยความเร็วที่ต่างจากที่อื่น ที่รถจะวางกล้องบนตัวยึดพิเศษที่เราสามารถเปลี่ยนตำแหน่งกล้องได้ หุ่นยนต์จะถูกควบคุมโดยเว็บเบราว์เซอร์ (chrome หรือ firefox ที่เดสก์ท็อปหรือ firefox ที่โทรศัพท์มือถือ) ที่เบราว์เซอร์ เราจะได้กล้องวิดีโอ (มีเวลาแฝงเพียง 200 มิลลิวินาที) และจากเบราว์เซอร์ เราสามารถควบคุมการเคลื่อนไหวของรถและ ตำแหน่งกล้อง เพื่อให้การสื่อสารง่ายขึ้น ฉันใช้ระบบ app.remoteme.org นอกจากนี้ยังมีการควบคุมรถประเภทนี้ด้วย คุณจึงไม่ต้องเขียนรหัสของคุณเอง แต่แน่นอน คุณสามารถแก้ไขสคริปต์เพิ่มได้ ความเป็นไปได้ใหม่ ฯลฯ

ก่อนเชื่อมต่อไฟกับ PCB ของคุณ โปรดตรวจสอบการเชื่อมต่อทั้งหมดอีกครั้ง

ขั้นตอนที่ 1: ข้อมูลบางอย่างเกี่ยวกับ App.remoteme.org

ระบบมีสามส่วน

  • เว็บแอปพลิเคชัน - เมื่อคุณโฮสต์เว็บเพจการควบคุมและเชื่อมโยงการสื่อสารทั้งหมด
  • โปรแกรม rasbperryPi - โปรแกรมที่ส่งวิดีโอ จัดการสคริปต์หลามของคุณ
  • ห้องสมุดที่คุณพบคลาส คำจำกัดความของฟังก์ชัน

Remoteme.org เป็นระบบที่รวดเร็ว คุณเชื่อมโยงอุปกรณ์ทั้งหมดของคุณเข้าด้วยกัน คุณสามารถโฮสต์หน้าเว็บของคุณที่นั่น ดูอุปกรณ์ที่เชื่อมต่อของคุณ ระบบ Remoteme.org ถูกสร้างขึ้นเพื่อช่วยให้คุณเริ่มสร้างโปรเจ็กต์ โดยไม่ต้องกังวลเรื่องการสื่อสารโปรโตคอล แนวคิดหลักคือการส่งข้อความไบนารีระหว่างอุปกรณ์ต่างๆ เช่น หน้าเว็บ, RasbeprryPI, Arduino และสคริปต์

ในอีกทางหนึ่ง Remoteme.org ให้คุณควบคุมไฟล์ของคุณได้อย่างเต็มที่ คุณสามารถแก้ไขมันได้โดยเขียนฟังก์ชันของคุณเอง

ในบทช่วยสอนนี้ ฉันจะแสดงให้คุณเห็นถึงวิธีการสร้างโปรเจ็กต์ที่ยอดเยี่ยมโดยไม่ต้องเขียนโค้ดใดๆ

ในตอนท้ายของบทช่วยสอนนี้ ฉันได้ใส่ลิงก์ที่มีประโยชน์ซึ่งจะช่วยให้คุณเข้าใจระบบ remoteme.org

ขั้นตอนที่ 2: สิ่งที่จำเป็น:

สิ่งที่จำเป็น
สิ่งที่จำเป็น
สิ่งที่จำเป็น
สิ่งที่จำเป็น
  • ราสเบอร์รี่ PI Zero W
  • กล้องเฉพาะตัว
  • Adafruit 16-Channel 12-bit PWM/Servo Driver - อินเทอร์เฟซ I2C - PCA9685 หรือโคลน
  • กลไกเซอร์โวสองตัวที่เข้ากันได้กับที่ยึดกล้อง
  • ที่วางกล้อง
  • แบตเตอรี่ - ในบทช่วยสอน ความเป็นไปได้สองประการของการเชื่อมต่อ
  • สะพาน H TB6612FNG เพื่อควบคุมเสียงของล้อ
  • ไฟล์อินทรี PCB มันง่ายที่จะทำให้เป็นวิธีการถ่ายเทความร้อนDC-DC
  • สเต็ปดาวน์โมดูลตัวแปลง DC
  • เคสหุ่นยนต์

ขั้นตอนที่ 3: การเชื่อมต่อ

การเชื่อมต่อ
การเชื่อมต่อ

กลไกเซอร์โวควบคุม Raspberry pi ผ่านโมดูล PWM และความเร็วมอเตอร์โดยสะพาน H ซึ่งเชื่อมต่อกับพิน RasbperryPi อินพุต PWM ไปยังสะพาน H ถูกสร้างขึ้นโดยโมดูลเดียวกับที่ฉันใช้สำหรับเซอร์โว (ซึ่งส่วนที่ฉันกล่าวถึงข้างต้นไม่จำเป็นต้องใช้ตัวแปลงลอจิก)

ขั้นตอนที่ 4: PCB

PCB
PCB
PCB
PCB

คุณสามารถดาวน์โหลดไฟล์ PCB eagle ได้จากที่นี่ Paths is fat ดังนั้นมันจึงง่ายโดยวิธีการถ่ายเทความร้อน

ขั้นตอนที่ 5: เอาต์พุต PCB

เอาต์พุต PCB
เอาต์พุต PCB
เอาต์พุต PCB
เอาต์พุต PCB
  1. อินพุต PWM สำหรับมอเตอร์ขับเคลื่อน ควรเชื่อมต่อกับโมดูล PWM พิน 15' และ 16 (ตรวจสอบสี่เหลี่ยมผืนผ้าสีเขียวที่ภาพโมดูล PWM)
  2. กำลังไฟฟ้าเข้าสำหรับมอเตอร์ขับเคลื่อน (ตรวจสอบแรงดันไฟสูงสุดที่มอเตอร์ของคุณสามารถทำงานด้วย)
  3. พลังสำหรับโมดูล RasbperryPi และ PWM – ต้องเหมือนกันทุกประการ
  4. เอาท์พุทมอเตอร์ขับเคลื่อน (มีสองเอาท์พุทเพราะเราจะจับคู่มอเตอร์ขับเคลื่อน)
  5. พลังของกลไกเซอร์โว – นอกจากนี้ คุณต้องตรวจสอบว่าแรงดันไฟใดดีสำหรับพวกมัน
  6. จัมเปอร์กำลังปัจจุบันจากอินพุตที่ 5 จะจ่ายไฟให้กับมอเตอร์ด้วย ดังนั้นไม่จำเป็นต้องเชื่อมต่ออะไรกับอินพุต 2
  7. Jumper หากมี RasbperryPi จะเป็นพลังงานจากอินพุตที่ 3 - ก่อนใส่จัมเปอร์ที่นี่ ให้ตรวจสอบว่าการเชื่อมต่อเป็นปกติหรือไม่ - คุณไม่ต้องการเบิร์น RPi ของคุณ
  8. ให้บัดกรีสายเคเบิลที่นี่เพราะเราไม่ต้องการตัวแปลงลอจิก

ขั้นตอนที่ 6: มันจะทำงานอย่างไร

ที่ RasbperryPi มีสคริปต์หลามซึ่งใช้สองไลบรารี

  • นำเข้า RPi. GPIO เป็น GPIO - สำหรับพิน 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (สัญกรณ์ BCM) ซึ่งเชื่อมต่อกับ H bridge
  • นำเข้า Adafruit_PCA9685 สำหรับโมดูล PWM

หมุด Rpi เชื่อมต่อดังนี้ 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) และโหมดควบคุมของสะพาน H (ไปข้างหน้า ถอยหลัง หยุด พักระยะสั้น) สะพาน H ต้องการสัญญาณ PWM สองตัวด้วยเพื่อให้เราสามารถควบคุมความเร็วหรือการหมุนของมอเตอร์ได้ เพราะในโครงการนี้ เรามีตัวควบคุม PWM อยู่แล้ว (ใช้สำหรับเซอร์โว) เราจะใช้มันเพื่อสร้าง PWM สำหรับสะพาน H

โมดูล PWM ใช้โปรโตคอลการสื่อสาร I2C ฉันเคยออกกำลังกายนอกกรอบ Adafruit_PCA9685 ห้องสมุด

ขั้นตอนที่ 7: การประกอบรถยนต์ - ล้อ

ประกอบรถยนต์ - ล้อ
ประกอบรถยนต์ - ล้อ
ประกอบรถยนต์ - ล้อ
ประกอบรถยนต์ - ล้อ

เราจะเริ่มจากการเชื่อมต่อมอเตอร์ไดรฟ์กับเคสรถยนต์ มอเตอร์ด้านซ้าย/ด้านข้างเชื่อมต่อเข้าด้วยกัน และทั้งสองคู่ เชื่อมต่อกับสายไฟบางส่วนซึ่งจะเชื่อมต่อกับ PCB ในภายหลัง ข้อควรทราบขณะต่อล้อมอเตอร์ที่แต่ละด้านต้องหมุนไปในทิศทางเดียวกัน

ขั้นตอนที่ 8: พลังงาน (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2

กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2
กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2
กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2
กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2
กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2
กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2
กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2
กำลังไฟ (แบตเตอรี่ชาร์จ AA) ตัวเลือก 1/2

ฉันจะเขียนความเป็นไปได้ของพลังงานสองอย่าง อันแรกมาจากแบตเตอรี่ชาร์จ 10xAA ที่รูปสุดท้าย ฉันวาดด้วยจัมเปอร์สีแดงที่ต้องใส่

ขั้นตอนที่ 9: พลังงาน (แบตเตอรี่ Li-Po 7.2V) ตัวเลือก 2/2

กำลังไฟ (แบตเตอรี่ Li-Po 7.2V) ตัวเลือก 2/2
กำลังไฟ (แบตเตอรี่ Li-Po 7.2V) ตัวเลือก 2/2
กำลังไฟ (แบตเตอรี่ Li-Po 7.2V) ตัวเลือก 2/2
กำลังไฟ (แบตเตอรี่ Li-Po 7.2V) ตัวเลือก 2/2

และตัวเลือกที่สองคือแบตเตอรี่ 7.2 LI-PO ในกรณีนี้ เรามีแรงดันไฟฟ้า 3 ระดับ – 5v สำหรับ Rpi และโมดูล 6V สำหรับเซอร์โว และโดยตรงจากแบตเตอรี่ 7.2 โวลต์สำหรับมอเตอร์ขับเคลื่อน ฉันต้องใช้โมดูลสองขั้นตอนลง

ตัวเลือก 2 กับ LI-PO ดีกว่า:

  • แบตเตอรี่มีความจุมากขึ้น – รถจะขับได้นานขึ้น
  • แรงดันไฟฟ้าที่มากขึ้นสำหรับมอเตอร์ขับเคลื่อน – รถจะขับเร็วขึ้น
  • ความน่าจะเป็นน้อยกว่าที่หลังจากมอเตอร์ขับเคลื่อนเริ่มค้นหาตำแหน่งแล้ว เราอาจมีแรงดันไฟฟ้าตกอย่างมากและ RPI รีสตาร์ท

ขั้นตอนที่ 10: การบัดกรี

บัดกรี
บัดกรี
บัดกรี
บัดกรี
บัดกรี
บัดกรี
บัดกรี
บัดกรี

ฉันได้ใส่สเปเซอร์สำหรับโมดูล PWM ที่ PCB ไม่มีอะไรจะเขียน แค่ดูภาพวิธีการประสานทุกอย่างเข้าด้วยกัน

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

กล้อง
กล้อง

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

ขั้นตอนที่ 12: ประกอบชิ้นส่วนรถยนต์เข้าด้วยกัน

ประกอบชิ้นส่วนรถยนต์เข้าด้วยกัน
ประกอบชิ้นส่วนรถยนต์เข้าด้วยกัน
ประกอบชิ้นส่วนรถยนต์เข้าด้วยกัน
ประกอบชิ้นส่วนรถยนต์เข้าด้วยกัน
ประกอบชิ้นส่วนรถยนต์เข้าด้วยกัน
ประกอบชิ้นส่วนรถยนต์เข้าด้วยกัน

สำหรับ PCB ฉันได้ทำตารางลูกแก้วขนาดเล็ก

ขั้นตอนที่ 13: การกำหนดค่า App.remoteme.org

การกำหนดค่า App.remoteme.org
การกำหนดค่า App.remoteme.org

ฉันเคยใช้ระบบ app.remoteme.org ฟรี มันช่วยให้คุณทำการเชื่อมต่อ และมีสคริปต์ที่เราต้องการอยู่แล้ว

ที่คำแนะนำนี้ฉันจะแสดงทีละขั้นตอนว่าควรทำอย่างไรเพื่อให้การขับรถ (ที่นี่คุณจะพบรายละเอียดเพิ่มเติม)

  • ลงทะเบียนที่ https://app.remoteme.org หลังจากสมัคร คุณจะเข้าสู่ระบบโดยอัตโนมัติ
  • เปิดแท็บ Token ทางด้านซ้าย จากนั้นคลิก “new token” ระบุชื่อแล้วคลิก OK เราเพิ่งสร้างโทเค็นใหม่ (ภาพที่หน้าจอ)
  • ในตัวอย่างนี้ ค่าโทเค็นคือ: ~1_&p@+BNnZ@A+x8 (คุณจะแตกต่างออกไป;))

ขั้นตอนที่ 14: การกำหนดค่า RasbperryPi

การกำหนดค่า RasbperryPi
การกำหนดค่า RasbperryPi

ที่คอนโซลฉาบ (นี่คือวิธีตั้งค่า RPi เปิดการสื่อสาร I2c ของกล้อง)

โคลน git git://github.com/remoteme/remoteme.git

cd remoteme

python3.5 install.py

  • โปรแกรมติดตั้งจะถามคำถามสำหรับสิ่งที่เราตอบ [Y] และยืนยันโดย [ป้อน]
  • เมื่อการติดตั้งจะขอโทเค็นเราจะวางโทเค็น (shift+insert) ที่คัดลอกมาจากแอปพลิเคชันและ Enter
  • ชื่อตัวอย่างเช่นRpi
  • deviceId 1 Enter
  • หลังการติดตั้ง – เรียกใช้โปรแกรม

./runme.sh

ขั้นตอนที่ 15: ตรวจสอบการเชื่อมต่อ

กำลังตรวจสอบการเชื่อมต่อ
กำลังตรวจสอบการเชื่อมต่อ

กลับไปที่

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

ขั้นตอนที่ 16: การเพิ่ม Python Script

การเพิ่มสคริปต์ Python
การเพิ่มสคริปต์ Python
การเพิ่มสคริปต์ Python
การเพิ่มสคริปต์ Python

ตอนนี้เราจะเพิ่มสคริปต์ python ซึ่งอยู่ในเทมเพลตแล้ว ดังนั้นเราจึงไม่ต้องตั้งโปรแกรมอะไรเลย

ที่แท็บอุปกรณ์เปิดเมนู RasbperryPi แล้วเลือก "เพิ่มสคริปต์ภายนอก"

เมื่อหน้าต่างใหม่ปรากฏขึ้นให้ข้อมูลตามภาพด้านบน

อย่าลืมเลือกแม่แบบ "car4wd" หลังจากขั้นตอนนี้ remoteme.org จะเพิ่มสคริปต์ python ลงใน RasbperryPi ของเราแล้วเริ่มใหม่

ขั้นตอนที่ 17: ตรวจสอบว่าเพิ่มสคริปต์ Python สำเร็จหรือไม่

ตรวจสอบว่าเพิ่มสคริปต์ Python สำเร็จหรือไม่
ตรวจสอบว่าเพิ่มสคริปต์ Python สำเร็จหรือไม่

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

ขั้นตอนที่ 18: การเพิ่มหน้าเว็บเพื่อควบคุมรถ

การเพิ่มหน้าเว็บเพื่อควบคุมรถ
การเพิ่มหน้าเว็บเพื่อควบคุมรถ

ที่แท็บอุปกรณ์คลิก "ใหม่" จากนั้น "หน้าเว็บ" เราเพิ่งเพิ่มอุปกรณ์อื่น - หน้าเว็บที่เราจะใช้เพื่อควบคุมรถของเรา และเนื่องจากเราใช้เทมเพลต "car4wdDesktop" ที่หน้าเว็บเป็นไฟล์ที่เกือบจะพร้อมใช้งานแล้ว

ขั้นตอนที่ 19: กำหนดค่าอุปกรณ์หน้าเว็บเพื่อควบคุมรถ 1/2

กำหนดค่าอุปกรณ์หน้าเว็บเพื่อควบคุมรถ 1/2
กำหนดค่าอุปกรณ์หน้าเว็บเพื่อควบคุมรถ 1/2

ขยายหน้าเว็บที่แท็บอุปกรณ์แล้วคลิก index.html จากนั้นเปิด

ขั้นตอนที่ 20: กำหนดค่าอุปกรณ์หน้าเว็บเพื่อควบคุมรถ 2/2

กำหนดค่าอุปกรณ์หน้าเว็บเพื่อควบคุมรถ 2/2
กำหนดค่าอุปกรณ์หน้าเว็บเพื่อควบคุมรถ 2/2

หน้าต่างปรากฏขึ้น เราต้องระบุ deviceId ของสคริปต์ python ของเราที่ case ของเรา deviceId คือ 2 มาเปลี่ยนตำแหน่งที่แสดงในภาพ

ขั้นตอนที่ 21: เปิดศูนย์ควบคุมรถ

เปิดศูนย์ควบคุมรถ
เปิดศูนย์ควบคุมรถ
เปิดศูนย์ควบคุมรถ
เปิดศูนย์ควบคุมรถ

ตอนนี้ได้เวลาเปิดเพจของเราแล้วดูว่ามันทำงานอย่างไร ที่แท็บอุปกรณ์ คลิก index.html แล้ว "เปิดในแท็บใหม่" หากต้องการดูตัวอย่างวิดีโอ คุณต้องใช้เบราว์เซอร์ Chrome หรือ Firefox เบราว์เซอร์อื่นไม่รองรับ webRTC ทั้งหมด

ขั้นตอนที่ 22: การกำหนดค่ากล้อง 1/2

การกำหนดค่ากล้อง 1/2
การกำหนดค่ากล้อง 1/2

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

ขั้นตอนที่ 23: การกำหนดค่ากล้อง 2/2

การกำหนดค่ากล้อง 2/2
การกำหนดค่ากล้อง 2/2

เปิด script.js (แท็บอุปกรณ์ขยายหน้าเว็บ จากนั้นคลิกที่ script.js จากนั้นเปิด) และค้นหาตำแหน่งที่ฉันแสดงที่หน้าจอ

ที่ตำแหน่งศูนย์กลางเคสของฉันคือ 560 และ 430 และระยะการเคลื่อนที่สำหรับทั้งสองแกน 200

คุณต้องทดลองกับตัวเลขนี้ คุณจะได้ตำแหน่งศูนย์กลางของกล้องและการเคลื่อนไหวที่ราบรื่น หากคุณใช้บทช่วยสอนนี้ ให้คัดลอกค่าที่กำหนดที่วางไว้

ขั้นตอนที่ 24: ขับรถ 1/2

ขับรถ 1/2
ขับรถ 1/2

หากคุณกดลูกศรขึ้นที่แป้นพิมพ์ มาตรวัดควรเปลี่ยนตำแหน่งและรถควรขับ หากคุณกดลูกศร "ขึ้น" และรถกำลังเลี้ยว คุณจะต้องเพิ่ม/ลบเครื่องหมายลบที่ตำแหน่งต่างๆ บนหน้าจอ

หลังจากการดำเนินการนี้หลังจากกด "ขึ้น" รถควรขับไปข้างหน้าและรถลูกศรลงควรขับถอยหลัง

ขั้นตอนที่ 25: ขับรถ 2/2

การขับรถ 2/2
การขับรถ 2/2

เลี้ยว-กดลูกศรซ้ายถ้ารถเลี้ยวขวา ต้องพลิกสาย (ดูภาพด้านบน)

หากคุณบัดกรีสายเคเบิลนี้ คุณสามารถเปลี่ยนได้ที่ script.jsเพียงแค่เปลี่ยนลำดับของความเร็วของการส่งมอเตอร์

ก่อน:

pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed())); pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));

pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));

pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));

หลังจาก:

pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));

pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));

pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed()));

pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));

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

ขั้นตอนที่ 26: มันทำงานอย่างไร

หน้าเว็บกำลังส่งข้อความข้อความแบบไบต์ที่ 9 ไปยังสคริปต์ python ในรูปแบบ:

  • 1 ไบต์ ค่าจำนวนเต็ม 1 ไบต์ 1
  • ตำแหน่งกล้อง X จำนวนเต็ม 2 ไบต์
  • ตำแหน่งกล้อง Y จำนวนเต็ม 2 ไบต์
  • โหมดมอเตอร์ด้านซ้ายจำนวนเต็ม 1 ไบต์ (3= ถอยหลัง, 1= ไปข้างหน้า, 2=หยุด)
  • ความเร็วมอเตอร์เหลือจำนวนเต็ม 1 ไบต์
  • โหมดมอเตอร์จำนวนเต็มด้านขวา 1 ไบต์ (3= ถอยหลัง, 1= ไปข้างหน้า, 2=หยุด)
  • ความเร็วมอเตอร์ขวาจำนวนเต็ม 1 ไบต์

ส่งข้อความที่ไฟล์ script.js ที่ฟังก์ชัน "sendNow()"

ที่ RasbperryPi python.py กำลังได้รับข้อความนี้ในฟังก์ชัน "onUserMessage"

คุณสามารถตรวจสอบและเล่นเล็กน้อยเพื่อให้คุณรู้ว่าเกิดอะไรขึ้น

คำอธิบายฟังก์ชั่นคลาสที่นี่

ขั้นตอนที่ 27: แท็บเล็ต, Mobile Steering

แท็บเล็ต, พวงมาลัยเคลื่อนที่
แท็บเล็ต, พวงมาลัยเคลื่อนที่

เราเพิ่มหน้าเว็บใหม่อย่างประณีตเหมือนครั้งก่อน แต่ตอนนี้เราเลือกเทมเพลต "car4wdMobile"

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

ขั้นตอนที่ 28: เปิดเพจที่โทรศัพท์มือถือ

เปิดเพจที่มือถือ
เปิดเพจที่มือถือ
เปิดเพจที่มือถือ
เปิดเพจที่มือถือ

แทนที่จะลงชื่อเข้าใช้บัญชีของคุณจากมือถือเพียงสแกน QR url ใดก็ได้

รายละเอียด QR ที่นี่

หากการควบคุมมือถือของคุณทำงานเมื่อ RPi และมือถืออยู่ใน wifi เดียวกัน แต่ใช้ไม่ได้ถ้าคุณใช้อินเทอร์เน็ตบนมือถือ คุณต้องเพิ่มเซิร์ฟเวอร์เทิร์นต้องทำอย่างไร ฉันได้เขียนไว้ที่นี่

ขั้นตอนที่ 29: การเพิ่ม Turn Server

เพิ่ม Turn Server
เพิ่ม Turn Server
เพิ่ม Turn Server
เพิ่ม Turn Server
เพิ่ม Turn Server
เพิ่ม Turn Server

บางครั้ง (เมื่อคุณอยู่หลัง NAT หรือการตั้งค่าไฟร์วอลล์บางอย่าง) คุณไม่สามารถเชื่อมต่อหุ่นยนต์ของคุณจากเครือข่ายอื่น แสดงว่าหุ่นยนต์ของคุณเชื่อมต่อแล้ว ไม่ใช่ปัญหาใหญ่แล้วคุณต้องเพิ่มเซิร์ฟเวอร์เทิร์น

ฉันได้ทดสอบเซิร์ฟเวอร์จากบริษัท XIRSYS (ฟรีสำหรับนักพัฒนา) และฉันจะแสดงวิธีกำหนดค่าเซิร์ฟเวอร์เทิร์นโดยใช้ระบบ XIRSYS

ลงทะเบียน:

global.xirsys.net/dashboard/signup

จากนั้นคลิก "บวก" เพื่อเพิ่มแอปพลิเคชัน

ที่ด้านขวาภายใต้ "เครดิตเทิร์นคงที่" คุณมีข้อมูลทั้งหมดที่คุณต้องการ คัดลอกลงในไฟล์ webrtc_streamer.conf ไปที่

ขยายอุปกรณ์ RaspberryPi

คลิกไฟล์ webrtc_streamer.conf

คลิกเปิด

และเพิ่มข้อมูล

turn_server=turn_username=

turn_credential=

หลังจากที่คุณสิ้นสุดการแก้ไข คุณควรมีบางอย่างเช่นที่หน้าจอ

จากนั้นคลิกบันทึกและรีสตาร์ท You Rpi โดยคลิกเมนูที่อุปกรณ์ RasbperryPi แล้วเลือกรีสตาร์ท

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

ขั้นตอนที่ 30: การบังคับเลี้ยวแบบเคลื่อนที่

พวงมาลัยเคลื่อนที่
พวงมาลัยเคลื่อนที่

ที่วงกลม 1 เราวางนิ้วโป้งซ้าย ที่ 2 ขวา – ไม่ต้องตรงจุดนี้ – หน้าเว็บจะตั้งค่าตำแหน่งศูนย์หลังจากที่คุณสัมผัสหน้าจอ และโดยการขยับนิ้วโป้งของคุณ (การขับไปทางซ้าย ตำแหน่งกล้องขวา) คุณสามารถควบคุมได้ รถของคุณ

ขั้นตอนที่ 31: สรุป

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

ลิงค์บางส่วน:

remoteme.org - หน้าแรกของ remoteme.org ที่นั่น คุณจะพบเอกสารและแบบฝึกหัด

FB fanpage - Facebook fanpage ข้อมูลใหม่ล่าสุดเกี่ยวกับ remoteme.org

Youtube - วิดีโอบางส่วนของโครงการ บทช่วยสอน

ไชโย

Maciek

แนะนำ: