ห้องปฏิบัติการหุ่นยนต์บ้านอัจฉริยะ
ภารกิจหุ่นยนต์ 001
Smart House Lab
โหมดเวที • ARDUINO UNO
การผจญภัยในการสร้างและเขียนโค้ดกับ JSS1
เราจะสร้างบ้านที่ตรวจจับผู้มาเยือนได้หรือไม่?
บ้านอัจฉริยะที่ตรวจจับวัตถุที่กำลังเข้ามาได้ พร้อมเปิดไฟและส่งเสียงแจ้งเตือน
เข้าใกล้→วัดระยะ→ตัดสินใจ→แจ้งเตือน
ก่อนอื่น มาดูแบบที่เสร็จสมบูรณ์กันก่อน จากนั้นเราจะสร้างบ้านหลังนี้ไปด้วยกัน
Generating concept image…
การจำลองภารกิจ
ดูการทำงานของบ้านอัจฉริยะ
นี่คือการจำลองด้วยภาพ ไม่ใช่การเชื่อมต่อกับฮาร์ดแวร์จริง
ระยะห่าง100 cm
ตรวจพบผู้มาเยือน!
ลูปตรรกะ
01เข้าใกล้ผู้มาเยือนเคลื่อนที่ไปยังประตู
02วัดระยะคลื่นอัลตราโซนิกสะท้อนกลับมาเป็นระยะทาง
03ตัดสินใจโปรแกรมตรวจสอบกฎ 50 ซม.
04แจ้งเตือนLED สว่างค้าง; เสียงบี๊บสั้นหนึ่งครั้งแจ้งเตือนการเข้าใกล้ครั้งใหม่
ชุดอุปกรณ์สร้าง
ทำความรู้จักกับส่วนประกอบ
ทุกชิ้นส่วนมีหน้าที่ชัดเจนในบ้านอัจฉริยะของเรา
UNO
Arduino Uno
สมองกล: ทำหน้าที่อ่านค่าจากเซ็นเซอร์และควบคุมการแจ้งเตือน
เซ็นเซอร์ HC-SR04
ส่งคลื่นเสียงและวัดระยะจากเสียงสะท้อนที่กลับมา
LED
การแจ้งเตือนด้วยแสงที่ส่องสว่างใกล้ประตู
บัซเซอร์
ส่งเสียงสั้นหนึ่งครั้งเมื่อมีการเข้าใกล้
เบรดบอร์ด
แพลตฟอร์มที่นำกลับมาใช้ใหม่ได้เพื่อการเชื่อมต่อที่เรียบร้อย
สายจัมเปอร์
เส้นทางไฟฟ้าเชื่อมต่อระหว่างชิ้นส่วนต่างๆ
Ω
ตัวต้านทาน 220–330 Ω
ปกป้อง LED โดยการจำกัดกระแสไฟฟ้า
กระดาษแข็งหรือโฟมบอร์ด
โครงบ้านราคาประหยัดและฐานที่มั่นคง
วางแผนก่อนตัด
ออกแบบพิมพ์เขียวของบ้าน
เซนเซอร์ต้องหันออกด้านนอกและไม่อยู่ติดกับกระดาษลัง
SENSOR
หันออกด้านนอก
LED
ELECTRONICS
ช่องเข้าถึง
ผนัง
หลังคา
ประตูหน้า
ฐานที่มั่นคง
01เว้นช่องประตูไว้สำหรับผู้มาเยือน
02ติดตั้ง HC-SR04 ไว้ด้านบนหรือด้านข้างของทางเข้า
03เก็บ Arduino และสายไฟไว้ในจุดที่เข้าถึงได้ ไม่ปิดตายไว้ด้านใน
พิมพ์เขียว → ลงมือสร้าง
โซนก่อสร้าง
สร้างบ้านกระดาษลัง
สร้างตามแบบที่เรียบง่ายและแข็งแรงเหมือนที่แสดงในตอนเปิดตัว
- 01
วัดและทำเครื่องหมายทำเครื่องหมายผนัง ช่องประตู และหลังคาลงบนกระดาษลัง
✓ - 02
ตัดแผ่นกระดาษตัดอย่างระมัดระวัง ให้ขอบเรียบเพื่อการประกอบ
✓ - 03
ประกอบผนังประกอบตัวบ้านเป็นรูปสี่เหลี่ยมและติดแผ่นด้านหน้า
✓ - 04
ติดหลังคาและฐานยึดหลังคากับฐานที่มั่นคง และเว้นส่วนอิเล็กทรอนิกส์ให้เข้าถึงได้
✓
!ความปลอดภัยต้องมาก่อน:ใช้เครื่องมือตัดอย่างระมัดระวังและอยู่ภายใต้การดูแลของผู้ใหญ่
การเดินสาย 01 / อินพุต
เชื่อมต่อเซนเซอร์อัลตราโซนิก
ทีละเส้น จับคู่ป้ายกำกับทุกอันกับพิน Arduino ให้ถูกต้อง
ARDUINO
UNO5VGNDD9D10
HC-SR04VCCGNDTRIGECHO
แผนผังพินเซนเซอร์| พินเซนเซอร์ | Arduino Uno |
|---|
| VCC | 5V |
| GND | GND |
| TRIG | D9 |
| ECHO | D10 |
)))แนวคิด Echo
เซนเซอร์จะส่งคลื่นเสียงออกไปและวัดระยะเวลาที่เสียงสะท้อนกลับมา
การเดินสาย 02 / แสง
เชื่อมต่อ LED
LED ติดตั้งอยู่ข้างประตูเพื่อให้ผู้มาเยือนเห็นการแจ้งเตือน
D13
220–330 Ω
GND
D13 → ตัวต้านทาน → ขา LED ยาว → ขา LED สั้น → GNDต้องมีตัวต้านทานอยู่ในวงจรเพื่อจำกัดกระแสไฟและป้องกัน LED
การเดินสาย 03 / เสียง
เชื่อมต่อบัซเซอร์
เสียงบี๊บสั้นจะแจ้งเตือนเมื่อมีการเข้าใกล้ครั้งใหม่ ไม่ใช่ทุกครั้งที่เซนเซอร์อ่านค่าได้
บัซเซอร์ด้านใน / ข้างทางเข้า +ขั้วบวกของบัซเซอร์ (+)D8
−ขั้วลบของบัซเซอร์ (−)GND
การเข้าใกล้หนึ่งครั้ง = เสียงบี๊บสั้นหนึ่งครั้งตัวแปรหน่วยความจำจะช่วยหยุดเสียงบี๊บซ้ำในขณะที่มีคนอยู่ใกล้ๆ
การตรวจสอบก่อนเริ่มใช้งาน
ตรวจสอบวงจรให้ครบถ้วน
ตรวจสอบเส้นทางทั้งหมดก่อนเชื่อมต่อแหล่งจ่ายไฟ USB
✓ตรวจสอบไฟเลี้ยงเซนเซอร์แล้ว
✓ตรวจสอบพินเซนเซอร์แล้ว
✓ตรวจสอบขั้ว LED แล้ว
✓มีตัวต้านทาน LED
✓ตรวจสอบขั้วบัซเซอร์แล้ว
✓สายกราวด์ทั้งหมดเชื่อมต่อแล้ว
ปิดเครื่องขณะต่อสายไฟถอดแหล่งจ่ายไฟ USB ออกก่อนเปลี่ยนการเชื่อมต่อ
ห้องปฏิบัติการซอฟต์แวร์
เข้าสู่ห้องปฏิบัติการ PictoBlox
เริ่มด้วยบล็อกภาพ: นักเรียนสร้างตรรกะโดยไม่ต้องพิมพ์โปรแกรม
PictoBlox • Stage Mode
BLOCKS
when green flag clicked
forever
read distance
- 01เปิด PictoBlox
- 02เลือก Block Coding และ Arduino Uno
- 03เชื่อมต่อพอร์ต COM ให้ถูกต้อง
- 04เลือก Stage Mode
- 05อัปโหลดเฟิร์มแวร์ที่จำเป็นหากมีการแจ้งเตือน
- 06เชื่อมต่อ Arduino ไว้ตลอดเวลาในขณะที่ Stage Mode ทำงาน
อินเทอร์เฟซที่แสดงเป็นเพียงภาพประกอบ ชื่อบล็อกใน PictoBlox อาจแตกต่างกันไปตามเวอร์ชันและส่วนขยาย
กล่องเครื่องมือบล็อก
ค้นหาบล็อก PictoBlox ที่จำเป็น
มองหาฟังก์ชัน จากนั้นเลือกป้ายกำกับที่ใกล้เคียงที่สุดที่รองรับในเวอร์ชันของคุณ
เหตุการณ์
when green flag clicked
ควบคุม
forever
if then
if then else
wait
ตัวดำเนินการ
< less than
= equals
ตัวแปร
create someoneNear
set someoneNear to 0
ARDUINO / ส่วนขยาย
ultrasonic distance in cm
digital pin HIGH / LOW
play tone, if available
ป้ายกำกับของบล็อกอาจแตกต่างกัน ห้ามสร้างบล็อกขึ้นมาเอง: หากไม่มีบล็อกเสียง (tone block) ให้ใช้โค้ด Arduino สำรองที่เข้ากันได้ หรือทางเลือกอื่นที่ได้รับการสนับสนุนตามเอกสารการตรวจสอบเวอร์ชัน
สวิตช์ความจำ
สร้างตัวแปร someoneNear
สวิตช์ความจำขนาดเล็กนี้ทำให้การแจ้งเตือนดูชาญฉลาดขึ้น
0ยังไม่มีการเข้าใกล้ที่ส่งเสียงเตือน ผู้เยี่ยมชมคนใหม่อาจทำให้บัซเซอร์ทำงาน
1วิธีนี้ได้ส่งเสียงบี๊บไปแล้ว ให้เปิด LED ค้างไว้ แต่ไม่ต้องส่งเสียง
0→1→0ผู้มาเยือนมาถึง → ผู้มาเยือนยังอยู่ → ผู้มาเยือนจากไป
บล็อกโปรแกรม / เมธอดหลัก
สร้างโปรแกรม PictoBlox
จัดเรียงตรรกะภาพตามลำดับนี้ ซึ่งเป็นฟังก์ชันที่ตั้งใจไว้ ป้ายกำกับที่แน่นอนอาจแตกต่างกันได้
when green flag clicked
set someoneNear to 0
set digital pin 13 output to LOW
forever
read ultrasonic distance: TRIG 9 / ECHO 10
if distance < 50 then
set digital pin 13 output to HIGH
if someoneNear = 0 then
set someoneNear to 1
play tone on pin 8: 1000 Hz / 0.3 s
else
set digital pin 13 output to LOW
set someoneNear to 0
wait 0.1 seconds
ต่ำกว่า 50 ซม.LED เปิดค้างไว้
การตรวจพบครั้งแรกส่งเสียงบี๊บสั้นหนึ่งครั้ง จากนั้น someoneNear จะกลายเป็น 1
เคลื่อนที่ออกห่างLED ปิด; รีเซ็ตเป็น 0 สำหรับการเข้าใกล้ครั้งถัดไป
เคล็ดลับความทนทานจัดการกับการอ่านค่าที่ไม่ถูกต้องหรือค่าที่หายไปให้เป็นการตรวจไม่พบ เมื่อบล็อกของคุณแสดงเงื่อนไขดังกล่าว
คิดแบบโปรแกรมเมอร์
ทำความเข้าใจตรรกะของโปรแกรม
เดินตามเส้นทางที่เรืองแสง: ลูปจะไม่มีวันหยุดตรวจสอบ
เริ่มต้น
↓
อ่านค่าระยะทาง
↓
ระยะทางน้อยกว่า 50 ซม. หรือไม่?YESเปิด LED
↓
ส่งเสียงบี๊บแล้วหรือยัง?NOส่งเสียงบี๊บหนึ่งครั้ง
ตั้งค่าเป็น 1
YESเงียบ
↻ ทำซ้ำตลอดไป
ทดสอบภารกิจ
อัปโหลดและทดสอบใน PictoBlox
แอนิเมชันแสดงผลลัพธ์ที่คาดหวัง ไม่ได้อ่านค่าจาก Arduino จริง
จอตรวจสอบการจำลอง
> distance = 72 cmปิด LED • เงียบ
> distance = 38 cmเปิด LED • ส่งเสียงบี๊บหนึ่งครั้ง
> distance = 91 cmปิด LED • รีเซ็ต
- 01ยืนยันบอร์ด Arduino
- 02ยืนยันพอร์ต COM และเฟิร์มแวร์
- 03ตรวจสอบการเชื่อมต่อเซนเซอร์และตัวขับเคลื่อน (actuator)
- 04เริ่มโปรแกรม PictoBlox
- 05ทดสอบด้วยมือหรือวัตถุในระยะห่างต่างๆ
ผลลัพธ์ที่คาดหวังไกลกว่า 50 ซม.: ปิดและเงียบ ภายใน 50 ซม.: LED เปิดและส่งเสียงบี๊บหนึ่งครั้ง เคลื่อนที่ออกห่าง: ปิดและพร้อมใช้งานอีกครั้ง
เวิร์กโฟลว์สำรอง
บล็อกหายไปใช่ไหม? ไม่มีปัญหา
สเก็ตช์ Arduino C++ นี้เป็นตัวสำรองสำหรับเวิร์กโฟลว์การเขียนโปรแกรม Arduino ที่เข้ากันได้ ไม่ใช่บล็อกภาพของ PictoBlox
arduino_backup.ino
พินที่ตรงกันTRIG 9, ECHO 10, LED 13, buzzer 8
การคำนวณระยะทางpulseIn อ่านเวลาของ echo และสูตรจะแปลงค่าเป็นเซนติเมตร
หน่วยความจำsomeoneNear ป้องกันไม่ให้ส่งเสียงบี๊บซ้ำขณะที่วัตถุยังคงอยู่ใกล้
วิธีใช้งานสลับไปยังเวิร์กโฟลว์ที่เข้ากันได้ เช่น Arduino IDE อัปโหลดสเก็ตช์ จากนั้นจึงทดสอบ
ส่วนดีบักสำหรับวิศวกร
การแก้ไขปัญหาสำหรับวิศวกร
ค้นหาอาการ ตรวจสอบสาเหตุที่ง่ายที่สุด และทดสอบอีกครั้ง
?บล็อกเซนเซอร์หายไป
ยืนยันการใช้ Arduino Uno และส่วนขยายที่ถูกต้อง ตรวจสอบการรองรับใน PictoBlox เวอร์ชันของคุณ และใช้ตัวสำรองเมื่อจำเป็น
?บล็อก Buzzer หายไป
ตรวจสอบบล็อกโทนเสียงหรือตัวขับเคลื่อน (actuator) ค่า Digital HIGH/LOW ไม่ได้สร้างโทนเสียงที่เหมาะสมโดยอัตโนมัติ
!LED ไม่ติด
ตรวจสอบขั้ว, ตัวต้านทาน, D13 และ GND
!Buzzer ไม่ส่งเสียง
ตรวจสอบขั้ว, D8, GND และวิธีการเขียนโปรแกรมที่เลือก
↺ค่าระยะทางไม่น่าเชื่อถือ
ตรวจสอบ TRIG, ECHO, ทิศทางของเซนเซอร์, แหล่งจ่ายไฟ และการเชื่อมต่อที่หลวม
↺โปรแกรมไม่เริ่มทำงาน
ตรวจสอบการเลือกบอร์ด, พอร์ต COM, สาย USB และเฟิร์มแวร์ Stage Mode
ภารกิจเสร็จสมบูรณ์
คุณออกแบบมัน คุณสร้างมัน และคุณเขียนโปรแกรมมัน
ตอนนี้ให้ลองอธิบายว่าบ้านอัจฉริยะของคุณตรวจจับผู้มาเยือนที่กำลังเข้ามาได้อย่างไร
เข้าใกล้→วัดระยะ→ตัดสินใจ→แจ้งเตือน
![The completed smart house project]()
✓สร้างบ้านเสร็จสิ้น
✓ติดตั้งเซนเซอร์แล้ว
✓เชื่อมต่อ LED และบัซเซอร์แล้ว
✓จัดวางและทดสอบบล็อกแล้ว
✓มีโค้ดสำรองพร้อมใช้งาน
ใช้ปุ่มลูกศร ← → เพื่อนำทาง