Login | thai-learning | Privacy Policy | About Us |

Thai Learning | ทฤษฎี IS ขั้นสูง | เว็บไทย | สารสนเทศวิทยานิพนธ์ | หนังสือรามคำแหงทั้งหมด | อีอ็อกชั่น | เกี่ยวกับผู้จัดทำ | บทกลอน |
วิชาที่เรียน 1/2555
   เมนูหลักวิชาเรียน 1/2555
   การโปรแกรมเว็บสารสนเทศ ฯ
   การโปรแกรมงานภูมิศาสตร์ ฯ
   โปรแกรมสำหรับงานสารสนเทศ
   อินเตอร์เน็ตและการบริการ สารสนเทศบนเว็บ
   บรรยากาศ เทอม 1-2555
โปรแกรมที่ผมพัฒนาครับ
   เมนูหลักโปรแกรมที่ผมพัฒนา
   ถอดรหัสผ่าน M$-Access
   ระบบการเข้าเรียนและให้คะแนน
   การทำงานของ Adder Logic
   ปรับระดับเสียงโวลุ่ม ด้วย CLI
   เกมส์เลื่อนภาพแสนสนุก vb6
    โปรแกรมจับเวลา การนำเสนอผลงานวิชาการ
บทความที่ผมเขียนครับ
   เมนูบทความ
   ภาษาซีสำหรับผู้เริ่มต้น
   ไมโครคอนโทรเลอร์เบื้องต้น
   ไมโครคอนโทรลเลอร์จำลอง
   การกำเนิดกระแสไฟฟ้าอย่างง่าย
   ควบคุมแรงดัน 0-220 โวลท์
   Graphics LCD ด้วย CCSC
   การออกแบบ PCB ด้วย Orcad
   การออกแบบ PCB ด้วย Protel
   ไพธอนส่งเมล์ด้วย GPRS
   ไพธอนควบคุม LCD ผ่าน LPT
   ควบคุม LPT ด้วย Labview
   อิมเมจโปรเซสซิ่ง ตอน 1/3
   อิมเมจโปรเซสซิ่ง ตอน 2/3
   อิมเมจโปรเซสซิ่ง ตอน 3/3
   ภาษาซีบนลินุกซ์สมองกลฝังตัว
   การใช้งาน MinGW เบื้องต้น
   ภาษาซี ARM-LPC2368
   ออกแบบ FPGA ด้วย Schematic
   ออกแบบ FPGA ด้วยภาษา VHDL
   ออกแบบ PCB เทคนิค Dryfilm
   เขียนโปรแกรม Python GUI
   การติดตั้ง NumPy 1.6.1
   เขียนไพธอนถอดรหัส MDB
   วิชวลเบสิค ควบคุมกล้อง
   สังเคราะห์ภาพกราฟิก pov-ray
   อิมพอร์ท MySQL ด้วย BigDump
   ติดตั้ง postgresql และ phppgadmin บน centos linux
   การใช้งานเธรดด้วยภาษา PHP
   การสังเคราะห์สีให้ไวยากรณ์ภาษา
   การสร้าง Search Engine
   เขียนไพธอน Client/Server
   การสร้างพาทิชั่นที่ใหญ่กว่า 3TB บนลินุกซ์ (Ubuntu)
   การรันสคริปต์ CGI ด้วยภาษาไพธอน
   การใช้งานคำสั่ง DD บน Ubuntu - Linux
   การใช้งาน Raspberry Pi
   การเอ็กซีคิวส์ + การจัดเรียงแอพฯในลินุกซ์
   X11 ด้วย Xming และ Putty
   TITAN5 บน Ubuntu - Linux
   รหัสจังหวัดทั่วโลก + เรดาร์
   การควบคุมเว็บบราวเซอร์ผ่าน SELENIUM ด้วยภาษาไพธอน
   การสร้างฟอนต์ด้วยตัวท่านเอง !!
   การสังเคราะห์กราฟเส้นและกราฟแท่งสวยงาม ด้วย PHP
โปรแกรมภาษา
   เมนู VB-Classic
   ฟังก์ชั่น Visual Basic
   คำสั่ง Visual Basic
   ตัวแปรภาษาไพธอน (ขั้นสูง)
   โมดูลต่าง ๆ ภายในภาษาไพธอน
ข่าวสารไอที
   กูเกิ้ลเปิดตัว Tablet 7 นิ้ว
   อินเดีย IIT เปิดตัว Tablet
   RaspBerry PI สมองกลฝังตัว
   คอมพิวเตอร์จิ๋ว
   ประกาศจัดซื้อจัดจ้างราชการไทย
บริการสารสนเทศ
   ไทยเว็บ 2012
   เว็บไทย
   ฐานข้อมูล วิทยานิพนธ์
   รวมคำศัพท์ภาษาไทย
   เคยฟังมั้ย - เพลงมาร์ช มมส
   ประวัติศาสตร์ชาติไทย หลวงปู่ฤาษีลิงดำ
   เพลงน้อมใจปล่อยวาง 1
   เพลงน้อมใจปล่อยวาง 2
   เพลงน้อมใจปล่อยวาง 3
