วันเสาร์ที่ 14 กุมภาพันธ์ พ.ศ. 2558

วิทยุ FM จาก AR1010 (โปรโตบอร์ด)

ผมได้โมดูลเครื่องรับวิทยุ FM AR1010 มานานแล้ว (ไม่น้อยกว่า 3 - 5 ปี) จำไม่ได้ด้วยซ้ำว่าซื้อจากไหน แต่ก็ไม่มีโอกาสเอามาต่อวงจรให้เสร็จสักที ที่สำคัญคือโมดูลนี้หา Datasheet ยาก แม้แต่จากเว็บของ SparkFun เองก็ระบุว่าต้องติดต่อไปจึงจะให้ จนเดี๋ยวนี้โมดูลนี้เขาเลิกขายกันไปแล้ว คิดว่าสาเหตุหลัก ๆ ที่ทำให้ไม่ได้ลงมือทำซักทีก็คงจะเป็นเรื่องเวลา
ตอนนี้เวลามีแล้ว รื้อ ๆ ค้น ๆ ในกล่องเจอเจ้าโมดูลนี้ก็เลยคิดว่าจะลองทำดู ไหน ๆ ก็อุตส่าห์ซื้อมาแล้ว แม้ว่าการเอาไปทำโปรเจ็คแล้วคงไม่มีมูลค่าเพิ่มอะไร เพราะวิทยุ FM เดี๋ยวนี้ถูกมาก แต่ถ้าทิ้งไว้ก็จะเสียของไปเปล่า ๆ อย่างน้อยถ้าออกแบบเองอยากได้อะไรก็คงจะทำได้ (ล่ะมั้ง)

สุดท้ายก็เลยทำแบบง่าย ๆ คือให้มีคุณสมบัติดังนี้
  • แสดงตัวเลขความถี่ของสถานีทาง 7-Segment 4 ตัว
  • มีปุ่มควบคุม 2 ปุ่มคือเลื่อนสถานีขึ้นและลง โดยข้อจำกัดของโมดูลเลยทำให้เลื่อนได้ทีละ 0.1 MHz เรื่องนี้มีข้อเสียคือจะจูนหาสถานีเช่น 92.25 MHz ไม่ได้
  • เจ้าปุ่ม 2 ปุ่มนั้นถ้ากดค้างเกิน 0.5 วินาทีจะกลายเป็นการค้นหาสถานีอัตโนมัติในทิศทางเลื่อนขึ้นหรือเลื่อนลงแล้วแต่ว่าปุ่มที่กดเป็นปุ่มไหน
  • ให้สัญญาณเสียงสเตริโอปรับระดับเสียงได้ด้วยโวลุ่มตัวเดียว
เนื่องจากอยากทำให้เสร็จเร็ว ๆ เลยหาไลบรารีจากคนอื่นมาใช้ (สารภาพตรง ๆ ว่าถ้าต้องเขียนเองคงไม่เสร็จ) ไลบรารีที่ใช้มีดังนี้
  • ควบคุมการแสดงผล LED 7-Segments ด้วย SevSeg โดย Dean Reading
  • ควบคุมการทำงานของ AR1010 ด้วย AR1010lib โดย Adam Jansch
  • ตรวจการกดปุ่มว่าเป็นการกดค้างหรือกดปล่อย ได้ไอเดียจาก Arduino Forum
บล๊อกไดอะแกรมการทำงานก็เรียบ ๆ ดังรูป
จากคำอธิบายในไลบรารีที่ใช้ประกอบกับแนวทางการทำงาน ก็ต่อวงจรบนโปรโตบอร์ด ใช้เวลาช่วงเย็นหลังเลิกงานง่วนอยู่สัก 2 - 3 วันก็เสร็จ เสาอากาศไม่ได้ต่อไว้ยาวเลยรับได้แค่บางสถานีเท่านั้น แต่เสียงดีใช้ได้ทีเดียว


พอวงจรบนโปรโตบอร์ดทำงานได้ ก็เลยเอามาเขียนลายวงจร โปรแกรมที่ใช้คือ KiCad ซึ่งก็ไม่ได้ใช้มานาน ต้องขุดความทรงจำกันพอสมควร แต่จะทิ้งไว้ก็จะกลายเป็นโปรเจ็คไม่เสร็จก็จะไม่ดี ก็เลยพยายามทั้งสร้างไลบรารีอุปกรณ์ใหม่ หัดใช้บัส ฯลฯ ก็ได้ลายวงจรมาดังรูป
ในเมื่อยังไม่ได้ทำแผ่นวงจรพิมพ์ ตอนนี้ก็ทิ้งวงจรไว้บนโปรโตบอร์ดไปก่อน ทำเป็นเงื่อนไขไว้ว่าถ้าไม่ทำแผ่นวงจรพิมพ์ให้เสร็จก็จะเอาโปรโตบอร์ดไปทำอย่างอื่นไม่ได้ จะได้บังคับใจให้ทำให้เสร็จให้ได้ และถ้าเสร็จเมื่อใดก็จะเอามาบันทึกไว้ที่นี่เช่นเคย