อันดับแรกซื้อ GPS EM-506 แต่ Shield ใช้กับรุ่น 501 ซึ่งเป็นแบบ Chip แต่ก็มีพอร์ตสำหรับต่อกับ EM-406 (พิมพ์ติดไว้กับแผ่นวงจรพิมพ์ ก็คาดว่ารุ่นใหม่ก็ยังใช้ได้)
ระหว่างที่ซื้อก็ลังเลกับ GPS ของ Grove ที่มีขนาดเล็กกว่า และมีช่องเสียบสายอากาศที่เป็นแบบ Active ใช้ไฟเลี้ยง 3 V ด้วย แต่ก็เลือกซื้อ EM-506 ที่แพงกว่า ประมาณ 500 บาท เพราะต้องการใช้ Shield ของ Sparkfun ด้วย
จากนั้นก็ซื้อ Module SD Card เพื่อเอามาบันทึกตำแหน่ง และเก็บข้อมูลอ้างอิง ก็เลือกของ SEEED STUDIO ซึ่งดูแล้วมีความสวยงามลงตัว แต่ก็ลังเลกลัวไม่คุ้ม เพราะถ้าเป็น Shield ของ ADA Fruit จะมี RTC ติดมาด้วย ทำให้ไม่ต้องเพิ่มโมดูลนาฬิกา และที่สำคัญ SD ของ ADA Fruit มีขา CD ให้ใช้งาน เพื่อตรวจสอบเวลาถอด SD Card ออกก็ให้แจ้งสถานะทางหน้าจอได้ทันที (สรุปแล้ว SD Card ของ Seeed Studio ไม่คุ้มที่จะนำมาใช้งาน)
Shield GPS ของ Spark fun สำหรับใส่ EM-501 |
ซ้ายมือสุด SD Card ของ Seeed Studio ซึ่งถือว่าไม่คุ้ม แพงกว่าตัวอื่น และไม่มี RTC และไม่มีขา CD |
หลังจากที่ได้อุปกรณ์ก็มาเขียนโปรแกรม และจัดการแสดงผลโดยเลือกเอาจอ OLED ขนาด 128x64 ของ
จอ OLED 128x64 คล้ายๆ ของ ADA Fruit แต่จา VCC และ GND จะสลับกัน |
สุดท้ายได้ไลบรารีมาจากผู้ขาย (ขอบคุณ Thaieasyelec.com ไว้ ณ ที่นี้) การใช้ Global Varible ลดจาก 80% มาอยู่ที่ 4-50% ทำให้ระบบไม่รวนสักนิด
ปัญหาหลักประการหนึ่ง คือ SD Card ของ Seeed Studio ไม่มี RTC จึงแสดงเวลา วันที่ จาก GPS โดยตรง ซึ่งค่อนข้างแม่นยำ ถ้าตราบใดที่ยังมีสัญญาน GPS ตามปกติ และบ่อยครั้งที่ต้องอยู่ใต้อาคารที่จอดรถหลายๆ ชั้น ทำให้นาฬิกาและวันที่เพี้ยนไปทันทีทันใด
สรุปชุด GPS ตัวนี้ทำต้นแบบเสร็จแล้ว รวมราคาประมาณ 1750+490+490+590 บาท (GPS+Sheild+SD Card Shield+UNO R3)
จากนั้นก็คิดถึงเรื่องการนำเอาข้อมูลไปเก็บไว้ส่วนกลาง หรือที่ไหนสักแห่งก็คิดถึงโมดูล 3G แต่ดูราคาของชุดทดลองที่ดีๆ แล้วราคาตก 5-6 พันบาท ตอนแรกจะสั่งบอร์ดจีนราคาพันกว่าบาท (หลักร้อยก็ยังมี) แต่ดูแล้วคงต้องใช้เวลานาน จึงตัดสินใจไปที่ Thaieasyelec อีกตามเคย ครานี้ได้บอร์ด GPS/GPRS/3G ที่วีนัสซัพพลายหรือ Thaieasyelec ผลิตขึ้นมาเอง ราคาตกอยู่ 2,650.-
ก็เสี่ยงซื้อมา และที่หนักใจคือ มีแต่คู่มือการต่อขาต่างๆ พร้อมกับคำสั่ง AT Command พอประมาณ แต่ไม่มีไลบรารี่และตัวอย่างสำหรับ Arduino เลย ก็ถามคนขายหลายครั้งว่า เขียนใน Arduino ได้แน่นอนนะ และสอบถามวิธีการคร่าวๆ ไว้ พร้อมออกตัวก่อนว่า หากติดขัดอะไรจะรบกวนสอบถาม และอาจจะถามเยอะหน่อยนะ
หนึ่งคืนผ่านไปหลังจากขลุกอยู่กับบอร์ดทดลองตัวนี้ ย่างเข้าคืนที่สองก็เจอปัญหาจนเกือบจะท้อ พยายามหาข้อมูลก็มีอยู่น้อยนิด ประติดประต่อ ในที่สุดก็สั่งโทรออกจากบอร์ด Arduino UNO R3 และ Leonardo ได้เสียที
บอร์ด GSM/3G ของ Thaieasyelec ทดลองกับบอร์ด Arduino Leonardo |
1. ต่อบอร์ดไม่ได้ไม่ว่าจะเป็นอัตราเร็วใดๆ ก็ตาม ทั้งๆ ที่ต่อด้วย Putty ได้, ต่อได้ที่ความเร็ว 115200
ปัญหานี้ไปค้นพบว่าบอร์ด Arduino จะมีเพียงบางขาเท่านั้นที่สามารถใช้งานเป็น Tx และ Rx ได้ ของบอร์ด Leonardo จะใช้ได้คือ ขา 7 (เป็น Rx เท่านั้น) ขา 8, 9, 10 และ 11 นอกจากนี้ใช้ไม่ได้ (หลายๆ ตัวอย่างใช้ขา 2, 3)
2. หลังจากต่อได้แล้วก็เจอปัญหาใหม่ คือ ส่งข้อมูลไปที่บอร์ด GSM แต่มักจะได้ข้อมูลขยะ และข้อความเพี้ยนๆ กลับมา
ข้อความที่ได้รับจากบอร์ด GSM มักจะไม่สมบูรณ์ |
3. การอ่านค่าที่ได้รับจากบอร์ดมักจะมีอักขระพิเศษต่อท้ายเสมอ ดังนั้นจึงต้องตรวจสอบ และตัดทิ้งก่อนเอาข้อความที่ได้รับไปใช้งานหรือตรวจสอบอื่นๆ
ถึงตอนนี้ค่อยผ่อนคลายลงมาบ้างแล้ว ก่อนหน้านี้เครียดมากที่ซื้อมาแล้วไม่คุ้มใช้งาน เพราะการรับส่งข้อมูลจาก Controller มักจะส่งครั้งละไม่มาก ดังนั้นไม่จำเป็นต้องใช้ 3G ก็ยังไหว ราคาบอร์ดก็ถูกลงครึ่งต่อครึ่ง
ชุดที่สองนี้ราคา บอร์ด UC15 ราคา 2,650 บาท
และคงต้องลดขนาด เพิ่มประสิทธิภาพอื่นๆ ลงไปอีก จริงๆ แล้วก็เจอปัญหาอื่นๆ อีก แต่จะกลับมาอัพเดทเพิ่มเติมภายหลังครับ
ต้นแบบ GPS พิกัดนี้กำลังจอดรอแม่บ้านซื้อกับข้าวที่ตลาด กม. 11 พิกัดตรงพอดี |
ภาพแสต็กของ Arduino UNO R3+SD Card+GPS Shield และจอ OLED |
Chip UC15 ของ Quectel 3G ดาวน์โหลด 3.6MBps แต่อัพโหลดได้แค่ 384kBps |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น