เกี่ยวกับเรา
   เกี่ยวกับผู้ก่อตั้ง
   บทกลอนที่ผมแต่งครับ..
   แลกลิงค์กับเรา ที่นี่
   รายละเอียดแม่ข่าย
   ดาต้าเซนเตอร์ (Data Center)
   เงื่อนไขการใช้งาน

  
 
การใช้งาน Raspberry Pi สำหรับผู้เริ่มต้น
เขียนโดย อ.จักรกฤษณ์ แสงแก้ว สาขาสารสนเทศศาสตร์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยมหาสารคาม
เขียน 23:47 น. วันที่ 10 มกราคม 2556

บทนำ
วันนี้นำท่านศึกษาการใช้งาน Raspberry Pi ซึ่งเป็นคอมพิวเตอร์ในบอร์ดเดียว (Single Board Computer) พัฒนาขึ้นในประเทศสหรัฐอเมริกา โดย Raspberry Pi Foundation ภายใต้การทำงานขององค์ไม่หวังผลกำไร สร้างคอมพิวเตอร์ในบอร์ดเดียวเพื่อใช้สำหรับการสอนและสำหรับเรียนของนักศึกษาในสาขา Computer Science การจำหน่าย Raspberry Pi ได้ลิขสิทธิ์ร่วมระหว่าง Element 14 และ RS Electronics จำหน่าย Raspberry Pi ทางออนไลน์



Raspberry Pi ได้ใช้ชิป Broadcom BCM2835 (SoC : System on Chip) ซึ่งทำงานกับซีพียู ARM1176JZF-S ความเร็ว 700 MHz, ใช้หน่วยประมวลผลกราฟิก VideoCore IV GPU, หน่วยความจำ 256 MB เวอร์ชั่นใหม่ใช้ 512 MB มีสองรุ่น $25 เหรียญ และ $35 เหรียญ ผู้สร้าง Raspberry Pi ได้ใช้ Debian และ Arch Linux ARM และวางแผนให้สนับภาษาไพธอนเป็นภาษาหลักในการควบคุม Raspberry Pi นอกจากนั้นสามารถใช้งานภาษาเบสิก BBC Basic บนระบบปฏิบัติการ RISC OS, ภาษาซี , ภาษา Perl ได้ด้วย

ความแตกต่างของ Raspberry Pi กับ Android Mobile
ความแตกต่างมี 2 ประเด็น คือ
1. ระบบปฏิบัติการที่ใช้งานสำหรับบอร์ด Raspberry Pi เป็น PC Linux ปัจจุบันนี้ได้มีนักพัฒนานำเอา Android มาติดตั้งใน Raspberry Pi และใช้งานได้
2. Raspberry Pi สามารถเชื่อมต่อกับอุปกรณ์อิเล็กทรอนิกส์ได้ผ่าน GPIO (Gerneral Purpose Input Output) ซึ่งประกอบด้วย UART, SPI, PWM และอื่น ๆ เพื่อสื่อสารกับอุปกรณ์อิเล็กทรอนิกส์ ดังนั้น ความรู้ในเรื่อง Microcontroller สามารถจบด้วยบอร์ดนี้เพียงบอร์ดเดียว ท่านสามารถเปิดมุมมองในการพัฒนาแอพลิเคชั่นทั้งฮาร์ดแวร์ / เว็บ / ฐานข้อมูลได้อย่างไม่มีขีดจำกัดในการเรียนรู้

วิศวกรผู้สร้าง Raspberry Pi
วิศวกรผู้สร้าง Raspberry Pi คือ คุณ Eben Christopher Upton ปัจจุบันอายุ 35 ปี (พ.ศ.2556) ทำงานที่บริษัท Broadcom ในตำแหน่ง Technical Director และ ASIC Architect รับผิดชอบระบบซอฟต์แวร์ทั้งหมดและสถาปัตยกรรมฮาร์ดแวร์ของอุปกรณ์ Raspberry Pi


Eben Christopher Upton

แผนภาพวงจรของ Raspberry Pi (Schematic)
หากท่านสนใจที่จะสร้างคอมพิวเตอร์ในบอร์ดเดียว (Single Board Computer) สามารถศึกษาวงจรและออกแบบเป็นวงจรอิเล็กทรอนิกส์และทำ PCB (Print Circuit Board) และลงอุปกรณ์อิเล็กทรอนิกส์ เพื่อสร้างเป็นคอมพิวเตอร์ในบอร์ดเดียวได้ เช่นกัน โดยศึกษาจากแผนภาพวงจร ต่อไปนี้


Raspberry Pi - Schematic

