บทความ

กำลังแสดงโพสต์จาก 2021

27. Wio Terminal EP.14 การควบคุมเซอร์โวมอเตอร์

 Wio Terminal EP.14 การควบคุมเซอร์โวมอเตอร์ โดยไม่ใช่ไลบรารี่ ใด ๆ ในการควบคุมเซอร์โว มอเตอร์นั้น สิ่งแรกที่จะต้องรู้คือ เซอร์โว มอเตอร์ ทำงานได้อย่างไร  เซอร์โวมอเตอร์มีสาย 3 เส้น เรียงลำดับกัน ดังนี้ S-Signal สายรับสัญญาณควบคุมการหมุนแบบพัลส์ PWM V-VCC  สายสำหรับต่อกับไฟบวก 5V G-GND สายสำหรับต่อกับไฟลบ หรือกราว์ด (GND) การควบคุมการหมุนของเซอร์โว มอเตอร์ จะต้องส่งสัญญาณพัลส์ ความถี่ 50 เอิร์ตซ์ เข้าไป โดยมีความกว้างพัลส์บวกที่ 0.5mS (ค่าต่ำสุด) ถึง 2.5mS (ค่าสูงสุด) โดยเมื่อมีการส่งสัญญาณพัลส์ ที่มีความกว้างช่วงบวกเข้าไป เท่ากับ 0.5 มิลลิวินาที เซอร์โว มอเตอร์ จะหมุนไปที่ ตำแหน่ง 0 องศา และหากป้อนสัญญาณพัลส์ เข้าไป เท่ากับ 2.5 มิลลิวินาที เซอร์โว มอเตอร์ จะหมุนไปที่ ตำแหน่ง 180 องศา  แต่ในความคุ้นเคยของผู้ใช้ มักจะคุ้นเคยกับตัวเลขที่เป็นตำแหน่งองศาของการหมุน ดังนั้นเพื่อความสะดวกในการสั่งงาน จึงมักจะสั่งให้เซอร์โว มอเตอร์ หมุนไปที่ตำแหน่งองศาที่ต้องการ   คำอธิบาย วิธีการคำนวณ         1. องศาของการหมุน มีค่า จาก 0 - 180 องศา อันนี้อ้างอ...

26.Wio Terminal EP.13, การอ่านค่าจาก เซนเซอร์วัดความเร่ง Acellerator & Gyroscope

รูปภาพ
 Wio Terminal EP.13 , การอ่านค่าจาก เซนเซอร์วัดความเร่ง Acellerator & Gyroscope การนำเสนอในครั้งนี้ ก็ยังคงมาในแนวทางของการใช้ Arduino IDE โดยขอนำเสนอวิธีการอ่านค่าจากเซยเซอร์ Accelerator & Gyroscope ซึ่งฝังอยู่ภายในเครื่อง แต่มีเงื่อนไขว่า ท่านจะต้องไปดาวน์โหลด ไลบรารี่ไฟล์ จาก   GitHub คือ Seeed_Arduino_LIS3DHTR เมื่อได้มาแล้ว ให้เปิด Arduino IDE และเลือกเมเนู Sketch >> Include Library >> Add .ZIP Library จากนั้นให้เลือกโฟลเดอร์ที่ท่านเก็บไฟล์ที่ได้ดาวน์โหลดมาก่อนหน้านี้และเลือกไฟล์ Seeed_Arduino_LIS3DHTR-master.zip รอสักครู่ เป็นอันเสร็จสิ้นการเพิ่มไลบรารี่ จากนั้นก็เขียนโค้ดตามตัวอย่างนี้ ที่ต้องบอกว่าให้เขียนโค้ดตามตัวอย่างนี้ เนื่องจากว่า ไฟล์ตัวอย่างที่ได้จากการเพิ่มไลบรารี่ไฟล์ มีข้อผิดพลาดอยู่หลายแห่ง โดยเฉพาะในช่วง header และ declaration รวมถึงในส่วนของ ฟังก์ชั่น setup()   คำอธิบาย     การเขียนโค้ด ผู้เขียน ได้แยกออกเป็นฟังก์ชั่นย่อย เท่าที่จะทำได้ ดังนี้     1.  ฟังก์ชั่น readAccel() ไว้ใช้สำหรับอ่านค...

25. Wio Terminal EP.12, วัดระยะทาง ด้วย HC-SR04

รูปภาพ
Wio Terminal EP.12,  วัดระยะทาง ด้วย HC-SR04 ครั้งนี้ผู้เขียนได้ประยุกต์ใช้งาน โดยนำเซนเซอร์วัดระยะทาง แบบอัลตร้าโซนิก HC-SR04 มาใช้ และขอเน้นย้ำว่า ไม่ใช่ Grove Sensor นะครับ เนื่องจาก Grove Sensor มีขั้วต่อใช้งาน 3 ขั้ว แต่ HC-SR04 มีขั้วต่อใช้งาน 4 ขั้ว ตามรูปที่ 1 ภาพจาก  https://raw.githubusercontent.com/SeeedDocument/Grove_Ultrasonic_Ranger/master/optimizing/Compare.jpg รูปที่ 1 Grove Ultrasonic และ HC-SR04 ในการนำ HC-SR04 มาใช้งาน จึงต้อง มีการต่อสาย ตามรูปที่ 2 และ  ไม่จำเป็นต้องติดตั้งไลบรารี่ ใด ๆ เพิ่มเติม HC-SR04 ต่อกับ Wio Terminal  Vcc GPIO4 (+5) GND GPIO6 (GND) Trig GPIO13 (D0) Echo GPIO15 (D1) รูปที่ 2 แสดงการต่อสาย   คำอธิบาย     การเขียนโค้ดครั้งนี้ มีการแยกเขียนเป็นส่วน ๆ เพื่อให้ง่ายต่อการศึกษาและแก้ไข โดยแบ่งเป็นฟังก์ชั่นต่าง ๆ ดังนี้      1. ฟังก์ชั่น  ranger () เป็นฟังก์ชั่นที่ใช้ในการสั่งงานให้ HC-SR04 ทำงานส่งสัญญาณออกไปและรับเวลาที่ใช้ในการส่งออกไป จนสะท้อนกลับมา แล้วคำนวณให้เป็นระยะทาง ในหน่วย เซนติเมตร ...

24. Wio Terminal EP.11, อนาล็อกมิเตอร์ วัดความสว่างของแสง

รูปภาพ
Wio Terminal EP.11,   อนาล็อกมิเตอร์ วัดความสว่างของแสง  วิธีการเขียนโค้ด เพื่อวัดค่าความสว่างของแสง ครั้งนี้ นำเสนอ อนาล็อกมิเตอร์ วัดความสว่างของแสง โดยใช้ Arduino ในการเขียนโค้ดคำสั่ง สร้างเป็นเครื่องวัดความสว่างของแสง แบบอนาล็อก คือ มีเข็มชี้บนหน้าปัด และมีสเกล 0 - 100 โดยแบ่งเป็น 5 ช่วง ช่วงละ 20%   คำอธิบาย     การเขียนโค้ดครั้งนี้ มีการแยกเขียนเป็นส่วน ๆ เพื่อให้ง่ายต่อการศึกษาและแก้ไข โดยแบ่งเป็นฟังก์ชั่นต่าง ๆ ดังนี้      1. ฟังก์ชั่น drawArc( int x, int y, int start_angle, int end_angle, int rx, int ry, int w, unsigned int color1) สำหรับสร้างส่วนโค้งที่ตำแหน่งใด ๆ     2. ฟังก์ชั่น  drawBar(int bx, int by) สำหรับ สร้างส่วนโค้งที่เป็นแถบสีบนหน้าปัดมิเตอร์ โดยเรียกใช้ ฟังก์ชั่น drawArc      3. ฟังก์ชั่น  drawScale(int d1, int d2) สำหรับสร้างเส้นแบ่งสเกล และ ตัวเลขบนแถบสีของหน้าปัดมิเตอร์     4. ฟังก์ชั่น  drawNeedle(int rx, int ry, int v) สำหรับสร้างเข็มของมิเตอร์ เพื่อให้ชี้ไปยังค่าที่...

