เมื่อสองสัปดาห์ก่อน 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 ไม่ได้
โค้ดของโปรแกรมที่อัพโหลดไว้ให้ในบอร์ด จะทำให้ Arduino เป็นคีย์บอร์ดที่สุ่มเข้าหน้าเว็บ Blognone ทันที กระบวนการสุ่มใน Arduino ไม่สามารถสุ่มเฉยๆ ได้เพราะจะทำให้ค่าเหมือนเดิมทุกครั้งที่บูตเครื่องใหม่ ปัญหาเช่นนี้จะชัดเจนมากในคอมพิวเตอร์ขนาดเล็กทำงานเฉพาะ จากเดิมที่คอมพิวเตอร์ทั่วไปสร้างค่าสุ่มจากนาฬิกา ใน Arduino นั้นไม่มีนาฬิกาในเครื่องทำให้การสร้างค่าสุ่มทำได้ยากยิ่งขึ้น ผมแก้ปัญหาพื้นฐานไปด้วยการ seed ค่าสุ่มจากขา analog0 ที่ไม่ได้ต่ออะไรไว้ ทำให้ค่าดูจะสุ่มพอสมควร ส่วนนี้จริงๆ แล้วก็ยังไม่ดีนัก (เพราะค่า seed จาก analog มีจำกัด หากเปิดเครื่องบ่อยๆ ค่าสุ่มก็จะซ้ำอยู่ดี) แต่เป็นโจทย์ให้ชาว Blognone ไปคิดต่อกันเองว่าถ้าจะทำให้กระบวนการสุ่มดีขึ้นควรทำอย่างไรได้บ้าง
สำหรับ Writer ท่านอื่นๆ ที่ไม่ได้ไปร่วมงาน โพสนี้แจ้งทุกท่านว่า Blognone จะส่งไปให้ทุกท่านถึงที่อยู่ในประเทศไทย ตามที่ท่านแจ้งมา กติกาคือขอให้ใช้อีเมลที่สมัครใน Blognone เท่านั้น แจ้งชื่อผู้รับและที่อยู่ ไปยัง admin@blognone.com ภายในเดือนกันยายนนี้ เพื่อให้เราจัดส่งให้ต่อไป
Comments
ไม่รู้เรื่องก่ะเขาเลย
รู้สึกน่าเกลียดที่จะถามแบบนี้ แต่ว่า ผมไม่ได้ไม่ใช่ไหมครับ T-T
แต่ผมมีอยู่ตัวนึงแล้ว : )
Jusci - Google Plus - Twitter
anti-aliasing ของ OpenJDK ไม่ช่วยอะไรเลย
ง่ายกว่ามา => ง่ายกว่ามาก
ไม่เข้าใจ ทำไหมผม upload โปรแกรมเข้า audrino ผ่าน win 8.1 ไม่ผ่าน แต่พอเป็น XP แล้วผ่านเฉยเลย T.T
บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P
ขา analog0 ต่อเสาอากาศ น่าจะสุ่มได้ดีขึ้น (คิด) เอา analog ขาอื่นมาคูณกัน
เอ จัดงาน Writer's Party ไปแล้วหรอครับ O_o
Achievement Unlocked: Being a Blognone's Writer
ต้องหัดเขียนบ้างแล้ว อยากได้บ้างจัง
เรื่อง random ค่า เวลาใช้งานจริงเขาใช้ hardware เฉพาะ generate นะครับ
แต่ก็มี บางเจ้าใช้ clock ได้ เช่น MSP430 http://www.ti.com/lit/an/slaa338/slaa338.pdf
ทำหน้าสุ่ม node ใน Blognone แทนไหมครับ จะได้ไม่ต้องไปสุ่มบน arduino :D
จัดไปครับ กับ Blognone 4.3
ยินดีด้วยครับ จาก blog it กลายเป็น เวบที่ได้รับความเชื่อถือจากวงการ
Patrickz's blog|
linkedin