Sunday, 6 September 2015

สรุปการเรียนรู้ Week 5

สรุปการเรียนรู้ Week 5
          -ได้เรียนรู้ว่าเจ้าหลอด LED ที่ใช้แสดงผลเป็นตัวเลขและตัวอักษรต่างๆนั้น ก็มีความซับซ้อนพอสมควร ที่ต้องจ่ายไฟเข้าตามขาต่างๆ เพื่อที่จะให้เกิดเป็นตัวเลขหรือตัวอักษรที่เราต่างการออกมา

          อย่างเช่นดังในภาพนี้ ซึ่งหลักการใช้ตัว 7 segment นั้นสร้างได้ด้วยการใช้ logic gate มาคุมโดยผ่านหลักการของเลขฐาน 2 โดยการมี Input เป็นทั้งหมด 4 ตัว เพื่อจำลองเป็นเลขฐาน 2 ทั้งหมด 4 bits เพื่อให้มีค่า Output ได้เพียงพอต่อการแสดงค่าทั้งหมด10 ตัวเลข (0-9) ซึ่งเราจะเรียกวงจรที่ควบคุม 7 segment นี้ว่า Decoder หรือเป็นวงจรถอดรหัสเลขฐาน 2 เพื่อมาแสดงค่าตัวเลขบน 7 segment นี้

          โดยปกติแล้วการต่อ Input 4 ตัวเพื่อให้ได้ทั้งหมด 4 bits นั้นสามารถสร้างสรรค์ Output ได้ถึง 16 ตัว ดังนั้น ในหนึ่ง 7 segment จะแสดงได้ถึง 16 ตัว นั่นก็คือเลขฐาน 16(0-9,A-F) ดังนั้นการจะต้องแสดงเป็นเลขฐาน 10 จึงต้องใช้ความรู้เรื่อง BCD(Binary Coded Decimal) ซึ่งจะกล่าวถึงในหัวข้อถัดไป
          -ได้รับความรู้เรื่อง BCD ‐ Binary Coded Decimalเป็นวงจรเข้ารหัส ที่ทำหน้าที่แปลงเลขฐานสิบ เป็นเลข BCD (Binary-Coded-Decimal) ดังในรูป

          โดยจากในรูปสามารถอธิบายได้ว่า Input ที่ได้มาไม่สามารถใช้โดยตรงได้หากต้องการแสดงผลเป็นเลขฐาน 10 เนื่องจาก 7 segment 1ตัวจะแสดงค่าได้ถึงฐาน 16 ดังนั้นเราจึงต้องนำ Input มาเปลี่ยน logic และเพิ่ม Output มากขึ้นเป็น 8 ตัว จะเปรียบเสมือนตัวทด นั่นคือเมื่อเลข4 bitsหลังถึง 10 จะทดเลขหลักนั้นขึ้นมาที่ 4bits หน้า และแสดงผลที่ 7 segment ตัวหน้าแทน ทำให้การแสดงค่าใน 7 segment แต่ละตัว ไม่เกินเลขฐาน 10
          โดยวิธีการทำตามตารางที่อาจารย์ได้ให้ไว้เมื่อสัปดาห์ที่แล้วเกี่ยวกับการคำนวณลดรูป logic gate เพื่อใช้ในการต่อนั้น การจะทำวงจรเลขฐาน 10 นั้น ต้องมี Input 4 ตัว และ Output 8 ตัว ซึ่งลำบากแน่ๆต่อการคำนวณมือ ดังนั้นจึงต้องใช้โปรแกรมในการคำนวณสมการเพื่อหาวิธีการต่อ logic gate ที่ดีที่สุดออกมา โดยการป้อน Input คือตารางช่อง Binary และ Output เป็นตารางช่อง BCD จะทำให้ได้วงจรดังรูป


          - ได้ความรู้เรื่องการใช้ Encoder นั่นก็คือ วงจรลอจิกซึ่งทำหน้าที่เปลี่ยนจำนวน/ตำแหน่ง Input ที่ใส่เข้าไป (ตั้งแต่ 0-N) ให้เป็นOutput เป็นรหัสฐาน 2 จำนวน M bits(ขึ้นอยู่กับตัววงจรว่าจะมีจำนวน Input ทั้งหมดกี่ตัว , Input 4 ตัว Output 2ตัว(แสดงได้ทั้งหมด 4กรณี),Input 8ตัว Output 3ตัว(แสดงได้ทั้งหมด 8กรณี))

           โดยตำแหน่งของ Input เราจะเป็นคนกำหนดเอง และ Output ที่ได้จะเป็น Output จากตำแหน่งที่มากที่สุดของ Input โดยไม่สนใจ Input ที่ตำแหน่งน้อยกว่า

** x แสดง Input ที่ไม่ต้องสนใจก็ได้ **
          - รู้จัก Multiplexer(Mux) และ Demultiplexer(Demux) ซึ่งเปรียบเสมือน Relay ในทาง logic gate ไว้คอยเลือกทางเข้า /ออก ของ Input โดย Mux จะอยู่ในรูปแบบของการเลือก Input ที่จะออกมาทาง Output และแบบ Demux จะเป็นรูปแบบการเลือก Output ที่จะให้ Input ออกไป
 Mux                                                                           







