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
DIY – "เราทำสิ่งที่แตกต่างเพื่อให้ตรงตามความต้องการของคุณ" https://thaiamp.com research and develope embedded system electronics Sat, 13 Mar 2021 04:41:51 +0000 th hourly 1 https://wordpress.org/?v=6.2.6 การพัฒนางานต้นแบบ https://thaiamp.com/archives/625 Sat, 13 Mar 2021 04:22:57 +0000 https://www.thaiamp.com/?p=625 พูดถึงสายงานการพัฒนางานต้นแบบ ถ้าถามว่าคนไทยสามารถทำได้ไหมเรื่องนี้ไม่ต้องบอกก็รู้ว่าคนไทยเราเก่งไม่แพ้ใคร เรารับเทคโนโลยีจากทุกๆ ที่ คนไทยมีทักษะด้านการประดิษฐ์อยู่ในสายเลือดก็ว่าได้ จะเห็นว่าเราสามารถดัดแปลงอะไรต่างๆ รอบตัวเพื่อให้ของสิ่งนั้นตอบโจทย์เรามากที่สุด ถ้าดูในเฉพาะสายงานด้านงานต้นแบบที่เกี่ยวกับเทคโนโลยี เช่นจะสร้างเครื่องอะไรที่เฉพาะงานขึ้นมาสักเครื่อง คนหนึ่งคนต้องสามารถทำอะไรได้บ้าง หรือจะต้องใช้สายงานอะไรมาช่วยกันลงมือทำ เพื่อให้ได้เครื่องหนึ่งเครื่องออกมา
งานแรกที่ต้องใช้คือ ความรู้ทางด้านอิเล็กทรอนิกส์ งานด้านควบคุมอาจจะเป็นไมโครคอนโทรลเลอร์ งานออกแบบด้านอินเตอร์เฟส การสื่อสารข้อมูล การเขียนโปรแกรม(รวมถึงการคิดอัลกอริที่ม) งานเครื่องกล ทำระบบกลไกต่างๆ อื่นๆ อีกหลายงานที่เกี่ยวข้อง เช่นถ้าเป็นงานด้านสิ่งแวดล้อมก็คงต้องมีบุคลากรที่มีความรู้เรื่องเคมี ชีวะ มาร่วมมือกัน

ประกอบ Plasma CNC เครื่องแรก


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

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

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

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

]]>
App “แสนรู้” บัตรคำอัจฉริยะ https://thaiamp.com/archives/524 Sun, 03 Sep 2017 11:16:36 +0000 http://www.thaiamp.com/?p=524  
หลังจากนั่งพัฒนาApp บนมือถืออยู่สักพักก็คิดถึงเครื่องช่วยเรียนรู้ภาษาไทย ที่ทำไว้เมื่อหลายปีก่อน เครื่องรุ่นนั้นใช้เครื่องอ่านบาร์โค๊ดกับ MCU 8 bit ตัวเล็กๆ บวกกับไอซีบันทึกเสียง ขั้นตอนการทำก็แสนจะซับซ้อน กว่าจะบันทึกเสียงลง IC แล้วต้องเรียกออกมาทีละเสียงๆ ต่อมาก็เพิ่มเป็นบันทึกเสียงลง sd card แทน เพื่อที่จะได้แก้ไขเสียงได้ง่ายๆ และเผื่อพ่อแม่อยากจะแก้ให้เป็นเสียงตัวเอง ลูกๆ จะได้คุ้นเคย ณ วันนั้นมือถือที่เป็นสมาทโฟนยังไม่มีจำหน่ายในไทยเลยสักยี่ห้อเดียว ณ เวลานี้ปี2560 ในท้องตลาดเต็มไปด้วยมือถือที่เป็นสมาทโฟนเต็มไปหมด ผู้พัฒนาก็ค่อยๆ ปรับตัวให้เข้ากับยุคสมัย อะไรที่ไม่ได้ต้องการทำงานแบบหนักหน่วง อึด ทน ถึก หรือต้องไปทำงานในสายงานผลิตหนักๆ ก็ไม่จำเป็นต้องใช้ MCU อีกต่อไป รวมถึงเครื่องช่วยเรียนรู้ภาษาไทยด้วย เป็นงานที่ทำงานกับเด็กๆ อินเตอร์เฟสต้องง่ายๆ ผู้ใช้งานไม่ต้องตั้งค่าอะไรซับซ้อน เล่นง่ายๆ แบบว่ากดปุ่มเดียวทำงานได้จนจบ เผื่อว่าจะเอาเครื่องทิ้งไว้ให้เด็กๆ ได้เรียนรู้เองก็สามารถทำได้

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

