Sittikron - BiG - Rmutt
วันพฤหัสบดีที่ 27 สิงหาคม พ.ศ. 2558
วันพุธที่ 5 สิงหาคม พ.ศ. 2558
การคัดลอกไดรเร็กเทอรี่ใน Linux ไปไว้ใน USB ด้วย Command
การคัดลอกไดรเร็กเทอรี่ใน Linux ไปไว้ใน USB ด้วย Command
1. ถ้าใช้คำสั่งแล้วมีการแจ้งเตือนมาว่า no such file directory
2.และถ้ามั่นใจแล้วว่า พาร์ทต้นทาง และ ปลายทาง ของเราถูกต้องแน่นอน
3. ให้ รีบูต 1 ครั้ง (sudo reboot)
4.ดูชื่อของแฟลชไดร์อีกครั้ง ว่าชื่อเดิม หรือ ไม่ แล้วกำหนดปลายทางให้ตรงกับชื่อแฟลชไดร์
5.ใช้คำสั่ง cp -r /ต้นทาง /ปลายทาง (อีกครั้ง)
-----------------------
การลบ ไดเรกเทอรี่ sudo rm -r /use/share/arduinol/ibrary/grbl
-----------------------
การลบ ไดเรกเทอรี่ sudo rm -r /use/share/arduinol/ibrary/grbl
Raspberry pi load bit
1.ติดตั้งโปรแกรม
Screen โดยการพิมพ์คำสั่ง sudo apt-get install screen
2.ลงโปรแกรมโหลดบิท
โดยการพิมพ์คำสั่ง sudo apt-get install deluged
3. Web Ui โดยการพิมพ์คำสั่ง sudo apt-get install deluge-web
เมื่อทำการติดตั้งโปรแกรมที่นำมาใช้งานในการโหลดบิทเสร็จแล้ว
ก็มากำหนดไดเร็กทอรี่ปลายทางว่าจะให้ไฟล์ที่เราดาวน์โหลดมานั้น
จะนำไปเก็บไว้ที่ใดดังนี้
4.พิมพิ์คำสั่ง
pwd กดปุ่ม Enter เพื่อตรวจดูว่าในขณะนี้เราอยู่ในไดเร็กทอรี่ใด
จากภาพไดเรกเทอรี่ปัจจุบันคือ
/home/pi
5.เมื่อต้องการเก็บไฟล์ไว้ใน
ไดเร็กทอรี่ /home/pi (สามารถเก็บไว้ในที่ใดก็ได้ ไม่จำเป็นว่าต้องไว้ใน /home/pi ได้อย่างเดียว) ให้ทำการสร้างโฟลเดอร์ขึ้นมา 1
โฟลเดอร์ ตั้งชื่อเป็นอะไรก็ได้
ดังตัวอย่าง
เป็นโฟลเดอร์ชื่อ download_bit
พิมพ์คำสั่ง sudo mkdir download_bit เพื่อทำการสร้างโฟลดเดอร์ชื่อ download_bit
6.พิมพ์คำสั่ง
ls กดปุ่ม Enter
เพื่อเรียกดูไฟล์
หรือ โฟลเดอร์ต่างๆใน ไดเร็กทอรี่ปัจจุบัน ( /home/pi )
จะเห็นได้ว่า
มีโฟลเดอร์ download_bit เกิดขึ้นมาแล้ว
7.พิมพ์สั่ง
deluge-web กดปุ่ม Enter
เพื่อพิมพ์คำสั่งเสร็จแล้ว
ก่อนปิด Terminal ให้กดปุ่ม Ctrl + a + d
เป็นคำสั่งที่กำหนดให้ทำงานอยู่เบื้องหลัง
ถึงแม้เราจะเปิด Terminal ไปก็ตาม แต่โปรแกรมก็ยังทำงานอยู่
ปิดหน้า terminal ได้เลย หรือ ไม่ปิดก็ได้
8.เปิดเว็บเบราเซอร์ในคอมพิวเตอร์
แล้วพิมพ์ในช่อง url ด้วย IP ของบอร์ด
ราสเบอรี่
แล้วตามด้วยพอร์ต
8112
ดังตัวอย่างในที่นี้
IP คือ 192.168.1.137
ตามด้วยพอร์ต 8112 จะได้
192.168.1.137:8112 กดปุ่ม Enter
9.เมื่อเข้าสู่หน้าเว็บโหลดบิทได้จะมีหน้าตาแบบนี้
10. มีหน้า
Login ให้ใส่รหัส deluge
ลงไปในช่อง password กดปุ่ม Login
11.มีหน้า
connection Manager เด้งขึ้นมา ซึ่งจะมี IP ของ Rasberry pi ของเราอยู่
คลิกที่ IP และ คลิกปุ่ม Start Daemon
12. รอสักครู่... กดปุ่ม Connect
13. คลิกที่
Preferentes
14. เลืกหัวข้อ
Downloads
พิมพ์
ไดเรกทอรี่ปลายทางที่จะเก็บไฟล์ดาวน์บิท ในช่อง Download to ตามที่เราได้สร้าง โฟลเดอร์ไว้ในขั้นตอนที่ 5
พิมพ์เสร็จแล้ว กดปุ่ม Apply
และ กดปุ่ม OK
15.กดปุ่ม
Add
16.กดปุ่ม
File
17.กดปุ่ม Browse
18. เลือกไฟล์
.turrent กดปุ่ม Open
19.กดปุ่ม
Add
20.กดปุ่ม
Add
21.รอดาวน์โหลดเสร็จ
22.เมื่อดาวน์โหลดเสร็จแล้ว
สามารถเข้าไปดูไฟล์ใน Raspberry pi ได้เลย
ยกตัวอย่าง
วิธีที่ 1 ดูไฟล์ด้วย terminal
1.1เปิด terminal พิมพ์คำสั่ง cd /home/pi/download_bit
1.2 พิมพ์คำสั่ง ls เพื่อเรียกดูไฟล์ภายในไดเร็กเทอรี่ ก็จะเห็นไฟล์ที่เราดาวน์โหลดมา
วิธีที่ 2 ดูไฟล์ และ คัดลอกไฟล์จาก Raspberry pi มาไว้ในคอมพิวเตอร์ด้วย WinSCP
2.1 ดาวน์โปรแกรมได้ที่นี้ http://winscp.net/eng/download.php
2.2 ติดตั้งโปรแกรม
2.3
เปิดโปรแกม เลือก session
2.4
พิมพ์ IP ในช่อง Hostname
2.5
พิมพ์ pi ในช่อง user หรือ root
ก็ได้
** root เพื่อใช้งานในสิทธิ์ของ super user สามารถ เพิ่ม ลบ
แก้ไข ไฟล์ ต่างๆได้
2.6
พิมพ์ raspberry ในช่อง password
** หากมีการเปลี่ยนแปลงรหัสแล้ว
ก็ให้ใส่รหัสที่เราได้ทำการตั้งขึ้นใหม่ได้เลย
2.7
กดปุ่ม Login
2.8
ซีกด้านซ้ายจะเป็นส่วนจัดการไฟล์ในคอมพิวเตอร์
ซีกด้านขวาจะเป็นส่วนจัดการไฟล์ใน Raspberry pi
2.9
เลือกไดเร็กทอรี่ไปที่ /home/pi
2.10
ดับเบิ้ลคลิกที่โฟลเดอร์ download_bit
2.11ก็จะเห็นไฟล์
หรือ โฟลเดอร์ ที่เราดาวน์โหลดบิทมา
2.12
คลิกขวาที่โฟลเดอร์ ที่โหลดบิทมา เลือก copy
2.13
เลือกไดเร็กทอรี่ปลายทาง กดปุ่ม Coppy
2.14
กำลังคัดลอกไฟล์ จาก Raspberry pi มาไว้ใน คอมพิวเตอร์ของเรา
2.15
เปิดดูไฟล์ในคอมพิวเตอร์
2.16
ถ้าอยากจะลบไฟล์ ใน Raspberry pi ให้ Login เข้าใช้งาน WinSCP โดยใช้ user เป็น root
ข้อความทั้งหมด
พร้อมภาพประกอบผมสร้างขึ้นมา เพื่อเป็นประโยชน์ สำหรับผู้ที่สนใจอยากจะนำ Raspberrpy pi มาโหลดบิท โดยเฉพาะคนที่ชอบเล่นบิท
ข้อดี
1.ประหยัดไฟในขณะที่ได้ความเร็วสูง
2.ไม่ต้องใช้คอมพิวเตอร์คุมระบบ
3.Web Ui คุมได้ง่าย ทั้งใน Android iOS Windows ขอแค่มีเบราเซอร์และอยู่วงแลนเดียวกันก็พอ
4.หมดปัญหาค่าไฟจากการต้องรอคนปล่อย
(Seeder) เนื่องจาก Raspberry Pi กินไฟน้อยมาก
5.รันได้ตลอด
24 ชม. ตลอด 7 วัน
หากใช้ในที่อากาศไม่ร้อน ไม่เย็นเกินไป
เพราะร้อนมากความร้อนจะทำให้อายุการใช้งานของตัว Pi ลดลง
หรือเย็นเกินไป
เพราะอาจจะมีละอองน้ำหรือไอน้ำเกาะอยู่ที่บอร์ดอาจทำให้บอร์ดเสียหายได้
หวังว่าคงเป็นประโยชน์ไม่มากก็น้อย
โดยเฉพาะมือใหม่หัดทำ หากผิดพลาดประการใด
ขออภัยมา ณ ที่นี้ด้วยครับ ( ยินดีรับฟังความคิดเห็นเพิ่มเติม
หากมีส่วนใดให้ปรับแต่ง แก้ไข ยินดีครับผม เอกสารแจกฟรี )
สุดท้ายนี้ขอขอบคุณคำแนะนำจากคุณ ธีรวัฒน์ เอี่ยมสะอาด
http://raspberrypithailand.blogspot.com/
Arduino ประหยัดอินพุต แบบง่ายๆ ครับ
ประหยัดอินพุต แบบง่ายๆ ครับ
int keyPin = A0;
int Value = 0;
int eeror = 10;
void setup()
{
Serial.begin(9600);
}
void loop()
{
Value = readKey();
Serial.print("KEY = ");
Serial.println(Value);
delay(100);
}
int readKey() {
byte key=0;
Value = analogRead(keyPin);
if(Value==1023)
key = 0;
if(Value==0)
key = 1;
if((Value>=180-eeror)&(Value<=180+eeror))
key = 2;
if((Value>=306-eeror)&(Value<=306+eeror))
key = 3;
if((Value>=512-eeror)&(Value<=512+eeror))
key = 4;
return key;
}
ขอขอบบทความดีๆจาก :: อ.ฉลอง ลักษณะวิเชียร
How to install driver Huawei aircard 3G /7.2Mb E303
How to install driver Huawei aircard 3G /7.2Mb E303
for linux Debian Rpi
อยากออกไปเตะขอบฟ้า อยากจะบอกว่า ได้แล้ว โว้ยยยยยยยย
------------------------------------------------------------
ดาวน์โหลด โปรแกรมที่ใช้ในการตั้งค่า
sudo apt-get install -y ppp usb-modeswitch
wget "http://downloads.sourceforge.net/p…/vim-n4n0/sakis3g.tar.gz…" -O sakis3g.tar.gz -4
แตกไฟล์ที่ดาวน์โหลดมาข้างต้น
sudo tar xzvf umtskeeper.tar.gz && sudo tar xzvf sakis3g.tar.gz
sudo chmod +x sakis3g && sudo chmod +x umtskeeper
usbmodem='lsusb | grep Huawei | cut -d" " -f6'
lsusb เรียกดู ID ของอุปกรณ์ จะเห็นว่าอุปกรณ์ แอร์การ์ดของเรามี ID 12d1:140c ดังนี้
Bus 001 Device 006: ID 12d1:140c Huawei Technologies Co., Ltd.
นำ ID ไปใส่ใน USBMODEM=''
จะได้
sudo /home/pi/sakis3g/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:140c' APN="CUSTOM_APN" CUSTOM_APN="www.dtac.co.th" APN_USER='dtac' APN_PASS='dtac'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --nat 'no' --httpserver
ถ้ารันแล้วโค๊ดเรียกหาโฟลเดอร์ umtskeeper ให้พิมพ์
mkdir ~/umtskeeper
รันใหม่อีกครั้ง หรือ รีสตาร์ท sudo reboot แล้วรันใหม่
ทดสอบพิมพ์คำสั่ง ping 8.8.8.8 เพื่อทำการ ping ไปยังเว็ป google ดังรูป
ขอขอบคุณ แอดมินเพจ https://www.facebook.com/together.in.th มา ณ ที่นี้ด้วยครับ
Referrent :: http://www.together.in.th /
เอาไปใช้กับ Arduino มีชื่อเรียกว่า firmata
เอาไปใช้กับ Arduino มีชื่อเรียกว่า firmata
http://firmata.org/wiki
http://www.firmata.org/wiki/Download
วันอังคารที่ 4 สิงหาคม พ.ศ. 2558
Mini CNC For Maker
Mini CNC For Maker
แสดงการต่อไดร์อุตสาหกรรมด้วย Arduino ( ฉบับแก้ไข )
ติดตามบทความเกี่ยวกับ minicnc by arduino ทั้งหมด 5 บท ได้ที่
----------------------------------------
ติดตามรับชม วิธีการตั้งค่า จนสามารถใช้งาน Arduino ควบคุมมอเตอร์ตามแกนต่างๆได้ที่
----------------------------------------
จงหาวิธีคิด การสุ่มหาตัวเลขที่ต้องการ ให้ได้จำนวนการสุ่มที่น้อยที่สุด
Q & A
จงหาวิธีคิด การสุ่มหาตัวเลขที่ต้องการ ให้ได้จำนวนการสุ่มที่น้อยที่สุด
ถ้าผมสุ่มเลข 2 หลัก จะเลขอะไรก้ได้ขอแค่มันเป็น 2 หลัก
มีวิธีการหามันเจอได้อย่างไร โดยให้โปรแกรมใช้จำนวนรอบในการค้น น้อยที่สุด
มีวิธีการหามันเจอได้อย่างไร โดยให้โปรแกรมใช้จำนวนรอบในการค้น น้อยที่สุด
A : binary search ครับ น่าจะเร็วสุด
B : ถ้าจะใช้ Binary Search เวลาทายผิดต้องมีการบอกใบ้ว่า มากกว่าหรือน้อยกว่าด้วยป่ะครับ แต่ถ้าไม่มีการบอกใบ้ผมว่าทำใน 10 รอบไม่ได้อะ
C : การสุ่มตัวเลขมา โดยให้ค้นหาให้หา จาก 00 - 99 โดยไม่มีตัวเลขซ้ำ ซึ่งข้อมูลเรียงกันแล้ว ผมว่าไม่ต้องวนลูป ก็รู้ตำแหน่งแล้วครับ แต่ถ้าข้อมูลไม่ได้เรียง ก็จะใช้ Binary Search ไม่ได้เช่นกัน
D : ของ D การทายเลขสองหลักเหมือนกัน แต่เป็นไบนารี่ สมมติ ตัวเลขที่สุ่มคือ 27 แปลงเป็นไบนารีคือ
001 1011
คำถามแรกคือ เป็นเลขคู่ใช่หรือไม่ > ไม่ใช่ บิตแรกเป็นหนึ่ง
คำถามที่สองคือ บิตที่สองเป็นบิตคู่ใช่หรือไม่ > ไม่ใช่ บิตนี้เป็นหนึ่ง
คำถามที่สาม บิตที่สามเป็นบิตคู่ใช่หรือไม่ > ใช่ บิตนี้เป็นศูนย์
คำถามที่สี่ บิตที่สี่เป็นบิตคู่หรือไม่ > ไม่ใช่ บิตนี้เป็นหนึ่ง
คำถามที่ห้า บิตที่ห้าเป็นบิตคู่หรือไม่ > ไม่ใช่ บิตนี้เป็นหนึ่ง
คำถามที่หก บิตที่หกเป็นบิตคู่หรือไม่ > ใช่ บิตนี้เป็นศูนย์
คำถามที่เจ็ด บิตที่เจ็ดเป็นบิตคู่หรือไม่ > ใช่ บิตนี้เป็นศูนย์
คำถามที่สองคือ บิตที่สองเป็นบิตคู่ใช่หรือไม่ > ไม่ใช่ บิตนี้เป็นหนึ่ง
คำถามที่สาม บิตที่สามเป็นบิตคู่ใช่หรือไม่ > ใช่ บิตนี้เป็นศูนย์
คำถามที่สี่ บิตที่สี่เป็นบิตคู่หรือไม่ > ไม่ใช่ บิตนี้เป็นหนึ่ง
คำถามที่ห้า บิตที่ห้าเป็นบิตคู่หรือไม่ > ไม่ใช่ บิตนี้เป็นหนึ่ง
คำถามที่หก บิตที่หกเป็นบิตคู่หรือไม่ > ใช่ บิตนี้เป็นศูนย์
คำถามที่เจ็ด บิตที่เจ็ดเป็นบิตคู่หรือไม่ > ใช่ บิตนี้เป็นศูนย์
ก็จะได้ 001 1011
:Cr // สมาคมโปรแกรมเมอร์ไทย
เสริมๆอีกคร้าบ
เลือกสุ่มมาสามคนจากสามสิบคน ผมสั้นผมยาวคละกันไป สมมติสุ่มมาสามคนอะไรไม่รู้ล่ะ เป็นหนึ่งคำตอบที่ถูก ในทั้งหมดแปดคำตอบ โอกาสที่อีคนแรกจะตอบผิดคือ เจ็ดในแปด ถ้ามันตอบผิด อีคนหลังทายก็จะเหลือโอกาสที่จะผิดคือ หกในเจ็ด สมมติผิดอีก ก็กลับมาให้คนแรกทาย เหลือโอกาสผิดคือ ห้าในหก แบบนี้ เอาจนกว่าจะชนะกันไปข้างหนึ่ง
แต่ข้อมูลทั้งหมดเนี่ยให้มาเพื่อ "หลอกควาย" คำถามอยู่ที่ โอกาสแพ้ ซึ่งเป็นไบนารี ไม่แพ้ก็ชนะ โอกาสแพ้ 0.5 โอกาสชนะ 0.5 ทั้งสองคนผลัดกันทายจึงมีโอกาสแพ้และชนะเท่ากัน สัดส่วนจำนวนเท่าของความน่าจะเป็นที่คนทายก่อนจะแพ้ ต่อความน่าจะเป็นที่คนทายทีหลังจะแพ้ คือ 0.5/0.5 = 1
Arduino Weight Sensor (Load Cell)
Arduino Weight Sensor (Load Cell)
ภาพจาก :: http://www.dfrobot.com/wiki/index.php/Weight_Sensor_Module_V1
Weight Sensor (Load Cell) 0-500g :
http://www.thaieasyelec.com/products/sensors/flex-force-weight/weight-sensor-load-cell-0-500g-detail.html
Load Cell (Weight Sensor) 5 Kg :
http://www.arduino.in.th/product/347/load-cell-weight-sensor-5-kg
โมดูลแปลงสัญญาณจาก Load Cell เพื่อไปใช้กับ Arduino :
http://www.arduino.in.th/product/355/dual-channel-weight-sensor-module-hx711
Example Code:
http://www.dfrobot.com/wiki/index.php/Weight_Sensor_Module_V1
Library :
https://github.com/bogde/HX711
ภาพจาก :: http://www.dfrobot.com/wiki/index.php/Weight_Sensor_Module_V1
โครงการสื่อการสอน อุปกรณ์คอมพิวเตอร์ Arduino
โครงการสื่อการสอน อุปกรณ์คอมพิวเตอร์
โดยใช้บอร์ด Arduino UNO R3 เป็นคอนโทรลเลอร์ในการติดต่อกับ
อุปกรณ์อินพุต (สวิตซ์) และ อุปกรณ์เอาต์พุต (หลอด LED และบอร์ด MP3)
อุปกรณ์ที่ใช้ในการทดลอง
1.บอร์ด Arduino UNO R3
2.บอร์ด MP3
3.หลอด LED
4.ตัวต้านทาน 100 โอห์ม
5.ตัวต้านทาน 4.7 กิโลโอห์ม
6.สวิตปุ่มกด
7.แจ็คลำโพลงตัวเมีย
8.ลำโพง
9.
USB Type B
10.ถ่าน 9 โวลต์ หรือ ใช้สาย USB Type B เสียบที่ บอร์ด Arduino UNO R3 เข้ากับ Power bank
11.สายไฟ
อธิบายหลักการทำงานของระบบ
เมื่อมีการกดปุ่มสวิตซ์(Pull up) บอร์ด Arduino
UNO R3
จะทำการรับอินพุตเข้ามา แล้วนำไปตรวจสอบเงื่อนไขว่าปุ่มกดที่กดเข้ามานั้น
เป็นปุ่มกดที่เท่าไร เช่น มีการกดปุ่มที่1 เข้ามา บอร์ด Arduino UNO R3 ก็จะส่งข้อมูลไปยัง บอร์ด MP3 ผ่านพอร์ต Serial
ให้ทำการเล่นเสียงลำดับที่
001
ซึ่งข้อมูลที่ส่งเข้ามาจะเป็นข้อมูลฐานสิบหก (0x01) โดยสัญญาณเสียงที่ปล่อยออกจากมาบอร์ด
MP3 จะถูกส่งออกมาทางพิน PH_L (เสียงลำโพงด้านซ้าย) และ PH_R (เสียงลำโพงด้านขวา) แล้ว บอร์ด Arduino UNO R3 สั่งในหลอด led
ที่ 1 ติดสว่าง เพื่อเป็นการบอกตำแหน่งของอุปกรณ์นั้นๆ
เมื่อเสียงลำดับที่ 1 เล่นจบ บอร์ด Arduino UNO R3 ก็จะรอรับคำสั่งต่อไป
แต่ถ้ามีการกดปุ่มใดๆในระหว่างเล่นเสียงลำดับที่
001 ยังเล่นไม่จบ บอร์ด Arduino UNO R3 ก็จะทำการหยุดเสียงลำดับเสียงที่ 001 แล้วจะทำการเล่นเสียลำดับถัดไปทันที
ยกตัวอย่าง ให้อุปกรณ์ตัวที่ 1 เป็นแรม
เมื่อมีการกดปุ่มที่
1 บอร์ด Arduino UNO R3 ก็จะสั่งให้ หลอด led ที่1 ติดสว่าง ซึ่งเป็นการบอกถึงตำแหน่งของแรม และ
บอร์ด Arduino UNO
R3 ก็จะส่งข้อมูล (0x01) ไปให้ บอร์ด MP3 เพื่อให้เล่นเสียงลำดับที่ 001 หรือ เป็นการเล่นเสียงความหมายของแรมนั้นเอง
เมื่อเล่นจนจบไฟล์เสียงแรมนี้แล้ว บอร์ด Arduino
UNO R3
ก็จะรอรับคำสั่งต่อไป
สิ่งที่ต้องเตรียม
ดาวน์โหลดไลบราลี่ SofewareSerial ไปวางไว้ใน C:\Program Files
(x86)\Arduino\libraries
** การใช้งานโหมด Serial ต้องบัดกรีจุด M0
ให้ลอยขาไว้ ส่วน M1 ให้ต่อลงกราวน์ ดังภาพ
ภาพจาก http://www.thaieasyelec.com/
ศึกษาการใช้งาน
บอร์ด MP3 เพิ่มเติมได้ที่
http://www.thaieasyelec.com/products/embedded-module/thaieasyelec-mp3-embedded-module-detail.html
อธิบายการเขียนโปรแกรม
บรรทัดที่ 1 เรียกใช้ไลบราลี่ SoftwareSerial ซึ่งทำหน้าที่เป็นพอร์ตสื่อสาร ในการรับ – ส่ง ข้อมูล
ดาวน์โหลดไลบราลี่ SofewareSerial ไปวางไว้ใน C:\Program Files
(x86)\Arduino\libraries
บรรทัดที่ 3 กำหนดพิน
D2 เป็นขา Rx ( รับข้อมูล )
กำหนดพิน D3 เป็นขา Tx
( ส่งข้อมูล )
เพื่อกำหนดเป็นพินการสื่อสารข้อมูลระหว่างบอร์ด
Arduino กับบอร์ด MP3
บรรทัดที่ 5 กำหนดพิน D4 (พินดิจิตอล) ให้เก็บอยู่ในตัวแปร BUSY
บรรทัดที่ 6
ประกาศตัวแปรชนิดบูลีน ชื่อ cmd_stop
ให้มีค่าเท่ากับ false (เป็นเท็จ)
บรรทัดที่ 9 กำหนดพิน A0
(พินอะนาล็อก)
ให้เก็บอยู่ในตัวแปร bt0 ( ปุ่มกดที่
1 )
บรรทัดที่ 10 กำหนดพิน A1
(พินอะนาล็อก)
ให้เก็บอยู่ในตัวแปร bt1 ( ปุ่มกดที่
2 )
บรรทัดที่ 11 กำหนดพิน A2
(พินอะนาล็อก)
ให้เก็บอยู่ในตัวแปร bt2 ( ปุ่มกดที่
3 )
บรรทัดที่ 12 กำหนดพิน A3
(พินอะนาล็อก)
ให้เก็บอยู่ในตัวแปร bt3 ( ปุ่มกดที่
4 )
บรรทัดที่ 13 กำหนดพิน A4
(พินอะนาล็อก)
ให้เก็บอยู่ในตัวแปร bt4 ( ปุ่มกดที่
5 )
บรรทัดที่ 14 กำหนดพิน A5
(พินอะนาล็อก)
ให้เก็บอยู่ในตัวแปร bt5 ( ปุ่มกดที่
6 )
บรรทัดที่ 18 กำหนดพิน D5 (พินดิจิตอล) ให้เก็บอยู่ในตัวแปร led0 ( led หลอดที่
1)
บรรทัดที่ 19 กำหนดพิน D6 (พินดิจิตอล) ให้เก็บอยู่ในตัวแปร led1 ( led หลอดที่
2)
บรรทัดที่ 20 กำหนดพิน D7 (พินดิจิตอล) ให้เก็บอยู่ในตัวแปร led2 ( led หลอดที่
3)
บรรทัดที่ 21 กำหนดพิน D8 (พินดิจิตอล) ให้เก็บอยู่ในตัวแปร led3 ( led หลอดที่
4)
บรรทัดที่ 22 กำหนดพิน D9 (พินดิจิตอล) ให้เก็บอยู่ในตัวแปร led4 ( led หลอดที่
5)
บรรทัดที่ 23 กำหนดพิน D10
(พินดิจิตอล) ให้เก็บอยู่ในตัวแปร led5 ( led หลอดที่
6)
บรรทัดที่ 26 ประกาศฟังค์ชั่น setup() ทำหน้าที่เป็นตัวกำหนดหน้าที่ของพินต่างๆของไมโครคอนโทรลเลอร์
บรรทัดที่ 28 กำหนดให้ตัวแปร bt0
หรือ พิน A0 ทำหน้าที่เป็น อินพุต
บรรทัดที่ 29 กำหนดให้ตัวแปร bt1
หรือ พิน A1 ทำหน้าที่เป็น อินพุต
บรรทัดที่ 30 กำหนดให้ตัวแปร bt2
หรือ พิน A2 ทำหน้าที่เป็น อินพุต
บรรทัดที่ 31 กำหนดให้ตัวแปร bt3
หรือ พิน A3 ทำหน้าที่เป็น อินพุต
บรรทัดที่ 32 กำหนดให้ตัวแปร bt4
หรือ พิน A4 ทำหน้าที่เป็น อินพุต
บรรทัดที่ 33 กำหนดให้ตัวแปร bt5
หรือ พิน A5 ทำหน้าที่เป็น อินพุต
บรรทัดที่ 35 กำหนดให้ตัวแปร led0
หรือ พิน D5
ทำหน้าที่เป็น เอาต์พุต
บรรทัดที่ 36 กำหนดให้ตัวแปร led1
หรือ พิน D6
ทำหน้าที่เป็น เอาต์พุต
บรรทัดที่ 37 กำหนดให้ตัวแปร led2
หรือ พิน D7 ทำหน้าที่เป็น เอาต์พุต
บรรทัดที่ 38 กำหนดให้ตัวแปร led3
หรือ พิน D8
ทำหน้าที่เป็น เอาต์พุต
บรรทัดที่ 39 กำหนดให้ตัวแปร led4
หรือ พิน D9
ทำหน้าที่เป็น เอาต์พุต
บรรทัดที่ 40 กำหนดให้ตัวแปร led5
หรือ พิน D10 ทำหน้าที่เป็น เอาต์พุต
บรรทัดที่ 42 กำหนดให้ตัวแปร BUSY หรือ
พิน D4 ทำหน้าที่เป็น INPUT
บรรทัดที่ 43 กำหนด อัตราความเร็วในการแสดงผลข้อมูล ผ่านทาง Serialmonitor มีความเร็วที่ 9600
บรรทัดที่ 44 กำหนด อัตราความเร็วในการรับ-ส่ง ข้อมูล
ผ่านทางสาย serial
มีความเร็วที่ 9600
บรรทัดที่ 45 ปิดฟังก์ชั่น setup()
บรรทัดที่ 47 ประกาศฟังค์ชั่น loop() ซึ่งทำหน้าที่สั่งงานไมโครคอนโทรลเลอร์
ในลักษณะการทำงานวนซ้ำๆ
บรรทัดที่ 50 ถ้ามีการกดสวิทซ์ bt0 (ปุ่มกดที่
1) จะเริ่มการทำงานของคำสั่งในวงเล็บ
ตั้งแต่บรรทัดที่ 52-56
บรรทัดที่ 51 เปิดการสั่งงานในเงื่อนไข การกดสวิตซ์ bt0 (ปุ่มกดที่ 1)
บรรทัดที่ 52 เรียกใช้ฟังก์ชั่น stopsound() เพื่อสั่งหยุดเล่นเสียง
บรรทัดที่ 53 สั่งให้ led
ดับทุกหลอด
บรรทัดที่ 54 สั่งให้ led0 ติดสว่าง( led หลอดที่ 1)
เพื่อให้ทราบตำแหน่งของอุปกรณ์คอมพิวเตอร์ตัวที่
1
บรรทัดที่ 55 สั่งให้ บอร์ด MP3
เล่นเสียงที่ 001
บรรทัดที่ 56 เมื่อเสียงที่ 001
เล่นจบ ให้หยุดรอคำสั่งต่อไป โดยที่ไม่เล่นเสียง 001
ซ้ำ
บรรทัดที่ 57 ปิดการทำงานเงื่อนไขของการกดสวิทซ์ bt0 (ปุ่มกดที่
1)
บรรทัดที่ 60 ถ้ามีการกดสวิทซ์ bt1 (ปุ่มกดที่
2) จะเริ่มการทำงานของคำสั่งในวงเล็บ
ตั้งแต่บรรทัดที่ 62-66
บรรทัดที่ 61 เปิดการสั่งงานในเงื่อนไข การกดสวิตซ์ bt1 (ปุ่มกดที่ 2)
บรรทัดที่ 62 เรียกใช้ฟังก์ชั่น stopsound() เพื่อสั่งหยุดเล่นเสียง
บรรทัดที่ 63 สั่งให้ led
ดับทุกหลอด
บรรทัดที่ 64 สั่งให้ led1 ติดสว่าง( led หลอดที่ 2)
เพื่อให้ทราบตำแหน่งของอุปกรณ์คอมพิวเตอร์ตัวที่
2
บรรทัดที่ 65 สั่งให้ บอร์ด MP3
เล่นเสียงที่ 002
บรรทัดที่ 66 เมื่อเสียงที่ 002
เล่นจบ ให้หยุดรอคำสั่งต่อไป โดยที่ไม่เล่นเสียง 002
ซ้ำ
บรรทัดที่ 67 ปิดการทำงานเงื่อนไขของการกดสวิทซ์ bt1 (ปุ่มกดที่
2)
บรรทัดที่ 70 ถ้ามีการกดสวิทซ์ bt2 (ปุ่มกดที่
3) จะเริ่มการทำงานของคำสั่งในวงเล็บ
ตั้งแต่บรรทัดที่ 72-76
บรรทัดที่ 71 เปิดการสั่งงานในเงื่อนไข การกดสวิตซ์ bt2 (ปุ่มกดที่ 3)
บรรทัดที่ 72 เรียกใช้ฟังก์ชั่น stopsound() เพื่อสั่งหยุดเล่นเสียง
บรรทัดที่ 73 สั่งให้ led
ดับทุกหลอด
บรรทัดที่ 74 สั่งให้ led2 ติดสว่าง( led หลอดที่ 3)
เพื่อให้ทราบตำแหน่งของอุปกรณ์คอมพิวเตอร์ตัวที่
3
บรรทัดที่ 75 สั่งให้ บอร์ด MP3
เล่นเสียงที่ 003
บรรทัดที่ 76 เมื่อเสียงที่ 003
เล่นจบ ให้หยุดรอคำสั่งต่อไป โดยที่ไม่เล่นเสียง 003
ซ้ำ
บรรทัดที่ 77 ปิดการทำงานเงื่อนไขของการกดสวิทซ์ bt2 (ปุ่มกดที่
3)
บรรทัดที่ 80 ถ้ามีการกดสวิทซ์ bt3 (ปุ่มกดที่
4) จะเริ่มการทำงานของคำสั่งในวงเล็บ
ตั้งแต่บรรทัดที่ 82-86
บรรทัดที่ 81 เปิดการสั่งงานในเงื่อนไข การกดสวิตซ์ bt3 (ปุ่มกดที่ 4)
บรรทัดที่ 82 เรียกใช้ฟังก์ชั่น stopsound() เพื่อสั่งหยุดเล่นเสียง
บรรทัดที่ 83 สั่งให้ led
ดับทุกหลอด
บรรทัดที่ 84 สั่งให้ led3 ติดสว่าง( led หลอดที่ 4)
เพื่อให้ทราบตำแหน่งของอุปกรณ์คอมพิวเตอร์ตัวที่
4
บรรทัดที่ 85 สั่งให้ บอร์ด MP3
เล่นเสียงที่ 004
บรรทัดที่ 86 เมื่อเสียงที่ 004
เล่นจบ ให้หยุดรอคำสั่งต่อไป โดยที่ไม่เล่นเสียง 004
ซ้ำ
บรรทัดที่ 87 ปิดการทำงานเงื่อนไขของการกดสวิทซ์ bt3 (ปุ่มกดที่
4)
บรรทัดที่ 90 ถ้ามีการกดสวิทซ์ bt4 (ปุ่มกดที่
5) จะเริ่มการทำงานของคำสั่งในวงเล็บ
ตั้งแต่บรรทัดที่ 92-96
บรรทัดที่ 91 เปิดการสั่งงานในเงื่อนไข การกดสวิตซ์ bt4 (ปุ่มกดที่ 5)
บรรทัดที่ 92 เรียกใช้ฟังก์ชั่น stopsound() เพื่อสั่งหยุดเล่นเสียง
บรรทัดที่ 93 สั่งให้ led
ดับทุกหลอด
บรรทัดที่ 94 สั่งให้ led4 ติดสว่าง( led หลอดที่ 5)
เพื่อให้ทราบตำแหน่งของอุปกรณ์คอมพิวเตอร์ตัวที่
5
บรรทัดที่ 95 สั่งให้ บอร์ด MP3
เล่นเสียงที่ 005
บรรทัดที่ 96 เมื่อเสียงที่ 005
เล่นจบ ให้หยุดรอคำสั่งต่อไป โดยที่ไม่เล่นเสียง 005
ซ้ำ
บรรทัดที่ 97 ปิดการทำงานเงื่อนไขของการกดสวิทซ์ bt4 (ปุ่มกดที่
5)
บรรทัดที่ 100 ถ้ามีการกดสวิทซ์ bt5 (ปุ่มกดที่
6) จะเริ่มการทำงานของคำสั่งในวงเล็บ
ตั้งแต่บรรทัดที่ 103-107
บรรทัดที่ 101 เปิดการสั่งงานในเงื่อนไข การกดสวิตซ์ bt5 (ปุ่มกดที่ 6)
บรรทัดที่ 103 เรียกใช้ฟังก์ชั่น stopsound() เพื่อสั่งหยุดเล่นเสียง
บรรทัดที่ 104 สั่งให้ led
ดับทุกหลอด
บรรทัดที่ 105 สั่งให้ led5 ติดสว่าง( led หลอดที่ 6)
เพื่อให้ทราบตำแหน่งของอุปกรณ์คอมพิวเตอร์ตัวที่
6
บรรทัดที่ 106 สั่งให้ บอร์ด MP3
เล่นเสียงที่ 006
บรรทัดที่ 107 เมื่อเสียงที่ 006
เล่นจบ ให้หยุดรอคำสั่งต่อไป โดยที่ไม่เล่นเสียง 006
ซ้ำ
บรรทัดที่ 109 ปิดการทำงานเงื่อนไขของการกดสวิทซ์ bt5 (ปุ่มกดที่
6)
บรรทัดที่ 112 สิ้นสุดการทำงานของฟังก์ชั่น loop()
บรรทัดที่ 124 ประกาศฟังก์ชั่นย่อย led_off
ทำหน้าที่สั่งปิด led ทุกหลอด
บรรทัดที่ 127 สั่งให้ led0
ดับ ( led หลอดที่ 1 ดับ)
บรรทัดที่ 128 สั่งให้ led1
ดับ ( led หลอดที่ 2 ดับ)
บรรทัดที่ 129 สั่งให้ led2
ดับ ( led หลอดที่ 3 ดับ)
บรรทัดที่ 130 สั่งให้ led3
ดับ ( led หลอดที่ 4 ดับ)
บรรทัดที่ 131 สั่งให้ led4
ดับ ( led หลอดที่ 5 ดับ)
บรรทัดที่ 132 สั่งให้ led5
ดับ ( led หลอดที่ 6 ดับ)
บรรทัดที่ 134 ปิดฟังก์ชั่นย่อย led_off
บรรทัดที่ 140ประกาศฟังก์ชั่นย่อย stop_sound
ทำหน้าที่สั่งหยุดเล่นเสียง
บรรทัดที่ 142 สั่งให้ หยุดเล่นเสียง
บรรทัดที่ 143 สั่งให้ โปรแกรมส่งคำสั่งเพียงรอบเดียว
บรรทัดที่ 144 สั่งให้ หน่วงเวลา 0.2
วินาที
บรรทัดที่ 145 ปิดฟังก์ชั่นย่อย stop_sound