วันพฤหัสบดีที่ 26 พฤษภาคม พ.ศ. 2559

Week06 PCB-Assembly

Week06 PCB-Assembly 

 

เป้าหมาย 
เพื่อให้ความรู้และทำความเข้าใจกับแผ่น ซิลิคอน หรือ PCB หรือ แผ่น Print ว่าคืออะไรมีกี่ชนิด ใช้ในแบบใดบ้าง



PCB คืออะไร?
PCB (Print Circuit Board) คือ ส่วนประกอบพื้นฐานที่สำคัญของวงจรอิเล็กทรอนิกส์ เป็นทางเดินสัญญาณไฟฟ้าของอุปกรณ์อิเล็กทรอนิกส์ต่าง ๆ ที่อยู่บนแผงวงจร ทำให้อุปกรณ์ต่าง ๆ เชื่อมต่อกันได้ และสามารถทำงานได้อย่างถูกต้องตามที่ได้ออกแบบไว้

PCB ประกอบไปด้วยแผ่นฐานหรือซับสเตรท (substrate) ที่ทำจากแผ่นฉนวนบาง ๆ อัดยึดรวมกันด้วยพลาสติกประเภทเทอร์โมเซตติ้ง (Thermosetting plastic) เพื่อรองรับแผ่นตัวนำที่ใช้เชื่อมต่อสัญญาณไฟฟ้าระหว่างอุปกรณ์ ส่วนวัสดุที่ใช้ทำซับสเตรตที่นิยม เช่น กระดาษชุบฟีนอลลิกอัด, อีพ็อกซี่ไฟเบอร์กลาส เป็นต้น


แผ่นวงจรพิมพ์จะแบ่งออกเป็น 2 ประเภท คือ

1. แผ่นวงจรพิมพ์อเนกประสงค์ (Universal PCB Board) จะเป็นรูๆ เพิ่มใส่ขาอุปกรณ์แล้วก็โยงสายทองแดงหากันตามที่ออกแบบ



2. แผ่นวงจรพิมพ์เปล่า หรือ แผ่นปริ๊น จะต้องลงลายและกัดปริ๊นเอง






วิวัฒนาการของแผ่นวงจรพิมพ์ (PCB) 



PCB (Printed Circuit Board) หรือแผ่นวงจรพิมพ์เกิดจากการนำแผ่นทองแดงที่ถูกเคลือบอยู่บนวัสดุฉนวนไฟฟ้ามากำจัดทองแดงบางส่วนออกให้เหลือเพียงส่วนที่ต้องการจะเชื่อมต่อขั้วของอุปกรณ์อิเล็กทรอนิกส์แต่ละตัวเข้าด้วยกันตามวงจรไฟฟ้าหรือวงจรอิเล็กทรอนิกส์ที่ได้ออกแบบไว้ ซึ่งในบางครั้งนิยมเรียกว่า PWB (Printed Wiring Board) อีกด้วย จากนั้นเมื่ออุปกรณ์ต่างๆถูกติดตั้งลงไปบนแผ่นวงจรพิมพ์กระทั้งเสร็จสิ้นเป็นวงจรที่สมบูรณ์แล้วนั้น จะถูกเรียกว่า PCA (Printed Circuit Assembly) หรือ PCBA (Printed Circuit Board Assembly) ปัจจุบันแผ่นวงจรพิมพ์ถูกนำมาใช้ในงานด้านไฟฟ้าและอิเล็กทรอนิกส์อย่างแพร่หลายโดยเฉพาะอย่างยิ่งในภาคอุตสาหกรรมในส่วนของการวิจัย พัฒนา และผลิตเครื่องใช้ไฟฟ้า อุปกรณ์ไฟฟ้า และสินค้าอื่นๆที่มีวงจรไฟฟ้าหรือวงจรอิเล็กทรอนิกส์เป็นส่วนประกอบ





