รีวิว การเชื่อมต่ออุปกรณ์ภายนอก ของ Youyeetoo X1

การใช้งาน Peripherals ต่าง ๆ บนซิงเกิ้ลบอร์ด youyeetoo X1 ที่ใช้ CPU Intel Celeron N5105  ต่างจาก CPU ตระกูล ARM เพราะเราต้องทำการติดตั้งระบบปฎิบัติการเอง ไม่เหมือนการติดตั้งด้วยไฟล์ image แบบที่ทำกับซิงเกิ้ลบอร์ด arm ทั่วไป ซึ่งการติดตั้งระบบปฎิบัติการเองใหม่ทั้งหมด ในการใช้งาน Peripherals  ต่าง ๆ เช่น SPI, I2C หรือ UART อาจจะใช้งานได้ทันทีหรือใช้งานไม่ได้เนื่องจากไม่มี driver ที่สนับสนุน

จากรีวิวที่แล้วเราได้ใช้ youyeetoo X1 SBC ซิงเกิ้ลบอร์ด บน Ubuntu ในรีวิวนี้เราจะมาลองทดสอบและหาทางตั้งค่าให้เราสามารถใช้งาน Peripherals  ได้ โดยใช้ข้อมูลจาก wiki ของ  X1 มาเป็นแนวทางในการตั้งค่าและทดสอบการทำงาน

GPIO ของ youyeetoo X1

บนบอร์ด youyeetoo X1 นั้นมี GPIO ให้เราสามารถใชังานได้ 5 ชุด โดยอยู่บน connector แบบ JST ขนาด pitch 2.0mm ซึ่งสามารถใช้งานได้ที่แรงดัน 2 ระดับด้วยกันคือ 1.8V และ 3.3V ซึ่งการเปลี่ยนค่าระดับแรงดันนี้ ต้องทำผ่านการ update BIOS ของบอร์ด โดยรายละเอียดของไฟล์ BOIS จะเป็นดังนี้
“X1_01_Digital_S8_20231023175931_3.3V.bin”  ซึ่งจากชื่อของ bios ไฟล์นี้สื่อว่า bios ไฟล์นี้ใช้กับบอร์ด X1 RAM ขนาด 8G  เปิดใช้งาน digital ไมโครโฟน และใช้งานหน้าจอเรื่มต้นเป็น MIPI 7 LCD โดยมีแรงดัน GPIO เป็น 3.3V หรืออ่านเพิ่มเติมจากบทความนี้ 

การใช้งาน GPIO ผ่าน libgpiod

ติดตั้ง libgpiod และ gpiod

การควบคุม GPIO ของ youyeetoo X1 ด้วย Python

จากนั้นเราจะทำการติดตั้ง python library python3-libgpiod  ดังนี้


เมื่อติดตั้งเรียบร้อยแล้ว เราจะทำการทดลองเขียนโปรแกรมสั่งงาน gpio เพื่อเป็นไฟกระพริบแบบง่าย ๆ ดังนี้


YouTube video player

การสั่งการ relay ด้วย GPIO ของบอร์ด X1

I2C ของ youyeetoo X1

การตรวจสอบ driver

เราจะทำการตรวจสอบ driver ของ I2C บนบอร์ดและอุปกรณ์ I2C ที่เชื่อมต่ออยู่บนบอร์ด ด้วยการติดตั้ง i2c-tools


หลังจากนั้นจะสามารถทำการตรวจสอบด้วยคำสัง i2cdetect ซึ่งจาก schematic diagram จะมีข้อมูลว่าเชื่อมต่อกับ I2C3

i2c schemetic

ดังนั้นเราจะทำการตรวจสอบว่ามีการเชื่อมต่ออุปกรณ์ I2C อยู่บน I2C3 อยู่รึเปล่าด้วยคำสั่ง sudo i2cdetect -r -y 4 โดยเราได้เชื่อมต่อ sensor วัดค่า  eCO2 ด้วยเซ็นเซอร์ ENS160 และ temperature และ humidity ด้วย  AHT21 เมื่อเชื่อมต่อกับบอร์ด X1 ก็จะตรวจสอบอุปกรณ์ได้ 2 แอดเดรสคือ 0x38 และ 0x53 ซึ่งเป็น I2C แอดเดรสของ  ENS160  และ AHT21

