สารบัญ:

Micro:bit MU Vision Sensor - การติดตามวัตถุ: 6 ขั้นตอน
Micro:bit MU Vision Sensor - การติดตามวัตถุ: 6 ขั้นตอน

วีดีโอ: Micro:bit MU Vision Sensor - การติดตามวัตถุ: 6 ขั้นตอน

วีดีโอ: Micro:bit MU Vision Sensor - การติดตามวัตถุ: 6 ขั้นตอน
วีดีโอ: Using Vision Sensors for Robot Autonomy 2024, พฤศจิกายน
Anonim
Micro:bit MU Vision Sensor - การติดตามวัตถุ
Micro:bit MU Vision Sensor - การติดตามวัตถุ

นี่เป็นแนวทางที่สี่ของฉันเกี่ยวกับวิชันเซนเซอร์ MU สำหรับ micro:bit ฉันจะอธิบายวิธีการติดตามวัตถุด้วย micro:bit และเขียนพิกัดไปยังหน้าจอ OLED ฉันมีคำแนะนำอื่นๆ เกี่ยวกับวิธีเชื่อมต่อ micro:bit กับเซ็นเซอร์วิชัน MU และ OLED และวิธีรับส่วนขยายที่เหมาะสมเพื่อตั้งโปรแกรม ฉันจะยังคงอธิบายสิ่งนั้นในคู่มือนี้ แต่ให้เร็วกว่านี้เล็กน้อย

เสบียง

1 x BBC micro:บิต

1 x Morpx Mu Vision เซนเซอร์ 3

1 x Micro:bit breakout board - ต้องมีการเข้าถึงพิน 19&20 ซึ่งไม่มีบอร์ด breakout ทั้งหมด ฉันใช้ elecfreaks motorbit เพราะฉันชอบบอร์ดนั้น

8 x สายจัมเปอร์ (หญิง-หญิง)

1 x หน้าจอ OLED

ขั้นตอนที่ 1: ขั้นตอนที่ 1: การตั้งค่าเซนเซอร์

ขั้นตอนที่ 1: การตั้งค่าเซนเซอร์
ขั้นตอนที่ 1: การตั้งค่าเซนเซอร์

ก่อนที่เราจะเริ่มต้นการเชื่อมต่อสิ่งใด ๆ เราต้องการตั้งค่าเซ็นเซอร์อย่างถูกต้อง

เซ็นเซอร์ Mu Vision มีสวิตช์ 4 ตัว สองคนทางซ้ายกำหนดโหมดเอาท์พุต และสองคนทางขวากำหนดที่อยู่ เนื่องจากเราต้องการให้ที่อยู่เป็น 00 จึงควรปิดสวิตช์ทั้งสองทางด้านขวา โหมดการส่งออกที่แตกต่างกันคือ:

00 UART

01 I2C

10 การถ่ายโอนข้อมูล Wifi

11 การส่งภาพ Wifi

เราต้องการใช้การเชื่อมต่อแบบอนุกรม เนื่องจากหน้าจอ OLED ต้องการหมุด I2C แบบ micro:bits เท่านั้น ดังนั้นเราจึงจะทำงานในโหมด UART นั่นหมายความว่าสวิตช์ทั้งสองควรอยู่ที่ 00 ดังนั้นควรปิดทั้งคู่

ขั้นตอนที่ 2: ขั้นตอนที่ 2: การเดินสายไฟ

ขั้นตอนที่ 2: การเดินสายไฟ
ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟค่อนข้างง่าย เพียงใช้สายจัมเปอร์สี่เส้นเพื่อเชื่อมต่อเซ็นเซอร์ Mu กับบอร์ดฝ่าวงล้อมของเรา ดูภาพในขั้นตอนที่ 1 เพื่อขอความช่วยเหลือ

เซ็นเซอร์ Mu -> กระดานฝ่าวงล้อม

RX-> พิน 13

TX -> พิน14

G -> กราวด์

วี -> 3.3-5V

จากนั้นเราใช้สายจัมเปอร์สี่เส้นเพื่อเชื่อมต่อ OLED กับบอร์ดฝ่าวงล้อมของเรา

OLED -> กระดานฝ่าวงล้อม

วิน -> 3.3 v

GND -> GND

SCL -> Pin19

SCD -> Pin20

ขั้นตอนที่ 3: รับส่วนขยาย

รับส่วนขยาย
รับส่วนขยาย
รับส่วนขยาย
รับส่วนขยาย
รับส่วนขยาย
รับส่วนขยาย
รับส่วนขยาย
รับส่วนขยาย

