01204223 การปฏิบัติการทางวิศวกรรมคอมพิวเตอร์ ปีการศึกษา 2558
		
		
		
		
		
		
		ไปยังการนำทาง
		ไปยังการค้นหา
		
		
		
		
		
		
		
		
	
หน้านี้รวบรวมลิงก์ของเอกสารและวิดีโอประกอบการเรียนวิชาการ 01204223 ปฏิบัติการทางวิศวกรรมคอมพิวเตอร์ (Practicum for Computer Engineering) ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ ภาคต้น ปีการศึกษา 2558
เนื้อหา
- 1 ประกาศ
 - 2 เนื้อหาและปฏิบัติการ
- 2.1 สัปดาห์ที่ 1 ระบบยูนิกซ์ เทอร์มินัล และเชลล์
 - 2.2 สัปดาห์ที่ 2 รีไดเรคชันและไปป์
 - 2.3 สัปดาห์ที่ 3 การบัดกรีวงจร
 - 2.4 สัปดาห์ที่ 4 การพัฒนาเฟิร์มแวร์และการออกแบบวงจร
 - 2.5 สัปดาห์ที่ 5 แผงวงจรพ่วงและเอาท์พุทแบบดิจิทัล
 - 2.6 สัปดาห์ที่ 6 พอร์ทอนุกรมและการรับอินพุท
 - 2.7 สัปดาห์ที่ 7 ภาษาไพทอนเบื้องต้น
 - 2.8 สัปดาห์ที่ 8 การสื่อสารผ่านพอร์ท USB
 - 2.9 สัปดาห์ที่ 9 การสร้างแอนิเมชันและเกมสามมิติด้วย VPython
 - 2.10 สัปดาห์ที่ 10 มัลติทาสกิ้งบนไมโครคอนโทรลเลอร์และอุปกรณ์ USB แบบ HID
 - 2.11 สัปดาห์ที่ 11 โครงงานปลายภาค
 
 - 3 รวบรวมลิ้งค์สำหรับเอกสารและสื่อการสอน
 - 4 ลิ้งค์อื่น ๆ
 
ประกาศ
- ยินดีต้อนรับสู่วิชาการปฏิบัติการทางวิศวกรรมคอมพิวเตอร์
 - เจอกันใน Facebook
 - และระบบ E-labsheet
 - ดาวน์โหลดแผนการสอนที่นี่
 
เนื้อหาและปฏิบัติการ
สัปดาห์ที่ 1 ระบบยูนิกซ์ เทอร์มินัล และเชลล์
- ห้องเรียน: 603
 - หัวข้อ: ระบบยูนิกซ์เบื้องต้น
- ฟังบรรยาย: ยูนิกซ์ เทอร์มินัล และเชลล์ (สไลด์ประกอบ)
 - ศึกษาวีดีทัศน์: พาธในยูนิกซ์
- ตอนที่ 1 เกริ่นนำเกี่ยวกับเชลล์และแนะนำแนวคิดของโครงสร้างไดเร็กทอรี
 - ตอนที่ 2 อธิบายแนวคิดของ working directory และการอ้างถึงไฟล์โดยอิงกับ working directory, ทดลองใช้คำสั่ง ls, cd, pwd และ cp
 - ตอนที่ 3 อธิบายวิธีการอ้างถึงไฟล์ในรูปแบบอื่น ๆ เช่นการอ้างแบบ absolute (/) อ้างผ่าน home (~) และการอ้างถึงตำแหน่งนั้นเอง (.) กับการอ้างถึงไดเร็กทอรีก่อนหน้า (..)
 
 - ศึกษาวิกิ: การใช้ filename expansion
 - ศึกษาวีดีทัศน์: glob และการกระจายคำสั่ง
 - ดาวน์โหลดและปฏิบัติตามขั้นตอนในชีตแล็บ: ระบบยูนิกซ์และคำสั่งพื้นฐาน โดยส่งงานผ่านระบบ E-Labsheet
 
 
สัปดาห์ที่ 2 รีไดเรคชันและไปป์
- ห้องเรียน: 603
 - หัวข้อ: การผันทิศทางอินพุท/เอาท์พุท และการเชื่อมต่อคำสั่งโดยใช้ไปป์