Demux
          โดยวิธีการเลือก Input / Output นั้น จะเป็นการป้อน logic เข้าไปที่ Selector(a,b) ช่อง A จะเป็น 00 , B 01 , C 10 , D 11 ดังนั้น ช่องทุกช่องจะเกิดการปิดวงจรเมื่อมีการป้อน Logic เข้าไปที่ Selector ตามที่เขียนไว้ข้างต้น และทุกๆช่องจะไม่มีทางเปิดได้พร้อมกัน
          สรุปในอีกความเข้าใจหนึ่งคือให้มอง A-D เป็นเลขฐานสิบ นั่นคือ 0-3 หากต้องการจะเปิดช่องไหนให้จ่าย logic เข้าไปที่ a ,b เป็นรหัสฐาน2 โดย b เป็น bit ที่ 2 และ a เป็น bit ที่ 1 โดยรหัสเลขฐาน2 ตรงกับเลขฐาน 10 ช่องไหน ก็จำทำการเปิดช่องนั้นๆ




ปัญหาที่เกิดขึ้น

          -ปัญหาที่เกิดขึ้นก็คือ ใบนางทีที่ต่อสายไฟระโยงระยางเต็มไปหมด จะเกิดการสับสนเกิดขึ้นว่า สายนี้ต่อเข้าที่ไหน ทำให้ตาลายมากๆ จนต่อผิดบ้างถูกบ้าง สุดท้าย เราต้องมานั่งวาดเป็นวงจรลงในแผ่นกระดาษทำให้เราเริ่มต่อถูกมากขึ้น จนสำเร็จในที่สุด :D

Saturday, 5 September 2015

สรุปการเรียนรู้ Week 4

สรุปการเรียนรู้ Week 4

สิ่งที่ได้เรียนรู้ Week4
-ได้เรียนรู้การใช้ Karnaugh Maps เพื่อลดรูปวงจร Logic gate แทน Boolean Algebra ซึ่งทำให้เรารู้ว่าวิธีนี้เป็นวิธีที่ง่ายกว่าถึงแม้ตอนแรกจะรู้สึกยากก็ตาม ซึ่งก่อนอื่นเราจะต้องเขียนตาราง Logic ขึ้นมาก่อนโดยรูปแบบตารางจะแตกต่างกันดังรูป

หรือ Karnaugh Maps จะมีรูปแบบที่เหมือนตารางที่ไว้เทียบค่าโดยสารรถเมล์/รถไฟฟ้าใต้ดิน (นำค่า Input ตั้งเป็นกรอบในแนวแกน x,y และนำ Output มาใส่ในตารางให้ตรงกับกรณีในแกน x,y) โดยวิธีหาคำตอบคือการวงกลมเลข1 ที่อยู่ติดกัน/หากพับตารางอีกฟากมาแล้วอยู่ติดกันก็สามารถวงได้เช่นกัน และการวงจะต้องครอบคลุมเลข1 จำนวน 2ยกกำลังn ตัวเท่านั้น ตัวอย่าง
**** และยังสามารถทำในแบบ POS ได้ด้วย(สนใจ Output ที่เป็น0) ตัวอย่าง


ทั้งนี้ Karnaugh Maps สามารถจับกลุ่มวงกลมได้อีกแบบคือ หากจับตารางพับแล้วเลข 1 อยู่ติดกันก็สามารถนำมาใช้ในการคำนวณ หา logic gate ได้เช่นกัน
-ได้รู้คำแนะนำว่าเมื่อไหร่ควรใช้วิธีไหนในการหาสมการสุดท้ายเพื่อต่อวงจรอย่างง่ายกับตารางด้านล่าง

โดยจากตารางสามารถสรุปได้ว่า เมื่อวงจรมี Input ที่มากขึ้น จะเกิดความซับซ้อนของวงจรมากขึ้น ทำให้การคำนวณด้วยมืออาจไม่ใช่คำตอบที่ดีที่สุดเนื่องจากอาจเกิดความผิดพลาดจากการยุบวงจรได้สูงมาก ดังนั้น วิธีการคำนวณควรจะเลือกในรูปแบบที่เหมาะสม และสะดวกต่อตัวเรามากที่สุด -ได้เรียนรู้ทฤษฎี De Morgan (De Morgan's Theorems) เป็นทฤษฎีการทดแทนกันของ gate ใช้ได้เมื่อต้องการยุบวงจร,เปลี่ยนรูปแบบของวงจรและการใช้งาน gate ทดแทนกันเวลามี gate ไม่พอ ซึ่ง gate แต่ละตัวที่จะสามารถทดแทนกันได้ มีความสัมพันธ์กันดังนี้
ตัวอย่างการประยุกต์ใช้
*สรุปในอีกความเข้าใจหนึ่งคือการยุบวงจรจากวงจรที่สำเร็จอยู่แล้วโดยมีหลักการเขียนสมการคงเดิม(ผ่านnot gate-->Abar , or gate-->A+B , and gate-->AB) เพิ่มเติมคือการแตกบาร์
หลักการ
*ข้อควรระวัง (กลัวตัวเอง งงเองเลยจดสรุปไว้ :3)
สิ่งที่ไม่เข้าใจ/ปัญหาที่เกิดขึ้นใน Week 4

- เข้าใจและทำเป็นในทุกๆเรื่อง แต่ว่ายังไม่เห็นว่า De Morgan จะได้ใช้ในตอนไหน เพราะว่าทุกๆครั้งก่อนจะเริ่มทำงาน ก็ต้องออกแบบวงจรให้เหลือน้อยและเรียบง่ายมากที่สุดอยู่แล้ว ดังนั้นการที่จะใช้ทฤษฎี De Morgan จึงเป็นเรื่องที่ไม่เห็นภาพว่า เมื่อไหร่ถึงจะได้ใช้งานมัน แต่รู้ไว้ก็ดีกว่าไม่รู้ครับ :D
- Karnaugh Maps ดูเผินๆเหมือนง่าย แต่กว่าจะทำความเข้าใจแล้วทำได้นี่นานมากเลยครับ บางทีดูๆไปก็รู้สึกงงๆในบางที