สารบัญ:

รถ RC ที่ควบคุมด้วยความเป็นจริงเสมือน: 9 ขั้นตอน
รถ RC ที่ควบคุมด้วยความเป็นจริงเสมือน: 9 ขั้นตอน

วีดีโอ: รถ RC ที่ควบคุมด้วยความเป็นจริงเสมือน: 9 ขั้นตอน

วีดีโอ: รถ RC ที่ควบคุมด้วยความเป็นจริงเสมือน: 9 ขั้นตอน
วีดีโอ: [Eng Sub] อาจารย์ไก่ รถบังคับ คันเป็นแสน OMG เหมือนเป๊ะ!!! | SUPER100 2024, กรกฎาคม
Anonim
Image
Image

คุณเคยต้องการที่จะย่อตัวลงและขับยานอย่าง Innerspace หรือ Fantastic Voyage หรือไม่? ฉันคิดว่านี่ใกล้เคียงที่สุดเท่าที่คุณจะได้รับในระยะเวลาอันสั้น!

นี่คือสนาม:

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

มีบางสิ่งที่คุณฉันนำมาใช้ซึ่งคุณสามารถควบคุมบน VR Car ได้

  1. ล้อ
  2. แตร
  3. ไฟ

สิ่งเหล่านี้มีปุ่มหรือคันโยกบางอย่างใน VR ที่คุณสามารถพลิกหรือสลับเพื่อขับรถได้

สำหรับ repo แบบเต็มและข้อมูลเพิ่มเติม โปรดดูที่ Github และเว็บไซต์ของฉัน!

ขั้นตอนที่ 1: วัสดุและเครื่องมือ

วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ

เครื่องกล:

ชุดแชสซีขับเคลื่อน 4 ล้อ

ไฟฟ้า:

  • ตัวเข้ารหัสล้อ
  • 3S 1300mAh แบตเตอรี่
  • Arduino Uno
  • Arduino Motor Shield
  • Piezo Electric Buzzer
  • LED ขนาดเล็ก
  • คอนเนคเตอร์ XT60
  • ตัวแปลง Boost / Buck

คอมพิวเตอร์:

  • ระบบคอมพิวเตอร์ฝังตัวใดๆ: Raspberry Pi, Jetson Nano เป็นต้น
  • กล้อง USB (เด่นกว่า - กล้อง 180 องศา)

เครื่องมือ / พิเศษ:

  • หัวแร้ง
  • การตั้งค่า VR บางอย่าง - ฉันมี Oculus Rift
  • มัลติมิเตอร์

ขั้นตอนที่ 2: สร้างรถยนต์

สร้างรถ
สร้างรถ
สร้างรถ
สร้างรถ
สร้างรถ
สร้างรถ

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

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

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

ขั้นตอนที่ 3: วงจรบัดกรี

วงจรบัดกรี
วงจรบัดกรี
วงจรบัดกรี
วงจรบัดกรี

ส่วนนี้ค่อนข้างน่าเบื่อ แต่ไม่ซับซ้อน หากคุณทำตามภาพและวัดทุกอย่างก่อนตัดลวด มันก็ไม่ได้แย่เกินไป

ขณะที่คุณทำเช่นนี้ คุณควรปรับเทียบบั๊กคอนเวอร์เตอร์เพื่อเอาท์พุตแรงดันไฟที่ถูกต้อง Raspberry Pi และ Jetson Nano ทั้งคู่ใช้เวลา 5v แต่แบตเตอรี่ของเราอยู่ที่ 11.1v ดังนั้น เราต้องแน่ใจว่าเราไม่ได้ทอดอุปกรณ์อิเล็กทรอนิกส์ของเรา ในการดำเนินการนี้ ให้เสียบแบตเตอรี่ของคุณเข้ากับด้านอินพุตของตัวแปลงบั๊ก ขณะที่เสียบแบตเตอรี่อยู่ ให้ใช้มัลติมิเตอร์เพื่อวัดด้านเอาต์พุตของตัวแปลงบั๊ก ใช้ไขควงปากแบนขนาดเล็กหมุนโพเทนชิออมิเตอร์บนตัวแปลงบั๊กจนกว่าแรงดันไฟขาออกจะเท่ากับ 5 โวลต์ เมื่อเอาต์พุตถูกต้อง คุณจะไม่ต้องหมุนโพเทนชิออมิเตอร์อีกต่อไป

