Warning: call_user_func_array() expects parameter 1 to be a valid callback, class '' not found in /home/thaiamp/public_html/wp-includes/class-wp-hook.php on line 308

Warning: Cannot modify header information - headers already sent by (output started at /home/thaiamp/public_html/wp-includes/class-wp-hook.php:308) in /home/thaiamp/public_html/wp-includes/feed-rss2.php on line 8
MCS51 – "เราทำสิ่งที่แตกต่างเพื่อให้ตรงตามความต้องการของคุณ" https://thaiamp.com research and develope embedded system electronics Tue, 05 Nov 2013 21:42:23 +0000 th hourly 1 https://wordpress.org/?v=6.2.6 รางวัลการวิจัยผลงานประดิษฐ์คิดค้น ประจำปี 2549 จากสำนักงานคณะกรรมการสภาวิจัยแห่งชาติ (วช.) (NRCT) https://thaiamp.com/archives/335 Tue, 11 Jun 2013 07:44:06 +0000 http://www.thaiamp.com/?p=335

อุปกรณ์ช่วยเรียนรู้การพิมพ์ดีด "ทุกทึ่ ทุกเวลา ตามความพร้อมของผู้เรียน"

……. เป็นเครื่องมือที่จะทำให้ผู้ใช้งานสามารถฝึกพิมพ์ดีดภาษาไทยแบบสัมผัสได้โดยไม่ต้องใช้เครื่อง PC หรือเครื่องพิมพ์ดีด เมื่อนำเครื่องนี้ต่อเข้ากับคีย์บอร์ดคอม PC ทั่วไป ท่านก็จะสามารถใช้งานได้ โดยเครื่องมีการแบ่งระดับการเรียนรู้เป็น 20 ส่วน และมีส่วนของแบบฝึกหัดที่สามารถสรุปคะแนนให้ทราบได้ทันที่ที่ทำแบบฝึกหัดเสร็จ ติดต่อผู้ใช้งานด้วยเมนูเสียง ภายในมีแบตเตอรี่สามารถชาร์ตได้โดยการเสียบตัวแปลงไฟทั่วไป หรือจะใช้โดยเสียบตัวแปลงไฟเลยก็ได้ สามารถพกพาไปใช้งานตามที่ต่างๆได้ ทำให้การฝึกพิมพ์ดีดง่ายขึ้นและฝึกได้ทุกที่ที่ท่านต้องการ นำไปใช้ได้กับผู้พิการทางสายตาที่ต้องการฝึกพิมพ์ดีด หรือนักเรียนที่ต้องการพิมพ์ดีดแบบสัมผัส

……. หมายเหตุ: อุปกรณ์ช่วยเรียนรู้นี้สามารถใช้งานได้กับแป้นพิมพ์ทุกภาษา และสามารถฝึกพิมพ์ดีดได้ทุกภาษาที่ต้องการ (ภาษาอื่นต้องสั่งทำตามภาษาที่ต้องการ) เหมาะสำหรับสถานศึกษาที่ต้องการฝึกให้นักเรียนสามารถพิมพ์ดีดได ้โดยไม่จำเป็นต้องใช้เครื่องคอมพิวเตอร์ และผู้ที่ต้องการฝึกพิมพ์ดีด

[zooeffect AwIARObdSEQo]

]]>
ทดสอบความเที่ยงตรงของเครื่องวัดรอบ https://thaiamp.com/archives/324 Tue, 11 Jun 2013 07:12:31 +0000 http://www.thaiamp.com/?p=324 ทดสอบความเที่ยงตรงของเครื่องวัดรอบแบบดิจิตอล

ก่อนอื่นเราต้องทำความเข้าใจกับการวัดรอบการทำงานของเครื่องจักรต่างๆ กันก่อน เพื่อที่จะหาวิธีการวัดค่าความเที่ยงตรงได้เหมาะสม โดยผู้อ่านทดลองดูตามวิธีการดังนี้ คือ คำว่ารอบต่อนาที
แปลง่ายๆ ก็ คือ ในหนึ่งนาทีสามารถทำงานได้กี่รอบ และถ้าหากต้องการทราบว่าใน 1 วินาที ทำงานได้กี่ครั้ง เพื่อให้อ่านค่าออกมาเป็น Hz ได้ ก็จะนำมาเขียนเป็นสมการออกมาดังนี้

จาก สมการที่เราเขียนออกมาได้ ก็จะทำให้สามารถอ่านค่าการทำงานในรูปแบบ รอบต่อนาทีออกมาเป็นรอบต่อวินาทีได้ ทั้งนี้เพื่อให้การทดสอบด้วยเครื่องมือทางอิเล็กทรอนิกส์สามารถนำมาใช้งาน และความเที่ยงตรงที่จะอ่านได้
โดยการทดสอบความเที่ยงตรงเราจะใช้เครื่องมือหลักๆ อยู่สองตัว คือ

  • ดิจิตอลออสซิลโลสโคป
  • ซิกแนลเจนเนอร์เรเตอร์