มาถึงตรงนี้หลายคนคงงง ว่าApp นี้มันทำงานยังไง คืออย่างนี้ครับ ค่อยๆอ่านตามไปดังนี้ ตัวApp เมื่อลงในมือถือแล้ว(เรียกแบบนี้ละกันนะครับสมาทโฟนมันยาว) ตัวApp ผมตั้งชื่อว่า “แสนรู้” เดียวจะรู้ครับว่าทำไมถึงเรียกชื่อนี้ เมื่อเปิด App ให้ทำงานตัว มือถือจะมีเมนูให้เลือกแบบหลักๆ คือ 1.ส่วนของดูสถิติการทำแบบฝึกหัดต่างๆ โดยแยกเป็นหมวดหมู่ตามเรื่องที่เด็กๆทำ เช่น แบบฝึกหัดบวกเลข แบบฝึกหัดลบเลข … แต่ละครั้งของการเข้าใช้งานจะบันทึกวันที่ เวลา คะแนน เวลาที่ใช้ทำแบบฝึกนั้นๆ ไว้ให้ผู้ปกครองดูการพัฒนาการของลูกๆ ได้ 2.ส่วนของคู่มือ ส่วนนี้เอาไว้ใช้สำหรับครั้งแรก เปิดเข้าไปจะเป็นไฟล์ PDF บัตรคำตัวอย่าง โดยที่สามารถส่งไปที่ PC แล้วสั่งprint ลงกระดาษ A4 แบบธรรมดาหรือจะเป็นกระดาษA4 ที่หนาๆหน่อย ก็ยิ่งดี ได้ทันที (ส่วนของบัตรคำตัวอย่างจะเป็นแบบสองหน้า ด้านแรกเป็น QrCode อีกด้านเป็นตัวอย่างตัวอักษรไทย อังกฤษ ในส่วนนี้หากครูหรือผู้ปกครองต้องการนำไปต่อยอด เพื่อจัดกิจกรรมเอง ก็ไม่ต้องPrint ด้านนี้ออกมา ) 3. ปุ่มเริ่มใช้งาน พอกด เครื่องก็จะเข้าสู่หน้ากล้องถ่ายภาพของมือถือ รอรับบัตรที่ติด QrCode (ต่อไปเรียกโค๊ดเฉยๆนะครับ) พอเด็กๆ อยากรู้ว่าบัตรคำอันไหนคือตัวอะไรก็เพียงยกให้มือถือดู มือถือก็จะพูดชื่อตัวนั้นออกมา อันนี้ในส่วนของการเรียนรู้นะครับ ดังนั้นจะเห็นได้ว่าเด็กๆ มีอิสระพอสมควรที่จะเอาบัตรคำ ต่างๆ ส่งให้เครื่องอ่านให้ฟัง ยิ่งถ้าเป็นบัตรคำที่ได้ทำเองกับมือ เขาก็จะยิ่งจดจำได้อย่างรวดเร็ว

