ฉก. นิสิต วิชา 01204332 Embedded System ภาคต้น/2558 อ.วัลลภ อินทร์ฉ่ำ

10 replies [Last post]
ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ถ้ามีข่าวสารอะไร ผมจะติดต่อผ่านทางนี้นะครับ :D



Share

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ส่งงาน Day3: การต่อใช้งาน 7-Segment และ LCD

โจทย์ :
1. ให้ใช้ชิพเบอร์ AT Mega16
2. ให้ออกแบบวงจรโดยต่อเข้ากับ 7-Segment แบบ Common Cathode 2 หลัก และแผงจอ LCD 16x2 จำนวน 1 ตัว โดยต่อแบบโหมด 4-bit
3. ให้เขียนโปรแกรมภาษา C และ Basic เพื่อนับตัวเลข 0-99 และวนไป 0 ใหม่ โดยแสดงผลที่ที่ส่วนของ 7-Segment 2 หลัก และ ถ้าแสดงเลข 0-9 (หลักหน่วย) Segment หลักสิบ ต้องดับ และในขณะเวลาเดียวกัน ที่จอ LCD ให้แสดงผลตัวเลขคล้ายนาฬิกาในหน่วย นาที:วินาที 00:00 - 01:39 ด้วยเช่นกัน 
4. ให้นับเลขครั้งละ 1 วินาที และในส่วนของ LCD ให้แสดง ':' กระพริบทุก ๆ ครึ่งวินาที เช่น 00 00 --> 00:01 --> 00 01 --> 00:02 ...

1. ส่งเมล์ วงจรและ code ทั้ง 2 ภาษามาที่ em800@ixhundred.org ไม่เกิน 21/09/58 Subject :Day3/58
2. ต่อวงจรส่งในห้องท้ายคาบ หลังจากเรียนงานใหม่ ในวันที่ 22/09/58

ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ส่งงาน Day4-1:
1. ให้ออกแบบวงจรโดยมีปุ่มกดหรือสวิตช์ จำนวน 9 ปุ่ม โดยให้ต่อแบบ Matrix 3x3 และมี 7-segment 1 หลัก ถ้ากดปุ่มไหน (1-9) ให้แสดงตัวเลข 1-9 ที่ 7-segment ถ้าไม่กดปุ่มเลย ให้แสดงเลข 0
2. ใช้ชิพ ATMega16
3. กำหนดการใช้งานพอร์ตเองตามใจชอบ
4. ส่งทั้งภาษาซี และ เบสิก
** สวิตช์ อาจจะต้องมีการต่อ R และ Gnd เพิ่ม เพื่อทำให้ได้ค่า 0 หรือ 1 ที่ แน่นอน เมื่อกดปุ่ม และไม่กดปุ่ม (หรือจะใช้ internal pull up ก็ได้)

1. ส่งเมล์ วงจรและ code ทั้ง 2 ภาษามาที่ em800@ixhundred.org  ไม่เกิน 28/09/58  Subject :Day4-1/58
2. อาจจะตรวจกับ proteus หรือต่อจริงในห้อง ในวันที่ 29/09/58

ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ส่งงาน Day4-2  การใช้งาน ADC (Analog to Digital Converter) และ LCD

โจทย์ :
1. ให้นิสิตสร้างวงจร โดยมีอุปกรณ์ดังนี้
- ใช้ชิพ AT Mega16
- ติดต่อกับ สัญญาอินพุตอนาล็อก ** 2 ช่อง ** ไม่ใช่ 1 ช่องตามที่พูดในห้อง เลือกพอร์ตอินพุตตามใจชอบ สมมติชื่อ Ch1 กับ Ch2 โดยต่อ Reference แบบ AVCC
- จอแสดงผล LCD 16x2 ต่อแบบ 4-Bit Mode

2. ให้เขียนโปรแกรมทั้งภาษา เบสิก และ ภาษาซี เพื่อให้ทำงานดังต่อไปนี้
- 1. ให้แสดงผลค่าอินพุต Voltage ที่อ่านได้จาก Ch1 ลงบนจอ LCD บรรทัดที่ 1 โดยแสดงเป็นแถบ Bar คล้าย ๆ VU Meter มีขนาด 50 ช่อง Scan (โดยใช้ 10 ตัวอักษร) โดยที่เมื่อปรับค่าอินพุดไปที่ 0 โวลต์แล้ว แถบต้องมาอยู่ชิดด้านซ้ายสุด และเมื่อปรับโวลต์ไปที่ค่าสูงสุด แถบต้องวิ่งกว้างกินไปถึงด้านขวาสุด
- 2. ให้แสดงผลค่าอินพุต Voltage ทีอ่านได้จาก Ch2 ลงบนจอ LCD บรรทัดที่ 2 โดยให้แสดงเป็นค่า Digital ที่อ่านได้ และค่า Volt ที่อ่านเข้ามาได้แบบทศนิยม 2 ตำแหน่ง ดังตัวอย่างด้านล่าง

