เมื่อสองสัปดาห์ก่อน Blognone เพิ่งครบรอบ 10 ปีไป และเราก็จัดงานพบปะระหว่าง Writer ทุกท่าน ของแจกอย่างหนึ่งในงานคือ Arduino Leonardo ตามความเชื่อของเราที่เชื่อว่าในสิบปีข้างหน้าโลกไอทีจะไม่หยุดอยู่เพียงแค่พีซี, แท็บเล็ต, และโทรศัพท์มือถือ แต่โลกไอทีจะแพร่กระจายเข้าไปในทุกส่วนของชีวิตของเรา อุปกรณ์ต่างๆ ที่เราไม่เคยคิดว่าจำเป็นต้อง "ฉลาด" จะเริ่มฉลาดขึ้นเรื่อยๆ และเราจะชินกับประโยชน์ที่ได้จากความฉลาดเหล่านั้นไปโดยไม่รู้ตัว
ก่อนงาน 10 ปี Blognone ผมปรึกษากับ mk ว่าเราควรมีของที่ระลึกพิเศษให้กับ Writer เป็น Arduino สักตัว เพราะไม่แพงเกินไปที่เราจะหามาให้ได้ ผมศึกษาดูสักพักและเจาะจงว่าต้องเป็น Arduino Leonardo เพราะเหตุผล ว่ามันใช้ชิป ATmega32u4 ที่มีความสามารถทำตัวเองเป็น USB device ได้โดยตรง ถ้าใครสังเกตจะพบว่ามันไม่มีชิป USB-to-UART บนบอร์ดแล้ว ความสามารถนี้ทำให้ทุกท่านที่ได้รับ สามารถทำคีย์บอร์ดใช้เองแบบเดียวกับที่ผมเคยทำมาก่อน แถมง่ายกว่ามากเพราะใน Arduino Leonardo มีไลบรารี Keyboard และ Mouse ครอบ LUFA ที่อยู่ด้านล่างให้เรียบร้อย การโค้ดโดยรวมง่ายกว่ามา ข่าวร้ายคือไลบรารีของ Arduino ไม่รองรับไฟ Caplock ทำให้เอาไปใช้ทำโครงการแบบผมผ่านการโค้ดจาก Arduino IDE ไม่ได้
[](http://upic.me/show/52715559)
โค้ดของโปรแกรมที่อัพโหลดไว้ให้ในบอร์ด จะทำให้ Arduino เป็นคีย์บอร์ดที่สุ่มเข้าหน้าเว็บ Blognone ทันที กระบวนการสุ่มใน Arduino ไม่สามารถสุ่มเฉยๆ ได้เพราะจะทำให้ค่าเหมือนเดิมทุกครั้งที่บูตเครื่องใหม่ ปัญหาเช่นนี้จะชัดเจนมากในคอมพิวเตอร์ขนาดเล็กทำงานเฉพาะ จากเดิมที่คอมพิวเตอร์ทั่วไปสร้างค่าสุ่มจากนาฬิกา ใน Arduino นั้นไม่มีนาฬิกาในเครื่องทำให้การสร้างค่าสุ่มทำได้ยากยิ่งขึ้น ผมแก้ปัญหาพื้นฐานไปด้วยการ seed ค่าสุ่มจากขา analog0 ที่ไม่ได้ต่ออะไรไว้ ทำให้ค่าดูจะสุ่มพอสมควร ส่วนนี้จริงๆ แล้วก็ยังไม่ดีนัก (เพราะค่า seed จาก analog มีจำกัด หากเปิดเครื่องบ่อยๆ ค่าสุ่มก็จะซ้ำอยู่ดี) แต่เป็นโจทย์ให้ชาว Blognone ไปคิดต่อกันเองว่าถ้าจะทำให้กระบวนการสุ่มดีขึ้นควรทำอย่างไรได้บ้าง
สำหรับ Writer ท่านอื่นๆ ที่ไม่ได้ไปร่วมงาน โพสนี้แจ้งทุกท่านว่า Blognone จะส่งไปให้ทุกท่านถึงที่อยู่ในประเทศไทย ตามที่ท่านแจ้งมา กติกาคือขอให้ใช้อีเมลที่สมัครใน Blognone เท่านั้น แจ้งชื่อผู้รับและที่อยู่ ไปยัง admin@blognone.com ภายในเดือนกันยายนนี้ เพื่อให้เราจัดส่งให้ต่อไป
on
ไม่รู้เรื่องก่ะเขาเลย
menu_dot Sun, 14/09/2014 - 20:16
ไม่รู้เรื่องก่ะเขาเลย
รู้สึกน่าเกลียดที่จะถามแบบนี้
mementototem Sun, 14/09/2014 - 21:29
รู้สึกน่าเกลียดที่จะถามแบบนี้ แต่ว่า ผมไม่ได้ไม่ใช่ไหมครับ T-T
แต่ผมมีอยู่ตัวนึงแล้ว : )
anti-aliasing ของ OpenJDK
pongjun Sun, 14/09/2014 - 21:40
anti-aliasing ของ OpenJDK ไม่ช่วยอะไรเลย
การโค้ดโดยรวมง่ายกว่ามา
panurat2000 Sun, 14/09/2014 - 22:25
ง่ายกว่ามา => ง่ายกว่ามาก
Arduino Leonardo versus
deaw Sun, 14/09/2014 - 22:53
ไม่เข้าใจ ทำไหมผม upload
itpcc Sun, 14/09/2014 - 23:36
ไม่เข้าใจ ทำไหมผม upload โปรแกรมเข้า audrino ผ่าน win 8.1 ไม่ผ่าน แต่พอเป็น XP แล้วผ่านเฉยเลย T.T
ขา analog0 ต่อเสาอากาศ
zotix Sun, 14/09/2014 - 23:50
ขา analog0 ต่อเสาอากาศ น่าจะสุ่มได้ดีขึ้น (คิด) เอา analog ขาอื่นมาคูณกัน
เอ จัดงาน Writer's Party
Job_The_Gamer Mon, 15/09/2014 - 01:06
เอ จัดงาน Writer's Party ไปแล้วหรอครับ O_o
ต้องหัดเขียนบ้างแล้ว
yanawut Mon, 15/09/2014 - 01:33
ต้องหัดเขียนบ้างแล้ว อยากได้บ้างจัง
เรื่อง random ค่า
techbreaking Mon, 15/09/2014 - 11:24
เรื่อง random ค่า เวลาใช้งานจริงเขาใช้ hardware เฉพาะ generate นะครับ
แต่ก็มี บางเจ้าใช้ clock ได้ เช่น MSP430 http://www.ti.com/lit/an/slaa338/slaa338.pdf
ทำหน้าสุ่ม node ใน Blognone
NarzE Mon, 15/09/2014 - 13:38
ทำหน้าสุ่ม node ใน Blognone แทนไหมครับ จะได้ไม่ต้องไปสุ่มบน arduino :D
จัดไปครับ กับ Blognone 4.3
hisoft Mon, 15/09/2014 - 14:29
In reply to ทำหน้าสุ่ม node ใน Blognone by NarzE
จัดไปครับ กับ Blognone 4.3
ยินดีด้วยครับ จาก blog it
Patrickz Mon, 15/09/2014 - 18:10
ยินดีด้วยครับ จาก blog it กลายเป็น เวบที่ได้รับความเชื่อถือจากวงการ