23. Wio Terminal EP.10, ทดลองใช้ปุ่มต่าง ๆ บน Wio Terminal กับArduino

รูปภาพ
Wio Terminal EP.10, ทดลองใช้ปุ่มต่าง ๆ บน Wio Terminal กับArduino  จะเห็นว่า บนตัวเครื่อง  Wio Terminal มีสวิตช์ควบคุม 5 ทิศทาง หรือที่เรียกกันว่า จอยสติ๊ก อยู่ทางด้านขวามือของผู้ใช้ และยังมีสวิตช์กดอยู่ที่ขอบด้านข้างบนซ้ายอยู่อีก 3 ปุ่ม โดยจอยสติ๊ก และสวิตช์ทุกตัว จะมีสถานะเป็น ลอจิก 0 เมื่อถูกโยกหรือกด หากไม่มีการกระทำใด ๆ จะมีสถานะเป็น ลอจิก 1 ไปทดลองกันเลยครับ    คำอธิบายฮาร์ดแวร์บนตัวเครื่อง      ตามที่กล่าวไปแล้วว่า บนตัวเครื่อง Wio Terminal มีจอยสติ๊ก และ สวิตช์ อีก 3 ตัว ซึ่งมีชื่อที่ต้องใช้ในการอ้างถึง ดังนี้ สวิตช์ 5 ทิศทาง WIO_5S_LEFT          สำหรับการโยกไปด้านซ้าย WIO_5S_RIGHT    สำหรับการโยกไปด้านขวา WIO_5S_UP      สำหรับการโยกไปด้านบน WIO_5S_DOWN      สำหรับการโยกลงด้านล่าง WIO_5S_PRESS      สำหรับการกดลงตรงกลาง สวิตช์กด WIO_KEY_C    สำหรับสวิตช์ตัวซ้ายสุด ทางด้านขอบซ้ายของเครื่อง WIO_KEY_B    สำหรับสวิตช์ตัวกลาง ทางด้านขอบซ...

22. Wio Terminal EP.09, Wio Terminal กับ Arduino IDE

รูปภาพ
Wio Terminal EP.09, Wio Terminal กับ Arduino IDE หลังจากว่างเว้นไประยะหนึ่ง ก็อดไม่ได้ที่จะหยิบเอา Wio Terminal มาเล่นกับ Arduino IDE ซึ่งพบว่าไม่ได้ยุ่งยากอะไร สำหรับผู้ชื่นชอบ c/c++ ซึ่งถ้าศึกษาคู่มือของ Wio Terminal จะพบว่าสามารถใช้ IDE ได้หลากหลายมาก ในโพสนี้ก็เลยจะขอนำเสนอวิธีเตรียมการสำหรับการนำ Wio Terminal มาใช้ในฝั่ง Arduino  ขั้นตอนในการเตรียมการ     1. ติดตั้ง Arduino IDE Version 1.8.16 จากเว็บไซต์  https://www.arduino.cc/en/software รูปที่ 1 ดาวน์โหลด Arduino     2. เปิด Arduino IDE ขึ้นมา แล้วไปที่เมนู File > Preferences     3. มองหารายการ Additional Boards Manager URLs:  ให้เติม https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json ลงไปในช่องว่าง หากมีรายการเดิมอยู่แล้ว ให้เติมต่อจากเดิม โดยคั่นด้วย คอมม่า(,) แล้วกด OK รูปที่ 2 การตั้งค่า Boards Manager      4.ไปที่เมนู Tools > Board: ... > Boards Manager หลังจากหน้าต่าง Board Manager เปิดขึ้นมา ให้พิมพ์ Wio ลงในช่องค้นหา จากนั้นเ...