คลังเก็บรายเดือน: กรกฎาคม 2016

รีโมทควบคุมหุ่นยนต์

2wheels-3

วันก่อนทดลองประกอบโครงรถหุ่นยนต์ที่จำหน่ายในร้าน ioteshop การควบคุมมอเตอร์ก็ใช้ arduino ร่วมกับโมดูล tb6612fng ก็ง่ายดีครับ หากเป็นระบบอัตโนมัติ เช่น หุ่นยนต์เดินตามเส้น ก็ใช้เซนเซอร์อินฟราเรดในการตรวจจับเส้นเพื่อนำทาง แต่พอมาคิดว่าอยากจะมีรีโมทควบคุมมันได้เนี่ยก็มองหา โซลูชั่น หลายๆอันดู เช่น

  1. จอยต่อกับโมดูล nrf24l01
  2. wifi to serial
  3. bluetooth
  4. raspberry pi

1 กับ 2 ก็น่าสนใจ ติดตรง ต้องหาจอยมาใช้ร่วมกัน ขอหาก่อน
3 กับ 4 นี่ คิดถึง wiimote ขึ้นมา wiimote เป็น HID device (เหมือนเมาส์ คีย์บอร์ด จอยสติ๊ก) ใช้ bluetooth ในการสื่อสาร มันมีประเด็นขึ้นมาให้เลือกคือ

A. ถ้าเลือกใช้ arduino ต่อ จะคุยกับ HID bluetooth device ได้ ต้องมี USB host shield และ bluetooth USB dongle วิธีนี้โค้ดที่เคยเขียนควบคุมมอเตอร์ไม่ต้องเปลี่ยน

B. ถ้าเลือกใช้ raspberry pi แทน มี usb port ให้เสียบ bluetooth dongle หรือ ถ้าเป็น pi 3 ก็มีให้เลย(แต่แค่ควบคุมหุ่นยนต์ ไม่น่าใช้ น่าจะเปลืองแบตกว่า pi1 หรือ pi2) แต่ ต้องหาทางควบคุมทิศทางและความเร็วของมอเตอร์ ซึ่งถ้าจะใช้ hardware ก็ง่าย มีบอร์ด pwm เช่นของ adafruit เอามาต่อใช้ หรือถ้าจะเป็น software ก็ใช้ pi-blaster ซึ่งใช้ DMA ในการควบคุม เท่าที่ดูก็มีความแม่นยำโอเค

อืม ตกลงว่า ลองข้อ A ก่อนละกัน น่าจะง่ายที่สุด bluetooth usb dongle ก็มีอยู่แล้ว เหลือสั่ง usb host shield มาเท่านั้น

แต่ถ้าของมาช้า ก็อาจจะลอง B ก่อน ไว้จะมาอัพเดต ตอนต่อไป

อัพเดต พอดีไปเจอ joystick shield สามารถใช้ร่วมกับ nrf24l01 และ arduino ทำเป็นรีโมทคอนโทรลได้ ก็เป็นอีกหนึ่งทางเลือกครับ

RFID overview

พอดีจะใช้งาน RFID หลายๆแบบ ก็เลยต้องทบทวนความรู้กันนิดหน่อย ส่วนใหญ่เอามาจาก http://www.idautomation.com/barcode-faq/rfid/ และ http://blog.atlasrfidstore.com/

RFID (Radio Frequency Identification) เอามาใช้งานในด้าน ระบุตัวตน, access control เดี๋ยวนี้เอามาใช้งานหลากหลายขึ้น เช่น เก็บค่าทางด่วน, logistics, supply chain

ชนิดของ tag แบ่งตามความถี่ที่มันทำงาน

  • Low frequency, or LF, (125 – 134 kHz)
  • High frequency, or HF, (13.56 MHz)
  • Ultra-high frequency, or UHF, (433, and 860-960 MHz)

LF, HF, UHF ต่างก็มีข้อดี ข้อเด่นต่างกันไป เช่น LF ทะลุผ่านแผ่นโลหะบางๆได้ แต่ระยะการอ่านก็ได้เพียงสั้นๆ ส่วน UHF อ่านเขียนความเร็วสูงกว่า ระยะไกลกว่า แต่ก็ถูกลดทอนได้ง่ายกว่า

การเก็บข้อมูลใน tag แบ่งเป็น 3 ชนิด
class 0 – data ถูก encoded หรือ เขียนลงไป จากโรงงาน เรียกว่าเป็น read-only tag
class 1 – เอามาเขียนเองได้ แต่ได้แค่ครั้งเดียว เรียกอีกแบบ ว่า GEN1
class 1 GEN 2 EPC – อ่านเขียนได้หลายครั้ง มีฟีเจอร์เพิ่มเติมเข้าไปได้ เช่น lock after write, CRC read verification

ข้อดีของการใช้ RFID นั้นมีเยอะ ดูได้จากการเอามาใช้งานในหลายด้าน มาดูข้อเสียดีกว่า

ข้อเสีย

  1. เนื่องจากมันใช้สัญญาณวิทยุ ดังนั้น ถ้ามีการรบกวนเกิดขึ้น การอ่านก็จะทำไม่ได้ คือ มองไม่เห็น tag นั่นคือเรื่องของความแม่นยำของข้อมูล เช่น ในโกดัง ถ้าอ่านไม่เจอ tag อาจไม่ได้หมายความว่ามันไม่ได้อยู่ที่นั่นก็ได้ อาจจะโดนอะไรบังหรืออยู่ในตำแหน่งที่เครื่องอ่านไม่สามารถอ่านได้
  2. สาเหตุเดียวกับข้อแรก มันก็อาจจะถูกดักจับข้อมูล โดยผู้ไม่หวังดีได้

ชนิดของหน่วยความจำใน GEN 2 tag แบ่งได้เป็น 4 ชนิด คือ

  1. reserved – เอาไว้ เก็บ access และ killing password
  2. EPC – มีขนาดทั่วไปอย่างน้อย 96 bits เอาไว้เก็บ Electronics Product Code ตามชื่อมันนั่นเอง
  3. TID – เก็บ tag ID เปลี่ยนแปลงไม่ได้
  4. user – เป็น memory ส่วนที่เพิ่มเติมเข้า ให้ user สามารถเก็บข้อมูลลงไปเพิ่มเติมได้ ขนาดก็มีได้หลายขนาด เช่น 1k, 4k หรือ 8k bytes