โดย การนำสัญญาณที่เครื่องซิกแนลเจนฯ สร้างขึ้นส่งให้กับเครื่องวัดรอบที่สร้างขึ้น พร้อมกันนั้นเราจะทำการวัดค่าโดยออสซิลโลสโคป ดูรูปประกอบ

รูปวิธีการทดสอบ

ยก ตัวอย่างเช่น หากต้องการให้ Tacho meter อ่านค่าออกมาเป็น 60 rpm เราต้องตั้งให้ซิกแนลเจนฯ สร้างสัญญาณพัลส์ออกมาที่ 1Hz เครื่องวัดรอบที่สร้างขึ้นต้องอ่านค่าได้ 60 และเช่นเดียวกัน ถ้าเราตั้งค่า
ที่ซิกแนลเจนเป็น 30Hz เครื่องวัดรอบที่สร้างขึ้นจะต้องอ่านค่าได้ 1,800 rpm เป็นต้น

เหตุ ที่นำซิกแนลเจนเนอร์เรเตอร์มาเป็นตัวสร้างสัญญาณ เนื่องจากมีความเที่ยงตรงในการสร้างสัญญาณจะสูงกว่าการนำเครื่องมือวัดที่ สร้างขึ้นเทียบกับเครื่องวัดรอบที่มีจำหน่ายอยู่แล้วตามท้องตลาด อีกทั้งเครื่องวัดรอบที่มีจำหน่ายอยู่แล้วทั่วๆ ไป จะเป็นรุ่นที่เป็นเข็มทำให้ไม่สามารถอ่านค่าได้ละเอียด จึงใช้เครื่องมือที่มีการอ่านค่าได้ละเอียดมาเป็นตัวเทียบ
ทดสอบการทำงาน

[zooeffect AILALMLYSM1g]

จากตัวอย่าง การทดสอบความเที่ยงตรงที่เห็นนั้น จะมีค่าความผิดพลาดเป็นลิเนียร์ ตลอดย่าน เนื่องจากการคำนวณของเครื่องวัดรอบที่สร้างขึ้นนั้น ใช้สมการในการนำสัญญาณที่ได้มาทำการคำนวณรอบที่แท้จริง
ทำให้ผลที่ได้เป็นค่าที่ได้จากการนำสมการคณิตศาสตร์มาประยุกต์ใช้ อีกทั้งค่าที่ทำการคำนวณนั้นมีความละเอียดสูงถึง 32 bit ทำให้ค่าที่ออกมาละเอียดมาก

เทคนิค ที่ใช้สร้างเครื่องวัดรอบเครื่องนี้ใช้เทคนิคการวัดความกว้างของพัลส์ที่ อ่านได้ โดยการอ่านจากขอบของสัญญาณ ทำให้การนำไปวัดสัญญาณใด ๆ นั้นถึงแม้สัญญาณจะมี duty cycle ไม่เท่ากันก็ตาม เครื่องวัดก็ยังสามารถอ่านค่าได้เที่ยงตรง ที่สำคัญคือ เครื่องวัดนี้จะอ่านค่าของรอบการทำงานทุกๆ รอบนำมาคำนวณ ทำให้ค่าที่คำนวณได้นี้ นำไปใช้ในการทำงานของเครื่องมืออื่นๆ ต่อไปได้ เช่น การนำค่าที่คำนวณได้นี้ไปสร้างกล่อง ECU ที่ใช้ควบคุมเครื่องยนต์ หรือนำไปควบคุมกล่อง CDI เพื่อปรับองศาการจุดระเบิดของเครื่องยนต์ได้ อีกทั้งค่าที่ส่งออกมานี้ยังสามารถนำมาเขียนกราฟการทำงานของเครื่องยนต์ เครื่องจักรที่เรานำไปวัดได้อีกด้วย และหากสังเกตุการทำงานของเครื่องวัดนี้แล้ว จะเห็นว่าในส่วนของตัวเลข จะมีการกระพริบน้อยมาก เนื่องจากค่าที่นำมาแสดงในส่วนของตัวเลขนี้ มีการนำค่าที่อ่านได้หลายๆ ครั้งมาก เฉลี่ยแล้วจึงส่งผลให้ค่าที่เราจะอ่านจากหน้าจอสามารถอ่านค่าได้ทัน แต่ในส่วนของแถบแสงนั้น มีการเฉลียค่าที่แสดงน้อยกว่า จึงเห็นว่าแถบแสงจะเปลี่ยนแปลงค่าได้เร็วกว่าในส่วนของตัวเลข และหากมีการวัดค่าที่สูงกว่าค่าที่ตั้งไว้ แถบแสงก็ยังสามารถแสดงผลได้โดยการเลื่อนแถบไปในรอบที่สูงขึ้นมากถึงสองเท่า เช่น หากตั้งค่าสูงสุดไว้ที่ 8,000 รอบต่อนาที แต่ค่าที่เครื่องวัด สามารถวัดได้มีค่าสูงกว่า แถบแสงจะเลื่อนไปในด้านที่ค่าสูง เพื่อให้ผู้ใช้งานทราบว่าค่ามากเกินกว่าที่ควรจะเป็นแล้ว