ขั้นตอนที่ 4: ติดตั้งการพึ่งพาบนระบบสมองกลฝังตัว

ติดตั้งการพึ่งพาบนระบบสมองกลฝังตัว
ติดตั้งการพึ่งพาบนระบบสมองกลฝังตัว

ไม่มีอะไรให้ทำมากนักที่นี่ แต่ก็ยังมีความสำคัญอย่างเหลือเชื่อ

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

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

sudo apt อัปเดต

sudo apt ติดตั้ง openssh-server

sudo apt ติดตั้ง python-pip pip ติดตั้ง numpy pip ติดตั้ง opencv-python pip ติดตั้ง pyzmq

เมื่อติดตั้งสิ่งเหล่านี้แล้ว เราจำเป็นต้องตรวจสอบให้แน่ใจว่าไม่ว่าจะเสียบ Arduino กับพอร์ตใด ก็จะรับรู้ได้เสมอ ดังนั้นเราจึงเขียนสิ่งที่เรียกว่ากฎ UDEV กฎเหล่านี้เป็นกฎสำหรับระบบปฏิบัติการของคุณที่ควบคุมสิ่งที่เกิดขึ้นเมื่อคุณเสียบปลั๊ก เราต้องการระบุ Arduino เมื่อเสียบปลั๊ก และตั้งชื่อเพื่อเข้าถึงโดย ชื่อนั้นจะเป็น "arduino_0" ในการทำเช่นนี้ เราจะใช้หมายเลขซีเรียลภายในของ Arduino เพื่อระบุ

udevadm info -a -n /dev/ttyUSB1 | grep '{ซีเรียล}' | หัว -n1

นี่จะเป็นการแยกค่าสำหรับหมายเลขประจำเครื่อง ไปข้างหน้าและคัดลอกค่านั้น

จากนั้นเราจำเป็นต้องแก้ไข (หรือสร้างหากไม่มีอยู่) ไฟล์ชื่อ "99-usb-serial.rules" ไฟล์นี้อยู่ในเส้นทางไฟล์ต่อไปนี้ "/etc/udev/rules.d/99-usb-serial.rules" อย่างที่ฉันบอกไป ถ้าไม่มีไฟล์นั้น ให้สร้างไฟล์แล้ววางในบรรทัดต่อไปนี้โดยแทนที่ VALUE_FROM_ABOVE ด้วยค่าของคุณก่อนหน้านี้

SUBSYSTEM=="tty", ATTRS{serial}=="VALUE_FROM_ABOVE", SYMLINK+="arduino_0"

สิ่งนี้บอกระบบปฏิบัติการว่าเมื่อใดก็ตามที่เห็นหมายเลขซีเรียลเฉพาะนี้ให้เรียกมันว่า arduino_0

สิ่งสุดท้ายที่ต้องทำที่นี่คือการดาวน์โหลด pushArucoVideoPullCommands.py และวางไว้ในที่ที่เข้าถึงได้ง่าย ฉันอยากจะแนะนำโฮมไดเร็กทอรีสำหรับผู้ใช้ของคุณ เนื่องจากเป็นที่ที่เราจะสิ้นสุดเมื่อเรา SSH เข้าสู่ระบบฝังตัวในภายหลัง

ขั้นตอนที่ 5: ตั้งค่าที่อยู่ IP แบบคงที่

ตั้งค่าที่อยู่ IP แบบคงที่
ตั้งค่าที่อยู่ IP แบบคงที่

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

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

ไปที่ส่วนผู้ดูแลระบบของเราเตอร์ โดยทั่วไป (สำหรับเราเตอร์ส่วนใหญ่) ทำได้โดยเปิดเว็บเบราว์เซอร์และไปที่ "192.168.1.1" ระบบจะขอให้คุณลงชื่อเข้าใช้ และชื่อผู้ใช้และรหัสผ่านมาตรฐานทั่วไปสำหรับเราเตอร์ส่วนใหญ่คือ "admin"

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

ตรวจสอบให้แน่ใจว่าคุณตั้งค่า IP ของระบบสมองกลฝังตัวเป็น 192.168.1.122 IP ของสถานีภาคพื้นดินสามารถตั้งค่าอะไรก็ได้