ขั้นแรกเราไปที่เครื่องมือแก้ไข Makecode และเริ่มโครงการใหม่ จากนั้นไปที่ "ขั้นสูง" และเลือก "ส่วนขยาย" โปรดทราบว่าเนื่องจากฉันเป็นคนเดนมาร์ก ปุ่มเหล่านี้จึงมีชื่อต่างกันเล็กน้อยในภาพ ในส่วนขยาย เราค้นหา "Muvision" และเลือกผลลัพธ์เดียวที่เราได้รับ จากนั้นเรากลับไปที่ส่วนขยายและค้นหา oled12864 และเลือกส่วนขยาย OLED12864_I2C

ขั้นตอนที่ 4: การเข้ารหัส- เมื่อเริ่ม

การเข้ารหัส- เมื่อเริ่ม
การเข้ารหัส- เมื่อเริ่ม

บล็อกแรกในโปรแกรมนี้จะบอก micro:bit ว่าควรใช้พินใดในการเชื่อมต่อแบบอนุกรม หากคุณใช้หมุดเดียวกันกับ I เมื่อคุณเชื่อมต่อเซ็นเซอร์วิชันเซนเซอร์ MU คุณต้องตั้งค่า TX เป็นพิน 13 และ RX เป็นพิน 14 Baudrate ซึ่งเป็นความเร็วที่ไมโคร:บิตและเซ็นเซอร์วิชัน MU จะพูด ควรตั้งไว้ที่ 9600

บล็อกถัดไปเริ่มต้นการเชื่อมต่อ I2C ระหว่างหน้าจอ OLED และ Micro:bit ที่อยู่ขึ้นอยู่กับฮาร์ดแวร์ OLED ส่วนใหญ่มักจะเป็น 60 แต่สำหรับหน้าจอ OLED บางรุ่นอาจเป็น 61 หรือตัวเลขอื่นๆ

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

บล็อกถัดไป บล็อกสีส้มชุดแรก เริ่มต้นการเชื่อมต่อแบบอนุกรมระหว่างวิชันเซนเซอร์ MU และ micro:bit

บล็อกถัดไปคือบล็อกหมายเลขแสดงสำหรับการแก้ไขปัญหา

บล็อกถัดไป ซึ่งควรเป็นบล็อกสีส้มที่สอง บอกให้เซ็นเซอร์ MU เปิดใช้งานอัลกอริธึม Shape Card

บล็อกสุดท้ายเป็นบล็อกแสดงหมายเลขสำหรับการแก้ไขปัญหา

ขั้นตอนที่ 5: การเข้ารหัส - Forever Loop

การเข้ารหัส - Forever Loop
การเข้ารหัส - Forever Loop
การเข้ารหัส - Forever Loop
การเข้ารหัส - Forever Loop

เราเริ่มโปรแกรมด้วยบล็อก if-else พร้อมบล็อกการ์ดรูปร่างตรวจสอบ

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

บล็อกแรกในข้อความความจริงบอกให้หน้าจอ OLED เขียน W (สำหรับความกว้าง) ที่มุมซ้ายบนของหน้าจอ ตำแหน่ง (0, 0)

บล็อกถัดไปบอกให้หน้าจอ OLED เขียนตัวเลขที่ได้รับจากอัลกอริธึมการ์ดรูปร่างทางด้านขวาของตำแหน่ง W (2, 0) ตัวเลขนี้บอกเราว่าการ์ดรูปทรงกว้างแค่ไหน

โปรแกรมดำเนินต่อไปเช่นนี้

บล็อกแรกที่บอกให้หน้าจอ OLED เขียนจดหมาย H สำหรับความสูงที่ (5, 0) X สำหรับค่าตำแหน่ง X ที่ (0, 2) Y สำหรับค่าตำแหน่ง Y ที่ (5, 2)

จากนั้นบล็อกที่สองที่บอกหน้าจอ OLED ให้เขียนตัวเลขที่ได้รับจากอัลกอริธึมการ์ดรูปร่าง ความสูงของการ์ดที่ (7, 0) ไพ่ตำแหน่ง X ที่ (2, 2) ไพ่ตำแหน่ง Y ที่ (7, 2).

ดังนั้นเมื่อเรารันโปรแกรมและเซ็นเซอร์ MU Vision ตรวจพบรูปร่างการ์ด มันจะให้ความกว้าง ความสูง และตำแหน่งของการ์ดแก่เรา

โปรแกรมเต็มสามารถพบได้ที่นี่

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

อาจมองเห็นได้ยากในวิดีโอ แต่เมื่อฉันย้ายการ์ดจากด้านหนึ่งไปอีกด้านหนึ่ง ค่า X จะเปลี่ยนไป การเลื่อนการ์ดขึ้นและลงจะเปลี่ยนค่า Y การย้ายการ์ดเข้าไปใกล้และออกจากวิชันเซนเซอร์ MU จะเปลี่ยนค่าความสูงและความกว้าง

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

แนะนำ: