NyBoard V1_1

Update:

NyBoard V1_1 เป็นเวอร์ชันที่อัปเกรดมาจาก V1 โดยมุ่งเน้นไปที่ปัญหาขาดแคลนของ ATMEGA328P-MU ในเครือข่ายการจัดหาวัสดุอุปกรณ์ของเรา

  1. แทนที่ ATMEGA328P-MU (QFN32=) ด้วย ATMEGA328P-AU (TQFP32)

  2. นำ 7 ดวง WS2812 LED ออกเพื่อเพิ่มพื้นที่บนบอร์ด

  3. เพิ่ม LED สีเขียวที่ต่อกับพอร์ต D10 และมีฟังก์ชัน PWM

  4. ไม่มีการเปลี่ยนแปลงสำหรับ socket และการกำหนดขาต่อจาก V1_0 โปรแกรมบูตและโค้ด OpenCat ยังคงเข้ากันได้อย่างเต็มที่

Overview

บอร์ด NyBoard V1 เป็นเวอร์ชันที่อัพเกรดขึ้นมาจากการรับความคิดเห็นจากผู้ใช้งานกับ NyBoard V0 โดยยังคงรองรับการใช้งานกับเวอร์ชันก่อนหน้า แต่มีการออกแบบใหม่เพื่อทำให้ใช้งานง่ายขึ้น

  • NyBoard V1 ยังใช้ Atmel ATMega328P เป็นชิปหลัก แต่เปลี่ยนความถี่ให้เป็น 16MHz โดยไม่ต้องเร่งความถี่ไปยัง 20MHz ตอนนี้บอร์ดเป็นเวอร์ชันที่เข้ากันได้อย่างเต็มที่กับ Arduino Uno จึงทำให้ผู้ใช้ใหม่ที่ไม่เคยใช้ Arduino มาก่อนสะดวกในการใช้งาน

  • NyBoard V1 ยังสามารถขับได้ถึง 16 ช่อง PWM ด้วย PCA9685 โดยเรียงลำดับขาแตกต่างจากเดิม แต่ไม่จำเป็นต้องอ่านหมายเลขดัชนีบนบอร์ดเพราะการเชื่อมต่อขานี้ถูกจัดการในซอฟต์แวร์อย่างถูกต้อง

  • เซ็นเซอร์การเคลื่อนไหว 6 แกนของ MPU6050 ออกแบบมาบน PCB แทนที่จะเป็นโมดูลแยกต่างหากที่ติดตั้งเหนือบอร์ด มันสนับสนุน DMP (Digital Motion Processor) ซึ่งสามารถคำนวณข้อมูลการเคลื่อนไหวได้โดยตรงและยังมีข้อมูลแบบดิบสำหรับผสมผสานและแยกสัญญาณเองได้

  • NyBoard V1 ยังคงใช้ EEPROM 8KB onboard I2C เพื่อบันทึกค่าคงที่สำหรับทักษะต่าง ๆ

  • ระบบไฟฟ้าได้รับการออกแบบใหม่เพื่อให้ได้กำลังไฟที่เสถียรมากขึ้น โครงสร้างของอุปกรณ์

  • ตั้งแต่วันที่ 1 มกราคม 2021 เราเริ่มรวมดองเกิลบลูทูธอย่างเป็นทางการเพื่อการอัปโหลดและสื่อสารไร้สาย ค่าเริ่มต้นสำหรับอัตราการสื่อสารทั้งหมดจะถูกตั้งค่าไว้ที่ 115200

  • ปุ่มรีเซ็ตอยู่ใกล้เข้าถึงมากขึ้นที่ด้านหลังของบอร์ด

  • เราได้เพิ่ม 4 ช่องต่อ Grove เพื่อเป็นการเชื่อมต่อแบบ plug-and-play กับโมดูลขยายของ Seeed Studio โดยยังคงให้แผงวงจรมาตรฐานที่มีรูเข็มขัดขนาด 2.54 มม. เช่นเดิม

  • สายสัญญาณสำหรับแบตเตอรี่ที่ใช้ต่อกับแผงวงจรเป็นสายแบบ anti-reverse ซึ่งจะช่วยป้องกันการเสียหายจากการต่อผิดขั้ว

Logic diagram of the controller

The configuration of NyBoard V1_0 is shown as below:

Introduction to the onboard components

Main controller

NyBoard V1_0 ใช้ Atmel ATMega328P-AU เป็นชิปหลัก เหมือนกับ MCU ของ Arduino Nano (UNO Compatible)