- ศึกษาวีดีทัศน์: แนะนำการใช้งานรีไดเรคชันและไปป์ พร้อมยกตัวอย่างด้วยคำสั่ง grep และ wc และแนะนำคำสั่ง tee
 - ฟังบรรยาย (สไลด์ประกอบ)
 - ดาวน์โหลดชีตแล็บ: ยูนิกส์สำหรับ geek
 - ส่งแบบฝึกหัดผ่านระบบ E-Labsheet:
- แบบฝึกหัด 2.1 ยูนิกซ์สำหรับ Geek (ตามโจทย์ในชีตแล็บ)
 - แบบฝึกหัด 2.2 วิเคราะห์ log file
 
 
 
สัปดาห์ที่ 3 การบัดกรีวงจร
- ห้องเรียน: 606
 - หัวข้อ: การสร้างวงจรต้นแบบ
- ฟังบรรยาย: การสร้างวงจรต้นแบบ (เอกสาร ppt) (เอกสาร pdf)
 
 - หัวข้อ: การบัดกรีบอร์ดไมโครคอนโทรลเลอร์
- ศึกษาวีดีทัศน์ การบัดกรีวงจร (ซับไทย)
 - ฟังบรรยาย: การบัดกรีชิ้นงานอิเล็กทรอนิกส์ (เอกสาร ppt) (เอกสาร pdf)
 - ประกอบวงจรบอร์ดไมโครคอนโทรลเลอร์ ตามขั้นตอนในวิกิ การบัดกรีแผงวงจรไมโครคอนโทรลเลอร์
 - ตรวจสอบความถูกต้องของชิ้นงานตามขั้นตอนในวีดีทัศน์ การประกอบบอร์ดไมโครคอนโทรลเลอร์และการตรวจสอบความถูกต้อง
 - ส่งงานโดยการสาธิตความถูกต้อง
 
 
สัปดาห์ที่ 4 การพัฒนาเฟิร์มแวร์และการออกแบบวงจร
- ห้องเรียน: 603
 - หัวข้อ: การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์
- ผู้ทีใช้เครื่องคอมพิวเตอร์ส่วนตัว ให้ติดตั้งซอฟต์แวร์ที่จำเป็นมาก่อนล่วงหน้า โดยดูขั้นตอนจากหัวข้อแรกของวิกิ การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์
 
- ชมวีดีทัศน์
 - ศึกษาวิกิ การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์
 - ฟังบรรยายและทดลองปฏิบัติตาม
- ไมโครคอนโทรลเลอร์เบื้องต้น (เอกสาร pptx) (เอกสาร pdf)
 - ผังวงจรบอร์ดไมโครคอนโทรลเลอร์
 
 - ส่งงาน "LED กระพริบ" ตามตัวอย่าง
 
 - หัวข้อ: การออกแบบแผงวงจรพ่วง
- ผู้ทีใช้เครื่องคอมพิวเตอร์ส่วนตัว ให้ติดตั้งซอฟต์แวร์ CadSoft EAGLE มาก่อนล่วงหน้า โดยดาวน์โหลดจากเว็บ CadSoftUSA
 
- ศึกษาวิกิ การออกแบบและสร้างแผ่นวงจรพิมพ์
 - ฟังบรรยายเรื่อง แผงวงจรพ่วง (เอกสาร pptx) (เอกสาร pdf)
 - ออกแบบแผงวงจรพ่วงโดยปฏิบัติตามขั้นตอนในวีดีทัศน์
- ตอนที่ 1 การเตรียมตัว
 - ตอนที่ 2 การวาดแผนผังวงจร (schematic)
 - ตอนที่ 3 การออกแบบแผ่นวงจรพิมพ์ (PCB)
 
 - ส่งงานโดยการสร้างไฟล์ zip ชื่อ peripheral.zip เพื่อบรรจุไฟล์ peripheral.sch และ peripheral.brd เอาไว้ แล้วอัพโหลดไฟล์ผ่านระบบ MaxLearn
 
 
สัปดาห์ที่ 5 แผงวงจรพ่วงและเอาท์พุทแบบดิจิทัล
- หัวข้อ: การบัดกรีแผงวงจรพ่วงและทำสายแพ
- ห้องเรียน: 606
 
