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