น่าสนใจและไม่ซับซ้อน หุ่นยนต์ที่เคลื่อนไหวด้านหลังวัตถุที่มีสีใดสีหนึ่ง
ในการกำหนดตำแหน่งของวัตถุจะใช้กล้องสมาร์ทโฟนติดตั้งบนแชสซีของหุ่นยนต์ คุณสามารถใช้คอนสตรัคต์สำเร็จรูปซึ่งฉันได้เขียนไปแล้ว ที่นี่. นี่คือรายการสิ่งที่ผู้แต่งต้องการ ด้วยข้อยกเว้นของสมาร์ทโฟนต้นทุนของหุ่นยนต์นี้คือ $ 60
- Arduino UNO
- สมาร์ทโฟนพร้อม Android OS
- หุ่นยนต์แชสซี
- สายเคเบิลสำหรับเชื่อมต่อ
- H bridge สำหรับมอเตอร์กระแสตรง (ผู้เขียนใช้ pololu TB6612FNG)
ภาพแสดงวิธีการเชื่อมต่อ TB6612FNG และ Arduino Uno
บทสรุปผู้ขับขี่และสิ่งที่พวกเขารับผิดชอบ:
1) GND - เชื่อมต่อเข้ากับหมุด GND บน Arduino
2) VCC - จ่ายแรงดันของลอจิกไดรเวอร์ เชื่อมต่อกับขา 5V บน Arduino
3) A01 - หน้าสัมผัสเอาท์พุทซึ่งเชื่อมต่อกับขั้วบวกของมอเตอร์ A
4) A02 - หน้าสัมผัสเอาท์พุทซึ่งเชื่อมต่อกับขั้วลบของมอเตอร์ A
5) B02 - หน้าสัมผัสเอาท์พุทซึ่งเชื่อมต่อกับขั้วลบของมอเตอร์ B
6) B01 - หน้าสัมผัสเอาต์พุตที่เชื่อมต่อกับขั้วบวกของมอเตอร์ B
7) VMOT- แรงดันเอาต์พุตของมอเตอร์ เชื่อมต่อกับขั้วบวกของแบตเตอรี่ (เพื่อเพิ่มกำลังเครื่องยนต์)
8) GND- เชื่อมต่อเข้ากับขั้วลบของแบตเตอรี่
9) GND- เชื่อมต่อกับขา GND บน Arduino
10) PWMB- เข็ม PWM ของไดรเวอร์มอเตอร์เพื่อปรับความเร็วของมอเตอร์ B เชื่อมต่อกับหมุด PWM ใด ๆ บน Arduino และระบุค่าความเร็วสำหรับมอเตอร์ 0-255
11 และ 12) และ BIN2 BIN1 - หน้าสัมผัสอินพุตของไดรเวอร์มอเตอร์สำหรับมอเตอร์ B ซึ่งกำหนดทิศทางการหมุนของมอเตอร์ B เชื่อมต่อเข้ากับหมุดดิจิตอล Arduino สองตัว
13) STBY- เชื่อมต่อสัญญาณดิจิตอลใด ๆ เมื่อติดตั้งในระดับสูงจะมีไดรเวอร์
14 และ 15) AIN1 และ AIN2- หน้าสัมผัสอินพุตของไดรเวอร์มอเตอร์สำหรับมอเตอร์ซึ่งระบุทิศทางการหมุนของมอเตอร์ A. เชื่อมต่อเข้ากับหมุดดิจิตอล Arduino สองตัว
16) เอาต์พุต PWMA- PWM ของไดรเวอร์มอเตอร์สำหรับปรับความเร็วมอเตอร์ A. เชื่อมต่อกับหมุด PWM ใด ๆ บน Arduino และระบุค่าความเร็วสำหรับมอเตอร์ตั้งแต่ 0-255
โมดูลบลูทู ธ HC-06
Aliexpress ค่าใช้จ่ายประมาณ $ 6
มันทำงานอย่างไรทั้งหมด?
โครงการนี้ใช้สมาร์ทโฟน Android พร้อมแอปพลิเคชั่นพิเศษที่ประมวลผลข้อมูลจากกล้องเพื่อกำหนดตำแหน่งที่วัตถุสีแดงคำนวณพิกัดของมัน และส่งข้อมูลผ่าน Bluetooth ไปยัง Arduinoแอปพลิเคชันใช้ไลบรารี openCV สำหรับการประมวลผลภาพ นี่คือห้องสมุดของอัลกอริทึมสำหรับการมองเห็นคอมพิวเตอร์การประมวลผลภาพโอเพนซอร์ส คุณสามารถอ่านเกี่ยวกับมันหรือ ต่อไปนี้เป็นตัวอย่างโค้ดสำหรับแอปพลิเคชันนี้ที่ทำการคำนวณเหล่านี้ ด้านล่างนี้เป็นรหัสแอปพลิเคชัน Android ที่ดำเนินการคำนวณเหล่านี้
bitmap = Bitmap.createBitmap (mRgba.cols (), mRgba.rows (), Bitmap.Config.ARGB_8888); Utils.matToBitmap (mRgba, bitmap);
int x = 0;
int y = 0;
int all_x = 0;
int all_y = 0;
ในขณะที่ (x <176) {
ในขณะที่ (y <144) {
int pixel = bitmap.getPixel (x, y);
int redValue = Color.red (พิกเซล);
int blueValue = Color.blue (พิกเซล);
int greenValue = Color.green (พิกเซล);
if (redValue> 200 && blueValue <70 && greenValue <70) {
คะแนน ++;
all_x = all_x + x;
all_y = all_y + y;
}
y ++;
}
x ++;
y = 0;
}
y = 0;
x = 0;
x_center = all_x / คะแนน;
y_center = all_y / คะแนน;
ในคลังเก็บแผนภาพการเชื่อมต่อและแผงวงจรพิมพ์สำหรับหุ่นยนต์สำหรับผู้ที่ไม่ต้องการซื้อ Arduino UNO
สิ่งที่จำเป็นสำหรับการประกอบ:
- ทั้งหมดที่กล่าวถึงข้างต้น atmega 8, 128 หรือ 328
- LED ไม่ว่าสีอะไรก็ตาม
- เสถียรภาพเชิงเส้น 5v (สำหรับรุ่นที่ไม่มี Arduino)
- ขั้วต่อพิน M และ F
- แกะสลักและเจาะ PCB (สำหรับรุ่นที่ไม่มี Arduino)
- สว่านหัวแร้ง
- Arduino Uno สำหรับผู้ที่ไม่ทราบว่าข้อสรุป Arduino Uno จำเป็นต้องมีในไฟล์คำอธิบายที่แนบมา
โปรแกรมสำหรับ Arduino
โปรแกรมสำหรับ Arduino นั้นง่ายมาก รหัสเก็บถาวรสำหรับโปรแกรมนี้
โปรแกรมสำหรับโทรศัพท์
ในไฟล์เก็บถาวรนี้มีการติดตั้งโปรแกรมสำหรับโทรศัพท์เช่นแอปพลิเคชั่นปกติและซอร์สโค้ดของโปรแกรมนี้นำเข้าสู่ Android studio รวบรวมไฟล์ apk และติดตั้งลงในสมาร์ทโฟนของคุณ
โปรแกรมนี้ใช้บลูทู ธ เพื่อส่งข้อมูล คำอธิบายไลบรารี (openCV) สามารถพบได้บนอินเทอร์เน็ต ผู้เขียนทำแผงวงจรพิมพ์สำหรับ atmega 328 จำไว้ว่าถ้าคุณจะไม่ใช้เขียงหั่นขนม แต่จะแจกจ่ายตราของคุณ: