อัปโหลด Sketch สำหรับ NyBoard

Setup Process

ซอฟต์แวร์ OpenCat ทำงานได้ทั้งบน Nybble และ Bittle ซึ่งควบคุมโดย NyBoard ที่ใช้ ATmega328P สามารถดูเอกสารรายละเอียดเพิ่มเติมได้ที่ NyBoard V1_0 หรือ NyBoard V1_1.

หมายเหตุ: สามารถดูเวอร์ชั่นของบอร์ดได้ที่นี่

เลื่อน สวิตซ์I2C (SW2) เป็น Arduino.

สวิตช์ I2C เปลี่ยนอุปกรณ์หลัก I2C (gyro/accelerometer, servo driver, external EEPROM) ตามค่าเริ่มต้น “Arduino” NyBoard ใช้ ATmega328P แบบออนบอร์ดเป็นชิปหลัก บน “RPi” NyBoard ใช้ชิปภายนอกที่เชื่อมต่อผ่านพอร์ต I2C (SDA, SCL) เป็นชิปหลัก

หมายเหตุ:

  • บางครั้งหากคุณไม่สามารถผ่านขั้นตอนการบูทเครื่องได้ คุณอาจกดสวิตช์ไปที่ฝั่ง "RPi" โดยไม่ได้ตั้งใจ

Quick Start Tutorial Video

ขั้นตอนการตั้งค่าสำหรับ Nybble เกือบจะเหมือนกัน ยกเว้นว่าคุณต้องเปลี่ยนการกำหนดโมเดลเป็น #define NYBBLE. อย่าลืมอ่านขั้นตอนโดยละเอียดต่อไปนี้

Downloads and installations of Arduino IDE

คุณต้องใช้ Arduino IDE เวอร์ชั่นใหม่ล่าสุดเพื่อตั้งค่า environment ในเวอร์ชันเก่ามักจะรวบรวมไฟล์ฐานสิบหกขนาดใหญ่ขึ้นซึ่งอาจเกินขีดจำกัดของหน่วยความจำ

ถ้าเป็นบอร์ด NyBoard V1_* เวอร์ชั่นใดก็ตามสามารถเลือกเป็น Arduino Uno ได้เลย

เฉพาะในกรณีที่ bootloader ของ NyBoard พัง ซึ่งไม่น่าจะเกิดขึ้น

Burn the bootloader (ไม่จำเป็นสำหรับการใช้งานปกติ)

What is a bootloader?

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

หากคุณไม่สามารถอัปโหลด sketch ของคุณได้ไม่ได้แปลว่าเป็นเพราะ bootloader เสมอไป:

  • บางครั้งบอร์ด USB ของคุณจะตรวจจับกระแสไฟขนาดใหญ่จากอุปกรณ์และปิดใช้งานบริการ USB ทั้งหมด คุณจะต้อง restart บริการ USB ของคุณใหม่ หรือแม้แต่ reboot เครื่องคอมพิวเตอร์ของคุณ

  • คุณต้องติดตั้ง driver สำหรับ FTDI USB 2.0 ไปยังตัวอัปโหลด UART

  • คุณไม่ได้เลือกพอร์ตที่ถูกต้อง

  • การเชื่อมต่อไม่ดี

  • โชคร้าย. พรุ่งนี้ลองใหม่อีกวัน!

หากคุณตัดสินใจที่จะเบิร์น bootloader ใหม่:

  • ด้วย NyBoard V1_* คุณสามารถเลือก Arduino Uno ภายใต้เมนูเครื่องมือของ Arduino IDE

  • เลือก ISP ของคุณ (ภายใน System Programmer) ยอดนิยม 2 ตัว: USBtinyISP หรือ Arduino as ISP Arduino as ISP!

  • เชื่อมต่อ programmer กับพอร์ต SPI บน NyBoard สังเกตทิศทางเมื่อเชื่อมต่อ ตรวจสอบให้แน่ใจว่าพวกเขาได้รับการติดต่อที่ดี

  • เบิร์น bootloader หากนี่เป็นครั้งแรกที่คุณทำเช่นนี้ ให้รอจนกว่าแถบเปอร์เซ็นต์จะถึง 100% และไม่มีข้อความปรากฏขึ้นอีกเป็นเวลาหนึ่งนาที

เชื่อมต่อตัวอัปโหลด (บางครั้งเรียกว่า programmer )

ขั้นตอนนี้ไม่จำเป็นต้องติดตั้ง NyBoard บนหุ่นยนต์

สำหรับขั้นตอนเฉพาะ โปรดดูส่วนเชื่อมต่อ NyBoard ใน USB uploader module Connect NyBoard section

