โครงงานเลขท วศ.คพ. 37/2557
เรอง
การพฒนาสวนเสรมส าหรบชดหนยนตเพอการเรยนรโกโกบอรด
โดยใช Raspberry Pi
นายมารตพงค ไชยลงกา รหส 540610639
โครงงานน
เปนสวนหนงของการศกษาตามหลกสตรปรญญาวศวกรรมศาสตรบณฑต
ภาควชาวศวกรรมคอมพวเตอร
คณะวศวกรรมศาสตร มหาวทยาลยเชยงใหม
พ.ศ. 2558
PROJECT No. 37/2557
Developing add-ons for the GoGo Board,
an educational robotics kit, using the Raspberry Pi
Marutpong Chailangka Code 540610639
A PROJECT SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF
BACHELOR OF ENGINEERING (COMPUTER ENGINEERING) FACULTY OF ENGINEERING, CHIANG MAI UNIVERSITY
2015
ก
หวขอโครงงาน : การพฒนาสวนเสรมส าหรบชดหนยนตเพอการเรยนรโกโกบอรดโดยใช Raspberry Pi
Developing add-ons for the GoGo board, an educational robotics kit, using the Raspberry Pi โดย : นายมารตพงค ไชยลงกา รหส 540610639 ภาควชา : วศวกรรมคอมพวเตอร อาจารยทปรกษา : อ.ดร.อานนท สหพทกษเกยรต ปการศกษา : 2557
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร มหาวทยาลยเชยงใหม อนมตใหโครงงานนเปน
สวนหนงของการศกษาตามหลกสตรปรญญาวศวกรรมศาสตรบณฑต สาขาวศวกรรมคอมพวเตอร
..................................................................... หวหนาภาควชาวศวกรรมคอมพวเตอร
(ผศ.ดร.ศนสนย เออพนธวรยะกล)
หนาอนมตโครงงาน
คณะกรรมการสอบโครงงาน
……………………............................................ ประธานกรรมการ
(อ.ดร.อานนท สหพทกษเกยรต)
………………………………............................................. กรรมการ
(อ.ดร.สนต พทกษกจนกร)
………………………………............................................. กรรมการ
(อ.ดร.โดม โพธกานนท)
ข
หวขอโครงงาน : การพฒนาสวนเสรมส าหรบชดหนยนตเพอการเรยนรโกโกบอรดโดยใช Raspberry Pi
Developing add-ons for the GoGo board, an educational robotics kit, using the Raspberry Pi โดย : นายมารตพงค ไชยลงกา รหส 540610639 ภาควชา : วศวกรรมคอมพวเตอร อาจารยทปรกษา : อ.ดร.อานนท สหพทกษเกยรต ปการศกษา : 2557
บทคดยอ
โครงงานนมวตถประสงคเพอพฒนาสวนเพมขยายใหกบชดหนยนตเพอการเรยนรโกโกบอรด
โดยใช Raspberry Pi จดเดนของสวนเพมขยายทสรางดวย Raspberry Pi คอจะสามารถเพม
ความสามารถทเดมท าไดยากในระบบสมองกลฝงตวทวไป เนองจาก Raspberry Pi เปนเครอง
คอมพวเตอรทขบเคลอนดวยระบบปฏบตการ Linux จงสามารถเพมความสามารถใหมๆ ไดโดยงาย
เชน การเชอมตอกบอปกรณ USB เชนกลอง webcam, อปกรณรบพกด GPS, Aircard เพอรบสง
SMS และเชอมตอเครอขาย, การเลนไฟลสอชนดตางๆ, การใชบรการเครอขายเชน สงอเมล, อานและ
รบคาจากบรการ push/pull ตางๆ เชน Pushbullet และ IFTT โครงงานนจะเพมความสามารถ
เหลานใหกบโกโกบอรด โดยจะสงงานไดผานภาษา Logo ซงใชงานไดงายส าหรบเยาวชน รวมไปถง
เพมสวนของการเขาใชงานผาน Web Application หรอทเรยกวา GoGo Home Screen ทประกอบ
ไปดวยการการแปลงขอความเปนเสยงทเลนผาน Browser, การจดการไฟล, การแสดงกราฟของ
ขอมลทท าการบนทกไว, การบนทกเสยงเพอน าไปใชกบ GoGo Board, การใชสวนประกอบของ
HTML และแปลงเสยงเปนค าสงเพอสงงาน GoGo Board การวดผลของโครงงานนจะท าโดยการ
น าเสนอความสามารถใหมทระบบท าได
ค
Project Title : Developing add-ons for the GoGo board, an educational robotics kit, using the Raspberry Pi
By : Marutpong Chailangka Student ID 540610639 Department : Computer Engineering Project Advisor : Arnan Sipitakiat Ph.D. Academic Year : 2012
Abstract
The objective of this project is to develop add-ons for the GoGo Board, an educational
robotics kit for children, using the Raspberry Pi. The highlight of using the Raspberry Pi
is that it can allow for new add-ons that would usually be difficult to make using
traditional embedded systems. Raspberry Pi is a computer based on Linux. So it is
possible to make use of connected USB devices such as a Webcam, a GPS receiver, an
Aircard for sending SMS and connecting to the network, playing media files, sending
emails or using cloud services such as receiving pushes from Pushbullet on the IFTT (If
This Then That) service. The features are controlled using Logo, an educational
programming language, easy to understand by students. The project also includes
access to web application via a browser on computer or smartphone. The web
application is called “GoGo Home Screen”, which contains features such as text-to-
speech and audio playback on a browser, a file manager, Web UIs and speech
recognition (speech-to-text) to control the GoGo board. Evaluation of this new system
was done by demonstrating the new capabilities that have been created.
ง
กตตกรรมประกาศ
โครงงานการพฒนาสวนเสรมส าหรบชดหนยนตเพอการเรยนรโกโกบอรดโดยใช Raspberry
Pi นส าเรจลลวงไปดวยด เนองจากไดรบความอนเคราะหและชวยเหลอจาก อ.ดร.อานนท สหพทกษ
เกยรต อาจารยทปรกษาโครงงานทใหค าแนะน า ใหความรเกยวกบโครงงาน และความชวยเหลอเปน
อยางดดวยความเอาใจใสตลอดระยะเวลาการท าโครงงาน คณะผจดท าโครงงานจงขอกราบ
ขอบพระคณอาจารยเปนอยางสงมา ณ ทนดวย
ขอขอบพระคณคณาจารยทกทานในภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตรท
ไดให ความร ค าแนะน า แนวทางในการแกปญหา และใหความชวยเหลอแกนกศกษาในทกๆ ดาน
ตลอดจนบคลากรและเจาหนาทประจ าภาควชา ทไดใหค าแนะน าในขนตอนตางๆ ในการท าโครงาน
ชวยอ านวยความสะดวกและเกอหนนการท าโครงงานครงนใหราบรนไปดวยดเสมอมา
ขอขอบคณครอบครวทอบรมเลยงด สนบสนนและสงเสรมใหเรยนมาจนถงปจจบนไดดตลอด
มา รวมถงขอขอบคณกองพฒนานกศกษา คณะวศวกรรมศาสตร และกองพฒนานกศกษา
มหาวทยาลยเชยงใหม ทไดสนบสนนทนการศกษาตลอดทงหลกสตรการศกษา
ขอขอบคณทกปญหาและทกอปสรรคทเกดขนระหวางการท าโครงงานน ทท าใหสามามารถ
เรยนรและหาแนวทางในการแกไขและปรบปรง ซงสามารถน าไปประยกตใชในชวตการท างานจรง
และในภายภาคหนาได หากโครงงานนมขอผดพลาดประการใด กขออภยมา ณ ทนดวย
มารตพงค ไชยลงกา
จ
สารบญ
หนา
หนาอนมตโครงงาน ................................................................................................................................ ก
บทคดยอ .................................................................................................................................................. ข
Abstract .................................................................................................................................................ค
กตตกรรมประกาศ .................................................................................................................................. ง
สารบญ .................................................................................................................................................... จ
สารบญรปภาพ ........................................................................................................................................ ซ
สารบญตาราง ......................................................................................................................................... ฏ
บทท 1 บทน า.......................................................................................................................................... 1
1.1 ทมา ....................................................................................................................................... 1
1.2 วตถประสงค ......................................................................................................................... 2
1.3 เปาหมายและขอบเขต ......................................................................................................... 2
1.4 ประโยชนทคาดวาจะไดรบ ................................................................................................... 3
1.5 เทคโนโลยและเครองมอทใช ................................................................................................ 3
1.6 ระยะเวลาและขนตอนในการด าเนนงาน ............................................................................. 5
บทท 2 ทฤษฎทใช .................................................................................................................................. 6
2.1 Programmable brick, MIT Cricket ................................................................................ 6
2.2 Lego Mindstorms ............................................................................................................. 7
2.3 ชดหนยนตเพอการเรยนรโกโกบอรด ................................................................................... 8
2.4 Raspberry Pi....................................................................................................................... 9
2.5 ระบบสมองกลฝงตว ............................................................................................................. 9
2.6 ภาษา Python และ TKinter ........................................................................................... 10
2.7 IFTTT และ Pushbullet .................................................................................................. 11
2.7.1 IFTTT ................................................................................................................. 11
2.7.2 Pushbullet ...................................................................................................... 12 2.8 ภาษา PHP, HTML ........................................................................................................... 14
2.8.1 ภาษา PHP ........................................................................................................ 14
2.9.2 ภาษา HTML และ JavaScript ........................................................................ 14
2.9.3 ภาษา JavaScript ............................................................................................. 14
ฉ
สารบญ (ตอ)
หนา
2.8 OrientDB .......................................................................................................................... 15
2.9 WebSocket...................................................................................................................... 15
2.10 Web Speech API ......................................................................................................... 15
บทท 3 โครงสรางและขนตอนการท างาน ......................................................................................... 16
3.1 โครงสรางโดยรวมของระบบ ............................................................................................. 16
3.1.1 GoGo Widget .................................................................................................. 16
3.1.2 Raspberry Pi.................................................................................................... 17
3.1.3 GoGo Board .................................................................................................... 19
3.2 การพฒนาระบบ ................................................................................................................ 20
3.2.1 GoGo Widget .................................................................................................. 20
3.2.2 Raspberry Pi.................................................................................................... 22
3.2.3 GoGo Board .................................................................................................... 26
3.3 การท างานของระบบ ......................................................................................................... 27
3.3.1 IP Address QR Code ..................................................................................... 27
3.3.2 Email Sender .................................................................................................. 28
3.3.3 SMS Sender .................................................................................................... 31
3.3.4 RFID ................................................................................................................... 33
3.3.5 Data Logging ................................................................................................... 35
3.3.6 GoGo Home Screen ..................................................................................... 40
3.3.7 Pi Display ......................................................................................................... 44
3.3.8 File Manager ................................................................................................... 46
3.3.9 Sound Recording ........................................................................................... 47
3.3.10 Web UI ........................................................................................................... 49
3.3.11 Speech Recognition ................................................................................... 53
3.3.12 Pushbullet และ IFTTT ................................................................................ 55
ช
สารบญ (ตอ)
หนา
บทท 4 การทดลองและผลการทดลอง .............................................................................................. 56
4.1 รายละเอยดการทดลอง ..................................................................................................... 56
4.2 ขนตอนการทดลองและผลการทดลอง ........................................................................ 57
4.2.1 IP Address QR Code ..................................................................................... 57
4.2.2 Email Sender .................................................................................................. 58
4.2.3 SMS Sender .................................................................................................... 60
4.2.4 RFID ................................................................................................................... 62
4.2.5 Data Logging ................................................................................................... 64
4.2.6 GoGo Home Screen ..................................................................................... 66
4.2.7 Pi Display ......................................................................................................... 69
4.2.8 File Manager ................................................................................................... 70
4.2.9 Sound Recording ........................................................................................... 72
4.2.10 Web UI ........................................................................................................... 73
4.2.11 Speech Recognition ................................................................................... 75
4.2.12 Pushbullet และ IFTTT ................................................................................ 76
บทท 5 สรปและขอเสนอแนะ ............................................................................................................. 81
5.1 สรปโครงงาน ..................................................................................................................... 81
5.2 ปญหาและแนวทางแกไข ................................................................................................... 81
5.3 ขอเสนอแนะ ...................................................................................................................... 82
เอกสารอางอง ...................................................................................................................................... 83
ภาคผนวก ............................................................................................................................................. 86
การใชงาน IFTTT ..................................................................................................................... 87
ซ
สารบญรปภาพ
หนา บทท 2
รปท 2-1 Programmable Brick ............................................................................................. 6
รปท 2-2 Lego Mindstorms .................................................................................................. 7
รปท 2-3 บอรดหนยนตเพอการเรยนรโกโกบอรด รน 5.0 ...................................................... 8
รปท 2-4 Raspberry Pi Type B ............................................................................................. 9
รปท 2-5 บรการ IFTTT ......................................................................................................... 11
รปท 2-6 แสดงความสมพนธระหวาง Recipe, Trigger และ Action ................................. 11
รปท 2- 7 บรการ Pushbullet .............................................................................................. 12
รปท 2- 8 OrientDB .............................................................................................................. 15
บทท 3 รปท 3- 1 แสดงโครงสรางของระบบ ..................................................................................... 16
รปท 3- 2 GoGo Widget 1.2.1 ............................................................................................ 17
รปท 3- 3 GoGo Home Screen เมอแสดงใน Browser .................................................... 18
รปท 3- 4 GoGo Home Screen เมอแสดงใน Browser บน Smart Phone ................... 19
รปท 3- 5 PyCharm Community Edition 3.4.1 ............................................................. 20
รปท 3-6 Raspberry Pi Tab ................................................................................................ 21
รปท 3- 7 Section Gmail Configuration .......................................................................... 21
รปท 3- 8 Section Send SMS ............................................................................................ 22
รปท 3- 9 แสดงตวอยางค าสงทพฒนาสวนเสรม .................................................................. 22
รปท 3- 10 PuTTY ................................................................................................................ 23
รปท 3- 11 Sublime Text ................................................................................................... 24
รปท 3- 12 PCWDH Complier ........................................................................................... 26
รปท 3- 13 GoGo Widget 1.3.6, Raspberry PI Tab ....................................................... 27
รปท 3- 14 Gmail Configuration ใน Raspberry Tab ..................................................... 28
รปท 3- 15 แผนผงการท างานเมอตงคา Email .................................................................... 29
รปท 3- 16 แผนผงการท างานเมอสง Email ......................................................................... 30
รปท 3- 17 Send SMS ใน Raspberry Pi Tab ................................................................... 31
รปท 3- 18 แผนผงการท างานเมอท าการสง SMS ................................................................ 32
ฌ
สารบญรปภาพ (ตอ)
หนา รปท 3- 19 การใชงาน RFID ผานภาษา Logo ..................................................................... 33
รปท 3- 20 แผนผงการท างานค าสงตางๆ ชอง RFID ........................................................... 34
รปท 3- 21 การใชงาน Data Logging ผานภาษา Logo ..................................................... 35
รปท 3- 22 แผนผงการท างานเมอใชค าสง Data Logging .................................................. 36
รปท 3- 23 HTTP REST API function ของ OrientDB ..................................................... 37
รปท 3- 24 หนา Data Logging และสวนประกอบ ............................................................. 38
รปท 3- 25 ตวอยางค าสง jQuery กอนท าการสงขอมล ...................................................... 39
รปท 3- 26 หนาแสดงกราฟขอมลและสวนประกอบคราวๆ ................................................. 39
รปท 3- 27 หนาแสดง QR Code .......................................................................................... 41
รปท 3- 28 หนาส าหรบตงตางๆ ............................................................................................ 42
รปท 3- 29 แผนผงการเชอมตอ GoGo Home Screen ...................................................... 43
รปท 3- 30 การแจงเตอนเมอบนทกการตงคาส าเรจ ............................................................ 43
รปท 3- 31 การใชงานเลนไฟลเสยงและ Text-to-speech ผานภาษา Logo ..................... 44
รปท 3- 32 Pi Display บน Browser ................................................................................... 45
รปท 3- 33 หนา File Manager ............................................................................................ 46
รปท 3- 34 หนา Sound Recording ................................................................................... 47
รปท 3- 35 ขณะท าการบนทกเสยง ....................................................................................... 47
รปท 3- 36 เมอบนทกเสยงเสรจสน....................................................................................... 48
รปท 3- 37 โฟลเดอร Recording ใน File Manager .......................................................... 48
รปท 3- 38 Online Rapid Interface Builder ................................................................... 49
รปท 3- 39 โฟลเดอร html ใน File Manager................................................................... 50
รปท 3- 40 หนา Web UI ...................................................................................................... 50
รปท 3- 41 ตวอยาง HTML file ............................................................................................ 51
รปท 3- 42 แผนผงการท างานการสงคา key และ value ................................................... 52
รปท 3- 43 หนา Speech Recognition .............................................................................. 53
รปท 3- 44 หนา Speech Recognition เมอมผลลพท ....................................................... 54
รปท 3- 45 แผนผงแสดงความสมพนธ IFTTT, Pushbullet และ Raspberry Pi .............. 55
ญ
สารบญรปภาพ (ตอ)
หนา บทท 4
รปท 4- 1 IP Address QR Code ใน GoGo Widget ......................................................... 57
รปท 4- 2 ผลการสแกน QR Code บน Smart Phone ...................................................... 58
รปท 4- 3 การตงคา Email และผลลพทการตงคา ............................................................... 58
รปท 4- 4 การสง Email ใน GoGo Widget เมอส าเรจ ....................................................... 59
รปท 4- 5 การสง Email ใน GoGo Widget เมอตงคาไมถกตอง ........................................ 59
รปท 4- 6 Email ทไดรบใน Outlook บน Windows 8...................................................... 60
รปท 4- 7 การสง SMS ใน GoGo Widget เมอส าเรจ ......................................................... 61
รปท 4- 8 SMS ทไดรบใน Smart Phone ............................................................................ 61
รปท 4- 9 การสง SMS ใน GoGo Widget เมอม Error ...................................................... 62
รปท 4- 10 ค าสงทดสอบการท างาน RFID ในภาษา Logo .................................................. 62
รปท 4- 11 การบนทกคาเซนเซอร ในภาษา Logo ............................................................... 64
รปท 4- 12 หนาเลอกคาทบนทกไวใน Data Logging แสดงบนคอมพวเตอร ..................... 65
รปท 4- 13 หนาเลอกคาทบนทกไวใน Data Logging แสดงบน Smart Phone ............... 65
รปท 4- 14 หนา GoGo Home Screen บนคอมพวเตอร ................................................... 66
รปท 4- 15 หนา Setting บนคอมพวเตอร ........................................................................... 67
รปท 4- 16 หนา GoGo Home Screen บน Smart Phone ............................................ 67
รปท 4- 17 Modal แสดง QR Code ทเปน IP Address บน Smart Phone ................... 67
รปท 4- 18 หนา Setting บน Smart Phone .................................................................... 68
รปท 4- 19 หนา Setting เมอบนทกการตงคาไดส าเรจบน Smart Phone........................ 68
รปท 4- 20 เมนแสดงสวนตางของ GoGo Home Screen บน Smart Phone ................. 68
รปท 4- 21 ค าสงทดสอบเลนเสยงและ Text-to-Speech ในภาษา Logo ......................... 69
รปท 4- 22 หนา Pi Display เมอแสดงบนคอมพวเตอร ....................................................... 69
รปท 4- 23 หนา Pi Display เมอแสดงบน Smart Phone ................................................. 70
รปท 4- 24 หนา File Manager บนคอมพวเตอร ................................................................ 70
รปท 4- 25 สวนทใหอพโหลดไฟล บนคอมพวเตอร .............................................................. 71
รปท 4- 26 หนา File Manager บน Smart Phone ......................................................... 71
ฎ
รปท 4- 27 สวนทเลนเสยง บน Smart Phone ................................................................... 71
รปท 4- 28 หนาบนทกเสยง )Sound Recording บนคอมพวเตอร) ................................... 72
รปท 4- 29 หนาขณะท าการบนทกเสยง บน Smart Phone ............................................. 72
รปท 4- 30 หนาแสดงผลลพทการบนทกเสยง บน Smart Phone ..................................... 72
รปท 4- 31 หนาแสดง Web UI File บนคอมพวเตอร ......................................................... 73
รปท 4- 32 หนาแสดง Web UI File บน Smart Phone .................................................... 74
รปท 4- 33 หนาแสดงไฟล HTML ทถกสรางมา บน Smart Phone .................................. 74
รปท 4- 34 หนา Speech Recognition บนคอมพวเตอร ................................................... 75
รปท 4- 35 Speech Recognition บน Smart Phone ...................................................... 75
รปท 4- 36 IFTTT Recipe ทเปน Twitter ........................................................................... 77
รปท 4- 37 สวนประกอบของ Recipe Twitter ................................................................... 77
รปท 4- 38 IFTTT การสราง Recipe ทเปน Instagram ..................................................... 78
รปท 4- 39 การ Tweet ขอความใน Twitter ...................................................................... 79
รปท 4- 40 ผลลพททไดรบมาจาก Twitter และ Pushbullet ............................................ 79
รปท 4- 41 ผลลพททไดรบมาจาก Instagram และ Pushbullet ....................................... 79
ฏ
สารบญตาราง
หนา
บทท 1
ตารางท 1-1 แผนการด าเนนงาน .............................................................................................. 5
1
บทท 1 บทน า
1.1 ทมา
การใชชดหนยนตเพอการเรยนรส าหรบเดกมแนวคดเรมขนจาก Programmable Bricks[1]
ทเปนชดหนยนตระบบสมองกลฝงตว มขนาดเลกสามารถพกพาไดสามารถตอกบเซนเซอร และ
อปกรณตางๆ ได โดยมแนวคดใหเดกสามารถทจะออกแบบชนงานดวยตวเองได ตอมาหองวจย
Media Laboratory แหงมหาวทยาลย Massachusetts Institute of Technology ในประเทศ
สหรฐอเมรกา ไดน าแนวคด Programmable Bricks ไปตอยอดและพฒนาเปนอปกรณชอวา MIT
Cricket ทมขนาดเลกและเบากวา เปนวงจรทสามารถตอกบเซนเซอรชนดตางๆ รวมถงสามารถ
ควบคมอปกรณเชน มอเตอร, หลอดไฟ ไดเปนตน สามารถก าหนดพฤตกรรมการท างานของระบบ
โดยใชภาษา Logo ทถกออกแบบมาใหเดกเขาใจไดงาย ตอมาบรษท LEGO ไดน าแนวคดนไปตอยอด
และสรางผลตภณฑ LEGO Mindstorms[2][3] จ าหนายแกบคคลทวไป โดยชนสวนมการออกแบบ
เฉพาะทท าใหสามารถประกอบกนไดพอดตามมาตรฐานของของ LEGO ซงเปนจดเรมตนทท าให
แนวคด Programmable Bricks เปนทรจกอยางกวางขวาง
ในป ค.ศ .2005 เรมมการจ าหนายบอรด Arduino[5][6] เปนบอรดไมโครคอนโทรลเลอร ซง
มราคาไมแพง ใชภาษา C หรอ C++ ในการเขยนโปรแกรม มอปกรณตอพวงมากมาย จงไดรบความ
นยมอยางสงและกลายเปนบอรดมาตรฐานในการสรางโครงงานทตองอาศยสมองกลในการควบคม
Arduino แตกตางจาก Programmable Brick ตรงทไมไดถกออกแบบมาส าหรบเดกและเยาวชน
โดยตรง ท าใหเดกเขาถงอปกรณนไดยาก
2
อกหนงใน Programmable Brick กคอชดหนยนตเพอการเรยนรโกโกบอรดมจดก าเนดจาก
MIT มจดเดนทถกพฒนาขนส าหรบผเรยนในประเทศก าลงพฒนา ตวบอรดนนเปดเผยรหส )open
source) และราคาถก สามารถผลตไดในทองถน ปจจบนพฒนามาจนถงรน 5.0 ไดเพมความสามารถ
ในการเชอมตอกบ Raspberry Pi ซงเปนคอมพวเตอรขนาดเลก ทมราคายอมเยา สามารถใชรวมกบ
อปกรณตอพวงทมขายทวไปในทองตลาดไดซงมกมราคาถก จงท าให Raspberry Pi ไดรบความนยม
เปนอยางมาก
การน า Raspberry Pi มาใชงานรวมกบชดหนยนตโกโกบอรด ท าใหชวยเพมความสามารถ
ใหมๆ ใหกบชดหนยนตโกโกบอรดไดอยางมาก ตวอยางความสามารถเชน การเรยกใชงานกลองใน
การถายรป ตรวจจบใบหนามนษย และตรวจกบการเคลอนไหว การบนทกคาเซนเซอรลงบน
Raspberry Pi ทมพนทเกบขอมลขนาดใหญ การบนทกและแสดงต าแหนงพกดดาวเทยม GPS การ
เลนเสยง เปนตน ท าใหเยาวชนสามารถก าหนดพฤตกรรมทเรยกใชความสามารถเหลานผานค าสง
ภาษา Logo ไดงายขน
1.2 วตถประสงค
เพอพฒนาสวนเสรมส าหรบชดหนยนตเพอการเรยนรโกโกบอรดใหมความสามารถมากยงขน
1.3 เปาหมายและขอบเขต
เปาหมาย
สรางสวนเสรมส าหรบชดหนยนตโกโกบอรดผานทาง Raspberry Pi
สรางสวนตดตอผใชและค าสงภาษา Logo เพอเรยกใชงานสวนเสรมทสราง
ขนมา
ขอบเขต
สวนเสรมทสรางจะเปนความสามารถทท าไดยากกวาหากใชอปกรณสมองกลฝง
ตวทวไป
3
1.4 ประโยชนทคาดวาจะไดรบ
ไดเพมสวนเสรมใหมใหกบชดหนยนตเพอการเรยนรโกโกบอรด ทสามารถเรยกใชไดอยางงาย
ผานภาษา Logo เชนการสง Email, การก าหนดพฤตกรรมผานเครอขายสงคมออนไลน หรอ
เหตการณทสนใจในชวตประจ าวน และใชสมารทโฟนเปนตวรบ input ของชดหนยนตเพอการเรยนร
ได เปนตน
1.5 เทคโนโลยและเครองมอทใช
เทคโนโลย
ภาษา Python และ PIC-C ส าหรบพฒนาโปรแกรม
ระบบสมองกลฝงตว
Lex/Yacc ส าหรบสรางค าสงภาษา Logo
TKinter ส าหรบสรางสวนตดตอผใช
HID Communication Protocol ส าหรบการสอสารระหวางคอมพวเตอรและโกโก
บอรด
Python Webserver ส าหรบสรางบรการผาน HTTP
Cloud Service เชน IFTTT, Pushbullet, Gmail เพอสรางบรการผานระบบเครอขาย
ภาษา PHP, HTML และ JavaScript ส าหรบสรางบรการผาน HTTP
Web Socket ส าหรบการสอการระหวาง Web Application และโปรแกรม
OrientDB เพอใชเปนฐานขอมลในการเกบคาของเซนเซอร
QR Code
gammu ใชเชอมตอกบ Air Card เพอสง SMS
Festival Speech Synthesis System เพอสงใหเลนเสยงแบบออฟไลน
4
Python Library
python-qrcode (Python QR Code image generator)
smtplib (SMTP client) ใชตอกบ Email Server เพอท าการสงอเมล
PyCrypto (The Python Cryptography Toolkit) ใชในการเขารหสขอความ
python-gammu ใชเชอมตอกบ gammu
Pyorient (OrientDB driver for Python) ใชการการเชอมตอกบฐานขอมล
OrientDB
urllib2 ใชเชอมตอไปยง HTTP API
PHP/jQuery Library
Web Speech API (SpeechSynthesis และSpeechRecognition
Responsive File Manager
Chosen
Highstock JS
Recordmp3js
jquery.qrcode
เครองมอทใชในการพฒนา
ซอฟตแวร (Software)
Python 2.7.8
PyCharm
PCWHD Compiler
Sublime Text
PuTTY ฮารดแวร (Hardware)
Raspberry Pi
GoGo Board
Smart Phone
Laptop
USB Devices (เชน Aircard, RFID Reader)
5
1.6 ระยะเวลาและขนตอนในการด าเนนงาน
การด าเนนงาน ระยะเวลา
ส .ค. ก .ย. ต .ค. พ .ย. ธ .ค. ม .ค. ก .พ. ม .ค. เม .ย.
1. รวบรวมขอมลและไอเดย
2. ศกษาระบบและการท างานของโกโกบอรด
3. ศกษาทฤษฎทเกยวของ 4. ศกษาเครองมอทใชพฒนา
5. ตดตงเครองมอทใชพฒนา
6. พฒนาสวนเสรม 7. ทดสอบระบบเพอหาขอผดพลาด
8. แกไขสวนทผดพลาด
9. งานเอกสารและรายงานโครงการ
ตารางท 1-1 แผนการด าเนนงาน
6
บทท 2 ทฤษฎทใช
2.1 Programmable brick, MIT Cricket
รปท 2-1 Programmable Brick
Programmable Brick [1] (รปท 2-1) คอคอมพวเตอรระบบสมองกลฝงตวทมขนาดเลกและ
สามารถพกพาไดทบรรจอยภายในชด LEGO. ซงมความสามารถในการมปฏสมพนธทางกายภาพได
รวมไปถงการตอเซนเซอร และการเชอมตออนฟาเรด Programmable Brick ท าใหเดกสามารถ
ออกแบบผลงานเองได ซงมสวนชวยใหเดกเหนวาเขาสามารถทจะออกแบบและประดษฐชนงานดวย
ตวเองได ในขณะเดยวกนกจกรรมเหลานจะเปนฐานส าคญทท าใหเดกมความคดทสนใจในการเรยนร
ทางคอมพวเตอรอกดวย
Programmable Brick สามารถใชงานไดเหมอนกบ LEGO/Logo ซงเปนชดทสามารถ
ประกอบชนสวนของ LEGO เปนรปรางตางๆ ได รวมกบภาษา Logo ท าใหเดกสามารถสรางชนงาน
ขนมาได ไมเพยงแคชนสวนของ LEGO เทานนแตรวมไปถงชนสวนใหมๆ ดวยเชน เฟอง มอเตอร และ
เซนเซอรตางๆ เปนตน จากนนกตอกบคอมพวเตอรและเขยนภาษา Logo ส าหรบการควบคมอ
ปรกรณตางๆ ยกตวอยางเชนเดกตองการทจะสรางบาน LEGO ทมหลอดไฟทสามารถสงเปด-ปดได
ตามเวลาทระบ และมโรงจอดรถทสามารถเปดประดเองไดเมอรถเขามาใกล
7
ส าหรบ Programmable Brick ถอเปนจดเรมตอนทมไอเดยทด ทสามารถพฒนาตอยอดได
อยางหลากหลาย หองวจย Media Laboratory แหงมหาวทยาลย Massachusetts Institute of
Technology (MIT) ในประเทศสหรฐอเมรกา ไดพฒนาอปกรณทตอยอดมาจาก Programmable
Brick นนกคอ MIT Cricket ทมขนาดเลกและเบากวาเดม โดยมขนาดประมาณถาน 9 โวลต Cricket
สามารถควบคมมอเตอรได 2 ตว รบคาเซนเซอรได 2 ตว และยงมอนฟาเรดส าหรบการสอสารกบ
Cricket หรออปกรณชนดอนได
2.2 Lego Mindstorms
รปท 2-2 Lego Mindstorms
Lego Mindstorms [2][3] เปนผลตภณฑทถกผลตขนจากบรษท LEGO ซงเปนการน าแนวคด
ของ Programmable Brick ตอยอดเปนผลตภณฑจ าหนายแกบคคลทวไป Lego Mindstorms เปน
ชดอปกรณทประกอบดวยซอฟตแวรและฮารดแวรส าหรบการสรางหนยนตทสามารถปรบแตงได
สามารถเขยนโปรแกรมได รวมทงประกอบดวยชนสวนโมดลอจฉรยะทสามารถควบคมระบบการ
ท างาน ชดโมงดลเซนเซอรและมอเตอร และชนสวน LEGO การประกอบหนยนต ซงกอนหนาน
ขนอยกบ ตวถง ลอขบเคลอน แมวาการออกแบบดงกลาวมความงายในการสราง แตมกจะถกจ ากด
ดวยขนาด และแรงเสยดทานของดอกยาง แต Lego Mindstorms ทออกแบบอปกรณแตละชนม
มาตรฐาน และสามารถตอกนไดพอด รวมถงดอกยางทออกแบบมาเฉพาะ สามารถสรางหนยนตไดเรว
รวมทงท าใหชนหนยนตเคลอนทไดอยางราบรนมากยงขน
8
2.3 ชดหนยนตเพอการเรยนรโกโกบอรด
ชดหนยนตเพอการเรยนรโกโกบอรด[4] เปนหนงใน Programmable Brick มจดก าเนดจาก
MIT โดยโกโกบอรดนถกพฒนาขนโดย ดร.อานนท สหพทกษเกยรต )มหาวทยาลยเชยงใหม) และ ดร.
Paulo Blikstein (มหาวทยาลย Stanford สหรฐอเมรกา) นบตงแตป ค.ศ. 2001 มจดเดนทถก
พฒนาขนส าหรบผเรยนในประเทศก าลงพฒนา ตวบอรดนนเปดเผยรหส )open source) และราคา
ถก สามารถผลตไดในทองถน ปจจบนพฒนามาจนถงรน 5.0 )รปท 2-3)โดยตลอดชวงเวลา 13 ปท
ผานมาโกโกบอรดถกผลตขนแลวกวา 3 พนชด และมการเผยแพรใชงานในหลายประเทศเชน
ประเทศไทย, สหรฐอเมรกา, บราซล, แมกซโก, อยปต, เกาหลใต, และ อาเจนตนา
รปท 2-3 บอรดหนยนตเพอการเรยนรโกโกบอรด รน 5.0
ชดหนยนตโกโกบอรดรน 5.0 ซงถกพฒนาขนลาสดไดเพมความสามารถในการเชอมตอกบ
Raspberry Pi ซงเปนคอมพวเตอรขนาดเลก ราคายอมเยา )US$35) ถกพฒนาขนโดยองคกรไม
แสวงหาก าไรในประเทศองกฤษในป ค.ศ. 2012 โดย Raspberry Pi ไดรบความนยมอยางมาก มการ
จ าหนายไปแลวกวา 3.8 ลานชด )สถต ณ เดอนตลาคม ค.ศ. 2014) การใชงาน Raspberry Pi รวมกบ
โกโกบอรด ชวยสรางความสามารถใหมๆ ใหกบโครงงานของนกเรยนนกศกษาไดเปนอยางมาก เพราะ
Raspberry Pi สามารถใชอปกรณตอพวงทมาขายทวไปในทองตลาดได ซงมกมราคาถกกวาอปกรณ
ตอพวงส าหรบระบบสมองกลฝงตว นอกจากนนยงใชงานไดงายกวาผานภาษาระดบสงอยาง Python
แทนทจะเปนภาษา C หรอ Basic
9
2.4 Raspberry Pi
รปท 2-4 Raspberry Pi Type B
Raspberry Pi[7] เปนคอมพวเตอรขนาดเลกเทาบตรเครดต ราคาถก ทสามารถตอ
จอคอมพวเตอรหรอ โทรทศน และใชแปนพมพและเมาสได เปนอปกรณทชวยใหผคนทกเพศทกวย
สามารถใชงานคอมพวเตอร และเรยนรวธการเขยนโปรแกรมคอมพวเตอรได เชน Scratch และ
Python มความสามารถในการท าทกอยางเหมอนคอมพวเตอรเชนการเรยกดอนเทอรเนต การเลน
วดโอความละเอยดสง การใชงานสเปรดชท โปรแกรมประมวลผลค า รวมทงสามารถเลนเกมสได
นอกจากนน Raspberry Pi มความสามารถในการโตตอบกบโลก ภายนอกได และถกน ามาใชในสราง
โครงการระบบสมองกลฝงตวจ านวนมาก เชนเครองเลนเพลง เครองตรวจจบสภาพอากาศและสงไป
ทสถานแมขาย เปนตน Raspberry Pi มเปาหมายใหเดกทวโลกสามารถทจะเรยนรในการเขยน
โปรแกรมและเขาใจวธการท างานของคอมพวเตอร
2.5 ระบบสมองกลฝงตว
ระบบสมองกลฝงตว [9] )embedded system) คอระบบประมวลผล ทใชชปหรอไมโคร
โพรเซสเซอร ทออกแบบมาโดยเฉพาะ เปนระบบคอมพวเตอรขนาดจวท ฝงไว ในอปกรณ
เครองใชไฟฟา และเครองเลน อเลกทรอนกสตางๆ เพอเพมความฉลาด ความสามารถใหกบอปกรณ
เหลานนผานซอฟตแวรซงตางจาก ระบบประมวลผลทเครองคอมพวเตอรทวไป ระบบฝงตวถ ก
น ามาใชกนอยางแพรหลายในยานพาหนะ เครองใชไฟฟาในบานและส านกงาน อปกรณอเลกทรอนกส
เทคโนโลยซอฟตแวร เทคโนโลยฮารดแวร เทคโนโลยเครอขายเนตเวรก เทคโนโลยดานการสอสาร
เทคโนโลยเครองกลและของเลนตาง ๆ ค าวาระบบฝงตวเกดจาก การทระบบนเปนระบบประมวลผล
10
เชนเดยวกบระบบคอมพวเตอร แตวาระบบน จะฝงตวลงในอปกรณอน ๆ ทไมใชเครองคอมพวเตอร
ในปจจบนระบบสมองกลฝงตวไดมการพฒนามากขน โดยในระบบสมองกลฝงตวอาจจะประกอบไป
ดวยไมโครคอนโทรลเลอร หรอ ไมโครโปรเซสเซอร อปกรณ ทใชระบบสมองกลฝงตวทเหนไดชดเชน
โทรศพทมอถอ และในระบบสมองกลฝงตวยงมการใสระบบ ปฏบตการตางๆ แตกตางกนไปอกดวย
ดงนน ระบบสมองกลฝงตวอาจจะท างานไดตงแตควบคมหลอดไฟ จนไปถงใชในยานอวกาศ
2.6 ภาษา Python และ TKinter
ภาษา Python (Python programming language) [10] เปนภาษาโปรแกรมระดบสง เพอ
ใชงานทวไปแบบ อนเทอรพรเตอร ทสรางโดย กโด ฟาน รอสซม )Guido van Rossum) ในพ.ศ.
2533 ปจจบนดแลโดย มลนธซอฟตแวรไพทอน
จดเดนของภาษาไพทอน
ความเปนภาษาสครปต เนองจากไพทอนเปนภาษาสครปต ท าใหใชเวลาในการเขยนและ
คอมไพล ไมมาก ท าใหเหมาะกบงานดานการดแลระบบ )System administration) เปนอยางยง ได
มการสนบสนนภาษา ไพทอนโดยเปนสวนหนงของระบบปฏบตการยนกซ, ลนกซ และสามารถตดตง
ใหท างานเปนภาษาสครปต ของวนโดวส ผานระบบ en:Windows Script Host ไดอกดวย
ไวยากรณทอานงาย ไวยากรณของไพทอนไดก าจดการใชสญลกษณทใชในการแบงบลอกของ
โปรแกรม และใชการยอหนาแทน ท าใหสามารถอานโปรแกรมทเขยนไดงาย นอกจากนนยงมการ
สนบสนน การเขยน docstring ซงเปนขอความ สนๆ ทใชอธบายการท างานของฟงกชน, คลาส, และ
โมดลอกดวย
Tkinter
Tkinter [11] เปนเครองมอมาตรฐานส าหรบการสราง GUI ในภาษา Python บน
ระบบปฏบตการ Windows และ Mac OSX Tkinter นนมาจาก Tk interface ซงพฒนาโดย
Fredrik Lundh
11
2.7 IFTTT และ Pushbullet
2.7.1 IFTTT
รปท 2-5 บรการ IFTTT
IFTTT [12] ยอมาจาก “If This Then That” ซงเปนบรการบนเวบทสามารถใชบรการตางๆ
เชน Gmail, Facebook, Instagram และ Twitter เปนตน น ามาสรางเปนเงอนไขและใหท าใหท า
เหตการณใดๆ คลายการเขยนโปแกรมแบบหนง ยกตวอยางเชนก าหนดใหสงอเมลลถามคน tweet
บน Twitter ดวย Hashtag ทก าหนดไว หรออยางเชน มคนแทกรปผใชบน Facebook แลวใหอพ
โหลดขน Dropbox เปนตน
IFTT ถกสรางและพฒนาโดย Linden Tibbets, Jesse Tane และผรวมกอตง Alexander
Tibbets ใน ซานฟราซสโก มลรฐแคลฟอรเนย ประเทศสหรฐอเมรกา ใหบรการเมอเดอนกนยายน
ค.ศ. 2011
รปท 2-6 แสดงความสมพนธระหวาง Recipe, Trigger และ Action
IFTTT มสวนประกอบดงน
Channel เปนบรการบนเวบเชน YouTube, eBay, Twitter, API ตางๆ รวมไปถงบรการ
SMS สภาพภมอากาศ และหนเปนตน ปจจบนสามารถใชบรการไดมากกวา 140 channels
12
Recipe หมายถง “If this then that" แปลวา “ถาเกดสงนใหท าสงนน” Recipe นนเปนการ
รวมระหวาง Trigger และ Action ผใชสามารถสราง recipes ของตวเองได
Trigger คอ “this” สวนหนงของ Recipe เปนสวนทใหเลอกวาหากเกดเหตการณตางๆ จาก
Channel
Action คอ “that” สวนหนงของ Recipe เปนสวนทก าหนดการกระท าทเกดจาก trigger
แลวใหกระท าการใดๆ บน Channel ได
Ingredients เปนสวนประกอบของ Trigger เชนในการสงอเมล สวนประกอบคอ หวขออเมล,
ผรบ, ผสง, เนอหาของอเมลล และไฟลแนบ เปนตน
2.7.2 Pushbullet
รปท 2- 7 บรการ Pushbullet
Pushbullet เปนบรการทสามารถสงเปนขอความ ไฟล link หรอแจงเตอน )Notification
ขามอปกรณตางไดแก Smart Phone (Android, iOS devices) และ Browser (Chrome, Firefox,
Safari และ Opera) รวมไปถงระบบปฏบตการ )Windows, Mac OSX) ไดเชนแจงเตอนจาก
Android ไปยง Chrome เปนตน สามารถเชอมตอกบบรการ IFTTT เพอรบการแจงเตอนจาก
Channel ตางๆ ทมอยจ านวนมาก ม API ทสามารถน ามาประยกตใชงานกบโครงงานนไดดงน
Realtime Event Stream รบการแจงเตอนแบบ realtime ผาน Websocket โดย
เชอมตอจาก Websocket Client ใน )JavaScript, Python หรอภาษาอนๆ) ไปยง
wss://stream.pushbullet.com/websocket/<your_access_token_here> จะไดรบการตอบ
กลบมาในรปแบบของ JSON
13
ตวอยางการตอบกลบทไดรบใน Websocket
{"type": "nop"} {"type": "tickle", "subtype": "push"}
type=nop –จะสงมาทกๆ 30 วนาท เพอเปนการยยนยนวายงตดอกบ Server อย
type=tickle -จะสงมาเมอมการเปลยนแปลงใดๆ subtype คอสงทเปลยนแปลงไปท
HTTP API –สามารถสงหรอรบการแจงเตอน )pushes) จาก Pushbullet server.
ตวอยางการรบ push notification ผาน HTTP API ผาน curl (Command line ใน Linux)
curl --header 'Authorization: Bearer <your_access_token_here>' -X GET
https://api.pushbullet.com/v2/pushes?modified_after=0
ตวอยางผลลพทการตอบกลบ จะไดมาเปนรปแบบของ JSON ทประกอบไปดวยประเภท หวขอ เนอหา ผสง/ผรบการแจงเตอน และรายเอยดตางๆ ของการแจงเตอน ซงสามารถน าไปใชพฒนาตอได
{"pushes": [ { "iden": "ubdprOsjAhOzf0XYq", "type": "link", "title": "Pushbullet", "body": "Documenting our API", "url": "http://docs.pushbullet.com", "created": 1411595135.9685705, "modified": 1411595135.9686127, "active": true, "dismissed": false, "sender_iden": "ubd", "sender_email": "[email protected]" "sender_email_normalized": "[email protected]", "receiver_iden": "ubd", "receiver_email": "[email protected]", "receiver_email_normalized": "[email protected]", } ] }
14
2.8 ภาษา PHP, HTML
2.8.1 ภาษา PHP
PHP [14] คอภาษาคอมพวเตอร เปนสครปตทท างานบนฝงเซรฟเวอร โดยลขสทธอยใน
ลกษณะโอเพนซอรส ภาษา PHP ถกออกแบบมาส าหรบพฒนาจดท าเวบไซต และแสดงผลออกมาใน
รปแบบ HTML โดยมรากฐานโครงสรางค าสงมาจากภาษา ภาษา C ภาษา JAVA และ ภาษา PERL
ซง ภาษา PHP นนงายตอการเรยนร ซงเปาหมายหลกของภาษาน คอใหนกพฒนาเวบไซตสามารถ
เขยนเวบเพจ ทมความตอบโตไดอยางรวดเรว และสครปตทผพฒนาเขยนเมอแสดงผลจะไมแสดงตอ
ผใชงาน
2.9.2 ภาษา HTML และ JavaScript
HTML [15] (Hypertext Markup Language) เปนภาษาคอมพวเตอรทเปนมาตรฐานในการ
เขยนเวบเพจ ถกพฒนาโดย World Wide Web Consortium (W3C) มรปแบบการเขยนเปน
สวนประกอบของ HTML คอแทก (Tags) เชน <html> โดยปกตจะมแทกเปดและแทกปด )เชน
<h1> และ </h1>) แตกจะมบางแทกทไมมแทกปดเชน <img> ซงแตละแทกอาจจะม Attribute
ระบคาทควบคมการแสดงผล
HTML อนญาตใหแสดงรปภาพหรอวตถ สามารถจดรปแบบการแสดงผลของขอความเชน
หวเรอง ยอหนา รายการ ลงค และอนๆ สามารถฝงสรปตการงานทอยเบองหลงได เชน JavaScript
และรองรบ Cascading Style Sheets (CSS) ทระบหนาตาและเคาโครงของเวบเพจและวตถตางๆ
ในเวบเพจ
2.9.3 ภาษา JavaScript
JavaScript [16] เปนภาษาสครปตทมลกษณะการเขยน prototype-based scripting
language โดยมโครงสรางของภาษาอยบนพนฐานของภาษา C โดยทวไปใชเปนสวนหนงของเวบเพจ
ควบคกบภาษา HTML ท างานอยบน Browser ทฝงผใช สามารถใหมการปฏสมพนธกบผใช ควบคม
การท างานของ Browser ตดตอสอสารกบ Web Service ควบคมการเปลยนแปลงเนอหาและการ
แสดงผลในหนาเวบเพจ หรอใชเพอเขาถงขอมลทมโครงสรางแบบ Document Object Model
(DOM) นอกจากฝงผใชแลวกมการใชงานฝงของเซรฟเวอรไดเชนกน Node.js การพฒนาเกมส และ
สราง Application ส าหรบคอมพวเตอรและโทรศพท
15
2.8 OrientDB
รปท 2- 8 OrientDB
OrientDB [17] เปนฐานขอมลทเปน NoSQL ซงเปน open source ถกเขยนขนดวยภาษา
JAVA OrientDB เปนการฐานขอมลแบบ document-based แตสามารถบรหารจดการฐานขอมลใน
รปแบบกราฟ ทเชอมตอแตละ record กบกราฟไดโดยตรง มการท างานทเรวและยงสามารถท างาน
ไดในทกๆ platform ทสนบสนน JAVA โดยไมตองตงคาใดๆ เลย สามารถจดเกบขอมลไดสงสด
120,000 ถง 150,000 record ตอวนาท รองรบ schema-less, schema-full และ schema-mixed
มความปลอดภยสงโดยสทธการเชาถงแบงตามระบบโปรไฟลผใชงานหลากหลายระดบ ยงสามารถ
รองรบ SQL, HTTP Rest/JSON API และอนๆ
2.9 WebSocket
WebSocket [18] เปนรปแบบการสอสารแบบสองทศทาง ) full-duplex) คอสามารถสง
ขอความไดทงฝงเซรฟเวอรและฝงผใช ผานการเชอมตอ TCP แคการเชอมตอเดยว WebSocket เปน
สวนหนงของ HTML5 ทเปนสวนตดตอโดยใช JavaScript ถกออกแบบมาเพอการใชงานรวมกน
ระหวาง Web browser และ Web server ทสามารถสงขอความหากนไดอยางรวดเรวแบบ real-
time สามารถสงขอมลจากเซรฟเวอรไปถงผใชได โดยทผใชไมจ าเปนตอง request ขอมลกอนเหมอน
AJAX ทตอง request อยตลอดเวลา ท าใหประหยดทงเวลาและปรมาณขอมลทถกสงในเครอขาย
2.10 Web Speech API
Web Speech API [19] พฒนาโดย Speech API Community Group ภายใต W3C เปน
JavaScript API ทใหผพฒนาเวบน าการแปลงเสยงเปนขอความ )speech recognition) และการ
แปลงขอความเปนเสยง )speech synthesis) ไปใชรวมกบเวบเพจตางๆ ได โดยเปนสครปตทท างาน
รวมกบ HTML เพอแสดงผลและใชงานบน Web Browser ฝงผใชได สามารถเขยนสครปตเพอสราง
ขอความเปนเสยง )text-to-speech) และจ าแนกเสยงจากฟอรมหนาเวบเพจตอเนองได รองรบการ
ใชงานไดทกภาษา รวมทงสามารถใชงานเปนภาษาไทยได
16
บทท 3 โครงสรางและขนตอนการท างาน
3.1 โครงสรางโดยรวมของระบบ
รปท 3- 1 แสดงโครงสรางของระบบ
โครงสรางของชดหนยนตเพอการเรยนร GoGo Board มสวนประกอบหลกอย 3 สวนคอ
3.1.1 GoGo Widget
GoGo Widget เปนโปรแกรมประยกตทสามารถใชงานไดหลาย platform พฒนาขนจาก
ภาษา Python ท าหนาทตดตอสอสารกบผใชและชดหนยนตผานทาง USB HID Protocol ตว
โปรแกรมม User Interface ดงรป (รปท 3- 2 GoGo Widget 1.2.1) ทสามารถเรยกใชได งาย
สามารถควบคมการท างานของชดหนยนต , สามารถอาน/บนทกคาตางๆ ของโมโมดลทใชรวมกบ
GoGo Board สามารถดคาสถานะตางๆ และสงงาน Raspberry Pi ได รวมถงมคอมไพเลอรภาษา
Logo ในตวซงท าหนาทแปลงโปรแกรม Logo ใหเปนภาษาไบนารและโหลดลงไปไวบนโกโกบอรด
17
รปท 3- 2 GoGo Widget 1.2.1
3.1.2 Raspberry Pi
Gogod
Raspberry Pi ทน ามาใชรวมกบ GoGo Board มชดค าสงทท างานอยบน Raspberry Pi ท
ใชภาษา Python ในการพฒนาคอ Gogod (หรอ GoGo daemon) เปนตวกลางคอยรบค าสงจาก
GoGo Board และปฏบตงานตามค าสงทไดรบมา และยงคอยรายงานสถานะระบบใหกบโกโกบอรด
เชนสถานะเครอขาย และสถานะของอปกรณตอพวง
18
GoGo Home Screen
รปท 3- 3 GoGo Home Screen เมอแสดงใน Browser
GoGo Home Screen เปน Web Application ทแสดงฟเจอรทพฒนาขนใชรวมรบ Gogod
โดยพฒนาจากภาษา PHP, HTML และ JavaScript (jQuery) ใช Apache เปน HTTP Webserver
ใช OrientDB เปนฐานขอมล รวมไปถง Library และ API ทเกยวของ อยบน Raspberry Pi สามารถ
แสดงผลไดดในทกอปกรณ )Responsive) ซง GoGo Home Screen นนเปนสวนทใหผใชสามารถ
เขามาดหนาตาของโปรแกรม )Display) สามารถเขามาจดการไฟล )File Manager) ดกราฟทแสดง
คาของเซนเซอรทบนทกไว )Data Logging) สามารถบนทกเสยง )Sound Recording) ไดโดยตรงจาก
Browser สามารถใชไฟล HTML ในสวนของ Web UI เพอสงค าสงไปให GoGo Board ได สามารถ
ใชการแปลงจากค าพดเปนขอความ )Speech Recognition) เปนค าสงทางเสยงเพอสงไปให GoGo
Board ท างานได นอกจากนนกสามารถตงคาตางๆ ของโปรแกรมได
19
รปท 3- 4 GoGo Home Screen เมอแสดงใน Browser บน Smart Phone
3.1.3 GoGo Board
GoGo Board เปน PIC ไมโครคอนโทรลเลอร ทมเฟรมแวรทพฒนาโดยใชภาษา C ตว GoGo
Board ท าหนาทคอยรบค าสงจากคอมพวเตอร และสอสารควบคมการท างานของ Raspberry Pi
ผานทาง Serial RS232 นอกจากนนยงม Logo Virtual Machine ทสามารถท างานตามโปรแกรมไบ
นารทคอมพวเตอรสงมาได
20
3.2 การพฒนาระบบ
การพฒนาสวนเสรมหรอความสามารถใหมๆ ใหกบชดหนยนตเพอการเรยนร GoGo Board
นนตองมการออกแบบค าสงทจะใชในการพฒนา โดยตองจะตองพฒนาทงระบบจงจะสามารถเรยกใช
งานรวมกนได
3.2.1 GoGo Widget
การพฒนา GoGo Widget โดยใช Editor เปน PyCharm Community Edition ใชภาษา
C ใชภาษา Python ในการพฒนา
รปท 3- 5 PyCharm Community Edition 3.4.1
21
รปท 3-6 Raspberry Pi Tab
ในสวนของ Raspberry Pi Tab ไดเพมสวนตางๆ ดงน
IP Address QR Code ของ Raspberry Pi
พฒนาขนโดยใช python-qrcode [22] ในการสรางเปนรปของ QR Code ทเปน IP
Address ของ Raspberry Pi
Gmail Configuration
รปท 3- 7 Section Gmail Configuration
เปนสวนทพฒนาขนมาเพอใหผใชกรอก Email Address และ Password ของ Gmail มปม
Save เพอสงไปให Gogod บนทกไวเพอใชตดตอกบ Gmail ส าหรบการสงอเมล
และสงอเมลผานสวนนคอกรอกอเมลของผรบ หวขอ และเนอหาของอเมล ในชอง
Recipient, Subject และ Body ตามล าดบ และปม Send
22
Send SMS
รปท 3- 8 Section Send SMS
เปนสวนทพฒนาขนมาเพอใหผใชกรอกหมายเลขโทรศพทและขอความลองในชอง Phone
และ Message ตามล าดบ และมปม Send เพอสงไปให Gogod ท าการสง SMS
3.2.2 Raspberry Pi
Gogod
บน Raspberry Pi มชดค าสงทพฒนาโดยใชภาษา Python และใช Editor เชนเดยวกบ
GoGo Widget
รปท 3- 9 แสดงตวอยางค าสงทพฒนาสวนเสรม
23
รปท 3- 10 PuTTY
ใช PuTTY ในการเขาถง Raspberry Pi ผานทาง SSH เพอตดตงโปแกรมและ Library ทเกยวของรวมถงทดสอบ เรยกใชงาน และจดการไหลตางๆ และรวมไปถงการใชเทคโนโลยและ Library ตางๆ ตามสวนเสรมดงน
smtplib [23] (SMTP client) ใชตอกบ Email Server เพอท าการสงอเมล
PyCrypto [24] (The Python Cryptography Toolkit) ใชในการเขารหสรหสผานกอนบนทกการตงคา
SMS
gammu ใชเชอมตอกบ Air Card เพอสง SMS
python-gammu [25] ใชเชอมตอกบ gammu Data Logger
OrientDB (Distributed Graph Database engine) ใชเปนฐานขอมล
Pyorient [21] (OrientDB driver for Python that uses the binary protocol) ใชการการเชอมตอกบฐานขอมล OrientDB
Text-to-Speech (say)
Festival Speech Synthesis System [20] เพอสงใหเลนเสยงแบบออฟไลน Pushbullet/IFTT
ใช Websocket client ใชตดตอกบเซรฟเวอรของ Pushbullet
urllib2 เชอมตอไปยง HTTP API ของ Pushbullet
24
GoGo Home Screen
รปท 3- 11 Sublime Text
การพฒนาสวนของ GoGo Home Screen นนพฒนาดวยโปรแกรม Sublime Text เปน
text editor ในการเขยนโคด และพฒนาดวยภาษา PHP, HTML, JavaScript (jQuery) ใช Apache
เปน HTTP Webserverรวมไปถง Library และ API ตางๆ ตามสวนเสรมดงน
Home Screen
bootstrap-material-design [30] (Material Design for Bootstrap) ใชเปน
Framework และใชออกแบบ Layout ของหนา Home Screen และทง Web
Application
jQuery ใชในการพฒนาสวนของการท างานทอยเบองหลงของ Web Application
jquery.qrcode [29] ใชส าหรบสราง IP Address QR Code ของ Raspberry Pi
PI Display
พฒนาใหสามารถใชค าสง(ภาษา Logo) ดานลาง ซงเปนค าสงทเปลยนขอความให
เปน เ สยงและ เ ลน ผานหน า Pi Display โดยใ ช Web Speech API ใน สวน
SpeechSynthesis ซงพฒนาในภาษา JavaScript
25
say "phrase to speak"
พฒนาใหสามารถเลนเสยงเมอสงงานจาก GoGo Board ดวยค าสง(ภาษา Logo)
ดานลางได playsound "filename.mp3"
พฒนาเพอปรบปรงการท างานของเดมทโหลดรปภาพเดมซ าอยตลอด ซงมผลตอ
การแสดงผลและประสทธภาพโดยรวมของระบบ ผพฒนาไดแกโคด JavaScript ท
เปนสวนทท างานอยเบองหลง ใหโหลดรปภาพเพยงครงเดยวหาก GoGo Board สง
ค าสง(ภาษา Logo) ดานลาง มาใหเปลยนรปเปนรปเดม showimage "imagename.jpg"
File Manager
พฒนาใหสามารถอพโหลดและแกไขไฟลผาน Browser พฒนาโดยใชภาษา PHP
และ Responsive File Manager [29]
Data Logging
Chosen [27] ใชในหนาส าหรบเลอกขอมลทตองการแสดงตอไป สามารถเลอกแบบ
หลายตวเลอก หรอคนหาไดโดยงาย
Highstock JS [28] ใชส าหรบแสดงกราฟของขอมลทไดท าการบนทกไว
Sound Recording
Recordmp3js [26] ใชเปนสวนทท าการบนทกเสยง
Speech Recognition
ใช Websocket ในการตดตอระหวาง Web Application และ Gogod
Web Speech API ในสวน SpeechRecognition ใชในการแปลงจากเสยงเปน
ขอความ
26
3.2.3 GoGo Board
การพฒนาเฟรมแวร GoGo Board โดยใชภาษา C และ Editor เปน PCWHD Complier
รปท 3- 12 PCWDH Complier
27
3.3 การท างานของระบบ
3.3.1 IP Address QR Code
รปท 3- 13 GoGo Widget 1.3.6, Raspberry PI Tab
เมอมการเชอมตอเครอขายผานทาง LAN หรอ Wireless LAN โปรแกรมจะท างานโดยสราง
และแสดงรป (รปท 3- 13 GoGo Widget 1.3.6, Raspberry PI Tab) QR Code ทเปน IP Address
HTTP Link ของ Raspberry Pi ม IP Address เปน 192.168.0.101 กจะสราง QR Code ท เมอ
สแกนจาก Smart Phone กจะได URL Link เปน http://192.168.0.101 ซงเปนสวนของ GoGo
Home Screen
28
3.3.2 Email Sender
การตงคา
รปท 3- 14 Gmail Configuration ใน Raspberry Tab
การตงคา Email สามารถตงคาผาน GoGo Widget > Raspberry Pi > Gmail
Configuration ตามกรอบสแดง แสดงดงรป (รปท 3- 14 Gmail Configuration ใน Raspberry Tab)
29
รปท 3- 15 แผนผงการท างานเมอตงคา Email
เมอกรอก Email Address และ Password ของ Gmail และกดปม Save แลว
GoGo Widget จะสราง Command Packet(1) ตามรป )รปท 3- 15 แผนผงการท างานเมอตงคา
Email) สงไป GoGo Board ผานทาง USB HID Protocol จากนน GoGo Board จะแปลงเปน
Command Packet(2) แบบเดยวกบในภาษา Logo และสงไปให Gogod ผานทาง Serial RS232 ท
เชอมตอกนอย เมอ Gogod ไดรบ Command Packet จะวเคราะหไดวาเปน Packet ทใหบนทก
Email Address แล เขารหส Password กอนทจะบนทกลง Configuration File ทอยบน Raspberry
Pi (3)
ขณะท าการบนทกและเมอบนทกคาเสรจแลว Gogod จะเปลยนคาสถานะสวนของ Email
ตามขนตอนทก าลงท าน Gogod ซงจะรายงานสถานะของ Raspberry Pi )Report Packet)(4) อย
ตลอดอยแลวนนไปให GoGo Widget ผาน GoGo Board สวน GoGo Widget กจะไดรบสถานะ
ตางๆ แลว กจะประมวลผลและแสดงตามสถานะนนๆ (5)
Computer
GoGo
Widget
USB HID Protocol GoGo Board
Raspberry Pi
Gogod
Serial RS232
1. Command Packet from GoGo Widget
2. Command Packet
3. Save data
4. Report Status
5. Report Status
30
การใชงาน
สามารถสงอเมลผาน GoGo Widget สวนเดยวกบสวนทตงคา Email ไดคอกรอกอเมลของ
ผรบ หวขอ และเนอหาของอเมล ในชอง Recipient, Subject และ Body ตามล าดบ หรอใชค าสง
ภาษา Logo บน GoGo Board ดงดานลาง
sendmail "recipient" "subject" "body"
รปท 3- 16 แผนผงการท างานเมอสง Email
เมอกรอกคาตางๆ แลวและกดปม Send แลว GoGo Widget แลว GoGo Widget ตามรป )รปท 3- 16 แผนผงการท างานเมอสง Email) จะสราง Command Packet )1) สงไป GoGo Board ผานทาง USB HID Protocol จากนน GoGo Board จะแปลงเปน Command Packet (2) แบบเดยวกบในภาษา Logo และสงไปให Gogod ผานทาง Serial RS232 ทเชอมตอกนอย เมอ Gogod ไดรบ Command Packet จะวเคราะหไดวาเปน Packet (3) ทใหสง Email Address กท าการเชอมตอ Gmail Server ผานทาง SMTP และรายงานสถานะ (4,5) เชนเดยวกบการตงคา Email ทอธบายขางตน
Computer
GoGo
Widget
USB HID Protocol GoGo Board
Raspberry Pi
Gogod
Serial RS232
1. Command Packet from GoGo Widget
2. Command Packet
3. Process
4. Report Status
5. Report Status
Internet
LAN / Wireless LAN
31
3.3.3 SMS Sender
รปท 3- 17 Send SMS ใน Raspberry Pi Tab
การสง SMS สามารถผาน GoGo Widget โดยไปท Raspberry Pi > Send SMS ตามกรอบแสดงดงรป (รปท 3- 17 Send SMS ใน Raspberry Pi Tab) ขนตอนการสงคอกรอกหมายเลขโทรศพทและขอความในชอง Phone number และ Message หรอใชค าสงภาษา Logo บน GoGo Board ดงดานลาง
sendsms "phone number" "message"
32
รปท 3- 18 แผนผงการท างานเมอท าการสง SMS
เมอกรอกคาตางๆ แลวและกดปม แลว GoGo Widget แลว GoGo Widget ดงรป
)รปท 3- 18 แผนผงการท างานเมอท าการสง SMS) จะสราง Command Packet )1,2) สงไป Gogod
ดวยวธการเชนเดยวกบการสงการตงคา Email )3.3.2 Email Sender) หรอเมอค าสง Logo สงมายง
Gogod แลวกจะท าการสง SMS โดยใช Air Card ทเสยบไวท USB Port (3) และรายงานสถานะไป
ยง GoGo Widget (4,5)
Computer
GoGo
Widget
USB HID Protocol GoGo Board
Raspberry Pi
Gogod
Serial RS232
1. Command Packet from GoGo Widget
2. Command Packet
3. Process
4. Report Status
5. Report Status
USB Port Air Card
33
3.3.4 RFID
รปท 3- 19 การใชงาน RFID ผานภาษา Logo
สามาราถใชงาน RFID ไดโดยใชค าสงภาษา Logo ดงน
userfid สงให Gogod เชอมตอกบ RFID Reader และท าการอานคาของ RFID ไว
ในหนวยความจ า
rfidtagfound? ค าสงท ใชตรวจสอบดวาม RFID Tag มาแตะท เครอง RFID
Reader หรอไม
rfidbeep สงใหเครอง RFID Reader นนสงเสยง beep
readrfid n ค าสงใหอานคามาจากหนสยความจ าท Gogod ไดอานมาเปนตวเลข
ตงแต 0-255 (n) และน าไปใชในภาษา Logo เชน เทยบตวเลข หรอน าตวเลขไปใชตอไป
writerfid n ค าสงใหเขยนคาลง RFID Tag ดวยตวเลขตงแต 0-255 (n)
34
รปท 3- 20 แผนผงการท างานค าสงตางๆ ชอง RFID
เมอมค าสงตางๆ จากภาษา Logo สงไปท Gogod แลวจะแยกการท างานตามแตละค าสง
ตามทระบไวเพอคยกบ RFID Reader ผานทาง USB Port เมอใชค าสงใหใชงาน RFID กจะเชอมตอ
แลวอานคาเกบไวในหนวยความจ า)Gogod) จาก RFID อยตลอดเวลา เมอม Tag มาแตะทเครอง
RFID Reader กคาหนวยความจ ากจะถกเปลยน หากใชค าสงใหอานหรอตรวจสอบวาม Tag หรอ
เปลา กจะใชคาจากหนวยความจ านสงกลบขนไปให Gogod Board ท างานตอไป
GoGo Board
Raspberry Pi
Gogod
Serial RS232
Report Packet Command Packet
Process
Use RFID Write RFID
USB Port RFID Reader
Read RFID Tag, Check Tag found?
35
3.3.5 Data Logging
การบนทกคาตางๆ
รปท 3- 21 การใชงาน Data Logging ผานภาษา Logo
record sensor1 "log8"
สามาราถใชงาน Data Logging ไดโดยใชค าสงภาษา Logo ดงดานบนและดงรป (รปท 3-
21 การใชงาน Data Logging ผานภาษา Logo) Key (Log name) เปนตวหนงสอทสอถงคาท
ตองการบนทก Variable (Log Value) สามารถเปนไดทงคาเซนเซอรตวท 1-8 คอ sensor1 –
sensor 8 หรอเปนตวเลขอนๆ ในค าสงได
Key (Log name)
Variable (Log Value)
36
รปท 3- 22 แผนผงการท างานเมอใชค าสง Data Logging
ตามรป )รปท 3- 22 แผนผงการท างานเมอใชค าสง Data Logging) เมอมค าสงใหบนทกคา
ลงมาท Gogod จากนนจะท าการตวรจสอบจากฐานขอมล OrientDB วามคา key (log name) อย
หรอไมโดยค าสง SQL คอ
SELECT COUNT(*) FROM ( SELECT expand( classes ) FROM
metadata:schema ) WHERE name = '%s'" % (log_name)
หากยงไมมตารางอยในฐานขอมล จะสรางตารางใหมโดยใชค าสง SQL ใน ภาษา python คอ
self.client.command( "create class "+ log_name)
และสราง index เพอความรวจเรวในการ Query ตอไปดงค าสง
self.client.command( "CREATE PROPERTY " + classname
+ ".datetime STRING" )
self.client.command( "CREATE INDEX "+ classname +
".datetime NOTUNIQUE" )
GoGo Board
Raspberry Pi
Gogod + OrientDB
Serial RS232
Command Packet
Process
Sensor 1-8
37
เมอสรางตารางเสรจแลวหรอมตารางอยแลว กจะใสขอมลลงตารางดวยค าสง SQL ใน ภาษา
python ดงดานลางโดยจะมการบนทกคาเวลา Time Stamp ลงไปดวยเพอระบไดวาไดท าการบนทก
ไมเมอไหร
command = "insert into %s ( 'datetime', 'value' )
values( '%s', %d )" % (log_name,
time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()),
log_value)”
การดคาตางๆ
รปท 3- 23 HTTP REST API function ของ OrientDB
38
รปท 3- 24 หนา Data Logging และสวนประกอบ
เมอเขาไปท GoGo Home Screen (3.3.6 GoGo Home Screen) และ Data Logging จะ
ท าการโหลด JSON มาจาก HTTP REST API ของ OrientDB ดงรป )รปท 3- 23 HTTP REST API
function ของ OrientDB) ทเปนรายชอของ Log ทมอยในฐานขอมลมาใหเลอก โดยเลอกคา sensor
ตางๆ ในชอง choose data หรอพมพและคนหาไดจากชองเดยวกน ดงรป )รปท 3- 24 หนา Data
Logging และสวนประกอบ) สามารถเลอกใหแสดงไดหลายคาพรอมกน และหากตองการใหเฉลยคา
ใหท าเครองหมายถกหรอคลกท Average sensor values by และเลอกรอบของเวลาทตองการ
จากนนคลดทปม เพอสงคาไปใหแสดงกราฟ
Submit Button Choose Log
Check to average values Select period
39
รปท 3- 25 ตวอยางค าสง jQuery กอนท าการสงขอมล
เมอคลกใหสงขอมล กอนท าการสงกมการใช JQuery ในการตรวจสอบคาตางๆและเรยบ
เรยงคาใหมดงค าสงในรป )รปท 3- 25 ตวอยางค าสง jQuery กอนท าการสงขอมล)
รปท 3- 26 หนาแสดงกราฟขอมลและสวนประกอบคราวๆ
Auto Update Toggle Export Data
40
เมอสงคามายงหนาทแสดงกราฟ ค าสง jQuery ทท างานอยจะดงขอมล JSON จาก HTTP
REST API ของ OrientDB มาและสงให Highstock JS แสดงเปนกราฟขนมา ดงรป )รปท 3- 26 หนา
แสดงกราฟขอมลและสวนประกอบคราวๆ) สามารถ Toggle ให Update คาอตโนมตไดท Auto
Update ดานบนซาย ถดมาเลอกระดบการ Zoom ดานบนขวามใหเลอกวนทเรมตนและสนสดท
ตองการใหแสดง ถดมามปมใหเลอกวาจะ Export ขอมลในรปแบบตางๆ ไดแก PNG, JPEG, PDF,
SVG ,CSV และ XLS ดานขวาเลอกใหแสดงหรอซอนคาทางดานขวา และแถบดานลางสามารถเลอก
ชวงทตองการใหแสดงโดย Drag ทแถบ
3.3.6 GoGo Home Screen
การใชงาน
สามาราถเขาไปใชงาน GoGo Home Screen )Web Application) ผานทาง Browser ของ
คอมพวเตอรหรอ Smart Phone ดวย URL เปน http://IP Address เชน http://192.168.0.11
ทงนตองอยในเครอขาย LAN เดยวกนดวย จะแสดงตาม รปท 3- 3 GoGo Home Screen เมอแสดง
ใน Browser ในหวขอ 3.1.2 Raspberry Pi
41
การแสดง QR Code
รปท 3- 27 หนาแสดง QR Code
สามารถแสดงคา QR Code ทเปน URL IP Address ของ GoGo Home Screen เพอให
สแกนโดย Smart Phone ได โดยคลกทไอคอน ตรงดานลางขวาของ Web Application ใน
กรอบดง )รปท 3- 27 หนาแสดง QR Code) จากนนจะม Modal ทแสดง QR Code ขนมา
42
การตงคาตางๆ
สามารถแสดงคาตางๆ ทจะน าไปใชใน Gogod โดยคลกไอคอน ดานลางขวาของ
Web Application
รปท 3- 28 หนาส าหรบตงตางๆ
การตงคาสามารถตงคา Pushbullet Token )ดคา Token ไดทหวขอ Access Token ท
https://www.pushbullet.com/account ใน) และน ามากรอกทชอง Token หอสามารถตงคา
Account ทจะสง Email ไดตามชอง Gmail Username และ Gmail Password และกด Save เพอ
ท าการบนทกคา
43
รปท 3- 29 แผนผงการเชอมตอ GoGo Home Screen
เมอสงขอมลไปให PHP จากนนจะดวามการสงคาอะไรมาบาง หากคาไดวางกจะไมน ามา
แกไข JSON Configuration file ซงเปนไฟลเดยวกบการตงคา Email (3.3.2 Email Sender) จะท า
การอานคามาและดวามคาอะไรใหมเขามากจะแกไขและบนทกไฟล และแสดงสถานะวาส าเรจหรอไม
จะเตอนขนมาทดานลาง Browserดงรป )รปท 3- 30 การแจงเตอนเมอบนทกการตงคาส าเรจ)
รปท 3- 30 การแจงเตอนเมอบนทกการตงคาส าเรจ
GoGo Board
Raspberry Pi
Gogod + PHP server
Serial RS232
HTTP
GoGo Home Screen
Browser
44
3.3.7 Pi Display
การใชงาน
รปท 3- 31 การใชงานเลนไฟลเสยงและ Text-to-speech ผานภาษา Logo
สามารถใชงานใหเลนเสยงจากไฟล หรอเปลยนจากขอความเปนเสยง (Text-to-speech) ได
โดยใชค าสงภาษา Logo ค าสงเลนไฟลเสยง ดงดานลาง
playsound "filename.mp3"
และค าสงเปลยนขอความเปนเสยง ดงดานลางและดงรป (รปท 3- 31 การใชงานเลนไฟล
เสยงและ Text-to-speech ผานภาษา Logo) เมอมค าสงเหลานสงไปท Gogod
say “phrase want to say”
45
รปท 3- 32 Pi Display บน Browser
ในค าสง playsound จะสงใหเลนเสยงออกทาง audio jack ของ Raspberry Pi และสง
file name ไปให Pi Display (รปท 3- 32 Pi Display บน Browser) ผานทาง Websocket เมอ Pi
Display ไดรบค าสงใหเลนเสยงกจะโหลดไฟลเสยงผานทาง HTTP และเลนเสยงบน Smart Phone
ได
สวนค าส ง say จะส งให Festival Speech Synthesis System เลนเสยงผาน Linux
command line ดงดานลาง เลนเสยงออกล าโพงท audio jack ของ Raspberry Pi และสงขอความ
ไปให Pi Display ผานทาง Websocket เมอ Pi Display ไดรบค าสงให กใช SpeechSynthesis ใน
Web Speech API แปลงขอความเปนเสยงและเลนผาน Smart Phone โดยเสยงจะมความเปน
ธรรมชาตมากกวา ทเลนออกล าโพงเนองจากใช API ทตองตอ Internet ทมการประมวลผลท Server
os.system("echo \""+phrase+"\" | festival --tts")
46
3.3.8 File Manager
การใชงาน
รปท 3- 33 หนา File Manager
เมอเขาไปท GoGo Home Screen (3.3.6 GoGo Home Screen) และ File Manager (รป
ท 3- 33 หนา File Manager) สามารถคลกเพออพโหลดไฟลรปภาพ เสยง หรอไฟลตางๆ หรอจะ
Drag and Drop ทหนาตางใหอพโหลดได, สามารถสราง text file หรอ folder ได, เลอกรปแบบการ
แสดงผลแบบตางๆ Filter ไฟลทตองการใหแสดง, เรยงล าดบการแสดงไฟล สามารถเปลยนชอ ลบ
คดลอก หรอดตวอยางไฟลไดเชนเลนไฟลเสยง หรอดรปภาพขนาดเตม
47
3.3.9 Speech Recording
การใชงาน
รปท 3- 34 หนา Speech Recording
เมอเขาไปท GoGo Home Screen (3.3.6 GoGo Home Screen) และ Speech Recording
จะม popup –ขนมาในกรอบดงรป )รปท 3- 34 หนา Speech Recording) เพออนญาตให Browser
ใชงาน Microphone ได คลกท Allow เมอพรอมแลวไอคอน จะเปลยนสเขมขน คลกท
ไอคอนน (record) เพอเรมบนทกเสยง ไอคอนจะเปลยนไปดงรป )รปท 3- 35 ขณะท าการ
บนทกเสยง) และมขอความบอกสถานะวาก าลงบนทกเสยง
รปท 3- 35 ขณะท าการบนทกเสยง
48
รปท 3- 36 เมอบนทกเสยงเสรจสน
และเมอตองการหยดบนทกเสยงคลกทปม (Stop) และจะท าการแปลงเปนไฟล mp3
แสดงชอไฟล ดงรป )รปท 3- 36 เมอบนทกเสยงเสรจสน) และอพโหลดไปทโฟลเดอร recordings ซง
สามารถเขาไปดไดท File Manager (3.3.8 File Manager) > recordings ดงรป )รปท 3- 37 โฟล
เดอร Recording ใน File Manager) ซงสามารถเปลยนชอไฟล ฟงเสยง และน าไฟลเสยงไปใชใน
ภาษา Logo ดวยค าสง playsound . )3.3.7 Pi Display) ได
รปท 3- 37 โฟลเดอร Recording ใน File Manager
49
3.3.10 Web UI
การเตรยมไฟล HTML
รปท 3- 38 Online Rapid Interface Builder
สามารถเขยนไฟล HTML ทสวนประกอบเชน button, slider, switch ขนมาไดเอง หรอใช
เครองมอสรางไดเชน Rapid Interface Builder ทสามารถ Drag and Drop เพอสรางไฟล HTML
ขนมาเขาถงออนไลนไดท https://01.org/rib/online/ ดงรป (รปท 3- 38 Online Rapid Interface
Builder) หรอใชเครองมออนๆ ไดเชนกน เมอเสรจแลวคลกท export เปน zip เมอได zip แลวแตก
ไฟล (Extract Files) เปลยนชอ index.html เปนชอทไมซ ากบไฟลอน จากนนอพโหลดไฟลทงหมด
ไปไวท File Manager (3.3.8 File Manager) > recordings ดงรป )รปท 3- 39 โฟลเดอร html ใน
File Manager)
50
รปท 3- 39 โฟลเดอร html ใน File Manager
การใชงาน
รปท 3- 40 หนา Web UI
เมอเขาไปท GoGo Home Screen (3.3.6 GoGo Home Screen) และ Web UI จะม
รายชอของไฟล HTML ดงรป )รปท 3- 40 หนา Web UI) ทถกอพโหลดไวในโฟลเดร html/ คลก
ไฟลทตองการใชงาน
51
เมอเลอกไฟลแลว Application จะท าการดงไฟล jQuery ทเขยนไวมารวมกบ HTML file
และท างานอยเบองหลงการในการตรวจสอบสวนประกอบของ HTML ตดตามการท างานของสวน
นนๆ (event monitoring) และตดตอ Websocket เพอสงคาให Gogod ไปให GoGo Board ท างาน
ตอไป
เมอกดปมเปลยนคา slider หรอ switch Application ใน html file ดงรป )รปท 3- 41
ตวอยาง HTML file) จะสราง key และ value ดงน key จะพจารณาจากคา attribute ของ แตละ
element คอ name และ id ตามล าดบหากไมมคาเหลานกจะใชคา default เปน button ส าหรบ
ปม, switch ส าหรบ switch, ตาม label ของ slider หรอ slider ส าหรบ slider สวนคา value จะ
พจารณาจากคา attribute ของ แตละ element คอ value หากไมมกจะใชคาทแสดง (label) บน
แตละ element
รปท 3- 41 ตวอยาง HTML file
52
รปท 3- 42 แผนผงการท างานการสงคา key และ value
เมอไดคา key และ value แลวจะสง Websocket ไปให Gogod สรางเปน KeyValue
Packet และสงไปให GoGo Board ท างานตอไปตามรป (รปท 3- 42 แผนผงการท างานการสงคา
key และ value) และสามารถเขยนภาษา Logo ไดดงดานลาง เพอเปนเงอนไขในการท างาน
if key “key” = “value” [
do_something
]
GoGo Board
Raspberry Pi
Gogod + PHP server
Serial RS232
Handle event
KeyValue Packet
Key value
HTTP
GoGo Home Screen Browser
Websocket
53
3.3.11 Sound Recognition
รปท 3- 43 หนา Speech Recognition
เ ม อ เ ข า ไ ป ท GoGo Home Screen (3.3.6 GoGo Home Screen) แ ล ะ Speech
Recognition จะม popup –ขนมาในกรอบดงรป (รปท 3- 43 หนา Speech Recognition) เพอ
อนญาตให Browser ใชงาน Microphone ได คลกท Allow ขณะท าการ Speech Recognize
ไอคอน จะกระพรบเพอบอกสถานะวาก าลงท างานอย หากไมมเสยงในขณะหนง จะหยดท างาน
ไอคอน กจะไมกระพรบ สามารถคลกทไอคอนนเพอใหท างานหรอหยดท างานได โดยหากคลก
จณะกระพรบคอใหหยดท างาน คลกขณะไมกระพรบจะใหท างาน
54
รปท 3- 44 หนา Speech Recognition เมอมผลลพท
เมอ Application แปลงเสยงเปนขอความแลวจะสง Websocket ทม key และ value เปน
speech และขอความทถกแปลงมาแลว ไปให Gogod สรางเปน KeyValue Packet และสงไปให
GoGo Board ท างานตอไปตามรป )รปท 3- 44 หนา Speech Recognition เมอมผลลพทรปท 3-
42 แผนผงการท างานการสงคา key และ value) ในหวขอ 3.3.10 Web UI และ Gogod จะสง
Websocket คานนไปทก Websocket client กจะเหนขอความทกอปกรณทเปด Web Application
หนานอยดวยเหมอนกน ดงรป )รปท 3- 44 หนา Speech Recognition เมอมผลลพท) และสามารถ
เขยนภาษา Logo ไดดงดานลาง เพอเปนเงอนไขในการท างาน
if key “speech” = “value” [
do_something
]
55
3.3.12 Pushbullet และ IFTTT
กอนอนนนตองม Account ของบรการ Pushbullet (https://ifttt.com) และ IFTTT
(https://www.pushbullet.com/) กอน รวมถงการผกบรการ IFTTT และ Pushbullet เขาดวยกน
โดยเขาไปท https://ifttt.com/pushbullet และท าการผกบรการ
รปท 3- 45 แผนผงแสดงความสมพนธ IFTTT, Pushbullet และ Raspberry Pi
เมอ Active channel ทตองการใช สราง Recipe ดไดจากภาคผนวก )การใชงาน IFTTT)
และต งคา Pushbullet Token ในสวนของการต งคา (3.3.6 GoGo Home Screen) แลวนนก
สามารถใชงานไดทนท โดยท Gogod จะท าการตรวจสอบความถกตองของ Token หากถกตองกจะ
ท าการเชอมตอ Websocket ไปยงเซรฟเวอรของ หากมการแจงเตอนใหม เซรฟเวอรจะสงเขามาทาง
Websocket วามการเปลยนแปลงของบรการ เมอทราบแลวมการแจงเตอนใหมแลวนนกใช urllib2
เชอมตอไปยง HTTP API ของ Pushbullet ตามทศทางดงรป )รปท 3- 45 แผนผงแสดงความสมพนธ
IFTTT, Pushbullet และ Raspberry Pi) จะไดการแจงเตอนทมหวเรอง (title) และสวนของเนอหา
(body) จากนนกจะแปลงเปน KeyValue Packet และสงไปให GoGo Board ท างานตอไป ) และ
สามารถเขยนภาษา Logo ไดดงดานลาง เพอเปนเงอนไขในการท างาน
if key “key” = “value” [
do_something
]
56
บทท 4 การทดลองและผลการทดลอง
4.1 รายละเอยดการทดลอง การทดลองนนจะทดลองโดยทดสอบการท างานของแตละสวนเสรม )adds-on) ทกสวนเสรม
ตาม )3.3 การท างานของระบบ) มดงน
IP Address QR Code
Email Sender
SMS Sender
RFID
Data Logging
GoGo Home Screen
Pi Display
File Manager
Sound Recording
Web UI
Speech Recognition
Pushbullet และ IFTTT
โดยทดสอบหากสวนเสรมใดมค าสงภาษา Logo กจะท าการเขยนเปนค าสงละเรยกใชงานบน
GoGo Board สวนเสรมใดตองท างานบน Browser กจะทดลองโดยทดสอบเรยกใชงานบน
คอมพวเตอรคอมพวเตอร และบน Smart Phone
57
4.2 ขนตอนการทดลองและผลการทดลอง
4.2.1 IP Address QR Code
รปท 4- 1 IP Address QR Code ใน GoGo Widget
ในสวนของ IP Address QR Code จะทดสอบโดยการเรยก GoGo Widget ขนมาและ
เชอมตอกบระบบเครอขายผานทาง LAN และ USB Wireless LAN โดยจะ Connect และ
Disconnect กบระบบเครอขายเพอดการเปลยนแปลงของ QR Code ทแสดง และทดสอบใช Smart
Phone สแกน QR Code
ผลการทดลอง
สามารถสแกน QR Code ได IP Address ทถกตองทง
LAN และ Wireless LAN ทกครง ไดผลลพทดงรป )รปท 4- 2
ผ ล ก า ร ส แ ก น QR Code
บน Smart Phone) เวลาท ไมม IP Address กจะไม
แสดง QR Code ขนมา ซงตรงกบการท างานตามทตองการ
ทงนขนอยกบหนาจอของ Laptop ดวยคอหากมแสงสะทอน
จากหนาจอมาก )ภายนอกอาคาร) จะใชเวลาในการสแกนนาน
หนอย
58
รปท 4- 2 ผลการสแกน QR Code
บน Smart Phone
4.2.2 Email Sender
การตงคา Email
ทดสอบโดยตงคา Email ดวย GoGo Widget การตงคานนจะทดลองดวาสามารถบนทกการ
ตงคาไดหรอไมและทดสอบความถกตองการการเขารหสและถอดรหสเพอน าไปใชในการสง Email
ตอไป โดยกรอก Email, Password และกดปม Save ดผลการท างาน
รปท 4- 3 การตงคา Email และผลลพทการตงคา
ผลการทดลอง
พบวาสามารถเขารหส รหสผาน )Password) กอนการบนทกลง Configuration File และ
ถอดรหสตอนเรยกใชงานไดถกตองทกครง และขนสถานะ “Success” เมอบนทกเสรจ ในกรอบดงรป
)รปท 4- 3 การตงคา Email และผลลพทการตงคา)
การสง Email
หลงจากตงคา Email ส าเรจแลว ทดสอบการสง Email โดยตงคา Email ดวย GoGo
Widget ในสวนของ Gmail Configuration กรอกผรบ หวขอ และเนอหาของ Email ในชอง
Recipient, Subject และ Body ตามล าดบ กดปม Send และดผลการทดลอง
59
และใชภาษา Logo เขยนเพอสง Email ทมผรบเปน “[email protected]” ชอ
หวเรองเปน “Email Title” และขอความเปน “Email Body” ดวยค าสง ดงน
sendmail " [email protected]" "Email Title"
"Email Body"
รปท 4- 4 การสง Email ใน GoGo Widget เมอส าเรจ
รปท 4- 5 การสง Email ใน GoGo Widget เมอตงคาไมถกตอง
ผลการทดลอง
เมอมการตงคาทถกตอง )Email และรหสผานถกตอง) เมอกดสงจาก GoGo Widget หรอใช
ค าสงภาษา Logo กจะมการท างานเชนเดยวกน หากส าเรจจะมขอความแจงเตอนสถานะ “Success”
ดงรป )รปท 4- 4 การสง Email ใน GoGo Widget เมอส าเรจ) และท าการตรวจสอบ Email ทเปน
ฝงรบกไดรบส าเรจดงรป )รปท 4- 6 Email ทไดรบใน Outlook บน Windows 8) หาก Raspberry
60
Pi ไม ได เชอมตออนเตอร เนต หรอทดลองต งคาดวยรหสผานท ไมถกตอง จะขนขอความ
“Authentication Error” ดงรป )รปท 4- 5 การสง Email ใน GoGo Widget เมอตงคาไมถกตอง)
ซงถกตองตามความตองการ
รปท 4- 6 Email ทไดรบใน Outlook บน Windows 8
4.2.3 SMS Sender
ทดสอบการสง SMS ดวย GoGo Widget ในสวนของ Send SMS หมายเลขโทรศพทของ
ผรบและขอความ ลงในชอง Phone number และ Message ตามล าดบ กดปม Send และดผลการ
ทดลอง รวมทงหดลองไมเสยบ Aircard เพอตรวจสอบความถกตองของสถานะการแจงเตอน
และใชภาษา Logo เขยนเพอสง SMS ทมผรบเปน “0856536xxx” ขอความเปน “Message
from JAmes” ดวยค าสง ดงน
sendsms "0856536xxx" "Message from JAmes"
61
รปท 4- 7 การสง SMS ใน GoGo Widget เมอส าเรจ
รปท 4- 8 SMS ทไดรบใน Smart Phone
62
รปท 4- 9 การสง SMS ใน GoGo Widget เมอม Error
ผลการทดลอง
เมอมการเสยบ Aircard ไวท Raspberry Pi และท าการสง SMS ส าเรจแลวจะมขอคววาม
ขนสถานะ “Success” ดงรป )รปท 4- 7 การสง SMS ใน GoGo Widget เมอส าเรจ) และมขอความ
สงไปทโทรศพทมอถอไดดงรป )รปท 4- 8 SMS ทไดรบใน Smart Phone) หากไมมการเสยบ
Aircard จะไมสามารถท าการสง SMS ได จะมสถานะแจงเตอน “Error : Device doesn’t exist”
ดงรป รปท 4- 9 การสง SMS ใน GoGo Widget เมอม Error ซงท างานไดถกตองตามความตองการ
4.2.4 RFID
รปท 4- 10 ค าสงทดสอบการท างาน RFID ในภาษา Logo
63
ทดสอบการท างานของ RFID ดวยค าสงภาษา Logo ดงรป )รปท 4- 10 ค าสงทดสอบการ
ท างาน RFID ในภาษา Logo) ตามค าสงมการท างานคอเรมแรกสงใหใชงาน RFID (userfid)
แสดงเลข 0 บน GoGo Board ท าการเชคตลอด )forever) วาม RFID Tag มาแตะทเครองอาน
หรอไม (rfidtagfound?) หากมใหเครองอาน RFID สงเสยง beep (rfidbeep) และแสดง
หมายเลข 1 จากนนเชคดวา RFID Tag ทอานมานนมคาเปน 1 หรอไม )rfidbeep) หากใช ให
เขยนเลข 2 ทบลงไป )rfidbeep) และแสดงหมายเลข 2 รอจนกวาจะยก RFID Tag ออกจาก
เครออาน (waituntil [not rfidtagfound?]) จงแสดงหมายเลข 3 การทดลองจะ
ทดลองดวย RFID Tag ทมหมายเลข 1 และ 2
ผลการทดลอง
เมอมการเสยบ RFID Reader ไวท Raspberry Pi และท าการทดลองดงกลาวแลวตรวจด
สถานะการท างานโดยตรวจสอบจากตวเลขทแสดงบน GoGo Board คอขณะทสงใหใชงาน RFID จะ
แสดงเลข 0 ไปจนกวาม RFID Tag มาแตะ เมอแตะกมเสยง beep จาก RFID Reader แสดงหากเปน
RFID Tag ทมคาเปน 1 จะแสดงหมายเลข 1 แบบรวดเรวจนไมทนเหนและท าการเปลยนคาเปน 2
และแสดงหมายเลข 2 ขนมา เมอยก RFID Tag ออกกแสดงหมายเลข 3 คางไว
หากเปน RFID Tag ทมคาเปน 2 เมอท าการแตะทเครองอานจะแสดงหมายเลข 1 จะไม
เปลยนคาและไมแสดงหมายเลข 2 ท GoGo Board และเมอยกออกจะแสดงหมายเลข 3 ซงท างาน
ไดถกตองตามค าสงทเขยนไว
64
4.2.5 Data Logging
รปท 4- 11 การบนทกคาเซนเซอร ในภาษา Logo
การทดสอบ Data Logging ทดสอบโดยบนทกคา เซนเซอร 1 และ เซนเซอร 2 ซงเปนคา
ความชนในดนทปลกตนไมและแสงสวาง ทมการเกบคา Log name เปน “humidity” และ “light”
โดยเขยนเปนภาษา Logo ดวยค าสงตามดานลางและดงรป (รปท 4- 11 การบนทกคาเซนเซอร ใน
ภาษา Logo) มการท างานคอบนทกคาเซนเซอร 1 และ 2 ทกๆ 2 วนาท ดผลการทดลองโดยดจาก
GoGo Home Screen สวน Data Logging และดการแสดงผลหนาส าหรบเลอกคาต างๆ ใน
Browser บนคอมพวเตอรและบน Smart Phone และหนาทแสดงกราฟ
record sensor1 "humidity"
record sensor2 "light"
65
รปท 4- 12 หนาเลอกคาทบนทกไวใน Data Logging แสดงบนคอมพวเตอร
รปท 4- 13 หนาเลอกคาทบนทกไวใน Data Logging แสดงบน Smart Phone
ผลการทดลอง
เมอสงใหบนทกคาเซนเซอรไวประมาณ 10 ชวโมง และมาดกราฟแสดงคาของเซนเซอรท
GoGo Home Screen สวน Data Logging เลอกคาเปนคาทบนทกไวคอ humidity และ light ดง
รป )รปท 4- 12 หนาเลอกคาทบนทกไวใน Data Logging แสดงบนคอมพวเตอร) และดการแสดงผล
บน Smart Phone ดวย ดงรป )รปท 4- 13 หนาเลอกคาทบนทกไวใน Data Logging แสดงบน
Smart Phone) พบวามการแสดงผลทถกตอง
66
สวนคาตางๆ ทบนทกไวนนกมคาทถกตองคอในตวอยางบนทกคาแสงสวาง )light) เสนสด าม
คานอยลงในชวงเยน ประมาณ 18:00 น. และเสนสฟาคาความชน (humidity) มคาคอยๆ ลดลง
เรอยๆ และเมอมการรดน าตนไมในเวลาประมาณ 22:00 น. (เพอดการเปลยนแปลงคา) กมคาสงขน
ตามความชนในดน และคอยๆ ลดลงไปอก
4.2.6 GoGo Home Screen
ทดสอบการแสดงผลของ GoGo Home Screen โดยเขาไปยง URL ทเปน IP Address ของ
Raspberry PI และตงคา Email และ Pushbullet Token และดผล
รปท 4- 14 หนา GoGo Home Screen บนคอมพวเตอร
67
รปท 4- 15 หนา Setting บนคอมพวเตอร
รปท 4- 16 หนา GoGo Home Screen
บน Smart Phone
รปท 4- 17 Modal แสดง QR Code ทเปน IP
Address บน Smart Phone
ผลการทดลอง
พบวาแสดงผลไดดใน Browser ทงคอมพวเตอรและ Smart Phone ดงรปขางตน
68
รปท 4- 18 หนา Setting
บน Smart Phone
รปท 4- 19 หนา Setting เมอบนทกการตงคา
ไดส าเรจบน Smart Phone
รปท 4- 20 เมนแสดงสวนตางของ GoGo
Home Screen บน Smart Phone
และเมอท าการบนทกการการตงคา )ดงรปขางตน) กท าไดถกตอง มการแจงเตอนวา
“Saved Configuration” ตนลาง ดงรป )รปท 4- 19 หนา Setting เมอบนทกการตงคาไดส าเรจบน
Smart Phone)
69
4.2.7 Pi Display
รปท 4- 21 ค าสงทดสอบเลนเสยงและ Text-to-Speech ในภาษา Logo
ทดสอบโดยเลนเสยงทบนทกไวทชอ “audio_recording_1429538748811.mp3” ใน
Folder “recordings” รายละเอยดเกยวกบการบนทกเสยงดท Sound Recording (3.3.9 Speech
Recording) และใหพดหรอแปลงขอความเปนเสยงและเลน )Text-to-Speech) ขอความวา “Hello
I am a pet” โดยเรยกใชงานเปนภาษา Logo คอ playsound "audio_recording_1429538748811.mp3"
say "Hello I am a pet"
และดงรป (รปท 4- 21 ค าสงทดสอบเลนเสยงและ Text-to-Speech ในภาษา Logo)
รปท 4- 22 หนา Pi Display เมอแสดงบนคอมพวเตอร
70
รปท 4- 23 หนา Pi Display เมอแสดงบน Smart Phone
ผลการทดลอง
พบวาใน Browser Chrome ทงคอมพวเตอรและ Smart Phone )iOS และ Android) ดง
รปขางตน สามารถเลนเสยงและแปลงขอความเปนเสยง )Text-to-Speech) ได
Native Browser )Android) และ Browser Mozilla Firefox (บนคอมพวเตอร และAndroid)
เลนไดแตเสยงไมสามารถแปลงขอความเปนเสยงได
4.2.8 File Manager
ทดสอบการแสดงผลและการท างานของการจดการไฟล File Manager โดยไปท GoGo
Home Screen สวนของ File Manager
รปท 4- 24 หนา File Manager บนคอมพวเตอร
71
รปท 4- 25 สวนทใหอพโหลดไฟล บนคอมพวเตอร
รปท 4- 26 หนา File Manager
บน Smart Phone
รปท 4- 27 สวนทเลนเสยง บน Smart Phone
ผลการทดลอง
พบวาใน Browser ทงคอมพวเตอรและ Smart Phone ดงรปขางตน สามารถแสดงผลไดด
สามารถสราง text ไฟล สรางโฟลเดร อพโหลดไฟลไดแบบเลอกไฟลหรอ Drag and Drop ได เปลยน
การแสดงผล (Box view, List view, Columns list view) Filter (Files, Images, Archives, Videos,
Music or File name) Sorting (File name, Date, Size or Type) รวมถงการแสดงรป และเลน
ไฟลเสยง และอนๆ ได
72
4.2.9 Sound Recording
ทดสอบการแสดงผลและการท างานของการบนทกเสยง Sound Recording โดยไปท GoGo
Home Screen สวนของ Sound Recording
รปท 4- 28 หนาบนทกเสยง )Sound Recording) บนคอมพวเตอร
รปท 4- 29 หนาขณะท าการบนทกเสยง
บน Smart Phone
รปท 4- 30 หนาแสดงผลลพทการบนทกเสยง
บน Smart Phone
73
ผลการทดลอง
พบวาใน Browser Chrome ทงคอมพวเตอรและ Smart Phone )iOS และ Android) และ
Browser Mozilla Firefox ทงคอมพวเตอรและ Smart Phone (Android) ดงรปขางตน สามารถ
บนทกเสยงได
สวน Native Browser )Android) นนไมสนนสนนการบนทกเสยง
4.2.10 Web UI
ทดสอบการแสดงผลและการท างานของ Web UI โดยไปท GoGo Home Screen สวน
ของ Web UI สวนรายละเอยดการสราง HTML File ดไดทหวขอ Web UI (3.3.10 Web UI)
รปท 4- 31 หนาแสดง Web UI File บนคอมพวเตอร
74
รปท 4- 32 หนาแสดง Web UI File
บน Smart Phone
รปท 4- 33 หนาแสดงไฟล HTML ทถกสรางมา
บน Smart Phone
ผลการทดลอง
พบวาใน Browser Chrome ทงคอมพวเตอรและ Smart Phone )iOS และ Android) และ
Browser Mozilla Firefox ท งคอมพว เตอร และ Smart Phone (Android) รวมไปถ ง Native
Browser )Android) ดงรปขางตนสามารถแสดงผลไดด และสามารถตรวจจบการกดปม เลอน Slider
เปลยน Switch และ Select ได
75
4.2.11 Speech Recognition
ทดสอบการแสดงผลและการท างานของการแปลงเสยงเปนขอความ )Speech to text)
Speech Recognition โดยไปท GoGo Home Screen สวนของ Speech Recognition
รปท 4- 34 หนา Speech Recognition บนคอมพวเตอร
รปท 4- 35 Speech Recognition บน Smart Phone
76
ผลการทดลอง
พบวาใน Browser Chrome (บนคอมพวเตอร iOS และ Android) แสดงผลไดดดงรป
ขางตน สามารถแปลงเสยงเปนขอความ )Speech to text) ได
สวน Native Browser )Android) และ Browser Mozilla Firefox (บนคอมพวเตอร และ
Android) แสดงผลไดด แตไมสนนสนน Speech Recognition
4.2.12 Pushbullet และ IFTTT
เมอตงคา Pushbullet Token แลวในหวขอการตงคาตางๆ ) 3.3.6 GoGo Home
Screen )ท าการทดสอบโดยสราง Recipe รายละเอยดดงหวขอ Pushbullet และ IFTTT (3.3.12
Pushbullet และ IFTTT, การใชงาน IFTTT ใน
ภาคผนวก) และใหสงคามาท Gogod
77
รปท 4- 36 IFTTT Recipe ทเปน Twitter
ทดลองโดยใชบรการ Twitter เมอม Tweet ทม Hashtag เปน #mytweet ดงรป )รปท 4-
36 IFTTT Recipe ทเปน Twitter) ใหสง push notification ทม key เปน “twitter” value เปน
“TextNoHashtag” ดงรป )รปท 4- 37 สวนประกอบของ Recipe Twitter) คอเปนขอความท
Tweet แตไมรวม Hashtag เขามาดวย
รปท 4- 37 สวนประกอบของ Recipe Twitter
78
รปท 4- 38 IFTTT การสราง Recipe ทเปน Instagram
และทดลองโดยใชบรการ Instagram เมอมรปภาพจากทกคนทม Hashtag เปน
#preyfornepal ดงรป )รปท 4- 38 IFTTT การสราง Recipe ทเปน Instagramรปท 4- 36 IFTTT
Recipe ทเปน Twitter) ใหสง push notification ทม key เปน “ig_nepal” value เปน
“Username” คอ username ของผโพสตรป
79
รปท 4- 39 การ Tweet ขอความใน Twitter
รปท 4- 40 ผลลพททไดรบมาจาก Twitter และ Pushbullet
รปท 4- 41 ผลลพททไดรบมาจาก Instagram และ Pushbullet
80
ผลการทดลอง
เมอทดลอง Tweet ดวย Hashtag #mytweet และขอความ “project ok” ดงรป )รปท 4-
39 การ Tweet ขอความใน Twitter) โดยปกต IFTTT จะตรวจสอบ Recipe ของเราภายในเวลา 5
นาท เมอรวาม Tweet ใหมตามเงอนไข กจะสง push มาท Pushbullet และมาถง Gogod ทม key
เปน “twitter” value เปน “project ok” ดงรป )รปท 4- 40 ผลลพททไดรบมาจาก Twitter และ
Pushbullet) ตามทตงไวตอนสราง recipe และตอน tweet ขอความจาก Twitter และ push จาก
Instagram ทม key เปน “ig_nepal” value เปน “woojae_park” ดงรป (รปท 4- 41 ผลลพทท
ไดรบมาจาก Instagram และ Pushbullet) จากนนสรางเปน KeyValue Packet ให GoGo Board
ท างานตอไป
81
บทท 5 สรปและขอเสนอแนะ
5.1 สรปโครงงาน
โครงงานนมวตถประสงคเพอพฒนาสวนเพมขยายใหกบชดหนยนตเพอการเรยนรโกโกบอรด
โดยใช Raspberry Pi จดเดนของสวนเพมขยายทสรางดวย Raspberry Pi คอจะสามารถเพม
ความสามารถทเดมท าไดยากในระบบสมองกลฝงตวทวไป เนองจาก Raspberry Pi เปนเครอง
คอมพวเตอรทขบเคลอนดวยระบบปฏบตการ Linux ซงสามารถเขยนโปรแกรมใหท างานไดตาม
ตองการได
ความสามารถทสามารถท าไดไดแก การใช Air Card เพอรบสง SMS การเชอมตอเครอขาย,
การเลนไฟลสอชนดตางๆ , การใชบรการเครอขายเชน สงอเมล , อานและรบคาจากบรการบน
อนเตอรเนต เชน Pushbullet และ IFTT โครงงานนไดเพมความสามารถเหลานใหกบโกโกบอรด โดย
จะสงงานไดผานภาษา Logo ซงใชงานไดงายส าหรบเยาวชน รวมไปถงเพมสวนของการเขาใชงานผาน
Web Application หรอทเรยกวา GoGo Home Screen ซงสามารถแสดงผลไดดในทกอปกรณ
)Responsive web design) ไมวาจะเปนคอมพวเตอร หรอ Smart Phone ทสวยงามและงายตอการ
ใชงาน ประกอบไปดวยการแปลงขอความเปนเสยง (Text-to-Speech) และเลนผาน Browser, การ
จดการไฟล, การแสดงกราฟของขอมลทท าการบนทกไว , การบนทกเสยง (Voice Recording) เพอ
น าไปใชค าสงใหเลนไฟลเสยงใน GoGo Board, การใชสวนประกอบของ HTML และแปลงเสยงเปน
ขอค าสง )Speech Recognition) เพอสงงานไปยง GoGo Board ได
5.2 ปญหาและแนวทางแกไข
ปญหาทพบในโครงงานและแนวทางการแกไขคอ
การแสดงกราฟขอมลในสวนของ Data Logging (3.3.5 Data Logging) ในตอนแรกใน
ขนตอน Query ขอมลแบบ Auto Update ตองใชเวลานานกวะส าเรจ สวนวธแกไขคอสราง index
ของ filed ทท าการ Query ในฐานขอมลตอนทสรางตารางขอมล เมอม index แลวพบวามความเรว
ขนมาก และการเปลยนเปน Raspberry Pi 2 ทมหนวยประมวลผลการท างานทเรวกวากมผลท าให
Query ไดเรวขนไปอก
82
สวนของ File Manager (3.3.8 File Manager) ไมสรางแสดง Thumbnail ของรปภาพและ
ไมสามารถสราง Thumbnail ของโฟลเดอรและไฟลอนๆได วธแกไขปญหาคอลง library ของ PHP ท
เกยวของไปดวย สวนทไมสามารถสราง Thumbnail ไดแกโดย ก าหนดสทธการเขาถงโฟลเดอรทเกบ
Thumbnail และ library ทเปน Responsive File Manager ใน Linux ใหเขาถงและ execute ได
ผาน Command Line ใน Linux คอ
chmod 775 –R thumbs และ chmod 775 –R filemanager
5.3 ขอเสนอแนะ
สวนเสรมบางอยางเชน การแปลงขอความเปนเสยง (Text-to-Speech) และและแปลงเสยง
เปนขอค าสง )Speech Recognition) ตองใชงานบน Chrome บนอปกรณทสามารถเชอมตอไปยง
อนเตอรเนตไดเทานน ทงนเพอการเลนเสยงจะเปนธรรมชาตกวารปแบบอน หากการเลนเสยงผาน
audio jack ของ Raspberry Pi กยงสามารถท างานไดแบบ offline แตคณภาพอาจจะไมทดเทยมกบ
ทเลนแบบขางตนได บรการสง Email และรบการแจงเตอน Pushbullet จ าเปนตองใชอนเตอรเนต
ในการเชอตอไปยงบรการนนๆ ควรตอ Raspberry Pi ดวยสาย LAN หรอ USB Wireless LAN กอน
ใชงาน
ใน Raspberry PI ควรใช micro SD card Class 10 หรอ Class สงๆ เพอความเรวและ
ประสทธภาพการท างานตางๆ นนเรวขนไปไดมากเชนการ boot ของระบบปฏบตการ, การใชงาน
เขาถงไฟลตางๆ และการโหลดขอมลเพอแสดงกราฟขอมล เปนตน
83
เอกสารอางอง
[1] Resnick, M., Martin, F., Sargent, R., & Silverman, B. (1996). Programmable
bricks: Toys to think with. IBM Systems journal, 35(3.4), 443-452.
[2] Baum, D. (2003). Definitive Guide to Lego Mindstorms (Vol. 2). Apress.
[3] Lego Mindstorms [homepage on the Internet]
[cited 2014 Nov 18]. Available from:
http://en.wikipedia.org/wiki/Lego_Mindstorms
[4] Sipitakiat, A., Blikstein, P., & Cavallo, D. P. (2004, June). GoGo board:
augmenting programmable bricks for economically challenged audiences.
InProceedings of the 6th international conference on Learning sciences (pp.
481-488). International Society of the Learning Sciences.
[5] Arduino [homepage on the Internet]
[cited 2014 Nov 18]. Available from: http://en.wikipedia.org/wiki/Arduino
[6] Arduino [homepage on the Internet]
[cited 2014 Nov 11]. Available from: http://www.arduino.cc/
[7] Raspberry Pi [homepage on the Internet]
[cited 2014 Nov 11]. Available from: http://www.raspberrypi.org/
[8] Paulo Blikstein. (2013). Gears of our childhood: constructionist toolkits,
robotics, and physical computing, past and future. In Proceedings of the 12th
International Conference on Interaction Design and Children (IDC '13). ACM,
New York, NY, USA, 173-182.
[9] ระบบฝงตว [homepage on the Internet]
[cited 2014 Nov 20]. Available from: http://th.wikipedia.org/wiki/ระบบฝงตว
[10] ภาษาไพทอน [homepage on the Internet]
[cited 2014 Nov 20]. Available from: http://th.wikipedia.org/wiki/ภาษาไพทอน
84
เอกสารอางอง (ตอ)
[11] Tkinter [homepage on the Internet]
[cited 2014 Nov 20]. Available from: http://en.wikipedia.org/wiki/Tkinter
[12] IFTTT [homepage on the Internet]
[cited 2014 Nov 20]. Available from: https://ifttt.com
[13] Pushbullet [homepage on the Internet]
[cited 2014 Nov 20]. Available from: https://www.pushbullet.com/
[14] PHP [homepage on the Internet] [cited 2015 May 9].
Avaliable from: http://en.wikipedia.org/wiki/PHP
[15] HTML )HyperText Markup Language) [homepage on the Internet]
[cited 2015 May 9]. Avaliable from: http://en.wikipedia.org/wiki/HTML
[16] JavaScript [homepage on the Internet]
[cited 2015 May 9]. Avaliable from: http://en.wikipedia.org/wiki/JavaScript
[17] OrientDB [homepage on the Internet]
[cited 2015 May 9]. Avaliable from: http://orientdb.com/
[18] WebSocket [homepage on the Internet]
[cited 2015 May 10]. Avaliable from: https://www.websocket.org/
[19] Web Speech API Specification [homepage on the Internet]
[cited 2015 May 10]. Avaliable from: https://dvcs.w3.org/hg/speech-api/raw-
file/tip/speechapi.html
[20] Festival Speech Synthesis System [homepage on the Internet]
[cited 2015 May 10]. Avaliable from: http://www.festvox.org/festival/
[21] pyorient - OrientDB driver for Python [homepage on the Internet]
[cited 2015 May 10]. Avaliable from:
https://github.com/orientechnologies/pyorient
85
เอกสารอางอง (ตอ)
[22] qrcode - Pure python QR Code generator [homepage on the Internet]
[cited 2015 May 10]. Avaliable from: https://github.com/lincolnloop/python-
qrcode
[23] smtplib - SMTP protocol client [homepage on the Internet] [cited 2015 May
10]. Avaliable from: https://docs.python.org/2/library/smtplib.html
[24] PyCrypto - The Python Cryptography Toolkit [homepage on the Internet]
[cited 2015 May 10]. Avaliable from: https://www.dlitz.net/software/pycrypto/
[25] python-gammu (Python bindings for Gammu) [homepage on the Internet]
[cited 2015 May 10]. Avaliable from: http://wammu.eu/python-gammu/
[26] Recordmp3js [homepage on the Internet] [cited 2015 May 10].
Avaliable from: https://github.com/nusofthq/Recordmp3js
[27] chosen (unwieldy select boxes more friendly) [homepage on the Internet]
[cited 2015 May 10]. Avaliable from: https://github.com/harvesthq/chosen
[28] HighStock [homepage on the Internet] [cited 2015 May 10].
Avaliable from: http://www.highcharts.com/products/highstock
[29] RESPONSIVE filemanager [homepage on the Internet] [cited 2015 May 10].
Avaliable from: http://www.responsivefilemanager.com/
[29] jquery.qrcode.js [homepage on the Internet] [cited 2015 May 10].
Avaliable from: http://jeromeetienne.github.io/jquery-qrcode/
[30] Material Design for Bootstrap [homepage on the Internet] [cited 2015 Feb 6].
Avaliable from: https://fezvrasta.github.io/bootstrap-material-design/
86
ภาคผนวก
87
การใชงาน IFTTT
การ Active บรการตางๆ
ท าการ Active บรการตางๆ ทตองการโดยเขาทไป Channels
(https://ifttt.com/channels) และเลอกบรการ
เมอเลอก Channel หรอบรการไดแลวเชน Facebook คลกทปม Active ดงรป
88
จะมหนาตางขนมาใหคลกยนยนเพอใหใชบรการนนๆ ได ซงอาจจะแตกตางกนไปแลวแต
บรการ
เมอ Active ส าเรจแลวกพรอมทจะใชบรการแลว
89
การสราง Recipe
เขาไปท https://ifttt.com/myrecipes/personal/new คลกท this ดงรป
เลอก Trigger Channel หรอบรการทตองการรบ push Notification
เมอเลอก Channel แลว จากนนจะม Trigger ทใหเลอกตามแตละบรการ ดงตวอยางเปน
บรการ Facebook
90
คลก Create Trigger
คลก that
เลอก Action Channel เปนบรการ Pushbullet
91
เลอก Action เปน Push a note
แกไข Title ใหเปนค าทตองการใชเปน Key และแกไข Message เปน value ของ
KeyValue Packet ทจะน าไปใชตอไป โดยสามารถเพม Ingredient )คลกท เพอด
Ingredient) ลงไปในชอง message ได และคลก Create Action
ตรวจทานดครงสดทาย จากนนคลก Create Recipe
92
เมอสราง Recipe ส าเรจจะปรากฏดงรป