ATMega328P ทำงานที่ความถี่ 16MHz และมีแหล่งจ่ายไฟ 5V มี SRAM 2KB, Flash 32KB และ on-chip EEPROM 1KB ด้วย bootloader เดียวกับ Arduino Uno คุณสามารถอัพโหลดสคริปต์ผ่านพอร์ตซีเรียลได้เลย

LED(NEW!)

ได้ทำการเปลี่ยน WS2812 ที่เป็น LED RGB แบบต่อเซียงกันเป็น LED เดียวสีเขียวเท่านั้น สามารถใช้คำสั่งควบคุม GPIO ของ Arduino ได้อย่างง่ายดาย

I2C switch

ชิปหลักทำงานที่แรงดัน 5V ในขณะที่อุปกรณ์เสริมอื่น ๆ ทำงานในระดับตรรกะ 3.3V เราใช้ PCA9306 เพื่อแปลงบัส I2C ของ ATMega328P ให้เป็น 3.3V นอกจากนี้เรายังเพิ่มสวิทช์บนบัส I2C ซึ่งจะช่วยเปลี่ยน I2C master ของอุปกรณ์เสริมบนบอร์ดได้ โดยสามารถหมุนสวิทช์ไปที่ "Arduino" หรือ "Raspberry Pi" เพื่อเปลี่ยน I2C master ของอุปกรณ์บนบอร์ดได้

6-Axis IMU MPU6050

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

บน NyBoard V1_0 ที่อยู่ I2C ของ MPU6050 คือ 0x68 และหมุนเวียน ของ MPU6050 ถูกเชื่อมต่อกับพอร์ต PD2 ของ ATMega328P (หรือพอร์ต D2 ของ Arduino Uno) โดยใช้ Interrupt pin

มีหลายไลบรารีสำหรับ MPU6050 ที่มีอยู่แล้วและเราใช้ I2CDev/6050DMP ใน NyBoard V1_0 อย่างไรก็ตาม คุณยังสามารถใช้เวอร์ชันอื่น ๆ ได้ด้วย

Name

Author

Feature

I2Cdev

jrowberg

built-in DMP

Adafruit MPU6050

Adafruit

standard MPU6050 library

Kalman Filter

TKJ Electronics

with Kalman filter

PCA9685 and the PWM servo ports

PCA9685 แบ่งออกเป็น 16 ช่อง PWM ที่มีความละเอียด 12 บิตด้วยคำสั่งจากพอร์ต I2C โดยมีที่อยู่ตั้งค่าไว้ที่ 0x40 บนบอร์ด มีหมายเลขช่อง PWM ทั้งหมด 16 ช่องพิมพ์บน PCB อยู่แล้ว แต่คุณไม่จำเป็นต้องอ่านหมายเลขนี้เนื่องจากการแมปพินได้ถูกตั้งค่าเป็นอัตโนมัติผ่านซอฟต์แวร์ แบบจับตามกลุ่มของขาเชื่อมต่อเหมือนเดิมกับรุ่นก่อนหน้า ในการต่อเซอร์โวต้องตรวจสอบทิศทางของขาเซอร์โว ซึ่งมักมี 3 ขา คือ PWM, ไฟ (2S) และ GND (อีกชื่อหนึ่งคือแบตเตอรี่) ขา GND ควรเชื่อมต่อกับสายสีดำของเซอร์โว

บน NyBoard V1_0 พลังงานไฟฟ้าของเซอร์โวต่อกับแบตเตอรี่ไอออน 2S โดยตรง โดยเราออกแบบเซอร์โวของเราให้เข้ากันได้กับแหล่งจ่ายไฟ 8.4V แบบปกติ ซึ่งเซอร์โวปกติทำงานที่แรงดันไฟฟ้า 6V คุณไม่ควรเชื่อมต่อเซอร์โว 9g ปกติเช่น SG90 โดยตรงกับบอร์ด

เราใช้ไลบรารี่ Adafruit PWM Servo Driver Library สำหรับ PCA9685

EEPROM

เราใช้หน่วยความจำในตัวชิป AT24C64 ที่ติดตั้งบนบอร์ดเพื่อเก็บข้อมูลทักษะการเคลื่อนไหว มันมีที่อยู่ I2C เป็น 0x54 ตารางค้นหาของทักษะถูกบันทึกไว้ในหน่วยความจำ EEPROM ในตัวชิป ATMega328P ขนาด 1KB โดยเราใช้ไลบรารี <EEPROM.h> ดังนั้นคุณควรใส่ใจกับความแตกต่างของพวกเขาเมื่อพัฒนาโค้ดใหม่

