ถ้าน้องอยากสร้างอะไรเจ๋งๆ ที่ต้องใช้โปรแกรมมิ่ง แต่ยังไม่แม่นโค้ด หรือไม่มีเวลามานั่งเขียนโค้ดให้วุ่นวาย หรืออยากให้ไอเดียในหัวออกมาเป็นโค้ดใช้งานได้เร็วๆ บทความนี้แหละเหมาะกับน้องเลย
รุ่นพี่จะพาน้องไปดูตัวอย่างการเชื่อมต่อกับฮาร์ดแวร์ยอดฮิตต่างๆ กับ Arduino โดยใช้ [CASP] ตามรายการด้านล่างนี้เลย
- การเชื่อมต่อกับ Digital Input และ Digital Output
- การเชื่อมต่อกับ Digital Input Interrupt และจอแสดงผล 7 Segment
- การเชื่อมต่อกับ ADC, PWM และ DAC
- การเชื่อมต่อกับ Servo Motor
- การเชื่อมต่อกับ Stepper Motor
- การเชื่อมต่อกับ IMU – MPU-6050
- การเชื่อมต่อกับเซ็นเซอร์วัดระยะอัลตราโซนิก
- การเชื่อมต่อกับ LiDAR TFMini
- การเชื่อมต่อกับ LiDAR-360o
- การเชื่อมต่อกับจอแสดงผล Dot Matrix 8×8
- การเชื่อมต่อกับจอแสดงผล OLED
- การเชื่อมต่อกับโมดูล SD Card
- การเชื่อมต่อกับโมดูล GPS NEO-6M
- การเชื่อมต่อกับกล้อง USB, กล้อง IP และ ESP32 CAM
ลิงก์สำหรับดาวน์โหลดตัวอย่างทั้งหมดนี้มีอยู่ในหน้านี้
สามารถดาวน์โหลดซอฟต์แวร์ได้ที่นี่ อย่าลืมไปดูวิดีโอสอนการเริ่มต้นใช้งาน CASP ด้วยนะ
หมายเหตุ: รายการด้านบนอาจมีการอัปเดตเพิ่มเติมในอนาคต
ถ้าฮาร์ดแวร์โปรดของน้องไม่อยู่ในลิสต์ น้องสามารถเขียนโค้ดสำหรับเชื่อมต่อเองได้ ตามลิงก์ด้านล่างนี้เลย
Systems Integration: The Multi-Device Breadboard
การทำโปรเจคต์กับเซนเซอร์ตัวเดียวมันง่ายชิปหาย แต่ว่าโปรเจคต์ Various Hardware Interfaces นี่แหละคือบททดสอบสุดท้ายของวิชาอิเล็กทรอนิกส์พื้นฐานเลย มันจะบังคับให้น้องต้องต่อ LCD, เซอร์โวมอเตอร์, โพเทนชิโอมิเตอร์, ไฟ LED RGB และโพรบวัดอุณหภูมิ เข้ากับบอร์ด Uno เพียงตัวเดียว จัดการแผนผังขา (pinout) ที่วุ่นวาย และเขียนโค้ดไม่ให้มันทะเลาะกันเอง
วิธีเลี่ยงสงครามไลบรารี
พอเอาอุปกรณ์ 5 อย่างมารวมกัน โค้ดก็จะเริ่มเละเทะ
- สงครามจับเวลา (Timer Conflict): ไลบรารี
<Servo.h>นี่มันยึดครอง Timer 1 ไว้หมดเลย ถ้าน้องลองใช้analogWrite()(PWM) บนขา 9 หรือ 10 ในขณะที่เซอร์โวกำลังทำงาน ไฟ LED จะกระพริบมั่วซั่วเพราะเซอร์โวแย่งสัญญาณนาฬิกาไป! เลยต้องเรียนรู้ที่จะใช้ขา 3, 5, หรือ 6 แทน - ที่อยู่ I2C: ถ้ามีทั้งจอ I2C และนาฬิกา RTC แบบ I2C ทั้งคู่จะแชร์ขา A4/A5 น้องต้องรู้วิธีใช้ I2C Scanner เพื่อตรวจสอบให้แน่ใจว่ามันมีที่อยู่ฐานสิบหก (Hexadecimal addresses) คนละอัน (เช่น
0x27กับ0x68) จะได้ไม่คุยโทรศัพท์สายเดียวกัน
การประกอบชิ้นงานขั้นสุดท้าย
ในสเก็ตช์เดียวอันนี้:
- เซนเซอร์วัดอุณหภูมิ LM35/DS18B20 จะควบคุมสีของ ไฟ LED RGB (น้ำเงินถ้าอากาศเย็น, แดงถ้าอุณหภูมิ > 30C)
- โพเทนชิโอมิเตอร์ จะควบคุมมุมของ เซอร์โวมอเตอร์ ด้วยมือเราเอง
- จอ LCD 16x2 จะแสดงค่าต่างๆ ข้างต้นแบบเรียลไทม์บนสองบรรทัด โดยไม่กระตุกหรือสะดุด
รายการอุปกรณ์ที่ต้องจัด
- Arduino Uno/Mega: แนะนำหนักๆ ให้ใช้ Mega จะได้มีพินและแรมเหลือเฟือ
- เบรดบอร์ดใหญ่ (830 point) และสายไฟแข็ง (solid-core wire) เยอะๆ (เตรียมตัวตัดสายให้มือเมื่อย)
- โพเทนชิโอมิเตอร์, ไฟ LED RGB, ไมโครเซอร์โว, จอ LCD 16x2, โพรบวัดอุณหภูมิ