บทความนี้กล่าวถึงการใช้ตัวฮาร์ดแวร์ตั้งเวลาหรือไทม์เมอร์ (Timer) ทั้ง 4 ของ ESP32 เพื่อใช้สำหรับการให้โปรแกรมทำงานเมื่อเป็นตามค่าเวลาที่กำหนดไว้ ความแตกต่างระหว่างการใช้ไทม์เมอร์กับการหน่วงเวลา time.sleep()/time.sleep_ms()/time.sleep_us() คือ การหน่วงเวลาคือการวนรอบเพื่อให้หน่วยประมวลผลเสียเวลาไปการวนรอบเพื่อให้ครบกับระยะเวลาที่กำหนด ขณะที่ไทม์เมอร์ใช้หลักการให้ฟังก์ชันทำงานทุกครั้งเมื่อถึงคาบเวลาที่กำหนดไว้ ดังนั้น ขณะที่ไทม์เมอร์ไม่ได้เรียกฟังก์ชันให้ทำงาน หน่วยประมวลผลมีเวลาเหลือหรือค่าว่างงาน (idle time) สำหรับประมวลผลอื่น ๆ ได้ และมีความแตกต่างกับการขัดจังหวะหรืออินเทอร์รัพต์ตรงที่เป็นการขัดจังหวะด้วยตัวตั้งเวลาแทนการขัดจังหวะจากสถานะของขาที่เชื่อมต่อกับวงจรภายนอก
Read MoreCategory: Python
[TH] RTC DS1302 and Micropython
บทความนี้อธิบายการเขียนโปรแกรมเพื่อใช้งาน DS1302 (ภาพที่ 1) ซึ่งเป็นไอซีที่ทำหน้าที่เป็น RTC (Real-Time Clock) อีกตัวหนึ่ง (ก่อนหน้านี้ได้เขียนถึง PCF8583 ด้วยภาษาไพธอนและ Arduino C++) และเป็นโมดูลที่นิยมใช้ในการเริ่มต้นศึกษาเนื่องจากเป็นโมดูลในชุดเรียนรู้ทั้งของ Arduino, IoT, 37-Sensors หรือ 45 Sensors เป็นต้น
Read More[EN] Reading the Accelerator sensor with raspberry pi via I2C Bus.
This article introduces the motion sensor module or moving in the digital 3 axes using the IC MMA7660FC that was written in the previous article to attach with the Raspberry Pi board and write a Python program to connect and read the values to display.
Read More[TH] Arduino: Joystick Module
บทความนี้เป็นการเขียนโปรแกรมเพื่อใช้งานโมดูลจอยสติก (Joystick) ดังภาพที่ 1 ซึ่งตัวโมดูลสามารถบอกข้อมูลการเคลื่อนที่ในแกน X การเคลื่อนที่ในแกน Y และสถานะการกดสวิทตช์ที่ตัวจอยสติก โดยตัวอย่างการใช้งานโมดูลนี้เป็นการใช้กับบอร์ด esp32 โดยใช้ภาษา C++ เพื่อเชื่อมต่อกับ GPIO ด้วยคำสั่งที่เคยกล่าวไปแล้วในบทความนี้
Read More[TH] PyOpenGL
บทความนี้เป็นการใช้ภาษาไพธอนของบอร์ด Raspberry Pi ใช้งานไลบรารี OpenGL เพื่อแสดงผลภาพแบบ 3 มิติเป็นกล่องสี่เหลี่ยมหมุนไปทางแกน X,Y และ Z
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 จากเซ็นเซอร์ หลังจากนั้นนำมาคำนวณเป็นค่าองศาของทิศเหนือ
Read More[TH] VisionRobo Car: Drive Motor
บทความนี้เป็นการเขียนโปรแกรมภาษาไพธอนเพื่อขับเคลื่อนหุ่นยนต์เคลื่อนที่ด้วยล้อ โดยตัวหุ่น VisionRobo car เป็นชุดหุ่นยนต์ที่ติดตั้งการเคลื่อนที่ด้วยมอเตอร์ไฟฟ้ากระแสตรงที่ติดกับชุดเฟืองจำนวน 2 ล้อ ใช้วงจรขับมอเตอร์กระแสตรงต่อเข้ากับบอร์ด Raspberry Pi และต่อโมดูลกล้องแบบ USB WebCamera และโมดูล Ultrasonic Sensor เพื่อใช้ในการประมวลผลภาพ และคำนวณระยะห่างของตัวหุ่นยนต์กับวัตถุรอบตัว
Read More[TH] Raspberry Pi & Ultrasonic Sensor
บทความนี้กล่าวถึงการใช้โมดูล Ultrasonic กับบอร์ด Raspberry Pi (บทความก่อนหน้านี้ใช้กับ ESP8266) ด้วยภาษาไพธอนเพื่อแสดงระยะห่างจากเซ็นเซอร์กับวัตถุที่พบได้ใกล้ที่สุด
Read More[TH] QRCode Detected!
บทความนี้อธิบายวิธีการใช้ OpenCV เพื่อค้นหา QRCode จากภาพที่ได้จาก Web Camera ที่พ่วงต่อจากพอร์ต USB ของ Raspberry Pi เมื่อพบ QRCode ในภาพจะทำการถอดรหัสและแสดงผลข้อความที่ถอดรหัสได้ โดยตัวอย่างของบทความนี้ประกอบด้วยตัวอย่างการอ่านแสดงผลจากกล้องเว็บ และออกจากโปรแกรมด้วยการกดแป้น ESC กับตัวอย่างการค้นหารหัส QRCode และถอดรหัสข้อความภายในภาพพร้อมจัดเก็บผลลัพธ์ของภาพลงไฟล์ภาพ
Read More