ประวัติความเป็นมาของแผ่นวงจรพิมพ์นั้นเริ่มต้นตั้งแต่ ค.ศ. 1936 ยุคสมัยก่อนสงครามโลกครั้งที่สอง ได้เริ่มมีการใช้งานเครื่องวิทยุค่อนข้างแพร่หลาย ขณะนั้นในส่วนของภาควงจรวิทยุยังใช้วิธีการนำสายไฟมาบัดกรีเชื่อมต่อกับขั้วของอุปกรณ์แต่ละตัวเข้าด้วยกัน ในช่วงเวลาเดียวนายพอล อิสเลอร์ (Paul Eisler) นักประดิษฐ์ชาวออสเตรเลียซึ่งทำงานเกี่ยวกับการออกแบบวงจรวิทยุในประเทศอังกฤษได้มีแนวคิดที่จะพยายามลดขนาดของวิทยุ และเพิ่มประสิทธิภาพในการผลิต จึงได้ริเริ่มคิดทำแผ่นวงจรพิมพ์ขึ้นมาใช้สำหรับวงจรวิทยุ






จากนั้นในช่วงประมาณ ค.ศ. 1950 หลังสงครามโลกครั้งที่สอง แผ่นวงจรพิมพ์ก็ได้ถูกนำมาถูกนำมาใช้อย่างแพร่หลาย ซึ่งขณะนั้นยังเป็นแผ่นวงจรพิมพ์แบบด้านเดียว (Single-Sided Board) โดยลายวงจรแต่ละด้านถูกออกแบบด้วยวิธีการแกะสติกเกอร์ด้วยมือและใช้กรดกำจัดแผ่นทองแดงส่วนที่ไม่ต้องการออกไปให้เหลือเพียงส่วนของลายวงจรเท่านั้น ในช่วงระหว่าง ค.ศ. 1960 - 1970 เทคโนโลยีในการเคลือบทองแดงลงบนผนังภายในรูเจาะของแผ่นวงจรพิมพ์ได้ถูกพัฒนาจนกระทั้งสามารถสร้างแผ่นวงจรพิมพ์แบบสองด้าน (Double-Sided Board) ต่อจากนั้นในช่วงประมาณ ค.ศ. 1970 - 1980 การออกแบบวงจรอิเล็กทรอนิกส์ได้เริ่มมีความซับซ้อนมากยิ่งขึ้น จึงได้มีการริเริ่มพัฒนาเทคโนโลยีด้านการออกแบบโดยใช้คอมพิวเตอร์ (CAD) และการสร้างแผ่นวงจรพิมพ์แบบมัลติเลเยอร์ขึ้นมาใช้งาน ซึ่งในปัจจุบันนั้นสามมารถทำได้มากกว่า 32 เลเยอร์


ปัจจุบันเราสามารถออกแบบ แผ่น PCB เองได้แล้วด้วยแบบจำลอง

                    https://easyeda.com/ 
                    https://123d.circuits.io/

วันพุธที่ 25 พฤษภาคม พ.ศ. 2559

Week08 RPi 01of05 Boot and GPIO

Week08 RPi Check 01 

 

เป้าหมาย
1. ทำให้ RPI สามารถ Remote ได้ ด้วย SSH,XRDP
2. สั่ง LED เปิดปิด สามดวง วิ่งจาก ซ้ายไปขวา ด้วย RPI
3. ควบคุบการวิ่งของ LED ด้วย Button Switch สองตัว (ซ้ายไปขวา - ขวาไปซ้าย)
4. ทำการวัดอุณหภูมิ ด้วย DS18B20 โดยใช้ RPI

อุปกรณ์
1. Raspberry Pi 2 Model B+     1    ea
2. LED                                        3    ea
3. Button Switch                        2    ea
4. DS18B20 Sensor                    1    ea
5. Resistor 10 ohm                     1    ea
6. สายไฟ                                   10   ea
7. wired Lan  (Cross)                 1    ea

 

1. ทำการติดตั้ง XRDP เพื่อทำการ Remote

1. ทำการเสียบสาย lan เข้า RPI และ Computer จากนั้นใช้โปรแกรม Putty ทำการ ssh เข้าไปใน RPI ด้วย ip ของ RPI

 

 2. ทำการติดตั้ง XRDP



 3. หลังจากติดตั้งเสร็จเรียบร้อบให้ทำการ ลอง Remote ด้วย โปรแกรม Remote Desktop

 

 

2.สั่งให้ LED วิ่งจาก ซ้ายไปขวา

 1. สร้างไฟล์ SRC เพื่อใช้ในการ Run และเขียนโค๊ดลงไป

 



  2. ต่อวงจรให้เรียบร้อยตามขา GPIO ที่กำหนดไว้

 

 