เชื่อมต่อตัวอัปโหลด Bluetooth (optional)

สำหรับขั้นตอนเฉพาะ โปรดดูที่ส่วนเชื่อมต่อ NyBoard ใน Dual-Mode Bluetooth Module Connect NyBoard section

บน Mac บลูทูธอาจขาดการเชื่อมต่อหลังจากอัปโหลดหลายครั้ง ในกรณีดังกล่าว ให้ลบการเชื่อมต่อและเชื่อมต่อใหม่เพื่อให้ฟังก์ชันทำงานต่อ

หาก Bluetooth dongle ไม่เจออยู่ในชุดหุ่นยนต์โดย Seeed Studio หรือ partner ของเราโปรดส่งอีเมลถึง support@petoi.com เพื่อทราบข้อมูลเพิ่มเติม

ดาวน์โหลด OpenCat แพ็คเกจ

เราอัปเดต code อย่างต่อเนื่องเป็น Open-source project คุณสามารถติดดาวและติดตามGitHub repository เพื่อรับฟีเจอร์ใหม่ล่าสุดและการแก้ไขข้อบกพร่อง คุณยังสามารถแบ่งปัน code ของคุณกับผู้ใช้ OpenCat ทั่วโลก

  • ดาวน์โหลด ​OpenCat repo เวอร์ชั่นล่าสุดจาก GitHub: https://github.com/PetoiCamp/OpenCat. จะดีกว่าถ้าคุณใช้คุณสมบัติการควบคุมเวอร์ชันของ GitHub มิฉะนั้น ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลดทั้งโฟลเดอร์ OpenCat ทุกครั้ง codeทั้งหมดต้องเป็นเวอร์ชันเดียวกันจึงจะทำงานร่วมกันได้

  • หากคุณดาวน์โหลดไฟล์ Zip ของ code คุณจะได้รับ OpenCat-main โฟลเดอร์หลังจาก unzip คุณต้องเปลี่ยนชื่อเป็น OpenCat ก่อนเปิด OpenCat.ino เพื่อให้ชื่อทั้งสองตรงกัน

ไม่ว่าคุณจะบันทึกโฟลเดอร์ไว้ที่ใด โครงสร้างไฟล์ควรเป็น:

  • มี code ที่ชื่อว่า testX.ino หลายไฟล์ในโฟลเดอร์ ModuleTests คุณสามารถอัปโหลดเพื่อทดสอบบางโมดูลแยกกันได้ เปิด testX.ino ใดๆ ที่มีคำนำหน้าว่า “test” (แนะนำให้ใช้ testBuzzer.ino เป็น sketch ทดสอบแรกของคุณ)

  • เปิด serial monitor และตั้งค่า baud rate บน NyBoard V1_* ให้เลือกบอร์ดเป็น Arduino Uno และตั้งค่า baud rate เป็น 115200 ทั้งใน code และ serial monitor

  • Compile code ไม่ควรมีข้อความแสดงข้อผิดพลาด เมืออัปโหลด sketch ไปยังบอร์ดของคุณและคุณจะเห็น LED Tx และ Rx กะพริบถี่ๆ เมื่อหยุดกะพริบ ข้อความควรปรากฏบน serial monitor

Upload

ในการกำหนดค่าบอร์ด โปรดทำตามขั้นตอนเหล่านี้

1. กำหนดค่าประเภทหุ่นยนต์และรุ่นของบอร์ด

เปิดไฟล์ OpenCat.ino และเลือกเวอร์ชันของหุ่นยนต์และบอร์ดของคุณ ตัวอย่างเช่น

#define BITTLE    //Petoi 9 DOF robot dog: 1x on head + 8x on leg
//#define NYBBLE  //Petoi 11 DOF robot cat: 2x on head + 1x on tail + 8x on leg

//#define NyBoard_V0_1
//#define NyBoard_V0_2
#define NyBoard_V1_0
//#define NyBoard_V1_1

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

2.ตั้งค่า configuration mode

คอมเมนท์ในส่วน #define MAIN_SKETCH เพื่อให้โค้ดเปลี่ยนโหมดการกำหนดค่าบอร์ด อัปโหลดและปฏิบัติตาม serial prompts เพื่อดำเนินการต่อดังตัวอย่างด้านล่าง

// #define MAIN_SKETCH

หากคุณเปิดใช้งาน#define AUTO_INITโปรแกรมจะตั้งค่าโดยอัตโนมัติโดยไม่ต้องแจ้งให้ทราบล่วงหน้า จะไม่รีเซ็ตออฟเซ็ตของข้อต่อ แต่ปรับเทียบ IMU