ขั้นตอนที่ 6: อัปโหลดโค้ดไปยัง Arduino

อัปโหลดโค้ดไปยัง Arduino
อัปโหลดโค้ดไปยัง Arduino

ในการอัปโหลดโค้ด Arduino เราต้องติดตั้งไลบรารี่เพื่อทำงานกับแผงป้องกันมอเตอร์ก่อน

บน Arduino IDE ของคุณ ไปที่ Sketch->Include Library->Manage Libraries… จากนั้น ค้นหา Adafruit Motor Shield Library ติดตั้งไลบรารีนี้ จากนั้นอัปโหลดโค้ดไปยัง Arduino ของคุณ คุณไม่จำเป็นต้องมีสิ่งใดอีก

ขั้นตอนที่ 7: แนบวงจรและคอมพิวเตอร์เข้ากับรถยนต์

ต่อวงจรและคอมพิวเตอร์เข้ากับรถยนต์
ต่อวงจรและคอมพิวเตอร์เข้ากับรถยนต์

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

หลายๆ อย่างทำได้ง่ายมาก แค่ปล่อยให้นั่งตรงไหนก็ได้บนตัวรถ ดังนั้น ไม่ต้องกังวลหากไม่มีที่ว่างมากนัก

ขั้นตอนที่ 8: ตั้งค่า VR Environment

ตั้งค่าสภาพแวดล้อม VR
ตั้งค่าสภาพแวดล้อม VR

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

ตราบใดที่คุณใช้ SteamVR ตัวควบคุมควรปรับให้เข้ากับตัวควบคุมต่างๆ ฉันได้จับคู่การควบคุมกับ "การกระทำ" ไม่จำเป็นต้องเป็นปุ่ม ดังนั้นในทางทฤษฎีแล้ว มันจะปรับให้เข้ากับทุกคน

คุณเพียงแค่ต้องดาวน์โหลดและแตกไฟล์ด้วย build Unity world และพร้อมที่จะเรียกใช้ VR_Bot.exe

ขั้นตอนที่ 9: เรียกใช้ทั้งหมดด้วยกัน

เรียกใช้ทั้งหมดด้วยกัน
เรียกใช้ทั้งหมดด้วยกัน
เรียกใช้ทั้งหมดด้วยกัน
เรียกใช้ทั้งหมดด้วยกัน

ตอนนี้เราเตรียมรถเรียบร้อยแล้ว และสถานีภาคพื้นดินก็ติดสายและพร้อมที่จะไป เราจะจัดการเด็กเลวคนนี้ได้อย่างไร จากมุมมองของ Ground Station สิ่งที่คุณต้องทำก็คือเรียกใช้ไฟล์ VR_Bot.exe ที่เราเห็นก่อนหน้านี้

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

SSH ย่อมาจาก Secure Shell และเป็นโปรโตคอลสำหรับการเข้าถึงระบบระยะไกลอย่างปลอดภัย ในกรณีของเรา มันจะทำให้เราเข้าถึงระบบสมองกลฝังตัวจากสถานีภาคพื้นดิน คลิกที่นี่เพื่อเรียนรู้เพิ่มเติม

คุณจำเป็นต้องทราบชื่อผู้ใช้ที่คุณใช้ตั้งค่าระบบฝังตัวด้วย สำหรับ raspberry pi ชื่อผู้ใช้เริ่มต้นคือ 'pi' และรหัสผ่าน 'raspberry'

เมื่อติดตั้งแล้ว ให้เปิดเทอร์มินัลแล้วพิมพ์ดังต่อไปนี้:

ssh {ชื่อผู้ใช้ของระบบฝังตัว}@192.168.1.122

ซึ่งจะเป็นการเปิดเทอร์มินัลในระบบสมองกลฝังตัว

คุณเพียงแค่ต้องรันสคริปต์ python ที่เราคัดลอกไว้ก่อนหน้านี้

python /path/to/pushArucoVideoPullCommands.py

หลังจากที่คุณทำเช่นนั้น ระบบสมองกลฝังตัวจะเริ่มสูบภาพและรับคำสั่งเข้าและออกจากสถานีภาคพื้นดิน

คุณก็พร้อมที่จะเริ่มขับรถและสนุกได้เลย!

แนะนำ: