SerialServer, ส่วนเพิ่มเติมใน Arduino
Sunday 26 October 2008 – 12:00
โดย Dan O’Sullivan
SerialServer ทำหน้าที่รับและส่งข้อมูลระหว่าง SOCKET กับพอร์ตอนุกรม (COM port) ซึ่งประยุกต์ใช้ร่วมกับซอฟต์แวร์อื่นๆ เช่น Macromedia (Adobe) Flash หรือโปรแกรมที่ติดต่อกับ SOCKET port ผ่าน IP address ได้ ซึ่งทำให้สามารสร้างโปรแกรมประยุกต์เพื่อรับส่งข้อมูลกับระบบฮาร์ดแวร์หรือบอร์ดควบคุมภายนอกได้ง่ายดาย และสะดวกมากยิ่งขึ้น
สำหรับผู้ใช้ Windows ทางทีมงาน AvrIDE.com ได้สร้างไฟล์ติดตั้งเพิ่มเติม โดยทำการติดตั้งและกำหนดค่าอัตโนมัติเบื้องต้นเอาสำหรับใช้ร่วมกับ Arduino เท่านั้น ได้รวมรวมเป็นแพ็กเก็จไฟล์ติดตั้งที่ AvrIDE.com นี้เท่านั้น http://www.avride.com/pop/store/SerialServerSetup.exe
ขณะติดตั้ง ให้เลือกไปยังโฟลเดอร์ Arduino ที่เคยติดตั้งเอาไว้บนเครื่องแล้ว, เมื่อติดตั้งถูกต้อง จะสามารถเรียกโปรแกรม SerialServer ได้จากไอคอนใน Start Menu
สำหรับผู้ใช้ MacOS X (Intel) ดาวน์โหลด http://www.avride.com/pop/store/ss6mac.zip แล้วแตกไฟล์ในเครื่อง แนะนำให้ไว้ที่เดียวกับ Arduino
จากนั้นก็อปปี้ไฟล์ RXTXcomm.jar และ libSerial.jnilib ไปยังโฟลเดอร์ /Library/Java/Extensions/.
สำหรับผู้ที่ใช้ตัวแปลง FTDI USB Serial เช่น UCON-232S ที่ยังไม่ได้ติดตั้งไดร์เวอร์มาก่อน สามารถดาวน์โหลดได้ที่นี่ครับ
http://www.ftdichip.com/Drivers/VCP/MacOSX/UniBin/FTDIUSBSerialDriver_v2_2_10.dmg
หรือเรียกจากโฟลเดอร์ Driver ใน Arduino-0012 Mac ก็จะมีไฟล์นี้ด้วยเช่นกัน (Intel ใช้จะ 2.2.10)
จากนั้นให้ทำการเรียกแพ็กเก็จ ติดตั้งไดร์เวอร์ เมื่อติดตั้งเรียบร้อย จะต้องรีสตาร์ทเครื่องใหม่
หลังจากบูตเครื่องเรียบร้อย ให้ต่อตัวแปลง FTDI USB Serial, UCON-232S กับเครื่อง ไฟแสดงสถานะบนตัวแปลงจะต้องติดสว่าง
แล้วเรียก System Preferences -> Network จะพบไดอะลอกแจ้งว่ามีอุปกรณ์ใหม่ชื่อ FT232R USB UART ให้คลิก Confirm เพื่อเพิ่มเข้าไปในรายการ แล้วกด Apply
จากนั้นให้เปิด Application -> Utility -> Terminal
เพื่อทำการปรับแต่งโฟลเดอร์ระบบเล็กน้อย เพื่อป้องกันปัญหาข้อความแจ้งว่าพอร์ตถูกเปิดอยู่แล้ว (issue 081025) และไม่สามารถใช้งานได้ ดังรูป

เนื่องจาก permission ของผู้ใช้ไม่สามารถใช้งานโฟลเดอร์ /var/spool/uucp ได้ และเครื่องที่ติดตั้งใหม่จะไม่มีโฟลเดอร์ /var/lock (การตั้งค่านี้ ทำเพียงครั้งเดียวครับ หรือถ้ามีการใช้ diskutil repairpermissions / ก็อาจต้องปรับใหม่อีกครั้งครับ)
ให้เปิด Terminal แล้วพิมพ์คำสั่งแก้ไขดังนี้
sudo su
ให้ใส่ password ของผู้ใช้เพื่อเข้าถึงการแก้ไขระบบ
จากนั้นทำการแก้ไข permission ดังนี้
chmod 755 /var/spool/uucp
แล้วทำการเปลี่ยน owner ดังนี้
chown root:wheel /var/spool/uucp
จากนั้นให้สร้างโฟลเดอร์ /var/lock (ปกติถ้าเป็นเครื่องที่ติดตั้งใหม่จะไม่มีโฟลเดอร์นี้ แต่ถ้ามีอยู่แล้วให้ข้ามไป) ดังนี้
mkdir /var/lock
แล้วปรับ permission ให้สามารถทำงานได้อิสระ
chmod 777 /var/lock
เป็นอันเรียบร้อย ทดลองเรียก ss6.jar เพื่อรัน Serial Server สถาะบนโปรแกรมจะต้องเป็น <OK> ก็สามารถใช้งานได้ตามปกติครับ

สำหรับผู้ใช้ Linux ได้รวมไฟล์ที่จำเป็นไว้ที่นี่ ดาวน์โหลด
http://www.avride.com/pop/store/ss6linux.tar
ให้ก็อบปี้ librxtxSerial.so กับ RXTXcomm.jar ใน lib ของ Arduino ไปยัง lib/ext ของโฟลเดอร์ Java runtime ของระบบ
ขึ้นอยู่กับรุ่นที่ระบบใช้อยู่ (ต้องการ root permission) เช่น
$ sudo cp RXTXcomm.jar /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext
$ sudo cp librxtxXSerial.so /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext
เข้าไปยังโฟลเดอร์ที่ ss6.jar เก็บอยู่ จากนั้นเรียกโปรแกรมบนคอนโซลเพื่อใช้งาน ดังนี้
$ java -jar ss6.jar
ss6.jar จากเว็บผู้พัฒนา Dan O’Sullivan : http://itp.nyu.edu/~dbo3/SerialServer/SerialServer.html
แก้ไขล่าสุด 2008-11-02 < วรพจน์ >












