[TH] ESP32 machine.Timer

บทความนี้กล่าวถึงการใช้ตัวฮาร์ดแวร์ตั้งเวลาหรือไทม์เมอร์ (Timer) ทั้ง 4 ของ ESP32 เพื่อใช้สำหรับการให้โปรแกรมทำงานเมื่อเป็นตามค่าเวลาที่กำหนดไว้ ความแตกต่างระหว่างการใช้ไทม์เมอร์กับการหน่วงเวลา time.sleep()/time.sleep_ms()/time.sleep_us() คือ การหน่วงเวลาคือการวนรอบเพื่อให้หน่วยประมวลผลเสียเวลาไปการวนรอบเพื่อให้ครบกับระยะเวลาที่กำหนด ขณะที่ไทม์เมอร์ใช้หลักการให้ฟังก์ชันทำงานทุกครั้งเมื่อถึงคาบเวลาที่กำหนดไว้ ดังนั้น ขณะที่ไทม์เมอร์ไม่ได้เรียกฟังก์ชันให้ทำงาน หน่วยประมวลผลมีเวลาเหลือหรือค่าว่างงาน (idle time) สำหรับประมวลผลอื่น ๆ ได้ และมีความแตกต่างกับการขัดจังหวะหรืออินเทอร์รัพต์ตรงที่เป็นการขัดจังหวะด้วยตัวตั้งเวลาแทนการขัดจังหวะจากสถานะของขาที่เชื่อมต่อกับวงจรภายนอก

Read More

[TH] RTC DS1302 and Micropython

บทความนี้อธิบายการเขียนโปรแกรมเพื่อใช้งาน DS1302 (ภาพที่ 1) ซึ่งเป็นไอซีที่ทำหน้าที่เป็น RTC (Real-Time Clock) อีกตัวหนึ่ง (ก่อนหน้านี้ได้เขียนถึง PCF8583 ด้วยภาษาไพธอนและ Arduino C++) และเป็นโมดูลที่นิยมใช้ในการเริ่มต้นศึกษาเนื่องจากเป็นโมดูลในชุดเรียนรู้ทั้งของ Arduino, IoT, 37-Sensors หรือ 45 Sensors เป็นต้น

ภาพที่ 1 ตัวอย่างการต่อใช้โมดูล ds1302
Read More

[TH] Arduino: Joystick Module

บทความนี้เป็นการเขียนโปรแกรมเพื่อใช้งานโมดูลจอยสติก (Joystick) ดังภาพที่ 1 ซึ่งตัวโมดูลสามารถบอกข้อมูลการเคลื่อนที่ในแกน X การเคลื่อนที่ในแกน Y และสถานะการกดสวิทตช์ที่ตัวจอยสติก โดยตัวอย่างการใช้งานโมดูลนี้เป็นการใช้กับบอร์ด esp32 โดยใช้ภาษา C++ เพื่อเชื่อมต่อกับ GPIO ด้วยคำสั่งที่เคยกล่าวไปแล้วในบทความนี้

ภาพที่ 1 โมดูลจอยสติกกับ esp32
Read More

[TH] PyOpenGL

บทความนี้เป็นการใช้ภาษาไพธอนของบอร์ด Raspberry Pi ใช้งานไลบรารี OpenGL เพื่อแสดงผลภาพแบบ 3 มิติเป็นกล่องสี่เหลี่ยมหมุนไปทางแกน X,Y และ Z

ภาพที่ 1 ผลลัพธ์จากโปรแกรม ex03.py
Read More

[TH] PyQt5

บทความนี้เป็นตัวอย่างการเปิดหน้าต่างและใช้ปุ่มเพื่อตอบสนอง PyQt5 ซึ่งเป็นพื้นฐานเบื้องต้นของการใช้คอมโพเนนท์อื่น ๆ ต่อไป โดยจุดเด่นของ Qt คือ เป็นชุดพัฒนาภาษา C++ ที่ข้ามแพล็ตฟอร์มและมีการครอบการเชื่อมผสานเพื่อใช้กับภาษาต่าง ๆ ได้ เช่น PyQt อันเป็น “The python binding for the Qt cross-platform C++ framework” ที่พัฒนาโดย Riverbank Computing Limited ซึ่งปัจจุบันออกรุ่น PyQt 6.1.1 (2021-06-29)

Read More

[TH] Digital Compass Sensor

บทความนี้เป็นการอธิบายการใช้งานเซ็นเซอร์เข็มทิศดิจิทัลรุ่น GY-271 ด้วยภาษาไพธอนของ MicroPython เพื่อใช้งานกับ ESP8266 หรือ ESP32 (และได้ทดลองกับ STM32F411CEU6 กับ Raspberry Pi 3B+ และ 4B แล้วสามารถใช้งานได้เหมือนกัน) เพื่อตั้งค่าการทำงานและอ่านค่าแกน X,Y และ Z จากเซ็นเซอร์ หลังจากนั้นนำมาคำนวณเป็นค่าองศาของทิศเหนือ

ภาพที่ 1 ทดลองใช้ GY-271
Read More

[TH] VisionRobo Car: Drive Motor

บทความนี้เป็นการเขียนโปรแกรมภาษาไพธอนเพื่อขับเคลื่อนหุ่นยนต์เคลื่อนที่ด้วยล้อ โดยตัวหุ่น VisionRobo car เป็นชุดหุ่นยนต์ที่ติดตั้งการเคลื่อนที่ด้วยมอเตอร์ไฟฟ้ากระแสตรงที่ติดกับชุดเฟืองจำนวน 2 ล้อ ใช้วงจรขับมอเตอร์กระแสตรงต่อเข้ากับบอร์ด Raspberry Pi และต่อโมดูลกล้องแบบ USB WebCamera และโมดูล Ultrasonic Sensor เพื่อใช้ในการประมวลผลภาพ และคำนวณระยะห่างของตัวหุ่นยนต์กับวัตถุรอบตัว

ภาพพที่ 1 VisionRobo car
Read More

[TH] Raspberry Pi & Ultrasonic Sensor

บทความนี้กล่าวถึงการใช้โมดูล Ultrasonic กับบอร์ด Raspberry Pi (บทความก่อนหน้านี้ใช้กับ ESP8266) ด้วยภาษาไพธอนเพื่อแสดงระยะห่างจากเซ็นเซอร์กับวัตถุที่พบได้ใกล้ที่สุด

ภาพที่ 1 VisionRobo ที่ติดตั้งโมดูล Ultrasonic Sensor
Read More

[TH] QRCode Detected!

บทความนี้อธิบายวิธีการใช้ OpenCV เพื่อค้นหา QRCode จากภาพที่ได้จาก Web Camera ที่พ่วงต่อจากพอร์ต USB ของ Raspberry Pi เมื่อพบ QRCode ในภาพจะทำการถอดรหัสและแสดงผลข้อความที่ถอดรหัสได้ โดยตัวอย่างของบทความนี้ประกอบด้วยตัวอย่างการอ่านแสดงผลจากกล้องเว็บ และออกจากโปรแกรมด้วยการกดแป้น ESC กับตัวอย่างการค้นหารหัส QRCode และถอดรหัสข้อความภายในภาพพร้อมจัดเก็บผลลัพธ์ของภาพลงไฟล์ภาพ

ภาพที่ 1
Read More