ในส่วนของการคำนวณที่ให้ผลการวัดออกมาได้มากถึง 55,000 รอบต่อนาทีนั้น ทำให้เครื่องที่สร้างขึ้นสามารถนำไปประยุกต์ใช้งานในงานอื่นๆไ ด้อีกมากมาย เช่น การวัดรอบการทำงานของมอเตอร์ไฟฟ้า ความเร็วของเครื่องจักร ความเร็วของใบพัดเครื่องบิน และตัวเครื่องที่สร้างขึ้นยังสามารถรับสัญญาณอินพุทจากอุปกรณ์ตรวจจับอื่นๆ ได้อีกหลายชนิด เช่น การนำไปต่อกับตัวตรวจจับแสง พล๊อกสวิตช์ 

ในส่วนของการนำ ไปประยุกต์ใช้งานอื่นๆ นั้น ผู้สร้างจะนำมานำเสนอวิธีการนำไปใช้ เช่น การต่อเพื่อวัดรอบเครื่องจักร ให้เห็นกันอีกในโอกาสต่อไปครับ

หากท่านผู้อ่าน ต้องการวัดค่าของรอบการทำงานที่แท้จริงแล้ว จากผลการทดสอบที่เห็น ท่านสามารถมั่นใจได้ว่าค่าที่ท่านอ่านได้จากเครื่องวัดนี้จะเป็นค่าที่แท้ จริงและเที่ยงตรงอย่างแน่นอน หากมีข้อสงสัยอื่นๆ สามารถสอบถามผู้สร้างได้โดยตรง ทางผู้สร้างหวังเป็นอย่างยิ่งว่าเครื่องวัดชิ้นนี้จะเป็นประโยชน์กับผู้ที่ นำไปใช้งานในด้านต่างๆ ไม่มากก็น้อย และต้องขอขอบคุณลูกค้าที่ให้ความไว้วางใจกับเราเสมอมา และทางผู้สร้างยินดีให้คำแนะนำเพิ่มเติมครับ

พิเศษ สำหรับผู้ที่ต้องการนำเครื่องวัดรอบนี้ไปใช้งานในรูปแบบของตัวเอง ไม่ซ้ำกับใครๆ สามารถสั่งทำกล่องใส่ให้มีความแตกต่างออกไปได้ เช่น ที่บังแสงให้สั้นกว่าที่โชวในเว็บ หน้ากากสีอื่นๆ หรือแม้กระทั้งสีของหลอดไฟแสดงผลก็เลือกได้ว่าต้องการสีอะไร "เพื่อให้ท่านได้สินค้าที่ตรงกับความต้องการมากที่สุด และเป็นงานที่สร้างขึ้นเฉพาะท่านเท่านั้น"

บทความโดย กิติภูมิ กาญจนา

]]>
การเริ่มพัฒนาการควบคุมแบบไร้สาย https://thaiamp.com/archives/321 Sun, 09 Jun 2013 15:09:23 +0000 http://www.thaiamp.com/?p=321

ทดลองใช้งานเทคโนโลยีสื่อสารไร้สายแบบพื้นฐานก่อนที่จะไปใช้เทคโนโลยีระดับสูงกันดีกว่า !!!

การเริ่มพัฒนาเทคโนโลยีไร้สาย

ปัจจุบัน การสื่อสารเกือบทุกชนิดที่เราได้สัมผัส เป็นการสื่อสารแบบไร้สายก็ว่าได้ ไม่ว่าจะเป็น เทคโนโลยีบลูทูซ WIFI อื่นๆ อีกมากมาย ถ้าพูดถึงงานทางด้านเทคนิคและการพัฒนาอุปกรณ์ต่างๆ เหล่านี้แล้ว ค่อนข้างหาคนที่สามารถพัฒนาได้น้อยมาก เมื่อเทียบกับผู้ใช้งานเทคโนโลยี แต่ถ้าท่านเป็นผู้หนึ่งที่กำลังมีความสนใจเกี่ยวกับงานด้านนี้ หรือกำลังเริ่มที่จะศึกษาเทคโนโลยีไร้สาย เพื่อนำไปใช้ในงานต่างๆ ที่ท่านสนใจ เช่น การเปิด,ปิดอุปกรณ์ไฟฟ้า การสั่งงานเครื่องจักร เครื่องที่อำนวยความสะดวกให้มนุษย์ หรือแม้กระทั้งระบบรักษาความปลอดภัย
วิธีการที่จะสร้างชิ้นงานที่เกี่ยวข้องกับเทคโนโลยีไร้สายก็มีหลายวิธี

ซึ่ง ปัจจุบันสามารถหาซื้อได้ตามร้านอิเล็กทรอนิกส์ทั่วๆ ไป ไม่ว่าจะเป็น บลูทูซ ก็มีเป็นโมดูลมาขายให้ทดลองเล่นกันแล้ว ราคาก็ไม่แพงจนเกินไป เมื่อเทียบกับเทคโนโลยีที่ซื้อมา แต่บางครั้งงานที่ต้องการนำเทคโนโลยีไร้สายเข้าไปช่วย ก็ไม่ได้ต้องการเทคโนโลยีที่สูงมากนัก ไม่ว่าจะเป็นทางด้านความเร็ว โปโตคอลที่ทันสมัย แต่กับต้องการระยะทางที่ไกลมากขึ้น โดยมีข้อมูลที่ส่งเพียงไม่กี่บิต ถ้าจะไปเอาโมดูลที่กล่าวมาแล้วมาใช้งาน ก็คงต้องซื้อแบบที่มีกำลังส่งสูงๆ มา ซึ่งราคาก็จะสูงตามไปด้วย ยิ่งถ้าหากระยะทางในการส่งข้อมูลไกลมากขึ้น ก็คงเป็นการลงทุนที่ไม่คุ้มกันแน่ ผมเองกลับคิดว่าถ้าเราหาเทคโนโลยีหรืออุปกรณ์ที่มีอยู่แล้วในท้องตลาดบ้าน เรา ที่ราคาไม่แพงมากนัก สามารถนำมาประยุกต์ใช้งานได้ก็น่าที่จะเป็นเรื่องดี ผมเองจึงได้คิดโมดูล รับ-ส่ง หรือจะพูดว่าเป็นโมเด็มเอนกประสงค์ก็คงไม่ผิด ซึ่งมีความเร็วที่ไม่มากนัก เหมาะสำหรับงานที่ต้องการระยะทางควบคุมไกลๆ ข้อมูลที่ส่งไม่เร็วมากนัก เช่น สัญญาณควบคุมต่างๆ หรือแม้กระทั้งการนำไปประยุกต์ใช้กับโครงงานที่ต้องการควบคุมระยะทางไกลๆ (หุ่นยนต์สำรวจ) ได้ จึงได้ทดลองและสร้างโมเด็มเอนกประสงค์ขึ้น มีรายละเอียดและการทำงานดังนี้

คุณสมบัติ

  1. ความเร็วในการส่งสัญญาณ 1200 bps
  2. มอดูเลทแบบดิจิตอล (FSK)
  3. รับสัญญาณดิจิตอลอินพุทและส่งสัญญาณดิจิตอลเอาท์พุทเป็นแบบ TTL
    (ต่อใช้งานกับไมโครคอนโทรเลอร์ได้โดยตรง)
  4. มีช่องสัญญาณตรวจสอบสัญญาณคลื่นพาหะ
    (ใช้สำหรับตรวจสอบว่าเครื่องส่งหยุดส่งสัญญาณหรือยัง)
  5. มีภาคจ่ายไฟให้วงจรในตัว ผู้ใช้สามารถใช้แหล่งจ่ายได้หลายรูปแบบ
  6. สามารถปรับความเร็วให้เหมาะสมกับการใช้งานได้
  7. สามารถสื่อสารแบบ HALF และ FULL DUPLEX ได้
  8. ชิพที่ใช้เป็นมาตรฐาน CCI

 

มาถึงตรง นี้ท่านที่มีความรู้เกี่ยวกับอิเล็กทรอนิกส์เป็นอย่างดีก็คงจะสนใจวงจร โมเด็มเอนกประสงค์นี้แล้วใช้ไหมครับ แต่สำหรับท่านที่ไม่มีพื้นความรู้ทางนี้มาก ก็คงที่จะยัง งง… อยู่ใช้ไหมครับ ผมจะขออธิบายต่อละกันครับ สำหรับหลักการที่จะนำวงจรนี้ไปประยุกต์ใช้งาน

 

]]>
การตรวจจับฟองก๊าซด้วยเทคนิคการปรับอัตราขยายแบบอัตโนมัติ https://thaiamp.com/archives/229 Fri, 07 Jun 2013 14:35:37 +0000 http://www.thaiamp.com/?p=229

เนื่องจากเดิมตัวเครื่องวัดปริมาณก๊าซ หรือ bubble counter นั้นใช้วิธีการเปรียบเทียบแรงดันที่ได้จากภาครับของตัวตรวจจับ ปัญหาที่เกิดขึ้นตามมาคือ เมื่อนำไปใช้ใน LAB เป็นเวลานานจะทำให้น้ำที่อยู่ในหลอดตรวจวัดเกิดความขุ่นขึ้นทีละน้อยจะทำถึง ขุ่นมากส่งผลให้ตัวตรวจจับไม่สามารถเปรียบเทียบระดับได้ ทำให้ผู้ใช้งานต้องเปลี่ยนน้ำในชุดตรวจวัดบ่อย และต้องปรับระดับเกณฑ์เอง การปรับปรุงตัวเครื่องวัดใหม่นี้จะใช้วิธีการให้ ไมโครคอนโทลเลอร์เป็นตัวปรับระดับอ้างอิงแบบอัตโนมัติ ผลที่ได้จากการปรับระดับแบบนี้จะทำให้สามารถอ่านจำนวนฟองได้ดีกว่าแบบเดิม มาก ถึงแม้น้ำในหลอดตรวจวัดจะมีความขุ่นสูงมาก แต่ตัวตรวจวัดก็ยังสามารถตรวจจับได้อย่างแม่นยำ และการปรับปรุงให้เครื่องสามารถอ่านระดับความใสของน้ำจึงทำให้ตัวเครื่อง เตือนสภาวะที่น้ำในช่องตรวจวัดมีความขุ่นสูงกว่ามาตราฐาน เครื่องจะหยุดการทำงานและแจ้งให้ผู้ใช้เปลี่ยนน้ำก่อนการตรวจวัดต่อไป

ลักษณะของน้ำในช่องตรวจวัดที่มีความขุ่นสูง เครื่องอ่านความใสได้ 22.6% เครื่องก็ยังสามารถตรวจวัดได้ตามปกติ
ลักษณะของน้ำในช่องตรวจวัดที่มีความใส เครื่องอ่านความใสได้ 90.7%

]]>
อินเตอร์เฟส Keyboard PC ด้วย MCS51 https://thaiamp.com/archives/221 Fri, 07 Jun 2013 14:19:09 +0000 http://www.thaiamp.com/?p=221

อินเตอร์เฟส Keyboard PC ด้วย MCS51

ารควบคุมการทำงานของระบบคอมพิวเตอร์แบบฝังตัว ในงานลักษณะต่างๆ ที่มีฟังก์ชั่นการทำงานมากๆ จำเป็นอย่างยิ่งที่จะต้องใช้ Key ควบคุมต่างๆเข้ามาต่อกับระบบ หากมองในมุมของการออกแบบวงจรแล้ว จำนวนสาบสัญญาณทีต่อเข้ากับตัวของ CPU ก็มีผลอย่างมากในการเลือกใช้ IC เบอร์ต่างๆ ยิ่งถ้าการต่อสวิตช์แบบเมตริกแล้ว ถึงแม้ว่าจะลดจำนวนสายที่ต่อลงได้มากกว่าการต่อแบบ บิตต่อบิต แต่ก็ยังถือว่ามากอยู่หากต้องการจำนวนสวิตช์ที่มากขึ้น ต่างกับเทคนิคการสร้างและส่งสัญญาณของ Keyboard PC ที่มีจำนวนปุ่มกดมากกว่าหลายเท่าแต่กลับใช้สายสัญญาณเพียงสองเส้น หรือในงานที่ต้องการส่งสัญญาณแบบที่ต้องใช้สายน้อยจริงๆก็สามารถตัดให้เหลือเพียงเส้นเดียวได้ ดังนั้นการที่จะศึกษาถึงเทคนิคการสร้างสัญญาณของ Keyboard PC ให้ละเอียดแล้วน่าที่จะเป็นการดีที่เราจะสามารถออกแบบงานควบคุมต่างๆได้ โดยควบคุมผ่าน Keyboard PC ที่ราคาไม่ถึงร้อยบาท แต่ได้ฟังก์ชั่นท์การทำงานที่มากขึ้น หรือจะนำไปประยุกต์ใช้งานอื่นๆได้อีกมากมาย

บทความนี้จะยกตัวอย่างการติดต่อกับ Keyboard PC โดยใช้ MCS51 เป็นตัวประมวลผล

ก่อนอื่นมาดูกันก่อนว่า ขั้วต่อของ Keyboard PC มีที่ใช้งาน กันทั่วๆ ไปมีกี่แบบกันก่อน ตามรูปจะเห็นได้ว่ามีสองแบบ ที่นิยมแบบแรก คือแบบ DIN หัวต่อแบบนี้จะใหญ่ใช้ใน เครื่องคอมพิวเตอร์รุ่นเก่าๆ อีกแบบ คือแบบ PS2 แบบนี้ จะเห็นกันอย่างแพร่หลาย การส่งสัญญาณและลักษณะ ของสัญญาณที่ Keyboard สร้างขึ้นมีหลายแบบหลาย มาตราฐานมากๆ ผมจะขอแนะนำเฉพาะที่สามารถหามาทดลองเล่นกันได้ง่ายๆ แต่ว่าจะบอกถึงสัญญาณที่ Keyboard แบบต่างๆ ส่งออกมา ให้ตามตารางด้านล่างครับ