X1 I2C AHT21

การเชื่อมต่อเซ็นเซอร์ AHT21 เข้ากับบอร์ด X1

การทดสอบการใช้งาน

เราจะลองเขียนโปรแกรม python ง่ายๆ เพื่ออ่านค่าจากอุปกรร์ I2C ด้วย library smbus2 ดังนี้

โค้ดทดสอบการอ่านค่าความชื้นสัมพัทธ์และอุณหภูมิของอากาศด้วยเซ็นเซอรื์ AHT21

ผลการทำงาน

aht21 i2c read from x1

การอ่านค่าจากเซ็นเซอร์ AHT21 ผ่านทาง I2C

UART ของ youyeetoo X1

การตรวจสอบ driver

ทำการตรวจสอบด้วย sudo ls /dev/ttyS* นบอร์ด X1 จะมี UART ให้เราใช้งานจำนวน 3 ชุดคือ UART1-UART3 ซึ่งเป็น ttyS0,ttyS4 และ ttyS5


เราจะทำการทดสอบบน UART2 ซึ่งจะเป็นอุปกรณ์ dev/ttyS5 โดยมีรายละเอียดของขาดังนี้

Serial NumberDescriptionRemarks
1VCCOutput voltage 3.3V
2TXDSending data TTL level
3RXDReceive data TTL level
4GNDPower reference ground

การทดสอบการใช้งาน

Using GPS over UART2 X1

 การเชื่อมต่อ GPS โมดูล BN-180 เข้ากับบอร์ด X1 ผ่าน UART2

โดยเราจะทดสอบการทำงานด้วยการต่อกับ GPS module Beitian BN-180 ที่ใช้ชิป NEO-M8N โดยเมื่อต่อใช้งานตามคำแนะนำของผู้ผลิตคือ baudrate 9600 ทำการทดสอบเปิดด้วยโปรแกรม screen ก็ได้ผลลัพธ์ดังนี้


screen read gps x1

ซึ่งเพื่อให้ง่ายต่อการนำข้อมูลไปใช้งานต่อเราจะติดตั้งโปรแกรม gpsd


หลังจากนั้นเข้าไปตั้งค่าที่ /etc/default/gpsd เพื่อให้เริ่มทำงานโดยอัตโนมัติและทำการชี้ไปที่ device ของ UART2 ที่เชื่อมต่อ GPS module ไว้


จากนั้นเราจะสามารถอ่านค่าตำแหน่งพิกัดได้จากโปรแกรม cgps ดังรูป

gpsd GPS data coordinates

 

ข้อมูลจาก UART2 ถูกนำไปประมวลผลและแสดงค่าบนโปรแกรม cgps

NFC ของ youyeetoo X1

บนบอร์ด X1 นั้นมีการติดตั้งชิป NFC ST25DV04K ไว้บนบอร์ดพร้อมใช้งาน เพียงแค่ต้องไปหาสายอากาศสำหรับ NFC มาต่อ ซึ่งทาง youyeetoo ก็มีจำหน่าย โดยการเชื่อมต่อเป็นคอนเน็คเตอร์ IPEX สามารถเชื่อมต่อได้ที่ขั้วต่อทันที

การติดตั้งอุปกรณ์

เชื่อมต่อตอนเน็ตเตอร์สายอากาศ ดังรูปก็สามารถใช้งานได้ทันที

X1 NFC Antenna connecttor

รูปการเชื่อมต่อสายอากาศของ NFC เข้ากับบอร์ด X1

การทดสอบการใช้งาน

โดยเราสามารถทดสอบการทำงานได้ผ่านโปรแกรมตัวอย่างจากทาง youyeetoo ที่จะสาธิตการติดต่อสื่อสารระหว่าง X1 กับโทรศัพท์ผ่านทาง NFC ไม่ว่าจะเป็นการแตะแล้วเปิดหน้วเว็บ หรือแตะแล้วเปิดโปรแกรม