- ศึกษาวิธีการใช้งานออสซิลโลสโคปและการทำสายแพจากวีดีทัศน์
- การใช้งานออสซิลโลสโคป (มี 3 ตอน)
 - การเตรียมสายแพ
 
 - บัดกรีแผงวงจรพ่วงและทำสายแพคนละหนึ่งเส้น
 - ตรวจสอบความถูกต้องของแผงวงจรพ่วง ตามวีดีทัศน์ การตรวจเช็คแผงวงจรพ่วง (มี 4 ตอน)
 - ส่งงานโดยการสาธิตความถูกต้องผ่านชุดทดลองดิจิทัลและออสซิลโลสโคป
 
 - หัวข้อ: การควบคุมเอาท์พุทแบบดิจิทัล
- ห้องเรียน: 603
 
- เตรียมสภาพแวดล้อมในการพัฒนาเฟิร์มแวร์ด้วย Arduino IDE โดยทำตามขั้นตอนในวิกิ การพัฒนาเฟิร์มแวร์ด้วย Arduino IDE
 - ฟังบรรยายเรื่องแผงวงจรพ่วงและการแสดงเอาท์พุทแบบดิจิทัลด้วย LED
- สไลด์บรรยาย: แผงวงจรพ่วง (เอกสาร ppt) (เอกสาร pdf)
 
 - ส่งงาน "ไฟวิ่งสามสี" ตามตัวอย่าง
 
 
สัปดาห์ที่ 6 พอร์ทอนุกรมและการรับอินพุท
- ห้องเรียน 603
 - หัวข้อ: การใช้งานพอร์ทอนุกรมและ Serial Monitor
- ศึกษาวิกิ การสื่อสารผ่านพอร์ทอนุกรม
 - ทดลองทำตัวอย่าง Hello, Serial
 
 - หัวข้อ: สวิตช์และการรับอินพุทแบบดิจิทัล
- ฟังบรรยายเรื่องสวิตช์และการรับอินพุทแบบดิจิทัล
- สไลด์บรรยาย: แผงวงจรพ่วง (เอกสาร pptx) (เอกสาร pdf)
 
 - ส่งงาน "กดกี่ครั้ง"
 
 - ฟังบรรยายเรื่องสวิตช์และการรับอินพุทแบบดิจิทัล
 - หัวข้อ: ตัววัดแสง การรับอินพุทแบบแอนะล็อก และภาษาซีเบื้องต้นสำหรับไมโครคอนโทรลเลอร์
- ฟังบรรยายเรื่องตัววัดแสงและการรับอินพุทแบบแอนะล็อก
- สไลด์บรรยาย: แผงวงจรพ่วง (เอกสาร pptx) (เอกสาร pdf)
 - วิกิ: การวัดสัญญาณแอนะล็อกด้วยไมโครคอนโทรลเลอร์
 
 - ส่งงาน "แสงสามระดับ"
 - ฟังบรรยายเรื่องภาษาซีเบื้องต้นสำหรับไมโครคอนโทรลเลอร์ ในหัวข้อการดำเนินการระดับบิต
- สไลด์บรรยาย: ภาษาซีเบื้องต้นสำหรับไมโครคอนโทรลเลอร์ (เอกสาร pptx) (เอกสาร pdf)
 
 - ส่งงาน "แสงแปดระดับ"
 
 - ฟังบรรยายเรื่องตัววัดแสงและการรับอินพุทแบบแอนะล็อก
 
สัปดาห์ที่ 7 ภาษาไพทอนเบื้องต้น
- หัวข้อ: ไพทอนแบบเร่งรัด
- ผู้ทีใช้เครื่องคอมพิวเตอร์ส่วนตัว ให้ติดตั้งซอฟต์แวร์ Anaconda Scientific Python Distribution มาก่อนล่วงหน้า โดยดูขั้นตอนจากวิกิ Python Programming/Setting Up Python
 
- ศึกษาวิกิ Python Programming
 - ส่งงาน ทำโจทย์ใน elab
 
 
สัปดาห์ที่ 8 การสื่อสารผ่านพอร์ท USB
- ผู้ทีใช้เครื่องคอมพิวเตอร์ส่วนตัว ขอให้ติดตั้งซอฟต์แวร์เหล่านี้มาก่อนล่วงหน้า
- Anaconda Scientific Python Distribution - ดูขั้นตอนจากวิกิ Python Programming/Setting Up Python
 - ไลบรารี PyUSB - ดูขั้นตอนจากวิกิ การติดตั้งไลบรารี PyUSB
 
 - หัวข้อ: การติดต่อกับบอร์ดไมโครคอนโทรลเลอร์ผ่านพอร์ท USB