การทำงานของ Keyboard PC

ตัว Keyboard PC จะใช้ไฟเลี้ยง 5 Vdc และมีสายสัญญาณ สองเส้น เส้นแรกเป็น DATA อีกเส้นเป็น Clock การส่ง สัญญาณเป็นแบบ 11 Bit แต่ละปุ่มมีค่า ที่ส่งออกมาเรียกว่า Scancode โดยที่แต่ละปุ่มจะส่งค่า Scancode ออกมา ไม่เหมือนกันและไม่สนใจการกดปุ่มพิเศษต่างๆ ด้วย แต่จะส่งสัญญาณบ่งบอกว่าขณะนั้นๆ ปุ่มใดถูกกดและ ปุ่มใดถูกปล่อย ส่วนภาษาของ Keyboard ที่เราเห็นว่า สามารถพิมพ์ได้หลายภาษา ในส่วนนี้เป็นหน้าที่ของ Software ที่ติดตั้งในระบบปฏิบัติการและการ พิจารณาว่าปุ่มพิเศษ เช่นการกด Shift , Ctrl, Alt เป็นหน้าที่ของ BIOS ในเมนบอร์ด เครื่องคอมพิวเตอร์ จากที่กล่าวไปแล้วนั้นการจะนำสัญญาณของ Keyboard มาใช้งานได้จำเป็นจะต้องมี สายสัญญาณอย่างน้อย สามเส้น คือ GND, VCC, DATA ส่วน Clock จะใช้หรือไม่ก็ได้ การกดแป้นพิมพ์บางตำแหน่ง Keyboard เองไม่ได้ส่งสัญญาณมาเพียง Byte เดียว แต่อาจส่งมากกว่าสาม Byte เลย ดังนั้น การนำสัญญาณที่รับได้มาพิจารณาก็เป็นหน้าที่ของ แฟรมแวร์ที่ออกแบบ

 

หัวต่อแบบ DIN หัวต่อแบบ PS2
ตัวอย่างสัญญาณ Keyboard
ตัวอย่างสัญญาณ Keyboard
ตัวอย่างสัญญาณ Keyboard
ตัวอย่างสัญญาณ Keyboard

 

]]>
การเข้ารหัสข่าวสารแบบตรวจสอบและแก้ที่ผิดด้วย MCS51 https://thaiamp.com/archives/200 Thu, 06 Jun 2013 07:47:26 +0000 http://www.thaiamp.com/?p=200         การเข้ารหัสข่าวสารเป็นอีกวิธีการหนึ่งที่จะทำให้การส่งข้อมูลเข้าไปยังช่องสัญญาณได้อย่างมีประสิทธิภาพ เนื่องจากหากส่งข้อมูลไปในช่องสัญญาณโดยไม่มีการเข้ารหัส เมื่อเกิดสัญญาณลบกวนในช่องสัญญาณก็จะทำให้ข้อมูลที่รับได้เกิดความผิดพลาดขึ้น แต่ถ้าหากผู้ส่งมีการเข้ารหัสสัญญาณข้อมูลก่อนส่งแล้ว เมื่อเกิดสัญญาณลบกวนขึ้นในช่องสัญญาณ ภาครับก็ยังสามารถตรวจสอบและแก้ไขข้อมูลที่ส่งมาให้ถูกต้องเหมือนข้อมูลต้นฉบับได้ แต่ทั้งนี้วิธีการตรวจสอบแก้ไขข้อผิดพลาดจะได้มากหรือน้อยก็ขึ้นอยู่กับหลักการที่นำมาใช้

        การทดลองครั้งนี้ผมจะนำไมโครคอนโทรเลอร์ตระกูล MCS51