3. ทดสอบ






3. สั่ง LED วิ่งซ้ายไปขวา - ขวาไปซ้าย ด้วย Switch 

1.ทำการเขียนโค๊ดขึ้นเพื่อใช้สวิชท์ควบคุมการวิ่งของ LED





2.  ทำการต่อสวิชท์เข้ากับขาตาม GPIO ที่กำหนดไว้



3. ทดสอบ
 





4. วัดอุณหภูมิ ด้วย DS18B20 

1.  ทำการตั้งค่าการรับค่าของเซนเซอร์ดังนี้ เข้าไปแก้ไข ใน ไฟล์ /boot/config.txt แล้วทำการเปิด แท๊ก ที่
dtparam=i2c0=on
dtparam=spi=on
dtparam=is2=on
dtoverlay=w1-gpio


2.  จากนั้นทำการ save และใช้คำสั่ง  

sudo modprobe w1-gpio
sudo modprobe w1-therm 


3. และเมื่อตรวจสอบแล้วว่า ได้มีการสร้างไฟล์ผลลัพท์ ออกมาแล้ว ก็ให้ทำการเขียนโค๊ดเพื่อแสดงข้อมูล




4. จากนั้นทำการต่อ DS18B20 เข้ากับ ตัวต้านทาน 10 โอมห์ และ RPI เข้าด้วยกัน



5.  ทดสอบ




MISSION COMPLETE

วันอังคารที่ 24 พฤษภาคม พ.ศ. 2559

Week09 RPi 02of05 RPi ThinkSpeak

Week09 RPi 02of05 RPi ThinkSpeak


เป้าหมาย
1. สมัครและตั้งค่า Thingspeak
2. ส่งค่าเข้า Thingspeak
3. ใช้ Thingspeak ควบคุม LED 3 ดวง

 

อุปกรณ์
1. Raspberry Pi 2 Model B+     1    ea
2. LED                                        3    ea
3. Button Switch                        2    ea
4. DS18B20 Sensor                    1    ea
5. Resistor 10 ohm                     1    ea
6. สายไฟ                                   10   ea
7. wired Lan  (Cross)                 1    ea

 

1. สมัครและตั้งค่า Thingspeak

 1.1 ทำการ เปิด URL :  https://thingspeak.com/  ด้วย Web Browser เมื่ออยู่ในหน้าดังรูปให้ทำการ Sign in เข้าเพื่อเป็นสมาชิก

 

 

1.2 จากนั้นทำการ สร้างช่อง New Channel เพื่อใช้สำหรับเก็ยข้อมูล โดยการทำตามดังรูป

 

 

1.3 เมื่อเข้ามาถึงหน้าดังรูปให้ทำการกรอก Name ของ Channel และตั้งชื่อให้กับ Field 1

 

 

1.4 กดเข้า Menubar API KEYS 

 

 

 

1.5 จะปรากฏหน้านี้ขึ้น

 

 

 

 2. ส่งค่าเข้า Thingspeak

2.1 ทำการต่อวงจรเข้ากับ เซนเซอร์วัดอุณหภูมิ DS18B20 เข้ากับบอร์ด RPI




2.2 ทำการเขียนโค๊ด ลงบอร์ด RPI โดยทำการ ใช้ APIKEY จากข้อ 1. ใน Channel ของคุณ
ซึ่งการติดต่อกับ Thingspeak จะใช้ API Key เป็นตัวกลางในการสื่อสาร

กดที่นี่เพื่อดู หรือ ศึกษา Source Code 

 

 

2.3 เข้าดูผลลัพท์ ข้อมมูลที่ส่งเข้าไปที่ Field1 ที่ตั้งค่าไว้









3. ใช้ Thingspeak ควบคุม LED 3 ดวง

3.1 ทำการต่อ LED เข้ากับ บอร์ด RPI






3.2 ทำการเขียนโค๊ดเพื่อ ให้ RPI สามารถอ่านค่าสุดท้ายของการส่งข้อมูลไป ที่ Field นั้นๆ และการควบคุมนี้จะขึ้นอยู่กับเงื่อนไขที่เราสร้างเพื่อตรวจสอบข้อมูล




 3.3 ทำการทดสอบลองส่งค่า เข้า API เพื่อให้ Feild มีการ Update ด้วย field2=0 หรือ 1 ดู ภาพข้างล่างนี้เป็นเพียงตัวอย่างของการอัพเดท







 3.4 ทำการตรวจสอบค่าที่ส่งเข้าไปใน Field2  