- ศึกษาวิกิ การติดต่อกับบอร์ดไมโครคอนโทรลเลอร์ผ่านพอร์ท USB ด้วย Arduino
 - ดาวน์โหลดโค้ดต้นแบบจาก http://www.cpe.ku.ac.th/~cpj/204223/usb-generic-arduino.zip แล้วแตกเอาไว้ในไดเรคตอรีที่เก็บสเกตช์ของ Arduino
 - ฟังบรรยาย
- สไลด์บรรยาย: การสื่อสารกับบอร์ด MCU ผ่านพอร์ต USB (เอกสาร pptx) (เอกสาร pdf)
 - สไลด์บรรยาย: ภาษาซีเบื้องต้นสำหรับไมโครคอนโทรลเลอร์ (เอกสาร pptx) (เอกสาร pdf)
 
 - งานส่งในคาบ แก้ไขเฟิร์มแวร์ usb-generic และโมดูลไพทอน peri.py ให้สมบูรณ์ เพื่อให้รันโปรแกรมทดสอบ test-usb.py ได้อย่างถูกต้อง
 
 
สัปดาห์ที่ 9 การสร้างแอนิเมชันและเกมสามมิติด้วย VPython
- ผู้ทีใช้เครื่องคอมพิวเตอร์ส่วนตัว ให้ติดตั้งซอฟต์แวร์เหล่านี้มาก่อนล่วงหน้า
- Anaconda Scientific Python Distribution - ดูขั้นตอนจากวิกิ Python Programming/Setting Up Python
 - ไลบรารี PyUSB - ดูขั้นตอนจากวิกิ การติดตั้งไลบรารี PyUSB
 - ไลบรารี Visual (VPython) - ดูขั้นตอนจากวิกิ การติดตั้งไลบรารี Visual
 
 - หัวข้อ: การสร้างเกมด้วย VPython
- ศึกษาวิกิ จำลองการเคลื่อนที่ด้วยคณิตศาสตร์แบบเวกเตอร์ใน VPython
 - ปฏบัติตามขั้นตอนในวิกิ สร้างเกมเดาะตะกร้อด้วย VPython
 - ส่งงาน แก้ไขสคริปต์เพื่อเพิ่มฟีเจอร์ให้เกม
- เพิ่มความเร็วลูกตะกร้อแนวดิ่งขึ้น 20% ทุกครั้งที่ผู้เล่นรับได้ โดยกำหนดความเร็วสูงสุดในแนวดิ่งไว้ที่ 20 หน่วยต่อวินาที
 - เพิ่มลูกตะกร้อหนึ่งลูกทุกครั้งที่ผู้เล่นเดาะได้หนึ่งครั้ง โดยสุ่มสี ความเร็วต้น และความเร่ง ให้กับตะกร้อลูกใหม่ (คำแนะนำ: ใช้ฟังก์ชันสุ่มเวกเตอร์ในโมดูล numpy.random และดูตัวอย่างโค้ดจากสคริปต์ balls.py)
 - จบเกมเมื่อลูกตะกร้อทั้งหมดหายไปจากหน้าจอ
 
- หมายเหตุ: อ็อบเจ็กต์แทนลูกตะกร้อที่ตกขอบจอไปนั้นยังคงไม่หายไปจากหน่วยความจำ มีผลทำให้เกมใช้หน่วยความจำมากขึ้นเรื่อย ๆ โดยไม่จำเป็น หากต้องการให้อ็อบเจ็กต์ถูกลบออกจากหน่วยความจำให้ตั้งคุณสมบัติ visible ของอ็อบเจ็กต์เป็น False และกำจัดการอ้างอิงไปยังอ็อบเจ็กต์นี้โดยสิ้นเชิง (นั่นคืออ็อบเจ็กต์ต้องไม่ถูกอ้างถึงได้ด้วยตัวแปรใด ๆ หรือยังอยู่ในลิสต์ใด ๆ) ซึ่งไพทอนจะลบอ็อบเจ็กต์นี้ออกจากหน่วยความจำเองด้วยกลไก Garbage Collection ดูรายละเอียดเพิ่มเติมที่เว็บ Deleting an Object
 
- คลิปวีดีโอแสดงตัวอย่างการทำงาน
 
 
 
