ในบทเรียนนี้ เราจะมาสร้างวงจรควบคุมสเต็ปเปอร์มอเตอร์กัน งานนี้เราจะใช้แอปที่ออกแบบบน App Inventor เพื่อสื่อสารและควบคุมผ่านบลูทูธ โดยใช้โมดูล HC-05 เป็นตัวเชื่อมต่อแบบไร้สายระหว่างแอปกับบอร์ด Arduino เนื้อหาจะครอบคลุมตั้งแต่การต่อวงจร การเขียนโค้ด Arduino ไปจนถึงการออกแบบหน้าจอใน App Inventor นอกจากนี้เรายังจะลงรายละเอียดเรื่องการจับคู่ (Pair) HC-05 กับ Arduino และแอป รวมถึงการปรับแต่งสเต็ปเปอร์มอเตอร์ให้ทำงานได้แม่นยำ งานนี้เหมาะมากสำหรับน้องๆ ที่สนใจด้านหุ่นยนต์ การเขียนโปรแกรม และการสร้างแอปมือถือแบบอินเทอร์แอคทีฟ
การผสมผสานความแม่นยำระดับมิลลิเมตรของสเต็ปเปอร์มอเตอร์เข้ากับความสะดวกแบบไร้สายของสมาร์ทโฟน จะสร้างแพลตฟอร์มที่ทรงพลังมาก โครงการนี้คือก้าวแรกสู่การสร้างเครื่องพิมพ์ 3 มิติไร้สาย เครื่องเลื่อนกล้อง (Camera Slider) และขาตั้งกล้องโทรทรรศน์แบบมอเตอร์
การแยกข้อมูลหลายส่วน (Multi-Data Parsing)
การส่งแค่ตัว 'A' ไปเปิดไฟนี่ง่าย แต่ถ้าจะส่งคำสั่งแบบ "หมุน 400 สเต็ป ด้วยความเร็ว 50" ล่ะ?
- แพ็กเกจข้อมูล: แอปจะรวมข้อมูลเป็นสตริง เช่น
<M,400,50>\n - บัฟเฟอร์: Arduino จะอ่านข้อมูลจาก Serial ลงในอาร์เรย์ของตัวอักษร จนกว่าจะเจอตัวขึ้นบรรทัดใหม่
\n - ฟังก์ชัน strtok: ฟังก์ชัน
strtok()ใน C++ จะถูกใช้เพื่อตัดสตริงทุกครั้งที่เจอเครื่องหมายจุลภาค แยกประเภทคำสั่ง (M), จำนวนสเต็ป (400) และความเร็ว (50) ออกมา แล้วแปลงกลับเป็นตัวเลขจำนวนเต็ม
อุปกรณ์ที่ต้องใช้
Arduino mini pro

Arduino Pro Mini คือบอร์ดไมโครคอนโทรลเลอร์ที่ใช้ชิป ATmega328
มีขา Digital Input/Output 14 ขา (ซึ่ง 6 ขาในนั้นใช้เป็น PWM Output ได้) ขา Analog Input 6 ขา มีออสซิลเลเตอร์ในตัว ปุ่มรีเซ็ต และรูสำหรับติดตั้งพินเฮดเดอร์ สามารถใช้เฮดเดอร์ 6 พินเชื่อมกับสาย FTDI หรือบอร์ด Sparkfun breakout เพื่อจ่ายไฟและสื่อสารผ่าน USB ได้
Arduino Pro Mini ออกแบบมาสำหรับติดตั้งแบบกึ่งถาวรบนชิ้นงานหรือนิทรรศการ บอร์ดมาพร้อมกับเฮดเดอร์ที่ยังไม่ได้บัดกรี ทำให้สามารถเลือกใช้คอนเนคเตอร์แบบต่างๆ หรือบัดกรีสายไฟลงไปโดยตรงได้ การจัดวางขาเข้ากันได้กับ Arduino Mini
Pro Mini มีสองเวอร์ชัน เวอร์ชันหนึ่งทำงานที่ 3.3V และ 8 MHz อีกเวอร์ชันทำงานที่ 5V และ 16 MHz
โมดูล hc-05

