หน้าเว็บ

วันเสาร์ที่ 28 พฤษภาคม พ.ศ. 2554

TinyOS บน Ubuntu Linux

เมื่อก่อนจะเห็นแต่คอมพิวเตอร์ส่วนบุคคลเท่านั้นที่มีระบบปฎิบัติการ (Operating system: OS) เช่น ระบบปฎิบัติการวินโดน์ ระบบปฎิบัติการลีนุก เป็นต้น

แต่เดียวนี้ในระบบสมองกลฝังตัว (Embedded System) ก็มีการใช้ระบบปฎิบัติการอย่างแพร่หลาย ที่คุ้นหูกันที่สุดคือระบบปฎิบัติการแอนดรอยสำหรับมือถือ การมีระบบปฎิบัติการทำให้โปรแกรมเมอร์สามารถเขียนโปรแกรมหรือแอปพลิเคชันได้โดยไม่ต้องมีความรู้ลึกซึ้งเกี่ยวกับฮาร์ดแวร์ซึ่งต่างกับการพัฒนาโปรแกรมสำหรับมือถือแบบเก่า ทำให้การเขียนโปรแกรมง่ายและหลากหลายขึ้น มือถือทุกวันนี้ก็เลยทำงานได้หลากหลายมากกว่าเมื่อก่อน

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


เพื่อเตรียมไว้สำหรับวันนั้น TinyOS ซึ่งเป็นระบบปฎิบัติการโอเพ่นซอร์สสำหรับเครือข่ายเซ็นเซอร์ไร้สายจึงถูกนำเสนอในบล๊อกแห่งนี้ โดยทิ้งเรื่องของการพัฒนาฮาร์ดแวร์ให้มีราคาถูกลงไว้เป็นโจทย์ต่อไป (ซึ่งใน 20 ปีข้างหน้าอุปกรณ์พวกนี้น่าจะมีประสิทธิภาพและราคาถูกลงกว่านี้อีกพอสมควร)

ในการพัฒนาโปรแกรมสำหรับไมโครคอนโทรเลอร์ซึ่งมีหน่วยประมวลผล (CPU) และหน่วยความจำ (RAM) ที่น้อยมากเมื่อเทียบกับคอมพิวเตอร์ส่วนบุคคล จึงไม่สามารถทำได้ง่ายๆเหมือนที่เราเขียนโปรแกรมให้ทำงานบนเครื่องคอมพิวเตอร์

ดังนั้นในการพัฒนาโปรแกรมสำหรับไมโครคอนโทรเลอร์จึงต้องทำบนเครื่องคอมพิวเตอร์ส่วนบุคคล แล้วค่อยโอนย้ายไปไว้บนไมโครคอนโทรเลอร์

บทความตอนนี้จึงขอนำเสนอเรื่องการสร้างสิ่งแวดล้อมในการพัฒนาโปรแกรมสำหรับ TinyOS บนคอมพิวเตอร์ส่วนบุคคล

อีกเรื่องนี้หนึ่งที่ควรพิจารณาก็คือ ใน 20 ปีข้างหน้า วันนั้นคนไทยอาจจะไม่ได้ใช้ระบบปฏิบัติการวินโดน์เถื่อนได้อย่างทุกวันนี้ เพื่อป้องกันเรื่องการละเมิดลิขสิทธิ์ คอมพิวเตอร์ที่จะใช้ในการพัฒนาโปรแกรมสำหรับ TinyOS ในบล๊อกแห่งนี้จึงใช้ระบบปฏิบัติการเสรีที่ชื่อว่า Ubuntu Linux (สามารถศึกษาการใช้ Ubuntu Linux ได้เพิ่มเติมที่ http://www.kasetporpeang.com/forums/index.php?topic=10936.0)


เนื้อหาการสร้างสิ่งแวดล้อมในการพัฒนาโปรแกรมสำหรับ TinyOS บน Ubuntu Linux นี้ผมเอามาจาก http://docs.tinyos.net/index.php/Getting_started_using_Ubuntu_9.10_and_TelosB_motes

เริ่มจาก เปิดเทอร์มินัล (หน้าต่างสำหรับพิมคำสั่งของ Ubuntu) แล้วก็ทำตามขั้นตอนนี้ครับ
หมายเหตุ: อักษรตัวเอียงคือคำสั่งที่จะต้องพิมพ์ในเทอร์มินัล
1. พิมพ์คำสั่ง sudo gedit /etc/apt/sources.list 
2. จะมีไฟล์เท๊กเปิดขึ้นมา ให้พิมพ์ข้อความต่อไปนี้ลงไปในส่วนท้ายของไฟล์
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu hardy main 
deb http://hinrg.cs.jhu.edu/tinyos oneiric main
หลังจากนั้นก็บันทึกแล้วปิดไฟล์
3. กลับมาที่เทอร์มินัลแล้วพิมพ์คำสั่ง sudo apt-get update 
4. พิมพ์คำสั่งเพื่อลง TinyOS เวอร์ชัน 2.1 ดังนี้ sudo apt-get install tinyos-2.1.0
5. เมื่อลงเสร็จ พิมพ์คำสั่ง sudo gedit ~/.bashrc
6. จะมีไฟล์เท๊กเปิดขึ้นมา ให้เพิ่มข้อความดังต่อไปนี้ในไฟล์นั้น 
source /opt/tinyos-2.1.0/tinyos.sh
export TOSROOT=/opt/tinyos-2.1.0
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
export MAKERULES=$TOSROOT/support/make/Makerules
export PYTHONPATH=$TOSROOT/support/sdk/python
หลังจากนั้นก็บันทึกแล้วปิดไฟล์
7. กลับมาที่เทอร์มินัลแล้วพิมพ์คำสั่ง source ~/.bashrc

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น