ตัวอย่าง Output:
Ch1:[|||||| ] <--- แสดง Ch1 เป็นแบบแถบเลื่อนตามที่ได้เดโมให้ดู ในห้อง (มีกรอบ [  ] ปิดหัวท้ายด้วย)  [ มี 50 แถบเล็ก โดยใช้ 10 Char ]
Ch2:512, 2.50 V <--- แสดง Ch2 เป็นแบบค่า จาก ADC แบบข้อมูลดิบ และแบบแสดงเป็นค่าโวลต์ 0-5 แบบทศนิยม 2 ตำแหน่ง

- เมื่อปรับ Voltage แล้ว ค่า Ch1 และ Ch2 ต้องเปลี่ยนตามแบบ Real Time :)

1. ส่งเมล์ วงจรและ code ทั้ง 2 ภาษามาที่ em800@ixhundred.org ไม่เกิน 5/10/58 Subject :Day4-2/58
2. ต่อวงจรส่งในห้องท้ายคาบ หลังจากเรียนงานใหม่ ในวันที่ 6/10/58

ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ส่งงาน Day 5 : การใช้งานเซ็นเซอร์อุณหภูมิ

โจทย์:
1. ให้นิสิตสร้างวงจรโดยมีอุปกรณ์ดังนี้
-ใช้ชิพ ATMega16
-ต่อกับเซ็นเซอร์วัดอุณหภูมิ 18B20 และจอ LCD 16x2

2. ให้เขียนโปรแกรมทั้งสองภาษา โดยมีคุณลักษณะดังนี้
-แสดงค่าอุณหภูมิออกทาง จอ LCD โดยให้มีทศนิยม 1 ตำแหน่ง แบบเรียลไทม์

ตัวอย่าง ที่ออกจาก LCD
Temp : 58.2ํC

---------

1. ส่งเมล์ วงจรและ code ทั้ง 2 ภาษามาที่ em800@ixhundred.org ไม่เกิน 5/10/58 Subject :Day5/58
2. ต่อวงจรส่งในห้องท้ายคาบ หลังจากเรียนงานใหม่ ในวันที่ 6/10/58
ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ส่งงาน Day 6-1 : Timer Interrupt / 7 Segment

1. ให้นิสิตต่อวงจรโดยใช้ 7-Segment 4 หลัก (common cathode ส่งลอจิก 1 เพื่อให้หลอดติด) เพื่อแสดงผลเวลา โดยที่ 2 หลักแรกวิ่งเป็นหน่วยวินาที และสองหลักสุดท้ายวิ่งเป็น 1 ใน 100 วินาที

 

ส่งงาน Day 6-2 : Software PWM

1. ให้นิสิตออกแบบวงจร โดยให้มีหลอด LED 3 หลอด (หลอดสี R G และ B) ให้เลือกพอร์ตเอง โดยใช้ชิพ ATMega16
2. ให้นิสิตเขียนโปรแกรมเพื่อ หรี่หลอดไฟ ขึ้น-ลง โดยใช้หลักการของ Software PWM ดังนี้  
-เริ่มต้น ดับทุกหลอด ต่อมา
-หลอด R ค่อย ๆ สว่างขึ้นจากดับสุดไปสว่างสุดในเวลาประมาณ 2 วินาที และจากนั้น ก็ค่อยหรี่ลงจนดับสนิทในเวลา 2 วินาทีเช่นกัน
-ต่อมาทำในลักษณะเดียวกันกับหลอก G และ B  และก็  RG (2 หลอดพร้อมกัน), RB, BG และท้ายสุด RGB (ทำหรี่ขึ้น-ลง พร้อมกันทั้ง 3 หลอด)
สรุปคือ 7 แบบไม่นับดับหมด คือหลอด R, G, B, RG, RB, BG, RGB
-เมื่อทำครบ RGB แล้วให้ไปเริ่ม R ใหม่ วนไปเรื่อย ๆ

----------