สั่งซื้อ Raspberry Pi ได้ที่ไหน
ท่านสามารถสั่งซื้อได้จาก http://element14.com , http://thaieasyelec.com, http://inex.co.th และ http://www.raspberrypithai.com
ปล. ราคาขายในประเทศไทย ผ่านพ่อค้าคนกลาง อยู่ที่ประมาณ $60 ถึง $83

เริ่มต้นใช้งาน
การติดตั้งระบบปฏิบัติการลงบน SDCard
ในการใช้งาน Raspberry Pi เหมือนกับการใช้งานคอมพิวเตอร์ทั่วไป เพียงแต่ท่านต้องติดตั้งระบบปฏิบัติการลงบน SDCard ซึ่งควรมีขนาดความจุตั้งแต่ 2 GB ขึ้นไป ท่านสามารถดาวน์โหลดระบบปฏิบัติการสำหรับ Raspberry Pi ได้ที่ http://www.raspberrypi.org/downloads ในบทความนี้ผู้เขียนใช้ OS-Image จากลิงค์ http://downloads.raspberrypi.org/images/raspbian/2012-12-16-wheezy-raspbian/2012-12-16-wheezy-raspbian.zip

การเขียน OS-Image ลงใน SDCard
การเขียน OS-Image ลงใน SDCard ทำได้หลายวิธี ขึ้นอยู่ความสะดวกของท่าน ผู้เขียนแนะนำ 3 แนวทางดังนี้
1. หากท่านใช้ระบบปฏิบัติการ Windows ให้ดาวน์โหลดโปรแกรม Win 32 Disk Imager ได้จากลิงค์ http://ie.archive.ubuntu.com/download.sourceforge.net/pub/sourceforge/w/project/project/wi/win32diskimager/Archive/

2. หากท่านใช้ระบบปฏิบัติการ Linux สามารถใช้โปรแกรม Usb-Imagewriter และ Gparted
$ sudo apt-get install usb-imagewriter gparted
$ imagewriter

3. ใช้คำสั่ง dd ท่านสามารถศึกษารายละเอียดเพิ่มเติมได้จากหัวข้อ การใช้งานคำสั่ง DD บน Ubuntu - Linux

การเชื่อมต่ออุปกรณ์ฮาร์ดแวร์
ผู้เขียนเชื่อมต่อ Raspberry Pi เข้ากับ LAN เพื่อต่ออินเตอร์เน็ต และจ่ายไฟ 5V จากสายชาร์ต I-Mobile ให้กับบอร์ด Raspberry Pi ดังภาพต่อไปนี้


ชื่อผู้เข้าใช้ระบบที่มาพร้อมกับ OS-Image
USERNAME : pi
PASSWORD : raspberry

การรีโมทเข้าไปยังเครื่อง Raspberry Pi ด้วย SSH

โปรแกรม SecureCRT เพื่อเชื่อมเข้าไปยังเครื่อง Raspberry Pi

การเชื่อมต่อไปยังเครื่อง Raspberry Pi ด้วย SSH ผ่าน Ubuntu Terminal


ผู้เขียนใช้ระบบปฏิบัติการ Ubuntu และใช้งาน VirtualBox เพื่อใช้ระบบปฏิบัติการวินโดวส์ภายใน Ubuntu เป็นแนวคิดของการทำ Virtualization ทำให้สะดวกในการทำงานมาก เพราะหากต้องการใช้แอพลิเคชั่นบนวินโดวส์ จะทำงานใน VirtualBox นอกจากนั้น สามารถใช้พาทิชั่นร่วมกันได้อีกด้วย ทำให้การทำงานมีความยืดหยุ่นและประสิทธิภาพสูง ดังภาพต่อไปนี้


การติดตั้ง Apache และ PHP บน Raspberry PI
หากท่านมีความสามารถใช้งาน Linux ได้ ท่านจะสามารถใช้งาน Raspberry Pi ได้เช่นเดียวกัน เพราะระบบปฏิบัติการที่ติดตั้งลงใน Raspberry Pi เป็น Debian นอกจากนั้นท่านสามารถติดตั้งระบบปฏิบัติการอื่น ๆ ได้อีกด้วย ขึ้นกับความพึงพอใจของท่าน สำหรับหัวข้อนี้จะนำท่านติดตั้ง Apache และ Php เพื่อทำงานเป็น Web Server ด้วยคำสั่งต่อไปนี้

ขั้นการติดตั้ง Apache ใช้คำสั่งดังต่อไปนี้
$ sudo apt-get install apache2

ขั้นการติดตั้ง Php5 ใช้คำสั่งดังต่อไปนี้
$ sudo apt-get install php5

ขั้นการติดตั้ง libapache2 ทำงานร่วมกับ php ใช้คำสั่งดังต่อไปนี้
$ sudo apt-get install libapache2-mod-php5

ขั้นการเปิดให้บริการเว็บเซิร์ฟเวอร์ใช้คำสั่งดังต่อไปนี้
$ sudo /etc/init.d/apache2 restart