แบ่งตามนี้นะครับจะได้เข้าใจง่ายขึ้น

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

  • ส่วนของการทดสอบ แบบทดสอบจะเริ่มทำงานเมื่อเรานำบัตรคำ ชุดคำสั่งให้เครื่องอ่าน เครื่องก็จะเปลี่ยนจากคนคอยตอบคำถาม มาเป็นคนตั้งคำถามแทน เช่น นำบัตรคำสั่ง บวกเลขให้เครื่องอ่าน เครื่องจะเข้าสู่โหมดตั้งคำถาม บวกเลข เครื่องจะออกเสียง เช่น “หนึ่ง บวก ห้า เท่ากับ”  จากนั้นเครื่องจะรอ ให้เด็กๆ หาบัตรคำตัวเลขมาให้เครื่องอ่าน ตอนนี้เด็กๆ ก็จะเริ่มหาว่าคำตอบที่ถูกคืออะไร แล้วก็หยิบมาให้เครื่องอ่าน ถ้าหากว่าถูกต้อง เครื่องก็จะบอกว่าถูกต้อง ถ้าผิด เครื่องก็จะบอกว่าผิด ทำจนครบ10 ตัว โดยแต่ละตัวเครื่องจะสุ่มออกมา เล่นแต่ละครั้งจะไม่เหมือนเดิม ครบแล้วก็จะสรุปคะแนนให้ฟังเป็นเสียง เช่น “คุณทำได้ 8 คะแนน คุณใช้เวลา 1 นาที 50 วินาที”  เป็นต้น เครื่องบอกทั้งคะแนนและเวลา เพื่อกระตุ้นให้เด็กๆ อยากเรียนรู้เพิ่มขึ้น ต้องการทำเวลาให้น้อยลงๆ เป็นการเสริมแรงที่ดีเลยครับ พร้อมทั้งคะแนนนี้จะถูกเก็บไว้ในไฟล์สถิติด้วย สามารถเปิดดูภายหลังได้
  • อีกส่วนเป็นส่วนของการสอนให้จดจำ เช่น สอนนับเลข 1-10 เมื่อเอาบัตรคำสั่งใส่ให้เครื่องนับเลขให้ฟัง เครื่องก็จะเริ่มพูด “หนึ่ง  สอง  สาม…..สิบ” โดยที่สามารถปรับระยะเวลา ความเร็วในการอ่านแต่ละคำได้ที่หน้า App คุณครูอาจจะเอาไปเปิดให้เด็กฟังก่อนนอน หรือตอนเช้า เพื่อเป็นการเพิ่มการเรียนรู้ด้านความจำให้เด็กๆ ได้เป็นอย่างดี มีหลายบทเรียนครับ สูตรคูณก็มี

