Raspberry Pi ร้องเพลงชาติไทย Rev.1.0.3

Share

หลังจากเมื่อบทความตอนที่แล้วเราได้ทดลองสร้าง Python เพื่อทำนาฬิกาปลุกบน Raspberry Pi กันไปแล้วนะครับ วันนี้เราจะนำโค้ดอันเก่า มาปรับปรุงกันใหม่ ให้เป็น Raspberry Alarm Clock เพื่อร้องเพลงเคารพธงชาติตอน 6 โมงเย็น พร้อมด้วย ไฟ LED กระพริบแสดงสถานะกันนะครับ โดยไฟ LED จะกระพริบอยู่สองแบบ คือแบบ Normal เพื่อให้เราว่าโปรแกรมเรายังทำการนับเวลาอยู่นะ และมีไฟกระพริบบอกในขณะทำการร้องเพลง เมื่อร้องจบ ก็จะกลับมาแสดงสถานะปกติครับ เอาละครับเพื่อไม่ให้เป็นการเสียเวลาเรามาเริ่มกันดีกว่า

pi05001

อันดับแรก เรามาดู Hardware กันก่อนครับ

อุปกรณ์ทดลองก็มี
R 1K  3 ตัว
LED สีแดง 2 ตัว (ใช้บอกสถานะขณะทำการร้องเพลง)
LED สีส้ม 1 ตัว (ใช้บอกสถานะ normal)
แผ่นต่อวงจร (Breadboard)
สายจั๊ม
บอร์ด Raspberry Pi
และ ลำโพงเล็กๆ

สำหรับวงจรนะครับ จะใช้อุปกรณ์ต่อตามขาดังนี้
GPID0 (ขา 3) ต่อเข้า LED ส้ม ขา +
GPIO1 (ขา5) ต่อเข้า LED แดง1 ขา +
GPIO4 (ขา7) ต่อเข้า LED แดง2 ขา+
GND (ขา9) ต่อเข้าปายขาตัวท้านทาน 1k ทุกตัว เพื่อให้ครบวงจร

ถ้า งง ก็ไปดูขา GPIO และ การต่อใกล้ๆ กันเลยครับ

pi05002

สำหรับคนที่จะดูรายชื่อขา GPIB ก็ลองไปศึกษาเพิ่มเติมได้ครับที่
–> http://elinux.org/RPi_Low-level_peripherals

ตัวอย่างการนับขา GPIO ให้หันบอร์ดเข้าหาตัว (ทำให้ตัว Raspberry Pi ตั้งหัวขึ้น) และอ่านเรียงตามนี้นะครับ

pi05003

 

หลังจากนั้นก็โปรแกรม python เข้าไป สำหรับโค้ด rev 1.0.3 ตัวนี้ ผมได้ทำการแก้ไขโดยเพิ่มการ Import RPi.GPIO เข้าไป เพื่อให้สามารถส่งสัญญาณออก port GPIO ให้ LED สามารถกระพริบได้ครับ ไปดูโค้ดกันเลยครับ

สำหรับการทำงานนะครับ โปรแกรมก็จะนับเวลาไปเรื่อยๆ มีการ print เวลาออกหน้าจอ command (ถ้า SSH เข้าไปก็จะเห็น) ทุกๆ 1 วินาที และจะมีไฟ LED สีส้มกระพริบบอกสถานะอยู่ตลอดเวลา หลังจากนั้น เมื่อเวลาดำเนินไปถึง 18:00 น. ตัว Pi ก็จะทำการเล่นเพลงเคารพธงชาติ พร้อมด้วย LED สีแดงจะแสดงสถานะกระพริบกันสลับไปมาระหว่างการร้องเพลงชาติ หลังจากเพลงชาติจบแล้ว ไฟสีส้มก็จะมากระพริบตามปกติครับ

ถ้าใครนึกภาพไม่ออกลองไปดู youtube ที่ผมได้ถ่ายเป็น clip Video ไว้ครับ

 

ลองไปทดลองศึกษาและเล่นดูครับ สนุกแถวได้ความรู้ด้วยครับ แล้วพบกันใหม่ตอนหน้าครับ

 

Leave a Reply

Your email address will not be published. Required fields are marked *