ผมเริ่มคิดจะทำ project นี้จากการที่ไปเห็น Blockclock ของ Coinkite เป็นเหมือนนาฬิกาที่สามารถตั้งค่าให้แสดงผลราคา bitcoin หรือ block ของ bitcoin ก็ได้ ซึ่งมันเจ๋งมากกกก แต่พอกดเข้าไปดูราคาเท่านั้นแหละ ในหัวเกิดคำถามมันแพงอะไรนะ พอกดเข้าไปดู
ตัวอุปกรณ์ลึกๆ แล้วก็เจอว่า เขาใช้ FreeRTOS รันบน chip ESP32 ส่วน Program ก็ใช้
MicroPython แสดงผลด้วย จอ E-Paper ทั้งหมด 7 ตัว เอาหละได้ข้อมูลคร่าวๆ ที่พอจะ
วางแผนสร้างมันขึ้นมาเองด้วยราคารวมที่ประหยัดกว่า แต่ฟังชั่นอาจจะไม่ได้ครบเท่าก็เถอะ
หาความเป็นไปได้ของ Project นี้ก่อน
ปัญหาแรก : ผมไม่ค่อยรู้เลยคือเรื่องของจอ E-paper ไม่รู้ว่าจะต่อกับ controller ได้ยังไงบ้าง ผมก็ลองค้นหาดูพักใหญ่ก็เจอว่า โอเค E-paper มันมี interface SPI ให้ใช้เชื่อมต่อได้ซึ่งจะต่อกับ Micro Controller หลายๆ ตัวได้
ปัญหาที่สอง : แล้วจะทำยังไงให้จอทั้ง 7 ตัวทำงานได้พร้อมกัน ผมก็เลยต้องค้นหาต่อในเรื่องของ SPI1 protocol เพื่อให้เข้าใจมากขึ้นอีกหน่อยว่ามันทำงานยังไง ซึ่งเท่าที่ผมเข้าใจคือ SPI เป็น protocol ที่การสื่อสารแบบอนุกรมที่ใช้สัญญาณนาฬิกามาเป็นตัวกำหนดจังหวะการรับส่งข้อมูลระหว่างอุปกรณ์ฝั่ง Master กับ Slave โดยฝั่ง Slave มีอุปกรณ์ได้
มากกว่า 1 ตัว นั่นก็หมายความว่ามีความเป็นไปได้ที่ผมจะเขียน script ให้มันใช่ SPI protocol ในการควบคุมให้จอ E-paper ทำงานได้หลายตัวพร้อมกัน
ปัญหาที่สาม : จะใช้ Micro Controller ตัวไหนดีหละ ในตัวอย่างเขาใช้ ESP32 ซึ่งตอนที่หาข้อมูลอยู่ก็ไปเจอว่า raspberry pi ก็มีตัวที่คล้ายๆ กัน คือรุ่น Raspberry pi pico w
มันก็ได้
เอาหละตอบคำถามตัวเองได้แล้วก็หาอุปกรณ์มาลองทำดูเลย
- Raspberry pi pico W x 1 = 200 บาท
- E-paper 2.9″ Black and White x 7 = 2870 บาท
- PCB แบบไข่ปลา 10×22 ซม. x 1 = 45 บาท
- Socket 8 pin ตัวเมีย x 7 = 112 บาท
- เสารองบอร์ดและน๊อตตัวเมียแบบไนลอน = 300 บาท
- แผ่นอะคริลิค หนา 3 มม. สีดำ ขนาด 30×40 ซม. x 1 = 67 บาท
- แผ่นอะคริลิค หนา 3 มม. สีใส ขนาด 30×40 ซม. x 1 = 67 บาท
- คัตเตอร์ตัดอะคริลิค x 1 = 220 บาท
- สายไฟสำหรับเชื่อมจอ E-paper
เริ่มประกอบร่างเลย
ผมเริ่มจากร่างวงจรเชื่อมต่อระหว่าง Pi Pico W กับจอ E-paper ทั้ง 7 ตัว โดยดูจากตารางที่ทำไว้จะได้ไม่หลงต่อผิด
ผมตัดบอร์ดไข่ปลาตามขนาดที่ต้องการและค่อยๆ บัดกรีสายไฟเชื่อมต่อ pin ระหว่าง pi pico กับจอ e-paper ตามในตารางที่ทำไว้
หลังจากที่ประกอบทุกอย่างเสร็จแล้วก็จะได้หน้าตาประมาณนี้ ส่วนของแผ่นอะคริลิคผมไม่ได้ถ่ายรูปตอนทำไว้ เพราะตอนที่ทำเจอปัญหาเนื่องจากผมไม่มีเครื่องตัดที่ดี ใช้แค่คัตเตอร์ตัดแผ่นอะคริลิคก็เลยทำให้การตัดนั้นยาก แต่ก็พยายามทำให้ได้ออกมาใกล้เคียงกับ
ภาพในหัว
มาเขียนโค๊ดกันต่อ
ผมเริ่มด้วยการดูจากเว็บ www.instructables.com ซึ่งมีวิธีการต่อ PI pico w
กับ E-paper display ได้ ในเว็บได้แนะนำวิธีการตั้งแต่การติดตั้ง Program Thonny ใน Windows เพื่อใช้เขียนโปรแกรมและ upload ไปที่ pi pico ได้เลย ซึ่งผมก็ลองดาวน์โหลด Example script มาแล้วลอง upload เข้าไปที่ pi pico ดูก่อนเพื่อจะเช็คว่าสายไฟที่เชื่อมต่อถูกต้องรึเปล่า ซึ่งก็มีผิดพลาดในบางจอที่สัญญาณไม่เข้าเพราะผมต่อผิด pin เลยต้องกลับไปนั่งบัดกรีแก้ไขมันอีกนิดหน่อย
Source code : https://github.com/oamizo/oamiclk