แสนรู้ทำอะไรได้บ้าง

  • ถามเลขภาษาไทย 0-9
  • แบบฝึกหัดบวกเลขไทยคำตอบไม่เกิน 9
  • แบบฝึกหัดลบเลขไทยคำตอบไม่เกิน 9
  • อ่าน ก-ฮ ให้ฟัง
  • แบบฝึกหัดภาษาไทย พยัญชนะตัวที่ 1 – 11
  • แบบฝึกหัดภาษาไทย พยัญชนะตัวที่ 12 – 22
  • แบบฝึกหัดภาษาไทย พยัญชนะตัวที่ 23 – 33
  • แบบฝึกหัดภาษาไทย พยัญชนะตัวที่ 34 – 44
  • แบบฝึกหัด สระ ภาษาไทย
  • แบบฝึกหัด วรรยุกต์ ภาษาไทย
  • อ่าน a – z ให้ฟัง
  • แบบฝึกหัดภาษาอังกฤษ พยัญชนะตัวที่ 1 – 13
  • แบบฝึกหัดภาษาอังกฤษ พยัญชนะตัวที่ 14 – 26
  • แบบฝึกหัดเลขภาษาอังกฤษ เลข 0-9
  • นับเลขภาษาไทย 1-10
  • นับเลขภาษาไทย 1-20
  • นับเลขภาษาไทย 1-100
  • ท่องสูตรคูณแม่2
  • ท่องสูตรคูณแม่3
  • ท่องสูตรคูณแม่4
  • ท่องสูตรคูณแม่5
  • ท่องสูตรคูณแม่6
  • ท่องสูตรคูณแม่7
  • ท่องสูตรคูณแม่8
  • ท่องสูตรคูณแม่9
  • ท่องสูตรคูณแม่10
  • ท่องสูตรคูณแม่11
  • ท่องสูตรคูณแม่12

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

      เท่าที่เล่ามา ผู้พัฒนาเลยเรียกApp นี้ว่า “แสนรู้”  และหวังว่าเด็กๆที่ได้เล่นเครื่องนี้ก็จะมีพัฒนาการด้านร่างกาย สติปัญญาเพิ่มขึ้นนะครับ เด็กๆ เรียนรู้ตลอดเวลาจะมัวรอให้พ่อแม่ว่างแล้วค่อยเล่นกันก็จะเสียโอกาสนะครับ หามือถือรุ่นเก่าๆ ที่มีกล้องและเป็นแอนดรอย ลงApp “แสนรู้” ราคาหลักร้อย ให้ลูกได้มีพัฒนาการที่ประเมินค่าไม่ได้กันนะครับ

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

      วิธีพิมพ์บัตรคำจาก App เมื่อติดตั้ง App แล้วให้กดเมนู คู่มือ โปรแกรมจะเปิดไฟล์ PDF  ให้ทำการส่งไปยัง PC จากนั้น

      – ใช้กระดาษ43 แผ่น สั่งPrint ครึ่งแรกก่อน หน้า 1-43

      – นำกระดาษชุดแรกที่พิมพ์แล้ว คว่ำหน้าลง สั่งprint หน้า 44-86 โดยถ้าเครื่องพิมพ์มีฟังก์ชั่นพิมพ์จากหลังมาหน้า สามารถใส่กระดาษที่คว่ำหน้าเข้าเครื่องพิมพ์แล้วPrint ได้ทันที

      – ถ้าเครื่องพิมพ์ไม่มีฟังก์ชั่นพิมพ์จากหลังมาหน้า ให้คว่ำกระดาษทีละแผ่น (เรียงกระดาษใหม่ก่อนพิมพ์อีกด้าน)

      *** สำหรับ คุณครู หรือผู้ปกครองที่ต้องการนำบัตรคำไปทำเอง จัดกิจกรรมเอง สามารถพิมพ์บัตรคำจากหน้า44 ถึงหน้า 86 ได้ทันที(อีกด้านจะว่าง ทำกิจกรรมต่างๆได้เอง)

      – ส่วนของการจัดกิจกรรมอย่างอื่นที่นอกเหนือจากบัตรคำ เช่นต้องการเอาQrCode ไปติดกับตุ๊กตา หรือกระดาษพับรูปสัตว์ หรือจัดกิจกรรมปั้นดินน้ำมันเป็นต้น สามารถสั่งซื้อสติกเกอร์เฉพาะบาร์โค๊ด ทั้งหมด ได้ราคาชุดละ 160 บาท(สติกเกอร์เคลือบพลาสติก)

 ** ผู้ปกครองท่านใดต้องการสั่งซื้อกระดาษตัวอย่างบัตรคำ(ไม่ต้องการPrint เอง) เป็นกระดาษอาร์ทหนา สามารถสั่งซื้อเพิ่มเติมได้ ในราคา ชุดละ 200บาท รวมค่าจัดส่งธรรมดา** (ปัจจุบัน 2564 เลิกพัฒนาแอพนี้แล้ว ให้ดูเป็นไอเดียครับ)

     VDO สาธิตการใช้งานเพื่อความเข้าใจครับ

    – เริ่มใช้App

    – สอนภาษาไทย

    – สอนภาษาอังกฤษ

    – ทำบัตรคำ

    – ดูผลการเรียนรู้

    – สอนเลข

และสามารถซื้อApp ได้ที่ Play store ครับ ตามlink นี้

]]>
พัฒนา 3D Print https://thaiamp.com/archives/369 Tue, 24 Dec 2013 09:46:21 +0000 http://www.thaiamp.com/?p=369

]]>
อินเตอร์เฟส 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 บิต ก็ตาม แต่ก็ยังถือว่าคุ่มค้ากับข้อมูลที่ถูกต้องที่ภาครับสามารถรับได้ครับ

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

 

 

 

 

]]>