สัปดาห์ที่ 10 มัลติทาสกิ้งบนไมโครคอนโทรลเลอร์และอุปกรณ์ USB แบบ HID
- หัวข้อ: การทำมัลติทาสกิ้งบนไมโครคอนโทรลเลอร์
- ศึกษาวิกิ มัลติทาสกิ้งบนไมโครคอนโทรลเลอร์ และ มัลติทาสกิ้งด้วยไลบรารี Protothreads
 - ฟังบรรยายเรื่องมัลติทาสกิ้งด้วยไมโครคอนโทรลเลอร์ (เอกสาร pptx) (เอกสาร pdf)
 - ทดลองทำตัวอย่าง: ไฟกระพริบสองดวงอิสระ
 - ส่งงาน แบบฝึกหัด: ไฟกระพริบสองดวงอิสระพร้อมสวิตช์สลับไฟ
 
 - หัวข้อ: อุปกรณ์ USB แบบ Human Interface Device (USB HID)
- ฟังบรรยายเรื่อง USB HID
 - ศึกษาและทดลองทำตัวอย่าง usb-ghost-arduino.zip
 
 - หัวข้อ: การเตรียมตัวทำโครงงาน
- จับกลุ่มเพื่อทำโครงงานกลุ่มละ 2 คน สมาชิกในกลุ่มควรเป็นผู้ที่ลงทะเบียนเรียนหมู่เดียวกัน
 - งานส่งในคาบ ให้สมาชิกคนใดคนหนึ่งกรอกข้อมูลสมาชิกกลุ่มผ่านระบบ e-labsheet ที่ https://elab.cpe.ku.ac.th/elab2/lab/16/81/
 - ดูข้อมูลเพิ่มเติมจากสไลด์ การทำโครงงานปลายภาค
 
 
สัปดาห์ที่ 11 โครงงานปลายภาค
- หัวข้อ: การทำโครงงาน
- งานส่งในคาบ หารือกันเรื่องโครงงานปลายภาค และอัพเดตข้อมูลผ่านระบบจัดเก็บโปรเจ็คตามลิ้งค์ https://ecourse.cpe.ku.ac.th/tpm/project/practicum-58f/status (ยังไม่ต้องอัพโหลดไฟล์โครงงาน)
 - ตรวจสอบความถูกต้องของข้อมูลโครงงานกลุ่มตนเอง และดูรายละเอียดโครงงานของกลุ่มอื่นได้จาก https://ecourse.cpe.ku.ac.th/tpm/project/practicum-58f
 - ดูข้อมูลเพิ่มเติมจากสไลด์ การทำโครงงานปลายภาค
 - ดูตัวอย่างโครงงานที่ผ่านมาได้จาก https://ecourse.cpe.ku.ac.th/practicum
 
 
รวบรวมลิ้งค์สำหรับเอกสารและสื่อการสอน
วิกิ
สไลด์บรรยาย
วีดีทัศน์
- พาธในยูนิกซ์ ตอนที่ 1 เกริ่นนำเกี่ยวกับ shell และแนะนำแนวคิดของโครงสร้างไดเร็กทอรี
 - พาธในยูนิกซ์ ตอนที่ 2 อธิบายแนวคิดของ working directory และการอ้างถึงไฟล์โดยอิงกับ working directory, ทดลองใช้คำสั่ง ls, cd, pwd และ cp
 - พาธในยูนิกซ์ ตอนที่ 3 อธิบายวิธีการอ้างถึงไฟล์ในรูปแบบอื่น ๆ เช่นการอ้างแบบ absolute (/) อ้างผ่าน home (~) และการอ้างถึงตำแหน่งนั้นเอง (.) กับการอ้างถึงไดเร็กทอรีก่อนหน้า (..)
 - glob และการกระจายคำสั่ง ตอนที่ 1 ยกตัวอย่างการใช้ pattern เพื่อแทนชื่อไฟล์ และอธิบายการทำงานของ command expansion/substitution
 - glob และการกระจายคำสั่ง ตอนที่ 2 แนะนำการใช้ *, ?, และ [..] ในการทำ filename expansion ใน shell
 - แนะนำการใช้งานรีไดเรคชันและไปป์ พร้อมยกตัวอย่างด้วยคำสั่ง grep และ wc และแนะนำคำสั่ง tee
 
ชีตแล็บ
เอกสารและไฟล์อื่น ๆ
- Datasheet สำหรับไมโครคอนโทรลเลอร์เบอร์ ATMega168
 - บอร์ด Practicum v3
 - ดาวน์โหลด Arduino IDE
 - เอกสารอธิบายการใช้งานไลบรารีของ Arduino
 