ทำงานได้ทั้งในโหมด Master และ Slave สามารถตั้งค่าได้ด้วยคำสั่ง AT บลูทูธ V2.0+EDR ความถี่ในการทำงาน: แถบ 2.4 GHz ISM การมอดูเลต: GFSK (Gaussian Frequency Shift Keying) กำลังส่ง: <=4dBm, Class 2 ความไว: <=-84dBm @ 0.1% BER ความปลอดภัย: การยืนยันตัวตนและการเข้ารหัส โปรไฟล์บลูทูธ: Bluetooth serial port ระยะทางสูงสุด 10 เมตรในสภาวะเหมาะสม แรงดันทำงาน: 3.6 VDC ถึง 6 VDC กระแสที่ใช้: 30 mA ถึง 50 mA ชิป: BC417143 เวอร์ชันเฟิร์มแวร์: 3.0-20170609 Baud เริ่มต้น: 38400 Baud rate ที่รองรับ: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 อินเทอร์เฟซ: Serial TTL เสาอากาศ: ติดตั้งบนแผงวงจร ความปลอดภัย: การยืนยันตัวตนและการเข้ารหัส (รหัสผ่านเริ่มต้น: 0000 หรือ 1234) อุณหภูมิในการทำงาน (สูงสุด): 75°C อุณหภูมิในการทำงาน (ต่ำสุด): -20°C ขนาด: 4.4 x 1.6 x 0.7 ซม.
สเต็ปเปอร์มอเตอร์ 28BYJ-48

สเปคของสเต็ปเปอร์มอเตอร์ตัวนี้คือ:
รุ่น: 28BYJ-48 – 5V แรงดันใช้งาน: 5V (หรือ 12V ดูค่าที่ระบุด้านหลังมอเตอร์)
จำนวนเฟส: 4 ตัวลดความเร็ว: 1/64 มุมสเต็ป: 5.625° / 64 ความถี่: 100Hz ความต้านทาน DC: 50Ω ±7% (25°C) ความถี่ขณะดึง: > 600Hz ความถี่ไม่ดึง: > 1000Hz แรงบิดดึง: >34.3mN.m (120Hz) แรงบิดจับตัวเอง: >34.3mN.m แรงบิดพร้อมแรงเสียดทาน: 600-1200 gf.cm แรงบิดลาก: 300 gf.cm ความต้านทานฉนวน > 10MΩ (500V) ฉนวนไฟฟ้า: 600VAC/1mA/1s เกรดฉนวน: A อุณหภูมิเพิ่มขึ้น: < 40K (120Hz) เสียงรบกวน: < 35dB (120Hz, ไม่มีโหลด, 10cm)
ULN2003APG

สเปคหลักๆ จัดไปวัยรุ่น:
- กระแสคอลเลกเตอร์ปกติ 500 mA (เอาต์พุตเดี่ยว)
- เอาต์พุต 50V (มีเวอร์ชันที่รองรับ 100V ด้วยนะ)
- มีไดโอด flyback ในเอาต์พุตแล้ววว
- อินพุตเข้ากันได้กับลอจิก TTL และ CMOS 5V
เฟมเมลพิน (ขาตัวเมีย)

เมลพิน (ขาตัวผู้)

ซ็อกเก็ตสำหรับ Arduino Mini Pro

เฟมเมลพินมุม 90 องศา

PCB

แอปพลิเคชัน

ด้วยแอปที่สร้างจาก MIT App Inventor น้องจะสามารถออกแบบอินเทอร์เฟสสวยๆ มีสไลด์ควบคุมความเร็ว และมีหน้าปัดหมุนเพื่อตั้งตำแหน่งมอเตอร์ได้เป๊ะๆ เลย! สู้งานนะน้อง ห้ามช็อตนะตัวนี้