มาทดลองการส่งและรับข้อมูลโดยให้วงจรสามารถแก้ไขที่ผิดพลาดได้ 1 จุด หมายความว่าการส่งข้อมูล 8 บิต หากมีข้อมูลบิตใดบิตหนึ่งผิดพลาดไป ภาครับจะยังสามารถแก้ไขที่ผิดได้ให้ข้อมูลกลับมาถูกต้อง โดยจะขอนำหลักการที่มีใช้อยู่ในปัจจุบัน จะเริ่มจากหลักการง่ายๆ ก่อนที่จะใช้หลักการที่ซับซ้อนต่อไป

        เริ่มจาก สมมุติว่าเราต้องการจะส่งข้อมูล 10011010 เข้าไปในช่องสัญญาณที่เป็นคลื่นวิทยุ (ใช้วงจรสื่อสารไร้สายเพื่อการพัฒนา) และสมมุติว่าเกิดสัญญาณลบกวนขึ้นเนื่องจากมีฟ้าผ่าในช่วงสั่นๆทำให้ข้อมูลที่รับได้จากเดิม 10011010 กลายเป็น 11011010 แทน ทำให้ภาครับรับสัญญาณ ที่เป็น MSB ผิดพลาดไป หากไม่มีการแก้ไขก็จะทำให้ภาครับตีความหมายข่าวสารผิดไปค่อนข่างมาก จากตัวอย่างที่ยกมาให้ดูเราจะทำการเพิ่มเติมขั้นตอนการเข้ารหัสก่อนที่จะส่งข้อมูลออกไป และจะเพิ่มขั้นตอนวิธีการเมื่อภาครับรับสัญญาณได้ก่อนที่จะนำข้อมูลไปใช้

        วิธีการ คือ เราจะทำการเพิ่มบิตของข้อมูลที่เป็นรหัสเพื่อใช้ในการตรวจสอบเข้าไป สามารถหาปริมาณบิตที่ต้องการเพิ่มได้จากการคำนวณดังนี้ สมมุติว่าต้องการให้แก้ที่ผิดได้ 1 ที่ ในข้อมูล 8 บิต จะได้ว่า  2  สัญลักษณ์  โดย (จำนวนบิตทั้งหมด + 1) x 2บิตข้อมูล ≤ 2จำนวนบิตทั้งหมดจะได้ว่า 2  ≤ 212 แสดงว่า เราจะต้องใช้จำนวนบิตทั้งหมดที่ต้องส่งเป็น 12 บิต เพื่อให้สามารถตรวจสอบและแก้ไขข้อมูลจำนวน 8 บิตได้  เมื่อได้จำนวนบิตทั้งหมดแล้วเราจะนำมาเพิ่มบิตข้อมูลเข้าไปครับ วิธีการเพิ่มดูได้จากตาราง

 

*

1

*

2

3

4

*

5

6

7

8

ตำแหน่งข้อมูลแต่ละบิต

1

2

3

4

5

6

7

8

9

10

11

12

ตำแหน่งข้อมูล LSB – MSB

* คือ ตำแหน่งที่ใส่บิตตรวจสอบ

        จากนั้นนำข้อมูลที่จะส่งมาจัดลงตามตำแหน่งจะได้ดังนี้

          จากข้อมูล 10011010

 

 

*

*

1

*

0

0

1

*

1

0

1

0

ตำแหน่งข้อมูลแต่ละบิต

1

2

3

4

5

6

7

8

9

10

11

12

ตำแหน่งข้อมูล LSB – MSB

 

 

        เมื่อนำข้อมูลมาใส่แล้วก็ต้องเพิ่มบิตตรวจสอบที่เหลือลงไปพิจารณาจากตำแหน่งของบิตที่เป็น LOGIC 1 ในที่นี้คือตำแหน่งที่ 3,7,9,11 จากนั้นค่าของแต่ละตำแหน่งมา XOR กัน

        ตารางค่าประจำตำแหน่ง   

 

 

หลัก

ค่าข้อมูล

1

1000

2

0100

3

1100

4

0010

5

1010

6

0110

7

1110

8

0001

9

1001

10

0101

11

1101

12

0011

13

1011

14

0111

15

1111

 

 

           นำค่าของหลักที่เป็น LOGIC 1 มาตั้งแล้วทำการ XOR ได้ดังนี้

 

 

1100

3

1110

7

1001

9

1101

11

0110

ผลที่ได้

 

 

            นำค่าที่ได้มาใส่ในช่องที่ว่างไว้ * โดยเรียงลำดับกันไปจะได้

 

 

0 1 1 1 0 0 1 0 1 0 1 0 ตำแหน่งข้อมูลแต่ละบิต
1 2 3 4 5 6 7 8 9 10 11 12 ตำแหน่งข้อมูล LSB – MSB

 

 

            ข้อมูล 001100101010 จะเป็นข้อมูลที่เราจะส่งไปในช่องสัญญาณ  

          เมื่อข้อมูลเดินทางมาถึงภาครับ จากข้อมูล 10011010 นำมาเข้ารหัสได้ข้อมูลเป็น 011100101010 เพิ่มจากเดิม 8 บิตเป็น 12 บิต เมื่อข้อมูล 011100101010 เดินทางมาถึงภาครับและช่องสัญญาณมีสัญญาณลบกวนทำให้ข้อมูลผิดพลาดไป 1 บิต กลายเป็นข้อมูล 111100101010บิตแรกมีการผิดพลาดไป หากไม่มีการแก้ไขจะทำให้ภาครับตีความหมายผิดไปจากเดิมมาก แต่หากภาครับมีการตรวจสอบแก้ไขแล้ว จะสามารถแก้ไขข้อมูลกลับมาได้โดยมีวิธีการดังนี้

    วิธีการคือ นำข้อมูลที่ได้มาตรวจสอบดังนี้

 

 