Passive buzzer

เราใช้ขา PD5 (หรือ D5 ของ Arduino UNO) เพื่อขับเสียงบัสเซอร์ และกระแสไฟจะถูกขยายโดย MOS 2N7002

Infrared receiver

เราใช้ VS1838B เป็นตัวรับสัญญาณอินฟราเรด ที่เชื่อมต่อกับ PD4 (หรือ D4 บน Arduino Uno) โดยใช้ไลบรารี IRremote ของ Arduino และรีโมทที่เข้ารหัสในรูปแบบ NEC คุณสามารถปิดใช้งานโปรโตคอลอื่นๆ ใน IRremote.h เพื่อประหยัดพื้นที่หน่วยความจำแฟลชได้ถึง 10%

Voltage detector

หลอด LED 2 ดวงในโลโก้ของ Petoi แสดงสถานะการเปิดเครื่องของบอร์ด ดวงตาซ้ายสีน้ำเงินแสดงสถานะของชิปต่างๆ ดวงตาขวาสีเหลืองแสดงสถานะของพลังงานสำหรับเซอร์โว การเชื่อมต่อกับแบตเตอรี่ ทั้ง 2 ดวงจะติดขึ้น แต่ถ้า NyBoard ถูกเชื่อมต่อกับ USB downloader ดวงตาสีน้ำเงินเท่านั้นที่จะติดขึ้น

มีช่องรับแบตเตอรี่ป้องกันการกลับด้าน และผลลัพธ์การเชื่อมต่อของแบตเตอรี่ถูกเชื่อมต่อกับ ADC7 (หรือ A7 ของ Arduino Uno) และไม่ได้เกี่ยวข้องกับขาอื่นๆบนบอร์ด ADC7 จะเก็บรวบรวมแรงดันไฟฟ้าที่แบตเตอรี่ผ่านตัวหารแรงดัน และแรงดันที่อ่านได้จะเป็นประมาณ 2 เท่าของค่าที่แสดงออกมา ระดับแรงดันที่ปลอดภัยของแบตเตอรี่อยู่ในช่วงต่ำกว่า 10V

Voltagereal=ADCreading1024×5.0×2Voltage_{real}=\frac{ADC_{reading}}{1024} \times 5.0 \times2

คุณควรชาร์จแบตเตอรี่ทันทีเมื่อแบตเตอรี่ต่ำกว่า 7.4V

Grove sockets

เราใช้ตัวจับสายปลั๊กแบบ Grove เพื่อให้สะดวกในการเสียบและใช้งาน มีปลั๊กแบบนี้ทั้งหมด 3 ชนิด:

Grove Socket

Pin Number

Function

G1

I2C: SCL, SDA

I2C with 3.3V logic signal

G2

A2, A3

Analog input; 0-5V

G3

PD8, PD9

Digital I/O; 0-5V

G4

PD6, PD7

Digital I/O; 0-5V

Power system

ชิปหลักถูกจ่ายไฟโดย Low-dropout (LDO) linear regulator เพื่อลดเสียงรบกวนและเพิ่มความเสถียรภาพ โดยใช้ LM1117-5V และ XC6206P-3.3V เพื่อจ่ายไฟ 5V และ 3.3V โดยที่ LDO ของแต่ละแรงดันเชื่อมต่อต่อเนื่องกันเพื่อเพิ่มประสิทธิภาพ

มีไดโอดอยู่ระหว่างแบตเตอรี่และ LM1117-5V เพื่อป้องกันการเชื่อมต่อผิดพลาด และมีฟิวส์ที่ฟื้นตัวเอง (6V 500mA) บน USB uploader เพื่อจำกัดกระแสและป้องกันพอร์ต USB

Raspberry Pi ใช้พลังงานมากกว่านี้ ดังนั้นเราเลือก TPS565201 DC-DC เพื่อให้ผลลัพธ์ไฟฟ้าเป็น 5V 3A สูงสุดถึง 5A และมีการป้องกันอุณหภูมิ/กระแส/แรงดันสูง หากชิปส่งออกพลังงานเกิน 4A และอุณหภูมิเกิน 100 องศาเซลเซียส จะตัดการจ่ายไฟไปจนกว่าอุณหภูมิจะกลับสู่ปกติ

เซอร์โวขับเคลื่อนด้วยแบตเตอรี่ Li-ion 2S โดยตรง ต้องระวังไม่ให้เกิดการสัมผัสสั้นกันระหว่างพลังงานหรือขาต่อบน NyBoard

Last updated