สอนนู่ arduino ให้เขียนภาษาไทยได้กับไอยาราฟันส์

Posted by | January 13, 2009 | MyProject | One Comment

เรื่องนี้ต้อง ย้อนหลังความเป็นมากันก่อนครับ

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

มาถึงปีใหม่แล้ว ได้เวลาเก็บโปรเจคดอง ให้หมดแล้ว

ตอนหาข้อมูลส่วนมากจาก พี่กูเกิ้ล นี้ล่ะ ซึ่งผมเอง สนใจโปรเจคนี้เป็นพิเศษ ขนาดสั่งชื้อ jamp7 จากเมืองนอก เข้ามาประกอบเล่นเลย (โดยโน่น หลายพันเลยครับ) ข้อดีมันเป็น open-project ทำเครื่องเล่น mp3 แบบทำเองได้ล่ะครับ กะว่า โปรเจคแรกๆที่จะลองเพิ่มไป ก้อจอสี กับ font thai ครับ แต่ปัญหาที่เกิดขึ้นก้อคือ ด้วยขนาด โปรเจค ใหญ่มาก มีทั้ง mp3 theme เมนู สุดท้ายมันมาถึงทางตันครับ พื้นที่ของ flash memory เต็ม ทำต่อไม่ได้ สักแล้ว

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

สอนนู่ Arduino ให้พูดภาษาไทย

กลับมาถึง พ.ศ. นี้ อุปกรณ์พวกจอ char LCD กับจอสีก้อมีแล้ว แต่อุปกรณ์ไมโคร ก้อยังไม่มี จอแสดงผลแบบภาษาไทยสักที่

ผมว่า มารอบนี้ ก่อนจะสิ้นปี พวกเรามาพยายาม ทำ modules ภาษาไทยแห่งชาติกันดีกว่าและ ก้อไหนๆ จะเอาให้ดี จอสีกันไปเลยดีกว่า

อุปกรณ์ที่ต้องใช้นะครับ
– บอร์ด arduino
ett color lcd 6610 รุ่น NXP (epson ยังใช้ไม่ได้) น่าจะใช้งานง่าย และ หาของง่ายสุดล่ะ

หลักการทำงานของจอ 6610 เข้าไปอ่านได้ที่นี้นะครับ http://www.thaieasyelec.com/index.php?lay=show&ac=article&Id=526712&Ntype=1

รูปอุปกรณ์ที่ใช้งานนะครับ

หลังจากเปิดประเด็นเรื่องภาษาไทย ก้อมีท่าน NAY ที่เร่งทำ เร็วสุด ผมตามไม่ทันเลย ในบทความเรื่องนี้
ผมยกความดี ความชอบ ให้กับท่าน NAY รูปหล่อไปเต็มครับ (เข้าไปที่เวป http://www.thailabresearch.com/ ได้คับ)

ส่วนผมก้อรีบแก้ไขปัญหาในโปรแกรมของ Arduino และรีบๆ ผลัก arduino ภาษาไทย ออกมาให้เร็วสุด

โดยตอนนี้ผม pack รวมกันเป็น Libary แล้ว และมี demo นิดหน่อย สำหรับ แฟนๆ arduino คับ

  • โดย demo แรก เป็นตัวฉบับของ nokia_lcd ของ nuelectronics ไม่ได้ปรับแต่งใดๆ

โดยตัวอย่าง จะต้องมีอุปกรณ์เพิ่มเติมนิดหน่อยนะครับ พวก สวิตซ์ 5 ตัวไว้่เป็น เมนู key
และ แสดงความสามารถของ library ตามปกติ วาดสี่เหลี่ยม วาดเส้น วาดจุด โหลตภาพ

เข้าไปโหลดได้ที่นี้ครับ
http://www.nuelectronics.com/estore/index.php?main_page=product_info&products_id…

  • อีก demo ของการพิมพ์ไทยนะครับ แบบตัวอย่างรูปข้างล่างนะครับ

ส่วนนี้เป็นตัวอย่าง วิธี interface นะครับ ประกาศ class object แล้วใช้งานได้เลยครับ
ทุกอย่างจะเป็น object เป็นข้อดี อย่างหนึ่งของการเขียนโปรแกรมแบบ object ครับ บริหารการทำงานง่ายขึ้น แต่ไฟล์ใหญ่ขึ้นนะครับ

void aboutthai(){
       lcd.cLCD_Box(0,0,131,131,FILL,WHITE);
       lcd.cLCD_ThaiString("HELLO WORLD 2008", 1, 1, WHITE, BLUE);
       lcd.cLCD_ThaiString("สวัสดีปีใหม่ชาวอีเล็กทูเดย์", 1, 15, BLACK ,WHITE);
       lcd.cLCD_ThaiString("หนูอาดูโน่,", 1, 30, BLACK ,WHITE);
       lcd.cLCD_ThaiString("กำลังหัดพูดภาษาไทย",1,45,RED,WHITE);
       lcd.cLCD_ThaiString("พูดได้นิดหน่อยแล้วครับ",1,60,BLACK,WHITE);
       lcd.cLCD_ThaiString("เย้ๆโย่ๆตามลุงAVRทันแล้ว",1,75,GREEN,WHITE);
       lcd.cLCD_ThaiString("ไอยาราฟันส์ดอทคอม", 10, 110, RED ,BLACK);
       lcd.cLCD_ThaiString("www.ayarafun.com", 18, 120, RED ,BLACK);
}

โดยท่านสามารถเอา library ที่ผมพัฒนาต่อจาก nuelectronics แตกไฟล์ และ นำไปใส่ใน c:\arduino\hardware\libraries ก้อเรียกใช้งานได้ทันที่ครับ ตามสไตล์ arduino

โหลดไฟล์ Libary arduino ที่นี่ครับ

thai_nxp_nokia_lcd_v002 ปรับปรุงส่วนไฟล์ demo thai ,แก้ไฟล์ libaray ใหม่

เวอร์ชั่นเก่า

thai_nxp_nokia_lcd

สำหรับตัวอย่างใน MSC51 กับ AVR-ATmega8 เข้่าที่นี้ครับ
http://www.thailabresearch.com/default.asp?content=home

ส่วนใครจะเอาไปปรับปรุงเป็น จอ 5510 จอ dot matrix ทำเสร็จก้อเอามาโชว์ให้ดูกันบ้างนะึีัครับ

Blog History

ส่วนในกระทู้นี้ http://www.electoday.com/cgi-bin/yabb2/YaBB.pl?num=1229964575 เป็นประวัติการพัฒนานะครับ
v0.01 พัฒนากัน 20 วันจบ ฮ่าๆ (อะไรจะขนาดนั้น)
– Dec 22nd, 2008 ผมเริ่มต้น การพัฒนา initial โปรแกรมจาก nu-electronics
– Dec 29th, 2008 ท่าน NAY แสดง font ไทยตัวแรก บน mcs51 และ mega8 ในเวลาต่อมา
– Jan 5th, 2009 พบปัญหาแรกในการใช้งานกับ arduino เกี่ยวกับ การ decode ไฟล์ของ arduino เวลาคอมไพล์ ตัวอักษรจะแปลงเป็น unicode อัตโนมัติ (ต่างจาก avrgcc นะครับ)
– Jan 10th, 2009 จากนั้นผมนำ font ไปใช้ ใน arduino และปรับปรุงจากเดิมนิดหน่อย (ยกความดีให้ท่าน NAY อีกเช่นกัน)

About chang