ห้องปฏิบัติการหุ่นยนต์บ้านอัจฉริยะ
Loading...

ภารกิจหุ่นยนต์ 001

Smart House Lab

โหมดเวที • ARDUINO UNO

การผจญภัยในการสร้างและเขียนโค้ดกับ JSS1

เราจะสร้างบ้านที่ตรวจจับผู้มาเยือนได้หรือไม่?

บ้านอัจฉริยะที่ตรวจจับวัตถุที่กำลังเข้ามาได้ พร้อมเปิดไฟและส่งเสียงแจ้งเตือน

เข้าใกล้→วัดระยะ→ตัดสินใจ→แจ้งเตือน

ก่อนอื่น มาดูแบบที่เสร็จสมบูรณ์กันก่อน จากนั้นเราจะสร้างบ้านหลังนี้ไปด้วยกัน

AI-generated three-quarter view of the completed cardboard smart house project
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 และสายไฟไว้ในจุดที่เข้าถึงได้ ไม่ปิดตายไว้ด้านใน
พิมพ์เขียว → ลงมือสร้าง

โซนก่อสร้าง

สร้างบ้านกระดาษลัง

สร้างตามแบบที่เรียบง่ายและแข็งแรงเหมือนที่แสดงในตอนเปิดตัว

  1. 01
    วัดและทำเครื่องหมาย

    ทำเครื่องหมายผนัง ช่องประตู และหลังคาลงบนกระดาษลัง

    ✓
  2. 02
    ตัดแผ่นกระดาษ

    ตัดอย่างระมัดระวัง ให้ขอบเรียบเพื่อการประกอบ

    ✓
  3. 03
    ประกอบผนัง

    ประกอบตัวบ้านเป็นรูปสี่เหลี่ยมและติดแผ่นด้านหน้า

    ✓
  4. 04
    ติดหลังคาและฐาน

    ยึดหลังคากับฐานที่มั่นคง และเว้นส่วนอิเล็กทรอนิกส์ให้เข้าถึงได้

    ✓
!ความปลอดภัยต้องมาก่อน:ใช้เครื่องมือตัดอย่างระมัดระวังและอยู่ภายใต้การดูแลของผู้ใหญ่

การเดินสาย 01 / อินพุต

เชื่อมต่อเซนเซอร์อัลตราโซนิก

ทีละเส้น จับคู่ป้ายกำกับทุกอันกับพิน Arduino ให้ถูกต้อง

ARDUINO
UNO
5VGNDD9D10
HC-SR04VCCGNDTRIGECHO
แผนผังพินเซนเซอร์
พินเซนเซอร์Arduino Uno
VCC5V
GNDGND
TRIGD9
ECHOD10
)))

แนวคิด Echo
เซนเซอร์จะส่งคลื่นเสียงออกไปและวัดระยะเวลาที่เสียงสะท้อนกลับมา

การเดินสาย 02 / แสง

เชื่อมต่อ LED

LED ติดตั้งอยู่ข้างประตูเพื่อให้ผู้มาเยือนเห็นการแจ้งเตือน

LED ใกล้ประตู
D13
220–330 Ω
GND
D13 → ตัวต้านทาน → ขา LED ยาว → ขา LED สั้น → GND

ต้องมีตัวต้านทานอยู่ในวงจรเพื่อจำกัดกระแสไฟและป้องกัน LED

การเดินสาย 03 / เสียง

เชื่อมต่อบัซเซอร์

เสียงบี๊บสั้นจะแจ้งเตือนเมื่อมีการเข้าใกล้ครั้งใหม่ ไม่ใช่ทุกครั้งที่เซนเซอร์อ่านค่าได้

+−
บัซเซอร์ด้านใน / ข้างทางเข้า
+ขั้วบวกของบัซเซอร์ (+)D8
−ขั้วลบของบัซเซอร์ (−)GND
การเข้าใกล้หนึ่งครั้ง = เสียงบี๊บสั้นหนึ่งครั้ง

ตัวแปรหน่วยความจำจะช่วยหยุดเสียงบี๊บซ้ำในขณะที่มีคนอยู่ใกล้ๆ

การตรวจสอบก่อนเริ่มใช้งาน

ตรวจสอบวงจรให้ครบถ้วน

ตรวจสอบเส้นทางทั้งหมดก่อนเชื่อมต่อแหล่งจ่ายไฟ USB

UNO
✓ตรวจสอบไฟเลี้ยงเซนเซอร์แล้ว
✓ตรวจสอบพินเซนเซอร์แล้ว
✓ตรวจสอบขั้ว LED แล้ว
✓มีตัวต้านทาน LED
✓ตรวจสอบขั้วบัซเซอร์แล้ว
✓สายกราวด์ทั้งหมดเชื่อมต่อแล้ว
ปิดเครื่องขณะต่อสายไฟถอดแหล่งจ่ายไฟ USB ออกก่อนเปลี่ยนการเชื่อมต่อ

ห้องปฏิบัติการซอฟต์แวร์

เข้าสู่ห้องปฏิบัติการ PictoBlox

เริ่มด้วยบล็อกภาพ: นักเรียนสร้างตรรกะโดยไม่ต้องพิมพ์โปรแกรม

PictoBlox • Stage Mode
BLOCKS
โหมดสเตจ (STAGE MODE)
when green flag clicked
forever
read distance
  1. 01เปิด PictoBlox
  2. 02เลือก Block Coding และ Arduino Uno
  3. 03เชื่อมต่อพอร์ต COM ให้ถูกต้อง
  4. 04เลือก Stage Mode
  5. 05อัปโหลดเฟิร์มแวร์ที่จำเป็นหากมีการแจ้งเตือน
  6. 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

สวิตช์ความจำขนาดเล็กนี้ทำให้การแจ้งเตือนดูชาญฉลาดขึ้น

someoneNear0
READY FOR A NEW APPROACH
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เงียบ
NO
ปิด LED ตั้งค่าเป็น 0
↻ ทำซ้ำตลอดไป

ทดสอบภารกิจ

อัปโหลดและทดสอบใน PictoBlox

แอนิเมชันแสดงผลลัพธ์ที่คาดหวัง ไม่ได้อ่านค่าจาก Arduino จริง

จอตรวจสอบการจำลอง
> distance = 72 cmปิด LED • เงียบ
> distance = 38 cmเปิด LED • ส่งเสียงบี๊บหนึ่งครั้ง
> distance = 91 cmปิด LED • รีเซ็ต
  1. 01ยืนยันบอร์ด Arduino
  2. 02ยืนยันพอร์ต COM และเฟิร์มแวร์
  3. 03ตรวจสอบการเชื่อมต่อเซนเซอร์และตัวขับเคลื่อน (actuator)
  4. 04เริ่มโปรแกรม PictoBlox
  5. 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 และบัซเซอร์แล้ว
✓จัดวางและทดสอบบล็อกแล้ว
✓มีโค้ดสำรองพร้อมใช้งาน
←ก่อนหน้า
A JSS1 BUILD-AND-CODE ADVENTURE01 / 18
ถัดไป→

ใช้ปุ่มลูกศร ← → เพื่อนำทาง