ขั้นตอนการเขียนสคริปต์ภาษา PHP แสดงได้ดังนี้
$ cd /var/www
$ cat > index.php
<?php
phpinfo();
?>
กด Ctrl + d เพื่อบันทึกไฟล์

ผลลัพธ์จากการเปิดบราวเซอร์เพื่อเข้าถึงหน้าเว็บที่เกิดจากการประมวลผลของ Raspberry Pi ท่านสามารถใช้คอมพิวเตอร์ในเน็ตเวอร์ควงเดียวกันเปิดดูหน้าเว็บที่ใช้เครื่อง Rasppberry Pi เป็นแม่ข่ายได้ แสดงดังภาพต่อไปนี้

แม่ข่ายที่ใช้ Raspberry Pi ในตัวอย่างนี้ใช้ไอพี 192.168.1.5 ระบุตำแหน่งเครื่อง Raspberry Pi

การเชื่อมต่อกล้องเว็บแคมกับ Raspberry Pi และการบันทึกภาพจากกล้องเว็บแคม
ในหัวข้อนี้เป็นการเชื่อต่อกล้อง WebCam เข้ากับ Raspberry Pi และทำการบันทึกภาพลงบนไฟล์ ผู้เขียนเลือกใช้โปรแกรม stream ในการแก้ปัญหานี้ ทั้งนี้ยังมีโปรแกรมอีกหลายตัวที่สามารถทำงานได้ในลักษณะเดียวกันนี้ ขอให้ท่านติดตั้งโปรแกรม stream ดังนี้

1. เชื่อมต่อ WebCam เข้ากับ Raspberry PI ดังภาพต่อไปนี้



2. ขั้นตอนการติดตั้ง streamer ใช้คำสั่งดังนี้
$ sudo apt-get install streamer

3.. ขั้นตอนการบันทึกภาพนิ่ง ใช้คำสั่งต่อไปนี้
$ sudo streamer -c /dev/video0 -o /var/www/outputfile.jpeg
เมื่อ outputfile.jpeg คือ การถ่ายภาพผ่านเว็บแคมและบันทึกในไฟล์ outputfile.jpeg ท่านสามารถตั้งชื่อไฟล์ได้ตามที่ต้องการ

4. ขั้นการเปิดภาพเพื่อตรวจสอบภาพที่ได้จากกล้องเว็บแคม ในขั้นนี้ผู้เขียนได้บันทึกไฟล์ไว้ที่ /var/www ชื่อ outputfile.jpeg ดังนั้น สามารถตรวจสอบภาพผลลัพท์ผ่านเว็บบราวเซอร์ได้ดังนี้

แสดงภาพถ่ายที่ได้จากกล้องเว็บแคมและควบคุมถ่ายภาพด้วย Raspberry PI

นอกจากการถ่ายภาพนิ่งแล้ว โปรแกรม Streamer สามารถถ่ายภาพวิดีโอได้อีกด้วย ท่านสามารถบันทึกวิดีโอด้วยคำสั่งต่อไปนี้
$ streamer -t 0:0:2 -c //dev/video0 -f rgb24 -r 3 -o /var/www/outputfile.avi

หมายเหตุ : เมื่อศึกษามาถึงหัวข้อนี้ ท่านสามารถประยุกต์ใช้ Raspberry Pi ได้อย่างง่ายดาย ท่านสามารถสร้างโปรแกรมเพื่อตรวจจับสภาพการจราจร หรือภาพในสถานที่ท่านต้องการเพื่อประยุกต์ใช้ในงานที่เกี่ยวข้องกับท่านได้อย่างสะดวก รวดเร็วและมีประสิทธิภาพ

การติดตั้ง mpg123 เพื่อเล่นเพลง MP3 และเกรด็ความรู้ที่เกิดจากการศึกษาในหัวข้อนี้
ท่านสามารถติดตั้ง mpg123 ด้วยคำสั่งต่อไปนี้
$ sudo apt-get install mpg123

ขั้นการดาวน์โหลดเพลง Mp3 มาทดลองเล่นบนเครื่อง Raspberry Pi
1. กลับไปยังไดเร็คทอรี่ Home ด้วยคำสั่ง cd /home/pi หรือ cd หรือ cd ~ เมื่อคำสั่ง cd และ cd ~ เป็นการกลับไปยัง home directory ของผู้ใช้
$ cd /home/pi

