BiBoard เป็นบอร์ดควบคุมหุ่นยนต์สุนัขที่ใช้ ESP32 พัฒนาโดย Petoi LLC ไม่เหมือนกับ NyBoard สำหรับผู้ใช้ทั่วไปและผู้ชื่นชอบหุ่นยนต์ BiBoard มุ่งเน้นไปที่นักพัฒนาและผู้เชี่ยวชาญเป็นหลัก โปรเซสเซอร์ประสิทธิภาพสูง หน่วยความจำและพื้นที่เก็บข้อมูลขนาดใหญ่ขึ้น การเชื่อมต่อไร้สาย และฟังก์ชั่นเสียงรวมอยู่ด้วย
การแบ่งฟังก์ชันสำหรับ BiBoard แสดงอยู่ด้านล่าง:
บล็อกไดอะแกรมสำหรับ BiBoard แสดงไว้ด้านล่าง:
มี 2 วิธีในการจ่ายไฟให้กับ BiBoard: USB 5V และช่องเสียบแบตเตอรี่ 7.4V
เมื่อใช้พลังงานจาก USB จะไม่มีเอาต์พุตพลังงานสำหรับส่วนขยาย DC-DC 5V และเซอร์โว
เมื่อใช้พลังงานแบตเตอรี่ที่ 7.4V (สูงสุด: 8.4V) จะจ่ายทั้งเซอร์โวและส่วนไฟ 5V คุณสามารถใช้ 5V จ่ายไฟให้กับ Raspberry Pi
หมายเหตุ:
Arduino IDE 2.0 ไม่สามารถเพิ่มตัวเลือกการกำหนดค่า large_spiffs_16MB (4.5MB APP with OTA/6.93MB SPIFFS) ได้ในขณะนี้
ปลั๊กอินอัปโหลดไฟล์ SPIFFS file upload plugin
ใน Arduino IDE 1.8.* เขียนด้วยภาษาจาวา และ Arduino IDE 2.0 เขียนด้วยภาษาอื่น (TypeScript + Golang) ดังนั้นปลั๊กอินอัปโหลดก่อนหน้านี้จึงไม่สามารถใช้ใน Arduino IDE 2.0 ได้ ขณะนี้ยังไม่รองรับปลั๊กอินอัปโหลดไฟล์ Arduino IDE 2.0 SPIFFS
ดังนั้นขอแนะนำให้คุณติดตั้งและใช้ Arduino IDE 1.8.* IDE. เป็นการชั่วคราว
เปิด "Preferences" ใน Arduino เพิ่ม URL ของบอร์ดพัฒนา ESP32:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
บันทึกแล้วออก
เปิด “Boards Manager...” และรอการอัปเดตจากลิงก์สนับสนุนบอร์ดภายนอก ค้นหา “esp32” และดาวน์โหลดแพ็คเกจสนับสนุนล่าสุด
หลังจากแสดง “INSTALLED” แสดงว่าแพ็คเกจสนับสนุนบอร์ด BiBoard เสร็จสิ้น
ไม่มีวงจร USB ใน ESP32 ดังนั้นเราจึงใช้สะพาน USB CP2102 ตามคำแนะนำอย่างเป็นทางการ ดาวน์โหลดสูงสุดคือ 921600 โดยสะพานเชื่อมต่อกับ serial1 ของ ESP32
เราใช้พอร์ต USB Type-C ตัวต้านทาน 2 ตัว CC1 และ CC2 ถูกเพิ่มเป็นตัวระบุ
เราลองใช้วงจรดาวน์โหลดอัตโนมัติที่ออกแบบโดย ESP และ NodeMCU แต่ไม่มีวงจรใดทำงานได้อย่างสมบูรณ์ ดังนั้นเราจึงแก้ไขวงจรโดยเพิ่มทรานซิสเตอร์ตัวที่สามและขยายตัวเก็บประจุ
ทรานซิสเตอร์จะรับสัญญาณโมเด็มอนุกรมมาตรฐาน DTR และ RTS และทริกเกอร์ลำดับเวลาเฉพาะที่บังคับให้ ESP32 เข้าสู่โหมดดาวน์โหลด จากนั้นรีบูต รายละเอียดของวงจรดาวน์โหลดอัตโนมัติแสดงไว้ด้านล่าง
เราใช้ Invensense MPU6050 ซึ่งเป็น IMU ที่ใช้กันอย่างแพร่หลาย ที่อยู่ I2C ของมันคือ 0x68 และการขัดจังหวะของ DMP เชื่อมต่อกับ IO26 ของ ESP32
ด้วยความช่วยเหลือของไลบรารี MPU6050 DMP ของ Jrowberg คุณสามารถรับสถานะการเคลื่อนไหวของ Bittle ได้อย่างง่ายดาย ไลบรารี MPU6050 ของ Jrowberg ต้องถูกแก้ไขเพื่อปรับให้เข้ากับ ESP32 ชนิดข้อมูลของ “int8” และ “PGMSpace” ควรได้รับการกำหนดไว้ล่วงหน้าแทน 8-bit AVR macros เราขอเสนอไลบรารีที่แก้ไขแล้วของ MPU6050 คุณสามารถเปลี่ยนไลบรารีเดิมเพื่อให้ทั้งบอร์ด AVR และบอร์ด ESP ทำงานได้ตามปกติ
บน BiBoard มี EEPROM 64Kbit คุณสามารถใช้ EEPROM อ่านและเขียนโปรแกรมที่ใช้กับ Arduino UNO ได้โดยตรง คุณสามารถใช้เพื่อเก็บข้อมูลการตั้งค่าเริ่มต้น นอกจากนี้ยังมีตัวอย่างโปรแกรมชื่อ “EEPROM” ในแพ็คเกจสนับสนุน ESP32 นี่ไม่ใช่โปรแกรมสาธิตของ I2C EEPROM นี่คือการสาธิต EEPROM จำลองโดยหน่วยความจำแฟลช QSPI ของ ESP32
เราใช้เอาต์พุต DAC และ class-D แอมพลิฟายเออร์ แทน PWM buzzer เพื่อทำให้ Bittle สดใสยิ่งขึ้น คุณสามารถใช้ 3 วิธีในการขับโมดูลเสียง:
ใช้ฟังก์ชัน "Tone()" ของ Arduino
ใช้ฟังก์ชัน “dacWrite()” ของ ESP32 เหมือน “analogWrite()” ของ Arduino โดยคุณภาพข้อมูลที่โดย DAC นั้นดีกว่า PWM
ใช้ไลบรารีถอดรหัส MP3 ของ ESP ที่พัฒนาโดย XTronical คุณสามารถเล่นไฟล์ MP3 ได้ คุณควรกำหนดค่าระบบไฟล์เช่น SPIFFS หรือ FAT ในแฟลชก่อนที่คุณจะใช้ตัวถอดรหัส MP3 นี้
URL:https://www.xtronical.com/basics/audio/dacs-on-esp32/
เซ็นเซอร์ IR บน Nyboard และ BiBoard เหมือนกัน คุณจึงสามารถใช้ sketch จาก Nyboard ได้โดยตรง แฟลชของ BiBoard มีขนาดใหญ่พอ ดังนั้นคุณจึงไม่ต้องปิดใช้งาน macros ใน IRremote.h
มีช่องเซอร์โว PWM 12 ช่องบน BiBoard และหมายเลขพินจะถูกทำเครื่องหมายไว้ใกล้กับช่อง เราเปลี่ยนทิศทางของช่องเซอร์โว PWM 90 องศาเนื่องจากขนาดของโมดูล ESP32 คุณควรต่อสายไฟก่อนขันสกรูตรงที่ยึดสายไฟบนบอร์ด BiBoard
มีช่องเสียบส่วนขยาย 3 ช่องบน BiBoard ที่มีเครื่องหมาย P15, P16 และ P17
ช่องนี้ใช้สำหรับส่วนขยายอินพุตแบบอะนาล็อก คุณสามารถลองเชื่อมต่อเซ็นเซอร์แรงกดที่เท้าที่ช่องนี้ได้
ช่องนี้ใช้สำหรับส่วนขยายบัสของ ESP32
คุณสามารถใช้อินเทอร์เฟซนี้เพื่อเชื่อมต่อกับ Raspberry Pi ได้ แต่คุณไม่สามารถต่อเชื่อม Raspberry Pi เหนือ BiBoard ได้โดยตรง คุณต้องใช้สายไฟหรืออะแดปเตอร์แทน