บทความ

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

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 ลงในช่องค้นหา จากนั้นเ...

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

รูปภาพ
Wio Terminal EP.08,   อนาล็อกมิเตอร์ วัดความสว่างของแสง โพสก่อนหน้านี้ ผมได้แนะนำวิธีการเขียนโค้ด เพื่อวัดค่าความสว่างของแสงไปแล้ว ครั้งนี้ ก็เลยขอถือโอกาส ประยุกต์สักเล็กน้อย โดยนำค่าที่ได้ มาสร้างเป็นเครื่องวัดความสว่างของแสง แบบอนาล็อก คือ มีเข็มชี้บนหน้าปัด นั่นเอง   คำอธิบาย     โค้ดที่เขียนนี้ จะพบว่ามีกาารเขียนฟังก์ชั่น ชื่อ stext , needle และ meter1 ขึ้นมา โดย ฟังก์ชั่น  stext(txt, px1, py1, c1, b1) stext จะไว้ใช้แสดงข้อความ ในรูปแบบ stext(ข้อความ, พิกัด x, พิกัด y, สีตัวอักขระ, สีพื้นตัวอักขระ) ฟังก์ชั่น  needle(xx, yy, valu1)  เพื่อไว้ใช้สร้างเข็มชี้บนหน้าปัด ฟังก์ชั่น  meter1() เพื่อใช้สร้างเครื่องมิเตอร์จำลอง พร้อมสเกลบนหน้าปัด ขั้นตอนการทำงาน     1. วาดหน้าปัดของมิเตอร์     2.  วนรอบอ่านค่าความสว่างของแสง จำนวน 10 ครั้ง     3. นำค่าแสงที่ได้ มาหาค่าเฉลี่ย     4. แปลงค่า ให้เหมาะสมในการแสดงผล *     5. นำค่าที่ได้จากข้อ 3 ไปคำนวณและแสดงเป็นเข็มเคลื่อนที่ตามปริมาณแสงที่วัดไ...

20. Wio Terminal EP.07, กราฟแสดงค่าความดังของเสียง

รูปภาพ
Wio Terminal EP.07,   กราฟแสดงค่าความดังของเสียง นับวันก็ใกล้จะจบ การใช้งาน WioTerminal เบื้องต้น แล้วนะครับ โพสนี้ก็จะแนะนำวิธีการเขียนโค้ด เพื่อวัดค่าความดังของเสียง โดยใช้ไมโครโฟน ที่ฝังอยู่ภายใน โดยหลักการแล้ว คล้ายกันกับการวัดค่าความสว่างของแสง ในโพสก่อนนี้ จะต่างกันก็ตรงวิธีการคำนวณ   คำอธิบาย     โค้ดที่เขียนนี้ ก็ยังคงมีการใช้ฟังก์ชั่น ชื่อ stext และ draw_axis ซึ่งมีการปรับปรุงจากโพสก่อนนี้เล็กน้อย  และมีส่วนที่เปลี่ยนแปลงคือ แก้ไข light = ADC(Pin(Map.WIO_LIGHT, Pin.IN)) เป็น mic = ADC(Pin(Map.WIO_MIC, Pin.IN)) ขั้นตอนการทำงาน     1. วนรอบอ่านค่าความสว่างของแสง จำนวน 10 ครั้ง     2. นำค่าเสียงที่ได้ มาหาค่าเฉลี่ย     3. แปลงค่า ให้เหมาะสมในการแสดงผล     4. แสดงค่าความดังที่รับได้      5. นำผลที่ได้ ไปสร้างกราฟ จำนวน 300 จุด เมื่อเต็มหน้าจอแล้ว จะรีเฟรช เพื่อเริ่มแสดงใหม่ เขียนโค้ด  ใช้ทดสอบ from machine import LCD, Pin, Map from machine import ADC import time lcd = LCD() #  รับค่าจากไม...

19. Wio Terminal EP.06, กราฟแสดงค่าความสว่างของแสง

รูปภาพ
Wio Terminal EP.06,   กราฟแสดงค่าความสว่างของแสง โพสก่อนหน้านี้ ผมได้แนะนำวิธีการเขียนโค้ด เพื่อวัดค่าความสว่างของแสงไปแล้ว ครั้งนี้ ก็เลยขอถือโอกาส ประยุกต์สักเล็กน้อย โดยนำค่าที่ได้ มาคำนวณ แล้วแสดงเป็นร้อยละ พร้อมกราฟ โดยเมื่อกราฟเต็มหน้าจอ ก็จะรีเฟรช แล้วแสดงผลใหม่   คำอธิบาย     โค้ดที่เขียนนี้ จะพบว่ามีกาารเขียนฟังก์ชั่น ชื่อ stext และ draw_axis ขึ้นมา โดย ฟังก์ชั่น   stext(txt, px1, py1, c1, b1) stext จะไว้ใช้แสดงข้อความ ในรูปแบบ stext(ข้อความ, พิกัด x, พิกัด y, สีตัวอักขระ, สีพื้นตัวอักขระ) ฟังก์ชั่น draw_axis(x1, y1, x2, y2, cl) เพื่อไว้ใช้สร้างเส้นแกนของกราฟ ในรูปแบบ draw_axis(พิกัด x1, y1, x2, y2, สีเส้น c1) ขั้นตอนการทำงาน     1. วนรอบอ่านค่าความสว่างของแสง จำนวน 10 ครั้ง     2. นำค่าแสงที่ได้ มาหาค่าเฉลี่ย     3. แปลงค่า ให้เหมาะสมในการแสดงผล     4. แสดงค่าความสว่างที่รับได้ และ ค่าที่แปลงเป็นร้อยละ     5. นำผลที่ได้ ไปสร้างกราฟ จำนวน300 จุด เมื่อเต็มหน้าจอแล้ว จะรีเฟรช เพื่อเริ่มแสดงใหม่ เ...