2. ดาวน์โหลดไฟล์ mp3 มาเก็บไว้ที่ไดเร็คทอรี่ /home/pi ในตัวอย่างนี้ผมใช้เพลงมาร์ชของมหาวิทยาลัยมหาสารคาม ดังนี้
$ wget http://thai-learning.org/songs/march-msu.MP3
ปล. ถ้าท่านไม่สามารถดาวน์โหลดได้ โดยแสดงข้อผิดพลาดดังนี้
--2013-01-10 19:17:00-- http://thai-learning.org/songs/march-msu.MP3
Resolving thai-learning.org (thai-learning.org)... failed: No address associated with hostname.
wget: unable to resolve host address `thai-learning.org'

วิธีแก้ไขให้ท่านเพิ่มพารามิเตอร์ -4 ต่อท้ายคำสั่ง wget โดยเป็นการบอกให้ใช้ IpV4 แทน IpV6 เนื้อหาส่วนนี้เกี่ยวกับด้านเน็ตเวอร์ค ท่านสามารถศึกษาเพิ่มเติมได้ตามต้องการ
$ wget http://thai-learning.org/songs/march-msu.MP3 -4

3. เล่นเพลง Mp3 ด้วยคำสั่ง mpg123 ดังนี้
$ mpg123 march-msu.MP3

4. ท่านสามารถเล่นเพลง Mp3 ในโหมด Background Process ได้โดยใช้เครื่องหมาย & ต่อท้าย คำสั่งที่ต้องการให้ทำงานเป็น Background Process ดังนี้
$ mpg123 march-msu.MP3 &

5. หากท่านต้องการลบโพรเซสที่กำลังเล่นเพลง Mp3 ท่านต้องตรวจสอบก่อนว่า mpg123 มีหมายเลข Process ID คืออะไร จากนั้นใช้คำสั่ง kill เพื่อทำลายโพรเซสนั้นทิ้ง ดังนี้
pi@raspberrypi:~$ ps -e | grep mpg123
5765 pts/0 00:00:00 mpg123
pi@raspberrypi:~$ kill 5765
pi@raspberrypi:~$


- คำสั่ง ps เป็นการแสดงรายชื่อโพรเซสที่กำลังทำงานในขณะที่เรียกใช้คำสั่ง ps
- คำสั่ง grep เป็นการค้นหาข้อความด้วย Regular Expression (เป็นหลักการค้นหาข้อความที่มีรูปแบบ อยู่ในวิชาการเขียนโปรแกรม) จากตัวอย่างด้านบนเป็นการแสดงบรรทัดที่มีคำว่า mpg123 ซึ่งเราจะได้หมายเลข Process ID ของ Mpg123 คือหมายเลข 5765 (เป็นเลขที่ไม่เหมือนเดิมเปลี่ยนแปลงตลอดเวลาเมื่อมีการเรียกใช้งาน)
- คำสั่ง kill เป็นการทำลายโพรเซส ด้วยการระบุหมายเลขโพรเซส เมื่อคำสั่งนี้ถูกทำงานจะทำให้เพลงที่กำลังเล่นอยู่ถูกทำลายและเพลงจะยุติลงทันที

การตั้งค่า Config ให้กับ Raspberry Pi
ในการตั้งค่าอุปกรณ์ฮาร์ดแวร์ของ Raspberry Pi นั้นใช้คำสั่งต่อไปนี้

$ sudo raspi-config

ท่านจะพบหน้าต่างสำหรับการตั้งค่าต่าง ๆ ดังนี้

ในการตั้งค่าให้กับ RPi ประกอบด้วยหัวข้อต่อไปนี้
- Info เป็นข้อมูลเกี่ยวกับการตั้งค่าซึ่งเป็นรายละเอียดของโปรแกรมที่ใช้ตั้งค่านี้
- expand_rootfs เป็นการเพิ่ม Root Partition ให้เต็ม SD Card
- Overscan เป็นการเปลี่ยนตั้งโอเวอร์สแกน Enable/Disable
- change_pass การตั้งรหัสผ่านให้กับ user : pi
- change_locale กำหนดพื้นที่ประเทศ
- change_timezone กำหนดบริเวณเวลาของแต่ละประเทศ
- memory_split การแบ่งหน่วยความจำออกเป็นส่วน ๆ
- overclock ทำการเพิ่มความเร็วสัญญาณนาฬิกา สูงสุด 1GHz (ทำให้ซีพียูร้อนมากขึ้น)
- ssh อนุญาตให้ใช้ ssh server
- boot_behavior กำหนดให้บูตเข้าสู่ Desktop หรือเข้าสู่ Command lIne
- Update การอัพเดทซอฟต์แวร์ เหมือนคำสั่ง $ sudo apt-get update

การติดตั้งโปรแกรม Open Cubic Player เพื่อเล่นเพลงรูปแบบต่าง ๆ
โปรแกรม Cubic เป็นโปรแกรมเล่นเพลงรูปแบบต่าง ๆ ทั้งเพลงบรรเลง เช่น .Mod, .XM, .S3M, .IT , .MP3 และอื่น ๆ อีกมาก เป็นโปรแกรมขนาดเล็ก พัฒนาใน DOS และถูกพอร์ตมายังลินุกซ์ ในหัวข้อนี้เราจะติดตั้งโปรแกรม Open Cubic Player ดังนี้

1. การติดตั้ง OpenCubicPlayer ใช้คำสั่งดังนี้
$ sudo apt-get install opencubicplayer

2. เมื่อติดตั้งเสร็จเรียบร้อย ให้ท่านเรียกใช้ด้วยคำสั่ง ocp ดังนี้
$ ocp

3. ผลลัพธ์หน้าตาโปรแกรมแสดงดังนี้

ปล. ผู้เขียนใช้โปรแกรม putty ในการรีโมทผ่าน SSH

4. เมื่อกด Enter ที่ไฟล์ MP3 จะเล่นเพลงผ่านบอร์ด Raspberry Pi และมีกราฟิกอินเตอร์เฟสดังนี้


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

การติดตั้ง VNC Server บน Raspberry Pi และ Remote จากเครื่องภายนอกเข้าสู่ง RPi
ท่านสามารถติดตั้งโปรแกรม VNC เพื่ออนุญาตให้สามารถ Remote ไปยัง Raspberry Pi ด้วยกราฟิกโหมด ได้ ดังนี้
1. ติดตั้งโปรแกรม tightvncserver ด้วยคำสั่งต่อไปนี้

$ sudo apt-get install tightvncserver

2. เปิดบริการ Service ของ VncServer ด้วยคำสั่งต่อไปนี้


$ vncserver :1 -geometry 800x600 -depth 16 -pixelformat rgb565
เมื่อ geometry คือขนาดกว้างยาว 800x600pixel สี 16bit แบบ RGB และเลข :1 คือ จอที่ 1 ท่านสามารถเพิ่มจอ Desktop ได้ตามที่ท่านต้องการ เช่น

$ vncserver :2 -geometry 640x480 -depth 16 -pixelformat rgb565
กำหนดให้จอ Desktop ที่ 2 มีขนาด 640x480 เป็นต้น

3. เรียกใช้โปรแกรม VNC-Viewer
3.1 กรณีใช้งานใน Windows เรียกใช้โปรแกรม vnc-viewer


ป้อนรหัสผ่าน : raspberry


3.2 กรณีใช้งานใน Ubuntu ให้ติดตั้งโปรแกรม SSL/SSH VNC Viewer หรือโปรแกรมในตระกูล VNC จากนั้นเรียกใช้งานดังนี้

ให้ท่านเลือกการเชื่อมต่อแบบ None และกำหนด Host/Password [ไอพีและจอภาพที่ 1 ของ RPI:1/raspberry] และคลิ๊ก Connect เพื่อเข้าสู่หน้าจอเดสท็อปของ Raspberry Pi ดังนี้

4. หากกำหนดค่าการใช้โปรแกรม VNC ได้ถูกต้อง ท่านจะเห็นหน้าตา Desktop ของ Raspber Pi ของท่าน ดังนี้



การรู้จำตัวอักษร (OCR)
ในหัวข้อนี้แนะนำการใช้งานโปรแกรม Tesseract เพื่อถอดข้อความจากรูปภาพกราฟิก (การรู้จำตัวอักษร) ท่านสามารถสร้างรูปแบบการรู้จำภาษาใหม่ ๆ ได้ เช่นภาษาไทย โดยการเทรนให้ Tesseract รู้จักภาษาใหม่ ๆ ซึ่งอยู่นอกเหนือขอบเขตที่จะกล่าวถึงในตอนนี้ รายละเอียดประยุกต์ใช้การรู้จำตัวอักษรมีดังนี้

1. ติดตั้งโปรแกรม tesseract ดังนี้
$ sudo apt-get install tesseract

2. ดาวน์โหลดภาพตัวอย่างเพื่อใช้ถอดข้อความดังนี้
$ wget http://thai-learning.org/tutorials/raspberry-pi/raspberry-pi-27.gif -4



3. เรียกใช้โปรแกรม tesseract เพื่อถอดข้อความอักษรภายในภาพ ดังนี้
$ tesseract raspberry-pi-27.gif output



เมื่อ raspberry-pi-27.gif คือภาพที่ใช้ทดสอบการถอดข้อความ
เมื่อ output คือชื่อไฟล์ output.txt ซึ่งเป็นผลลัพธ์จากการถอดข้อความและเก็บไว้ในไฟล์ output.txt ซึ่งประกอบด้วยคำว่า
Information Science
Mahasarakham University
Mr.Chakkrit Saengkaew
ปล. เมื่อท่านศึกษามาถึงหัวข้อนี้ ท่านสามารถนำการรู้จำไปประยุกต์ใช้ได้อย่างกว้างขวาง เช่น การบอกรู้จำเพื่อใช้บอกเส้นในการเดินทาง เป็นต้น

การขยายพาทิชั่นให้มากกว่า 2GB
ในกรณีที่ SDCard ของท่านมีขนาดใหญ่กว่า 2GB ซึ่งเป็นขนาดของ OS Image ท่านสามารถ Resize ขนาดของพาทิชั่นได้หลายวิธี ในตัวอย่างนี้ ใช้โปรแกรม gparted มีรายละเอียดดังนี้

1. การติดตั้ง gparted บนระบบปฏิบัติการ Ubuntu (ใช้งานฝั่งคอมพิวเตอร์ไม่ใช่ Raspberry Pi)
$ sudo apt-get install gparted
[password]

2. ใส่ SDCard ลงใน CardReader และเสียบในช่อง USB ของคอมพิวเตอร์ของท่าน

3. เรียกใช้ gparted
$ sudo gparted

4. เลือก SDCard ของท่านในมุมบนด้านขวามือของโปรแกรม gparted ดังนี้

5. เลือก Un-mount จากนั้น เลือกที่พาทิชั่นที่ต้องการ Resize และเลื่อนเพื่อปรับขนาดตามที่ท่านต้องการ จากนั้นกดเครื่องหมายถูกเพื่อดำเนินการตามที่ท่านต้องการ ในตัวอย่างนี้ ผู้เขียนได้ขยาย partition ให้มีขนาด 7.36 GB

การติดตั้ง Driver สำหรับ GPIO (General Purpose Input Output) เพื่อควบคุมอุปกรณ์อิเล็กทรอนิกส์ภายนอก
ในการติดตั้ง WiringPi มี 2 วิธี คือ
1. ใช้ GIT
- ติดตั้งโปรแกรม git ด้วยคำสั่งต่อไปนี้
$ sudo apt-get install git-core

- ถ้ามีข้อผิดพลาดเกิดขึ้นให้ใช้คำสั่ง
$ sudo apt-get update
$ sudo apt-get upgrade

- ทำการคัดลอก WiringPi ด้วย GIT ดังนี้
$ git clone git://git.drogon.net/wiringPi

- จากนั้นใช้คำสั่งดังนี้
$ cd wiringPi
$ git pull origin

- ขั้นการคอมไพล์
$ cd wiringPi
$ ./build

2. คอมไพล์จาก Source Code
cd /tmp
wget http://project-downloads.drogon.net/files/wiringPi.tgz

To install
tar xfz wiringPi.tgz
cd wiringPi/wiringPi
make
sudo make install
cd ../gpio
make
sudo make install
cd ../examples
make

แผนภาพแสดงตำแหน่ง GPIO บนบอร์ด Raspberry Pi
ในแต่ละ PIN ทำงานได้หลายหน้าที่ ดังนั้น ท่านต้องเลือกให้แต่ละ PIN ทำงานหน้าที่ใดหน้าที่หนึ่ง ในขณะหนึ่ง ๆ ซึ่งภาพต่อไปนี้แสดงหน้าที่ของแต่ละ PIN ดังนี้






การใช้งานคำสั่ง GPIO ผ่าน Command Line Interface (CLI)
ท่านสามารถใช้คำสั่ง man เพื่อดูคู่มือการใช้งาน ดังนี้
$ sudo man gpio


พิจารณาตัวอย่างการใช้งานต่อไปนี้
$ sudo gpio -g mode 17 out   // กำหนดให้ GPIO 17 เป็น Output
$ sudo gpio -g mode 18 pwm // กำหนดให้ GPIO 18 เป็น PWM

$ sudo gpio -g write 17 1       // กำหนด GPIO 17 ให้มีค่าเป็นลอจิก 1
$ sudo gpio -g pwm 18 512   // เป็นการสร้างความถี่ที่ GPIO 18 ให้มีค่า 512 Hz

เมื่อ -g บอก gpio ให้ใช้ BCM GPIO Pin number ถ้าไม่ระบุเป็นการใช้ WiringPI Pin Number
ปล. รายละเอียดเกี่ยวกับคำสั่ง gpio ศึกษาได้จากคู่มือและคำสั่ง man gpio

การเขียนโปรแกรมควบคุมไฟกระพริบด้วย Linux Shell แสดงได้ดังนี้
$ sudo su
root@raspberrypi:/home/pi# gpio -g mode 17 out
root@raspberrypi:/home/pi# for i in {1..12};do gpio -g write 17 1;sleep 0.2; gpio -g write 17 0; sleep 0.2; done


การทำงาน :
คำสั่ง sudo su # การขอใช้งานในระดับ Super User
คำสั่ง gpio -g mode 17 out # การกำหนดให้ GPIO 17 ทำหน้าที่เป็น output
คำสั่ง for i in {1..12};do /*ชุดคำสั่ง*/ ; done # เป็นการสั่งทำงานให้วนรอบทำงาน 12 ครั้งจาก 1 ถึง 12 ด้วยคำสั่ง


แสดงภาพ GPIO 17 สถานะเป็น 0 (ไฟดับ)      แสดงภาพ GPIO 17 สถานะเป็น 1 (ไฟสว่าง)

ท่านสามารถศึกษาจากวิดีโอ จากตัวอย่างต่อไปนี้


เมื่อศึกษามาถึงขั้นนี้ ท่านสามารถประยุกต์ใช้งาน Raspberry Pi ในการควบคุมอุปกรณ์อิเล็กทรอนิกส์ระดับพื้นฐานได้แล้ว ในการควบคุมอุปกรณ์อิเล็กทรอนิกส์ยังมีการสื่อสารอีกหลายรูปแบบได้แก่ UART, I2C, SPI, และอื่น ๆ จะได้กล่าวถึงในโอกาสต่อไปครับ

การควบคุม GPIO (General Purpose Input Output) ด้วยภาษาไพธอน
การใช้โมดูล RPi.GPIO ท่านต้องใช้สิทธิ์ของ root เพื่อเรียกใช้งาน แสดงตัวอย่างการใช้งาน ดังนี้

เมื่อ
  #เป็นการกำหนดให้ใช้ BCM GPIO Pin number ถ้าไม่ระบุเป็นการใช้  WiringPI Pin Number
  คำสั่ง GPIO.setmode(GPIO.BCM)
  
   # เป็นการกำหนดให้ Pin 17 เป็น Input
  คำสั่ง GPIO.setup(17, GPIO.IN)
  
  # เป็นการกำหนดให้ Pin 18 เป็น Output
  คำสั่ง GPIO.setup(18, GPIO.OUT) 
  
  # เป็นการอ่านค่าจาก Pin 17 มีสองสถานะ คือ   0 และ 1
  คำสั่ง input_value = GPIO.input(17) 
  
  # เป็นการกำหนดให้ Pin 18 มีค่าเป็น 1
  คำสั่ง GPIO.output(18, True) 
  
การเขียนโปรแกรมไฟกระพริบด้วยภาษาไพธอนบน RPi
import RPi.GPIO as GPIO
import time
# สร้างฟังก์ชั่น ชื่อ blink รับพารามิเตอร์ 1 ตัวคือหมายเลข pin
def blink(pin):
        GPIO.output(pin,GPIO.HIGH)
        time.sleep(0.25)
        GPIO.output(pin,GPIO.LOW)
        time.sleep(0.25)
        return

# กำหนด GPIO ตามหมายเลข Pin บนบอร์ด
GPIO.setmode(GPIO.BOARD)

# กำหนดให้  Pin 11 เป็น Output 
GPIO.setup(11, GPIO.OUT)

# เรียกฟังก์ชั่น blink จำนวน 10 ครั้ง จะทำการเปิดปิดสัญญาณ เป็นสัญญาณไฟกระพริบ
for i in range(0,10):
        blink(11)

# เคลียส์ GPIO 
GPIO.cleanup() 
  
  
การประยุกต์ใช้งาน Raspberry Pi : สร้างเกมส์บอย เชื่อมต่อ RPi กับจอภาพกราฟิก

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=40&t=15554



สรุป
สำหรับวันนี้ได้นำท่านเรียนรู้การใช้งาน Embedded System ระบบสมองกลฝังตัวบนระบบปฏิบัติการลินุกซ์ ที่เป็น PC Linux และการใช้งานคำสั่งพื้นฐาน Linux ตลอดจนการควบคุม GPIO บนบอร์ด Raspberry Pi ผมสั่งซื้อบอร์ดวันที่ 8 มกราคม 2556 และได้รับบอร์ด Raspberry Pi วันที่ 10 มกราคม 2556 เวลา 14:38 น. เมื่อได้บอร์ดมาแล้วได้นำีที่ชาร์ตของ I-Mobile เป็น USBMicro จ่ายพลังงานให้กับบอร์ด Raspberry Pi.. ผมดาวน์โหลด OS Image และเริ่มศึกษา ใช้เวลาไม่ถึง 2 ชั่วโมง จึงเริ่มเขียนบทความนี้ ผมอยากให้หน่วยงานในประเทศไทย เช่น กระทรวง ICT ,สถาบันการศึกษา ที่สอนวิชาทางด้านคอมพิวเตอร์ ได้มีการประยุกต์ใช้ Raspberry Pi ในการเรียนการสอนวิชาโปรแกรมมิ่ง ให้ทุกสรรพสาขาวิชาที่เกี่ยวข้องกับ คอมพิวเตอร์ - เทคโนโลยี และสารสนเทศ ได้เปิดใจเรียนรู้ และเสริมสร้างศักยภาพให้กับตนเอง เพื่อเป็นกำลังสำคัญ ในการพัฒนาประเทศชาติ สืบไป..

11 มกราคม 2556 เวลา 04:00 น. ตรง
14 มกราคม 2556 เพิ่มเติมเกี่ยวกับ Video Capture และภาพถ่ายการควบคุม LED (Light Emitting Diod) ผ่าน GPIO
17 มกราคม 2556 เพิ่มการรูปจำตัวอักษร ด้วย Tesseract-OCR , การขยายขนาดพาทิชั่นให้มากกว่า 2GB




All trademarks and trade names are the property of their respective owners and used here for identification purposes only.
Privacy Policy | Terms of service | Report a Policy Violation (0.0041 sec)