MISSION COMPLETE

วันจันทร์ที่ 23 พฤษภาคม พ.ศ. 2559

Week10 RPi 03of05 RPi Google Docs Spreadsheet

Week10 RPi 03of05 RPi Google Docs Spreadsheet


เป้าหมาย
ทำการส่งค่า อุณหภูมิขึ้นไปบน Google sread sheet

 

อุปกรณ์
1. Raspberry Pi 2 Model B+     1    ea
2. DS18B20 Sensor                    1    ea
3. Resistor 10 ohm                     1    ea
4. สายไฟ                                   10   ea
5. wired Lan  (Cross)                 1    ea

 

 

 

1. ส่งค่าอุณหภูมิขึ้น Google Spread Sheet

1.1  เข้าไปที่ google แล้วพิมพ์ Google Sread sheet เพื่อเข้าสู่ Spread Sheet และทำการสร้าง Sheet ขึ้นมา




1.2 ทำการลงสิ่งที่จำเป็น ต่อการทำแลปครั้งนี้


sudo apt-get install python-smbus
sudo apt-get install i2c-tools
sudo raspi-config 
sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install git
sudo pip install gspread oauth2client PyOpenSSL



1.3 ทำการเข้า ไปที่  Google Developers Console เพื่อทำการสร้าง Service Account Key แล้วดำเนินการตามภาพ












1.4 แล้วทำการเขียนโค๊ดเพื่อให้ DS18B20 สามารถส่งค่าได้ ซึ่งไฟล์ Json ที่ได้จาก 1.3 จะนำไปไว้ใน Directory เดียวกัน ซึ่งถ้าดูจากซอสโค๊ดข้างล่างจะต้องไปเปลี่ยนชื่อไฟล์ ให้ ตรงกับที่เราโหลดมา (JSON) ในบรรทัดที่ 11 เป็นของคุณเอง






1.5 ดูผลลัทพ์




MISSION COMPELETE

วันอาทิตย์ที่ 22 พฤษภาคม พ.ศ. 2559

Week10 RPi 03of05 RPi WebCam AND Upload Photo to Dropbox

Week10 RPi 03of05 RPi WebCam AND Upload Photo to Dropbox



เป้าหมาย
ทำการถ่ายรูปภาพด้วย Webcam จากการจับการเคลื่อนไหวด้วย PIR Motion senser แล้วทำการ Upload รูปขึ้น Dropbox

 

อุปกรณ์
1. Raspberry Pi 2 Model B+      1    ea
2. LED                                        3    ea
3. สายไฟ                                  10   ea
4. wired Lan  (Cross)                1    ea
5. webcam                                 1    ea 
6. PIR Motion senser                 1    ea


  1. สั่งให้ Webcam ถ่ายรูปให้แปะวันที่เวลา ด้วย สวิทช์ หรือเซนเซอร์

1.1 ลง OpenCV ให้กับตัว Python สามารถเรียกใช้งานได้

sudo apt-get install python-cv


1.2 เขียนโค๊ดเพื่อให้ Webcam สามารถใช้งาน OpenCV ได้


2. ถ่ายรูปและอัพโหลดขึ้น Dropbox

2.1 ทำการ ติดตั้ง git และ Clone 
sudo apt-get install git
git clone https://github.com/andreafabrizi/Dropbox-Uploader 



2.2 ทำการสร้าง App Project ขึ้นโดย ขั้นแรกให้เข้าไปที่ https://www.dropbox.com/developers









2.3 ใช้คำสั่งนี้เพื่อกำหนดใช้การเข้าใช้ และ สั่งใช้งาน ซึ่งมันจะถามหา Api key และ Secret key

chmod +x dropbox_uploader.sh
 ./dropbox_uploader.sh 


2.4 ทำการเขียนโค๊ดเพื่อถ่ายรูปและอัพโหลด


2.5 ตามไปดูผลลัพท์กันเถอะ





MISSION COMPLETE