โดยหลังจากดาวน์โหลดและแตกซิบโปรแกรมเรียบร้อยแล้ว เราจะมาทำการติดตั้ง binary package ที่จำเป้นต่อการ compile โปรแกรมกันต่อ


ทำการ make และทดสอบโปรแกรม



YouTube video player

SPI ของ youyeetoo X1

การตรวจสอบ driver เบื้องต้น


เนื่องจากว่าการติดตั้งระบบปฎิบัติการ Ubuntu แบบปกติ kernel จะไม่สนับสนุน SPI เมื่อเรา ใช้คำสั่ง ls /dev/spi* จึงตรวจไม่พบ driver ของ SPI ในระบบ ซึ่งหากเราต้องการใช้งาน SPI เราจำเป็นจะต้องทำการดาวน์โหลดซอร์สโค้ดของ kernel เพื่อมาทำการคอมไฟล์เพื่อให้รองรับ SPI

การคอมไฟล์ driver โมดูล

เราจำเป็นที่จะต้องทำการติดตั้ง binary package ต่าง ๆ ดังนี้ เพื่อให้สามารถ make module SPI ในส่วนของ user space เพื่อใช้งานได้


make menu config

ทำการเลื่อนไปในหัวข้อ device drivers เลื่อนไปจนเจอ SPI แล้วทำการกด spacebar ที่หน้าข้อความ “user mode SPI device driver support” จนเป็น “*”

make menu config spi

ทำการแก้ไขไฟล์ .config เพื่อแก้ไขเอา key ออกไปสองค่าคือ CONFIG_SYSTEM_TRUSTED_KEYS=””
,CONFIG_SYSTEM_REVOCATION_KEYS=”” จะอยู่บรรทัดที่  11355 ทำการเซฟและไปยังขั้นตอนต่อไป

edit dot config


หลังจากการติดตั้ง SPI driver แล้วก็ยังจะไม่สามารถใช้งานได้ ต้องมีการ Inject  ใส่โค๊ด ACPI ASL เข้าไปยัง kernel อีก

การทดสอบการใช้งาน

หลังจากติดตั้งทุกอย่างครบถ้วนแล้ว เมื่อทำการตรวจสอบ SPI อีกครั้งด้วย /dev/spi* ก็พบอุปกรณ์เป็น /dev/spidev1.1 ให้เราสามารถใช้งานได้ แต่เนื่องจากผู้เขียนยังหาข้อมูลของขา SPI ไม่พบจึงจะยังไม่มีการทดสอบเขียนโปรแกรมเพื่อติดต่อกับอุปกรณ์ หากได้ข้อมูลแล้วจะมาอัพเดตบทความนี้ในภายหลัง

POE

บนบอร์ด X1  ไม่รองรับการใช้งาน POE โดยทั่วไป แต่มีการออกแบบให้สามารถต่ออุปกรณ์เสริมเป็นโมดูล POE ให้เราสามารถเลือกใช้งานได้ตามความต้องการตั้งแต่

POE 60W for X1 unbox

30W module-12V2A หรือ 60W module-12V5A และ 72W module-12V6A

การติดตั้งอุปกรณ์

การติดตั้งโมดูลสามารถติดตั้งได้ด้วยการบัดกรีลงไปยังบริเวณด้านข้างของบอร์ดด้านที่เป็นจุดต่อ Micro SD card โดย Youyeetoo ได้ส่งโมดูล POE รุ่น 60W มาให้ทำการทดสอบซึ่งจำเป็นต้องมีการดัดแปลงที่โมดูลด้วยการงอขาของโมดูลสองขาก่อนการติดตั้ง แล้วทำการบัดกรีเพื่อใช้งานได้ทันที

POE 60W modify for X1
การงอขอของโมดูล POE 60W เพื่อใช้งานกับบอร์ด  X1

การทดสอบการใช้งาน