1. ส่งเมล์ วงจรและ code ทั้ง 2 ภาษา ของทั้งสองงาน มาที่ em800@ixhundred.org ไม่เกิน 26/10/58  Subject :Day6/58
2. ต่อวงจรส่งในห้องท้ายคาบ หลังจากเรียนงานใหม่ ในวันที่ 27/10/58

ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

--

ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ส่งงาน Day 8:เขียนโปรแกรมเกมทายตัวเลข 1-100 (สุ่ม) โดยให้รับตัวเลขและแสดงผลลัพธ์ออกทาง RS232

 

1. โดยที่เมื่อเริ่มจ่ายไฟระบบจะถามค่าเพื่อให้ตั้งวันที่ และเวลา (ไม่ได้กำหนดรูปแบบการกรอก) ให้กรอกทั้ง วันที่ เดือน ปี ชม. นาที วินาที
2. ทุกครั้งที่มีการทายตัวเลข ระบบจะแสดงค่าวันที่และเวลาปัจจุบันออกมา
3. ให้ทายตัวเลขได้ไม่เกิน 10 ครั้ง ถ้าเกินให้กลับไปเริ่มใหม่ ทุก ๆ ครั้งที่ทายผิด โปรแกรมจะอัพเดธค่าช่วงของการทายให้อัตโนมัติ
4. ถ้าทายถูกภายใน 10 ครั้ง ให้แสดงประมาณว่า You Win. และก็ไปเริ่มใหม่

ตัวอย่าง

Please Enter Date :DD/MM/YY  (ไม่ได้กำหนดว่าต้องกรอกทีเดียว ทั้ง 3 ค่า แค่ตัวอย่าง)
Please Enter Time :HH:MM:SS (ไม่ได้กำหนดว่าต้องกรอกทีเดียว ทั้ง 3 ค่า  แค่ตัวอย่าง)

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#1 Please Guess Number (1 - 100) ? 50
Too much.

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#2 Please Guess Number (1 - 50) ? 25
Too less.

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#3 Please Guess Number (25 - 50) ? 38
Too much.

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#4 Please Guess Number (25 - 38) ? 44
I said 25-34 -_-

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#5 Please Guess Number (25 - 38) ? 32
Too less.

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#6 Please Guess Number (32 - 38) ? 35
Too less.

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#7 Please Guess Number (35 - 38) ? 37
You Win :D Hoo ray

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#1 Please Guess Number (1 - 100) ?

.....

แต่ถ้าเกิน 10 ครั้ง

Current Date : DD/MM/YY
Current Time : HH:MM:SS
#10 Please Guess Number (35 - 38) ? 36
You are buffalo !! -____-


แล้วกลับไปเริ่มเกมใหม่

----------

1. ส่งเมล์ วงจรและ code ภาษาเบสิก ส่งงานมาที่ em800@ixhundred.org ไม่เกิน 09/11/58  Subject :Day8/58
2. ต่อวงจรส่งในห้องท้ายคาบ หลังจากเรียนงานใหม่ ในวันที่ 10/11/58

ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

ส่งงาน Day 10: ควบคุมการปิด-เปิดอุปกรณ์ไฟฟ้า 4 ช่องผ่านทาง LAN พร้อมจดจำสถานะล่าสุด

1. สามารถสั่งงานปิด-เปิด อุปกรณ์ไฟฟ้าได้ 4 ช่อง (LED) ผ่านทาง LAN
2. จดจำสถานะการปิด-เปิดไว้ เปิดเครื่องมา เปิออุปกรณ์ตามที่จดจำไว้ล่าสุด (จำด้วย EEPROM)
3. ที่หน้าเว็บ (อย่างน้อย 1 หน้า) แสดงเลขประจำตัวนิสิตที่อยู่ในกลุ่ม

ไม่ต้องส่งเมล์ ตรวจงานในห้องวันที่ 24 พ.ย. 58 โดยใช้บอร์ดสำเร็จรูป NC-400 ชิพ ATMega168 (อาจจะต้องแก้ MCU ให้ตรง และ แก้ขา SPI ให้ตรงกับชิพ 168 ก่อน)

ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

คะแนนสอบกลางภาค

สูงสุด: 5530300049 นายก้องเกียรติ ภัทรพรไพศาล


ixhundred
(วัลลภ อินทร์ฉ่ำ)

E.50
ixhundred's picture

คะแนนสอบปลายภาค (+กลางภาค)

คะแนนสูงสุด: 5530300171 นายชานนท์ แซ่จิว