1 1 1 1 0 0 1 0 1 0 1 0 แทนค่าตำแหน่งข้อมูลแต่ละบิต
1 2 3 4 5 6 7 8 9 10 11 12 ตำแหน่งข้อมูล LSB – MSB

 

 

        นำค่าของตำแหน่ง LOGIC ทีเป็น 1 มา XOR กัน ได้ดังนี้ ตำแหน่งที่ 1,2,3,4,7,9,11

 

 

 

1000

1

0100

2

1100

3

0010

4

1110

7

1001

9

1101

11

1000

รวม

 

 

        ถ้าผลที่ได้ของการ XOR ที่ภาครับไม่เป็น 0000  แสดงว่ามีที่ผิด จากตัวอย่างได้ผลเป็น 1000 แสดงว่าหลักที่ 1 ของข้อมูลผิดพลาด วงจรก็จะทำการกลับบิตที่ผิดตำแหน่งที่ 1 กลายเป็น 011100101010 เหมือนข้อมูลที่ภาคส่งส่งมาและทำการแยกข้อมูลออกจากรหัส โดยการดึงตำแหน่งที่ต้องการออกมา คือ

 

 

0

1

1

1

0

0

1

0

1

0

1

0

แทนค่าตำแหน่งข้อมูลแต่ละบิต

1

2

3

4

5

6

7

8

9

10

11

12

ตำแหน่งข้อมูล LSB – MSB

 

 

        ได้ 10011010 ออกมาเหมือนเดิม จากตัวอย่างนี้ทดลองใส่ข้อมูลผิดพลาดเข้าไปที่ตำแหน่งใดก็ได้ วงจรก็จะยังสามารถระบุที่ผิดและทำการแก้ไขให้โดยการกลับบิตที่เป็นผลลัพธ์เท่านั้น

          จากตัวอย่างที่ยกมาจะเห็นได้ว่าเมื่อเราเพิ่มบิตตรวจสอบเข้าไปกับข้อมูล เราก็จะสามารถระบุตำแหน่งที่ข้อมูลผิด และแก้ไขได้ เมื่อทราบวิธีการตรวจสอบและแก้ไขแล้วทีนี้ผมก็จะนำเสนอวงจรที่สร้างด้วย MCS51 ให้สามารถส่งข้อมูลแบบมีการเข้ารหัสข่าวสาร เพื่อให้สามารถแก้ไขที่ผิดได้ ส่งผลให้ข้อมูลที่เราทำการส่งออกไปไม่ว่าจะเป็นสัญญาณควบคุมระบบอะไรสักอย่างก็ตามที่ในช่องสัญญาณมีการรบกวนค่อนข่างสูง ข้อมูลที่ภาครับรับได้ก็จะยังสามารถรับได้อย่างถูกต้อง ถึงแม้ว่าวิธีการนี้จะสามารถแก้ไขได้เพียง 1 จุดเท่านั้น และต้องแรกกับปริมาณข้อมูลที่เพิ่มขึ้น 4 บิต ก็ตาม แต่ก็ยังถือว่าคุ่มค้ากับข้อมูลที่ถูกต้องที่ภาครับสามารถรับได้ครับ

บทความโดย กิติภูมิ

 

 

 

 

]]>
เครื่องโปรแกรม IC ตระกูล mcs51&avr https://thaiamp.com/archives/82 Mon, 03 Jun 2013 09:59:57 +0000 http://localhost/wordpress/?p=82 เครื่องโปรแกรมไอซี MCS51 & AVR V.2
1,450 ฿ (รวมค่าจัดส่ง) เฉพาะ PCB 150฿

สำหรับผู้ที่ต้องการศึกษา ทดลองเกี่ยวกับไมโครคอนโทรลเลอร์ พื้นฐาน

 

คุณสมบัติเครื่อง
1. ติดต่อกับคอมพิวเตอร์โดย Port Rs232 DB 9
2. โปรแกรมทำงานใน DOS โหมด ง่ายต่อการใช้งาน (เครื่องเก่าๆ ก็สามารถใช้งานได้)
3. มีแท็กทลูเพื่อง่ายต่อการโปรแกรม ป้องกันการชำรุดของ IC

4.ใช้ไฟเลี้ยง DC หรือ AC ตั้งแต่ 12 V ขึ้นไปแต่ไม่เกิน 24 V
5. สามารถใช้งานได้กับ IC ตระกูล ATMEL และ AVR ได้หลายเบอร์ ดังนี้ AT89c1051, AT89C2051, AT89C4051,AT89c51, AT89C52, AT89C53
และตระกูล AVR AT90s1200, AT90S2313, AT89S8252
6. วงจรใช้แผ่นปริ้นท์อีพร๊อกซี้อย่างดี แข็งแรง ทนทาน เหมาะสำหรับการเรียนรู้

** ใช้ได้ตั้งแต่ระดับเริ่มต้นจนถึงระดับมืออาชีพ

** ดูวิธีการประกอบได้ที่หัวข้อ Step By Step

 

]]>