ผลต่างระหว่างรุ่นของ "01204223 การปฏิบัติการทางวิศวกรรมคอมพิวเตอร์ ปีการศึกษา 2555"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) ล (01204223 การปฏิบัติการทางวิศวกรรมคอมพิวเตอร์ ถูกเปลี่ยนชื่อเป็น [[01204223 การปฏิบัติการทางวิศวกร...) |
||
(ไม่แสดง 98 รุ่นระหว่างกลางโดยผู้ใช้ 6 คน) | |||
แถว 1: | แถว 1: | ||
+ | หน้านี้รวบรวมลิงก์ของเอกสารและวิดีโอประกอบการเรียนวิชาการปฏิบัติการทางวิศวกรรมคอมพิวเตอร์ | ||
+ | == ประกาศ == | ||
+ | * (30 มิ.ย. 2555) [http://www.youtube.com/watch?v=wmTyuKsp4yk คลิป TDD บน Python ตอนที่ 1], [http://www.youtube.com/watch?v=4E4AUyUD8w8 ตอนที่ 2], [http://www.youtube.com/watch?v=4E4AUyUD8w8 ตอนที่ 3] | ||
+ | * (23 มิ.ย. 2555) เราได้ขอเซิร์ฟเวอร์ unix มาแล้ว (อยู่ที่ 158.108.32.112) และได้สร้างบัญชีผู้ใช้ให้กับนิสิตทุกท่านแล้วนะครับ เราส่งข้อมูลให้ทางอีเมล์ b54xxxxxxxx@ku.ac.th แล้ว นิสิตสามารถเข้าใช้ได้โดยใช้โปรแกรม ssh client ทั่วไป เช่น [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty] ([[01204223/ssh-client|อ่านขั้นตอนการเข้าใช้]]) | ||
+ | |||
+ | == แผนการสอน == | ||
+ | * [http://www.cpe.ku.ac.th/~cpj/204223/2555/syllabus.pdf ดาวน์โหลดไฟล์แผนการสอน] (แก้ไขล่าสุด 2 ก.ค.) | ||
+ | |||
+ | == เนื้อหา == | ||
+ | === สัปดาห์ที่ 1 === | ||
+ | * ฮาร์ดแวร์: เครื่องมือวัดและชุดทดลองวงจรดิจิทัล | ||
+ | ** สไลด์: ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h1-measure.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h1-measure.pdf เอกสาร pdf]) | ||
+ | ** วิดิทัศน์: [http://www.youtube.com/watch?v=l9TbzzR5aoU การใช้งานชุดทดลองดิจิทัลเบื้องต้น] | ||
+ | ** วิดิทัศน์: [http://www.youtube.com/watch?v=hG7ARRjuFYY การเตรียมการใช้งานออสซิลโลสโคป] | ||
+ | ** วิดิทัศน์: [http://www.youtube.com/watch?v=3kwYQbZDE_8 กลไกทริกเกอร์ของออสซิลโลสโคป] | ||
+ | ** วิดิทัศน์: [http://www.youtube.com/watch?v=I0rjp3ZsDjQ การใช้งานระบบเคอร์เซอร์] | ||
+ | * ซอฟต์แวร์: ระบบยูนิกซ์และคำสั่งพื้นฐาน [http://www.cpe.ku.ac.th/~cpj/204223/labsheets/s01-unix.pdf เอกสารแล็บ] | ||
+ | ** เพิ่มเติม: [[01204223/filename expansion|การใช้ filename expansion]] (ดูคลิปตอนที่ 2 ประกอบ) | ||
+ | |||
+ | === สัปดาห์ที่ 2 === | ||
+ | * ฮาร์ดแวร์: การประกอบวงจรพิมพ์ | ||
+ | ** สไลด์: การสร้างวงจรต้นแบบ ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h2-prototyping.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h2-prototyping.pdf เอกสาร pdf]) | ||
+ | ** สไลด์: การบัดกรีชิ้นงานอิเล็กทรอนิกส์ ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h3-soldering.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h3-soldering.pdf เอกสาร pdf]) | ||
+ | ** วิดิทัศน์: [http://www.cpe.ku.ac.th/~cpj/204223/media/soldering-how-to.mkv การบัดกรีวงจร (ไฟล์ .mkv, ซับไทย)] | ||
+ | ** วิกิ: [[การบัดกรีแผงวงจรไมโครคอนโทรลเลอร์]] | ||
+ | * ซอฟต์แวร์: ยูนิกส์สำหรับ geek [http://www.cpe.ku.ac.th/~cpj/204223/labsheets/s02-pipe.pdf เอกสารแล็บ] | ||
+ | |||
+ | === สัปดาห์ที่ 3 === | ||
+ | * ฮาร์ดแวร์: ไมโครคอนโทรลเลอร์และการพัฒนาเฟิร์มแวร์ | ||
+ | ** สไลด์: ไมโครคอนโทรลเลอร์เบื้องต้น ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h4-mcu.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h4-mcu.pdf เอกสาร pdf]) | ||
+ | ** วิกิ: [[การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์]] | ||
+ | ** วิกิ: [[การแก้ไขสิทธิการเข้าถึงพอร์ท USB ของบอร์ด MCU]] | ||
+ | ** [http://www.cpe.ku.ac.th/~cpj/204223/media/doc0856-avr-instr.pdf ชุดคำสั่งของสถาปัตยกรรม AVR] | ||
+ | ** [http://www.cpe.ku.ac.th/~cpj/204223/media/doc8161-pa-series.pdf Datasheet สำหรับไมโครคอนโทรลเลอร์เบอร์ ATMega168] | ||
+ | ** [http://www.cpe.ku.ac.th/~cpj/204223/media/mcu-schematic.pdf ผังวงจรบอร์ดไมโครคอนโทรลเลอร์] | ||
+ | * ซอฟต์แวร์: Python: งูเหลือมตะลุยจักรวาล [http://www.cpe.ku.ac.th/~cpj/204223/labsheets/s03-python.pdf เอกสาร pdf] | ||
+ | ** เราจะใช้โปรแกรม [http://www.nano-editor.org/ nano] เป็น editor ในการเขียนโปรแกรม ก่อนที่เราจะได้เรียน editor ตัวทีทรงพลังกว่านี้ เช่น VI อย่างไรก็ตาม เพื่อความสะดวกในการเขียนโปรแกรม Python เราได้จัดการปรับแต่ง nano ไว้บ้างแล้ว ดังนั้นถ้าไปใช้ที่เครื่องอื่น เมื่อเรียก nano แล้ว นิสิตควรกดปุ่ม Alt-I (ให้ auto indent) และ Alt-Q (ให้จัดเก็บ tab เป็น space) ก่อนทำงานด้วย นอกจากนี้ nano ยังสามารถทำ syntax highlight ได้ ถ้าเราเรียก nano ตามด้วยชื่อไฟล์นามสกุล .py แล้ว nano จะแสดง syntax highlight ให้โดยอัตโนมัติ (ควรทำเป็นอย่างยิ่ง) | ||
+ | ** [http://garnet.cpe.ku.ac.th/~jtf/223/python/ โหลดไฟล์สำหรับทำแลบที่นี่] | ||
+ | ** [http://theory.cpe.ku.ac.th/~jittat/204111/ สไลด์เนื้อหาไพธอน] | ||
+ | |||
+ | === สัปดาห์ที่ 4 === | ||
+ | * ฮาร์ดแวร์: การประกอบวงจรต้นแบบบนบอร์ดไข่ปลา และการเขียนโปรแกรมจัดการอินพุทและเอาท์พุท | ||
+ | ** สไลด์: แผงวงจรพ่วง ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.pdf เอกสาร pdf]) | ||
+ | ** วิกิ: [[แผงวงจรพ่วง (Peripheral Board)]] | ||
+ | * ซอฟต์แวร์: พัฒนาโปรแกรมด้วย TDD บน Python | ||
+ | ** ดูคลิปด้านล่าง | ||
+ | ** ทำแลบ Python Kang Fu ใน [https://cloud3.cpe.ku.ac.th/elab2/ Elab2] | ||
+ | ** ในแลบนี้เราจะประมวลผลข้อมูลในลิสต์มากมาย ด้านล่างเป็นรายการเอกสารเพิ่มเติมเกี่ยวกับการใช้งานลิสต์: | ||
+ | *** [http://docs.python.org/tutorial/introduction.html#lists การใช้งานลิสต์ที่ละเอียดขึ้นจาก Python Tutorial] ในเอกสารนี้ให้สังเกตความหมายของการอ้างถึงข้อมูลในลิสต์ โดยใช้ดัชนีที่เป็นบวก (นับจากหน้า) และดัชนีที่เป็นลบ (นับลำดับจากท้าย) เช่นการอ้าง <tt>a[3]</tt> หรือ <tt>a[-1]</tt> และการอ้างส่วนของลิสต์ เช่น <tt>a[1:10]</tt>, <tt>a[2:]</tt> หรือ <tt>a[1:-1]</tt> เป็นต้น | ||
+ | *** เอกสารอ้างอิง [http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange Sequence Types] และ [http://docs.python.org/library/stdtypes.html#typesseq-mutable Mutable Sequence Types] (ลิสต์เป็นรายการที่เปลี่ยนได้ จึงเรียกว่าเป็น mutable sequence types) | ||
+ | ** เอกสาร [http://docs.python.org/library/doctest.html doctest] | ||
+ | ** ด้านล่างเป็นโค้ดที่ต้องเพิ่มไปตอนท้ายโปรแกรม เพื่อให้ python รัน doctest ในโมดูลของเรา | ||
+ | |||
+ | if __name__ == "__main__": | ||
+ | import doctest | ||
+ | doctest.testmod() | ||
+ | |||
+ | === สัปดาห์ที่ 5 === | ||
+ | * ฮาร์ดแวร์: การควบคุมเอาท์พุท และการตรวจสอบอินพุทแบบดิจิทัลและแอนะล็อก | ||
+ | ** สไลด์: ภาษาซีเบื้องต้นสำหรับไมโครคอนโทรลเลอร์ ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h6-c.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h6-c.pdf เอกสาร pdf]) | ||
+ | ** สไลด์: แผงวงจรพ่วง ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.pdf เอกสาร pdf]) | ||
+ | ** วิกิ: [[แผงวงจรพ่วง (Peripheral Board)]] | ||
+ | ** วิกิ: [[การวัดสัญญาณแอนะล็อกด้วยไมโครคอนโทรลเลอร์]] | ||
+ | === สัปดาห์ที่ 6 === | ||
+ | * ซอฟต์แวร์: การจัดการกับความซับซ้อนของซอฟต์แวร์ใน Python --- โมดูล (modules) และคลาส (classes) | ||
+ | ** คลิป OOP บน Python: [http://www.youtube.com/watch?v=o9wAnP20ovQ ตอนที่ 1], [http://www.youtube.com/watch?v=vm0K_l7O-eQ ตอนที่ 2], [http://www.youtube.com/watch?v=3Jd2b5NydTQ ตอนที่ 3], [http://www.youtube.com/watch?v=bc-l0oMY16U ตอนที่ 4] | ||
+ | ** เอกสารประกอบ: [http://theory.cpe.ku.ac.th/~jittat/dm/?q=node/30 โมดูลใน Python],[http://www.cpe.ku.ac.th/~cpj/204223/slides/s4-oop.pdf การโปรแกรมเชิงวัตถุแบบเต่า ๆ], [http://theory.cpe.ku.ac.th/~jittat/dm/?q=node/31 การโปรแกรมเชิงวัตถุใน Python], | ||
+ | |||
+ | ตัวอย่างการเรียกใช้ <tt>__init__</tt> จากคลาสที่เรา inherite มา | ||
+ | |||
+ | class Robot(GamePiece): | ||
+ | def __init__(self,r,c,target): | ||
+ | GamePiece.__init__(self,r,c) | ||
+ | # ..... your other initialization code here | ||
+ | |||
+ | === สัปดาห์ที่ 7 === | ||
+ | * ฮาร์ดแวร์: การจำลองบอร์ด MCU เป็นอุปกรณ์ USB | ||
+ | ** สไลด์: การเชื่อมต่อกับบอร์ด MCU ผ่านพอร์ต USB ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h7-usb.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h7-usb.pdf เอกสาร pdf]) | ||
+ | ** วิกิ: [[การจำลองบอร์ด MCU เป็นอุปกรณ์ USB]] | ||
+ | |||
+ | === สัปดาห์ที่ 12 === | ||
+ | * เครื่องมือจัดการเวอร์ชัน | ||
+ | ** สไลด์: การจัดการเวอร์ชันด้วย Mercurial ([http://www.cpe.ku.ac.th/~cpj/204223/slides/s6-mercurial.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/s6-mercurial.pdf เอกสาร pdf]) | ||
+ | ** ลิ้งค์: [http://tortoisehg.bitbucket.org/ TortoiseHG] | ||
+ | |||
+ | การติดตั้ง TortoiseHG บนลินุกซ์ Mint/Ubuntu/Debian ใช้คำสั่ง | ||
+ | sudo apt-get install tortoisehg | ||
+ | |||
== รายการวิดีโอ == | == รายการวิดีโอ == | ||
+ | |||
+ | === ฮาร์ดแวร์ === | ||
+ | * แนะนำการใช้งานชุดทดลองดิจิทัลและออสซิลโลสโคป | ||
+ | ** [http://www.youtube.com/watch?v=l9TbzzR5aoU ตอนที่ 1] การใช้งานชุดทดลองดิจิทัลเบื้องต้น | ||
+ | ** [http://www.youtube.com/watch?v=hG7ARRjuFYY ตอนที่ 2] การเตรียมการใช้งานออสซิลโลสโคป | ||
+ | ** [http://www.youtube.com/watch?v=3kwYQbZDE_8 ตอนที่ 3] กลไกทริกเกอร์ของออสซิลโลสโคป | ||
+ | ** [http://www.youtube.com/watch?v=I0rjp3ZsDjQ ตอนที่ 4] การใช้งานระบบเคอร์เซอร์ | ||
+ | |||
+ | === Unix === | ||
* แนะนำ path ใน unix | * แนะนำ path ใน unix | ||
** [http://www.youtube.com/watch?v=UI5LdVp9XtY ตอนที่ 1] เกริ่นนำเกี่ยวกับ shell และแนะนำแนวคิดของโครงสร้างไดเร็กทอรี | ** [http://www.youtube.com/watch?v=UI5LdVp9XtY ตอนที่ 1] เกริ่นนำเกี่ยวกับ shell และแนะนำแนวคิดของโครงสร้างไดเร็กทอรี | ||
** [http://www.youtube.com/watch?v=qv4cetEvIgo ตอนที่ 2] อธิบายแนวคิดของ working directory และการอ้างถึงไฟล์โดยอิงกับ working directory, ทดลองใช้คำสั่ง ls, cd, pwd และ cp | ** [http://www.youtube.com/watch?v=qv4cetEvIgo ตอนที่ 2] อธิบายแนวคิดของ working directory และการอ้างถึงไฟล์โดยอิงกับ working directory, ทดลองใช้คำสั่ง ls, cd, pwd และ cp | ||
− | ** [http://www.youtube.com/watch?v=WeacW6PTKB4 ตอนที่ 3] | + | ** [http://www.youtube.com/watch?v=WeacW6PTKB4 ตอนที่ 3] อธิบายวิธีการอ้างถึงไฟล์ในรูปแบบอื่น ๆ เช่นการอ้างแบบ absolute (/) อ้างผ่าน home (~) และการอ้างถึงตำแหน่งนั้นเอง (.) กับการอ้างถึงไดเร็กทอรีก่อนหน้า (..) |
+ | |||
+ | * แนะนำ unix ตอน 2: glob และการกระจายคำสั่ง | ||
+ | ** [http://www.youtube.com/watch?v=3em6kZH4GNw ตอนที่ 1] ยกตัวอย่างการใช้ pattern เพื่อแทนชื่อไฟล์ และอธิบายการทำงานของ command expansion/substitution | ||
+ | ** [http://www.youtube.com/watch?v=S2k6ndK6yWE ตอนที่ 2] แนะนำการใช้ *, ?, และ [..] ในการทำ filename expansion ใน shell | ||
+ | |||
+ | * แนะนำ unix ตอน 3: การใช้ redirection และ pipe | ||
+ | ** [http://www.youtube.com/watch?v=q0GOaGwFXdQ คลิปที่ youtube] (มีตอนเดียว) แนะนำการใช้งาน rediretion และ pipe พร้อมยกตัวอย่างด้วยคำสั่ง grep และ wc และแนะนำคำสั่ง tee | ||
+ | |||
+ | === Python === | ||
+ | * การเขียน Python เบื้องต้น | ||
+ | ** ยังไม่มี | ||
+ | * การพัฒนาแบบใช้การทดสอบผลักดัน (Test-driven development) | ||
+ | ** TDD บน Python [http://www.youtube.com/watch?v=wmTyuKsp4yk ตอนที่ 1], [http://www.youtube.com/watch?v=4E4AUyUD8w8 ตอนที่ 2], [http://www.youtube.com/watch?v=4E4AUyUD8w8 ตอนที่ 3] | ||
+ | ** คลิปโดย Masterspark: [http://www.youtube.com/watch?v=g4GJrYWmptw ตัวอย่างการเขียนฟังก์ชัน 1], [http://www.youtube.com/watch?v=yzaim3lpJaQ ตัวอย่างการเขียนฟังก์ชัน 2], [http://www.youtube.com/user/masterspark คลิปอื่น ๆ ของ Masterspark] | ||
+ | |||
+ | === เอดิเตอร์ Vi และ ViM === | ||
+ | * [http://www.youtube.com/watch?v=zQSsFRngrf4 แนะนำเอดิเตอร์ VIM ] | ||
+ | * [http://www.youtube.com/watch?v=FLWeA0zBtok Vi เบื้องต้น: การเคลื่อนเคอร์เซอร์] | ||
+ | |||
+ | == ลิงก์ที่สำคัญ == | ||
+ | * [https://www.facebook.com/groups/329116400500728/ Group CPE,KU Practicum 2555] ใน facebook | ||
+ | * [https://cloud3.cpe.ku.ac.th/elab2/ E-Lab2] สำหรับส่งแล็บ | ||
+ | * [http://cloud3.cpe.ku.ac.th/practicum/ รวมโครงงานจากปีก่อน ๆ] | ||
+ | * [http://www.cpe.ku.ac.th/~cpj/204223/ หน้าเว็บหลักของภาคการศึกษาก่อน] | ||
+ | * [http://www.skot9000.com/ttl/ คู่มือดูขาไอซีลอจิกเกท] | ||
+ | * [http://www.cpe.ku.ac.th/~cpj/204223/practicum-board.zip ไฟล์วงจรและแผ่นวงจรพิมพ์ของบอร์ด Practicum] เปิดด้วยโปรแกรม [http://www.cadsoftusa.com CadSoft EAGLE] |
รุ่นแก้ไขปัจจุบันเมื่อ 10:21, 9 มิถุนายน 2556
หน้านี้รวบรวมลิงก์ของเอกสารและวิดีโอประกอบการเรียนวิชาการปฏิบัติการทางวิศวกรรมคอมพิวเตอร์
เนื้อหา
ประกาศ
- (30 มิ.ย. 2555) คลิป TDD บน Python ตอนที่ 1, ตอนที่ 2, ตอนที่ 3
- (23 มิ.ย. 2555) เราได้ขอเซิร์ฟเวอร์ unix มาแล้ว (อยู่ที่ 158.108.32.112) และได้สร้างบัญชีผู้ใช้ให้กับนิสิตทุกท่านแล้วนะครับ เราส่งข้อมูลให้ทางอีเมล์ b54xxxxxxxx@ku.ac.th แล้ว นิสิตสามารถเข้าใช้ได้โดยใช้โปรแกรม ssh client ทั่วไป เช่น Putty (อ่านขั้นตอนการเข้าใช้)
แผนการสอน
- ดาวน์โหลดไฟล์แผนการสอน (แก้ไขล่าสุด 2 ก.ค.)
เนื้อหา
สัปดาห์ที่ 1
- ฮาร์ดแวร์: เครื่องมือวัดและชุดทดลองวงจรดิจิทัล
- สไลด์: (เอกสาร ppt) (เอกสาร pdf)
- วิดิทัศน์: การใช้งานชุดทดลองดิจิทัลเบื้องต้น
- วิดิทัศน์: การเตรียมการใช้งานออสซิลโลสโคป
- วิดิทัศน์: กลไกทริกเกอร์ของออสซิลโลสโคป
- วิดิทัศน์: การใช้งานระบบเคอร์เซอร์
- ซอฟต์แวร์: ระบบยูนิกซ์และคำสั่งพื้นฐาน เอกสารแล็บ
- เพิ่มเติม: การใช้ filename expansion (ดูคลิปตอนที่ 2 ประกอบ)
สัปดาห์ที่ 2
- ฮาร์ดแวร์: การประกอบวงจรพิมพ์
- สไลด์: การสร้างวงจรต้นแบบ (เอกสาร ppt) (เอกสาร pdf)
- สไลด์: การบัดกรีชิ้นงานอิเล็กทรอนิกส์ (เอกสาร ppt) (เอกสาร pdf)
- วิดิทัศน์: การบัดกรีวงจร (ไฟล์ .mkv, ซับไทย)
- วิกิ: การบัดกรีแผงวงจรไมโครคอนโทรลเลอร์
- ซอฟต์แวร์: ยูนิกส์สำหรับ geek เอกสารแล็บ
สัปดาห์ที่ 3
- ฮาร์ดแวร์: ไมโครคอนโทรลเลอร์และการพัฒนาเฟิร์มแวร์
- สไลด์: ไมโครคอนโทรลเลอร์เบื้องต้น (เอกสาร ppt) (เอกสาร pdf)
- วิกิ: การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์
- วิกิ: การแก้ไขสิทธิการเข้าถึงพอร์ท USB ของบอร์ด MCU
- ชุดคำสั่งของสถาปัตยกรรม AVR
- Datasheet สำหรับไมโครคอนโทรลเลอร์เบอร์ ATMega168
- ผังวงจรบอร์ดไมโครคอนโทรลเลอร์
- ซอฟต์แวร์: Python: งูเหลือมตะลุยจักรวาล เอกสาร pdf
- เราจะใช้โปรแกรม nano เป็น editor ในการเขียนโปรแกรม ก่อนที่เราจะได้เรียน editor ตัวทีทรงพลังกว่านี้ เช่น VI อย่างไรก็ตาม เพื่อความสะดวกในการเขียนโปรแกรม Python เราได้จัดการปรับแต่ง nano ไว้บ้างแล้ว ดังนั้นถ้าไปใช้ที่เครื่องอื่น เมื่อเรียก nano แล้ว นิสิตควรกดปุ่ม Alt-I (ให้ auto indent) และ Alt-Q (ให้จัดเก็บ tab เป็น space) ก่อนทำงานด้วย นอกจากนี้ nano ยังสามารถทำ syntax highlight ได้ ถ้าเราเรียก nano ตามด้วยชื่อไฟล์นามสกุล .py แล้ว nano จะแสดง syntax highlight ให้โดยอัตโนมัติ (ควรทำเป็นอย่างยิ่ง)
- โหลดไฟล์สำหรับทำแลบที่นี่
- สไลด์เนื้อหาไพธอน
สัปดาห์ที่ 4
- ฮาร์ดแวร์: การประกอบวงจรต้นแบบบนบอร์ดไข่ปลา และการเขียนโปรแกรมจัดการอินพุทและเอาท์พุท
- สไลด์: แผงวงจรพ่วง (เอกสาร ppt) (เอกสาร pdf)
- วิกิ: แผงวงจรพ่วง (Peripheral Board)
- ซอฟต์แวร์: พัฒนาโปรแกรมด้วย TDD บน Python
- ดูคลิปด้านล่าง
- ทำแลบ Python Kang Fu ใน Elab2
- ในแลบนี้เราจะประมวลผลข้อมูลในลิสต์มากมาย ด้านล่างเป็นรายการเอกสารเพิ่มเติมเกี่ยวกับการใช้งานลิสต์:
- การใช้งานลิสต์ที่ละเอียดขึ้นจาก Python Tutorial ในเอกสารนี้ให้สังเกตความหมายของการอ้างถึงข้อมูลในลิสต์ โดยใช้ดัชนีที่เป็นบวก (นับจากหน้า) และดัชนีที่เป็นลบ (นับลำดับจากท้าย) เช่นการอ้าง a[3] หรือ a[-1] และการอ้างส่วนของลิสต์ เช่น a[1:10], a[2:] หรือ a[1:-1] เป็นต้น
- เอกสารอ้างอิง Sequence Types และ Mutable Sequence Types (ลิสต์เป็นรายการที่เปลี่ยนได้ จึงเรียกว่าเป็น mutable sequence types)
- เอกสาร doctest
- ด้านล่างเป็นโค้ดที่ต้องเพิ่มไปตอนท้ายโปรแกรม เพื่อให้ python รัน doctest ในโมดูลของเรา
if __name__ == "__main__": import doctest doctest.testmod()
สัปดาห์ที่ 5
- ฮาร์ดแวร์: การควบคุมเอาท์พุท และการตรวจสอบอินพุทแบบดิจิทัลและแอนะล็อก
- สไลด์: ภาษาซีเบื้องต้นสำหรับไมโครคอนโทรลเลอร์ (เอกสาร ppt) (เอกสาร pdf)
- สไลด์: แผงวงจรพ่วง (เอกสาร ppt) (เอกสาร pdf)
- วิกิ: แผงวงจรพ่วง (Peripheral Board)
- วิกิ: การวัดสัญญาณแอนะล็อกด้วยไมโครคอนโทรลเลอร์
สัปดาห์ที่ 6
- ซอฟต์แวร์: การจัดการกับความซับซ้อนของซอฟต์แวร์ใน Python --- โมดูล (modules) และคลาส (classes)
- คลิป OOP บน Python: ตอนที่ 1, ตอนที่ 2, ตอนที่ 3, ตอนที่ 4
- เอกสารประกอบ: โมดูลใน Python,การโปรแกรมเชิงวัตถุแบบเต่า ๆ, การโปรแกรมเชิงวัตถุใน Python,
ตัวอย่างการเรียกใช้ __init__ จากคลาสที่เรา inherite มา
class Robot(GamePiece): def __init__(self,r,c,target): GamePiece.__init__(self,r,c) # ..... your other initialization code here
สัปดาห์ที่ 7
- ฮาร์ดแวร์: การจำลองบอร์ด MCU เป็นอุปกรณ์ USB
- สไลด์: การเชื่อมต่อกับบอร์ด MCU ผ่านพอร์ต USB (เอกสาร ppt) (เอกสาร pdf)
- วิกิ: การจำลองบอร์ด MCU เป็นอุปกรณ์ USB
สัปดาห์ที่ 12
- เครื่องมือจัดการเวอร์ชัน
- สไลด์: การจัดการเวอร์ชันด้วย Mercurial (เอกสาร ppt) (เอกสาร pdf)
- ลิ้งค์: TortoiseHG
การติดตั้ง TortoiseHG บนลินุกซ์ Mint/Ubuntu/Debian ใช้คำสั่ง
sudo apt-get install tortoisehg
รายการวิดีโอ
ฮาร์ดแวร์
- แนะนำการใช้งานชุดทดลองดิจิทัลและออสซิลโลสโคป
Unix
- แนะนำ path ใน unix
- ตอนที่ 1 เกริ่นนำเกี่ยวกับ shell และแนะนำแนวคิดของโครงสร้างไดเร็กทอรี
- ตอนที่ 2 อธิบายแนวคิดของ working directory และการอ้างถึงไฟล์โดยอิงกับ working directory, ทดลองใช้คำสั่ง ls, cd, pwd และ cp
- ตอนที่ 3 อธิบายวิธีการอ้างถึงไฟล์ในรูปแบบอื่น ๆ เช่นการอ้างแบบ absolute (/) อ้างผ่าน home (~) และการอ้างถึงตำแหน่งนั้นเอง (.) กับการอ้างถึงไดเร็กทอรีก่อนหน้า (..)
- แนะนำ unix ตอน 2: glob และการกระจายคำสั่ง
- แนะนำ unix ตอน 3: การใช้ redirection และ pipe
- คลิปที่ youtube (มีตอนเดียว) แนะนำการใช้งาน rediretion และ pipe พร้อมยกตัวอย่างด้วยคำสั่ง grep และ wc และแนะนำคำสั่ง tee
Python
- การเขียน Python เบื้องต้น
- ยังไม่มี
- การพัฒนาแบบใช้การทดสอบผลักดัน (Test-driven development)
- TDD บน Python ตอนที่ 1, ตอนที่ 2, ตอนที่ 3
- คลิปโดย Masterspark: ตัวอย่างการเขียนฟังก์ชัน 1, ตัวอย่างการเขียนฟังก์ชัน 2, คลิปอื่น ๆ ของ Masterspark
เอดิเตอร์ Vi และ ViM
ลิงก์ที่สำคัญ
- Group CPE,KU Practicum 2555 ใน facebook
- E-Lab2 สำหรับส่งแล็บ
- รวมโครงงานจากปีก่อน ๆ
- หน้าเว็บหลักของภาคการศึกษาก่อน
- คู่มือดูขาไอซีลอจิกเกท
- ไฟล์วงจรและแผ่นวงจรพิมพ์ของบอร์ด Practicum เปิดด้วยโปรแกรม CadSoft EAGLE