3. เสียบตัวอัพโหลด USB เข้ากับคอมพิวเตอร์ของคุณ

ติดตั้ง the driver หากไม่พบพอร์ต USB ภายใต้ Arduino -> Tools -> Port

4. เสียบตัวอัปโหลด USB เข้ากับ NyBoard

สำหรับขั้นตอนเฉพาะโปรดดูส่วนเชื่อมต่อ Connect NyBoard section ใน USB uploader module

5. อัปโหลด configuration mode sketch

กดปุ่มอัปโหลด

6. เปิด serial monitor

คุณสามารถหาปุ่มนี้ได้ภายใต้เครื่องมือ Tools หรือที่มุมบนขวาของ IDE

ตั้งค่า serial monitor เป็น No line ending และ baud rate 115200

7.รีเซ็ตออฟเซ็ตของข้อต่อ

The serial prompts:

Reset joint offsets? (Y/n):

ป้อน 'Y' และกด Enter หากคุณต้องการรีเซ็ตออฟเซ็ตของข้อต่อทั้งหมดเป็น 0

โปรแกรมจะทำการรีเซ็ต จากนั้นอัปเดต constants และ instinctive skills ในหน่วยความจำ

คุณต้องป้อน 'Y' หรือ 'n' เพื่อผ่านขั้นตอนนี้ มิฉะนั้น parameters รวมถึง skill data จะไม่ได้รับการอัพเดตบนบอร์ด

8. IMU (Inertial Measurement Unit) calibration

The serial prompts:

Calibrate the IMU? (Y/n): 

ป้อน 'Y' และกด Enter หากคุณไม่เคยปรับเทียบ IMU หรือต้องการทำการปรับเทียบใหม่

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

เมื่อ serial monitor แสดง "Ready!" คุณสามารถปิด serial monitor เพื่อทำขั้นตอนถัดไป

9. Calibrate the servo controller chip PCA9685

มีขั้นตอนเพิ่มเติมในการ Calibrate servo driver หลังจากการ calibrate IMU

Optional: Connect PWM 3 -> Grove pin A3 to calibrate PCA9685

คุณสามารถ calibrate servo controller (PCA9685 chip) เพื่อให้สัญญาณมุมแม่นยำยิ่งขึ้น ใช้สายจัมเปอร์แบบสั้นเพื่อเชื่อมต่อ PWM pin3 (pin สัญญาณของ pin เซอร์โวตัวใดตัวหนึ่ง) และ Grove pin A3

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

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

10. อัปโหลด sketch ของฟังก์ชันหลัก

ยกเลิก comment #define MAIN_SKETCHเพื่อให้ใช้งานได้ code จะกลายเป็นโปรแกรมปกติสำหรับการทำงานหลัก จากนั้นอัปโหลด code

#define MAIN_SKETCH

เปิด serial monitor เมื่อ serial monitor แสดง " Ready! " หุ่นยนต์ก็พร้อมที่จะรับคำสั่งถัดไปของคุณ

11. The module macro in the code

Code เริ่มต้นทำงานในโหมดมาตรฐาน หากคุณมีโมดูลที่ขยายได้บางโมดูล คุณอาจยกเลิกการแสดงความคิดเห็น macro definition ของโมดูลนั้นๆ จะปิดใช้งานรหัส Gyro เพื่อประหยัดพื้นที่ในการเขียนโปรแกรมและเปิดใช้งานการสาธิตของโมดูล

ใน official modules ถูกกำหนดไว้ในไฟล์ส่วนหัวแยกต่างหากใน OpenCat/src/ คุณสามารถค้นหาได้ใน OpenCat/src/io.h -> readSignal() ลักษณะการทำงานของ OTHER_MODULES กำหนดไว้ใน OpenCat/OpenCat.ino -> otherModule() คุณสามารถศึกษาโค้ดตัวอย่างเพื่อเขียนฟังก์ชันของคุณเองได้

12. Modify the "joint - pin" mapping

ในบางกรณี คุณอาจต้องการปรับเปลี่ยนการ mapping ของ "pin ข้อต่อ" ของหุ่นยนต์ คุณสามารถแก้ไขได้ใน OpenCat/src/OpenCat.h ตรวจสอบให้แน่ใจว่าคุณกำลังแก้ไขบล็อกโค้ดที่สอดคล้องกับเวอร์ชันของบอร์ดที่จุดเริ่มต้นของ OpenCat.ino หลังจากแก้ไข อย่าลืมบันทึกการเปลี่ยนแปลงและทำขั้นตอนการอัปโหลดซ้ำตั้งแต่ขั้นตอนที่ 2

Last updated