ใช้งานทดสอบร่วมกับ POE Switch 8 port ของ Zyxel รุ่น GS1008HP สามารถใช้งานทันทีที่เสียบสาย LAN เข้ากับบอร์ด X1

X1 Testing POE 60W

ทดสอบการใช้พลังงาน

ตามเอกสารของ Intel ระบุว่าค่า TDP ของ Intel® Celeron® Processor N5105 อยู่ที่ 10W เราจึงจะทดสอบการใช้งานจริงเพื่อวัดการใช้พลังงานของบอร์ด X1 ที่มีการต่ออุปกรณ์ต่อพ่วงทั้งเซนเซอร์ Wi-Fi และ SSD แบบ NVMe M.2

YouTube video player

เราได้วัดการใช้พลังงานของบอร์ดด้วยเครื่องวัดไฟฟ้าแบบหลายฟังก์ชัน ผลลัพธ์ที่ได้จาก adaptor ขนาดแรงดัน 12V DC  เราจะสามารถคำนวนค่าพลังงานกลับได้จากสมการ P=IxV สรุปเป็นผลลัพธ์ดังรูป

X1 standby current

ปิดเครื่อง – 47 mA หรือ 564 mW

X1 idle current

Idle – 577mA หรือ 6.9 วัตต์

X1 benchmark currentทดสอบ SBC bench (7-zip multi-thread) – 1.759 A หรือ 21.55 วัตต์

สรุปการทดสอบ

บอร์ด  youyeetoo X1 ที่เป็นซิงเกิ้ลบอร์ดคอมพิวเตอร์ที่ใช้ Intel Celeron N5105  ซึ่งโดยทั่วไปเราจะไม่ได้ใช้งาน GPIO peripheral ซักเท่าไหร่ แต่เนื่องจากบอร์ด X1 นั้น มาพร้อมกับการเชื่อมต่อใช้งานที่หลากหลายไม่ว่าจะเป็นคอนเน็คเตอร์ M.2 ทั้ง M คีย์ และ E คีย์ สำหรับเชื่อมต่อ Wi-Fi, 4G LTE หรือ SSD  ไปจนถึงการต่อจอภาพได้ทั้ง MIPI DSI และ HDMI ความละเอียดสูงถึง 4K  พร้อมการสื่อสารทั้ง UART,I2C,SPI และ NFC ซึ่งจากการทดสอบการใช้งานสามารถใช้งานได้ครบถ้วนทั้งหมดแม้จะต้องมีการคอมไฟล์ kernel เพื่อให้รองรับก็ตาม

ทำให้บอร์ด youyeetoo X1 SBC เหมาะกับการใช้งานเป็น Edge computer ซึ่งไม่ว่าคุณจะเป็นเมกเกอร์, นักพัฒนางาน IoT หรืองานสมาร์ทโซลูชั่นต่าง ๆ บอร์ด youyeetoo X1 SBC ก็สามารถตอบโจทย์การเอาไปใช้งานได้หลากหลาย ทั้งงานควบคุมในภาคอุตสาหกรรมต่าง ๆ งานไอโอที หุ่นยนต์และอื่น ๆ อีกมากมาย

และต้องขอขอบคุณ youyeetoo ที่ได้ส่งบอร์ด youyeetoo X1 SBC พร้อม RAM 8GB /eMMC 128GB และ จอภาพขนาด 7 นิ้ว YYT-MIPI7LCD มาให้ทำการรีวิว และหากผู้อ่านสนใจ อยากนำเอาบอร์ด youyeetoo X1 SBC มาใช้งานสามารถหาซื้อได้จาก AmazonAliexpress,และร้านค้าออนไลน์ของบริษัท ในราคาเริ่มต้นที่ $109.99 (~3,900฿) สำหรับรุ่น 4GB/ไม่มี eMMC และสำหรับรุ่นที่รีวิวนี้ ราคา $139.99 (~5,000฿) ส่วนจอภาพ YYT-MIPI7LCD ขนาด 7 นิ้ว ราคา $30.00 (~1,000฿)

FacebookTwitterLineEmailShare

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

โฆษณา
โฆษณา