<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ayarafun &#187; arduino</title>
	<atom:link href="http://www.ayarafun.com/category/arduino/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ayarafun.com</link>
	<description>Electronic, Arduino ,Python ,Robotic</description>
	<lastBuildDate>Mon, 26 Jul 2010 03:42:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</title>
		<link>http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/</link>
		<comments>http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 15:48:21 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[mini project]]></category>
		<category><![CDATA[FT232RL]]></category>
		<category><![CDATA[FTDI Bitbang]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1853</guid>
		<description><![CDATA[จากตอนที่แล้ว เราก้อได้แปลงกายเจ้า UCON-UART [FT232RL] เป็นเครื่องเบิร์นได้แล้ว ในบทความตอนนี้ เราจะเอาเครื่องเบิร์น FTDI ฺBitbang กับ avrdude-gui ใช้งาน burn bootloader กันดีกว่าครับ ความจริงเราสามารถปรับแต่งให้ Arduino IDE เบิร์น bootloader ได้ ซึ่งสนใจก้อเข้าไปอ่านตามลิงค์นี้ &#8220;How to run this &#8220;FTDI Bitbang method&#8221; with the Arduino-IDE&#8221; ที่ผมทดลองมายังไม่สะดวกมากนักครับ เพราะว่าอย่างหนึ่ง คือ ตัวโปรแกรม avrdude จะต้องปรับแต่ง เพื่อให้ใช้กับ bitbang ได้ ซึ่งมันยังไม่ compatible กับ arduino-0018 ครับ ลักษณะโปรเจค open-source ก้ออย่างงี้ล่ะครับ ถ้ามันยังไม่นิยมมาก ก้อไม่ค่อยเป็นมาตราฐาน และบ่อยครั้งมันก้อปิดตัวเองไปช้าๆ ครับ ตอนนี้เราก้อใช้กับมันแล้วทำความเข้าใจกันไปครับ การเบิร์น


Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/atmel-programming-with-ftdi-bitbang/' rel='bookmark' title='Permanent Link: เบิร์น AVR ด้วย FTDI-Bitbang [ตอนที่ 1]'>เบิร์น AVR ด้วย FTDI-Bitbang [ตอนที่ 1]</a></li>
<li><a href='http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/' rel='bookmark' title='Permanent Link: Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?'>Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?</a></li>
<li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">จากตอนที่แล้ว เราก้อได้แปลงกายเจ้า UCON-UART [FT232RL] เป็นเครื่องเบิร์นได้แล้ว ในบทความตอนนี้ เราจะเอาเครื่องเบิร์น FTDI ฺBitbang กับ avrdude-gui ใช้งาน burn bootloader กันดีกว่าครับ ความจริงเราสามารถปรับแต่งให้ Arduino IDE เบิร์น bootloader ได้ ซึ่งสนใจก้อเข้าไปอ่านตามลิงค์นี้ <a href="http://www.geocities.jp/arduino_diecimila/bootloader/bitbang_w_ide_en.html">&#8220;How to run this &#8220;FTDI Bitbang method&#8221; with the Arduino-IDE&#8221;</a> ที่ผมทดลองมายังไม่สะดวกมากนักครับ เพราะว่าอย่างหนึ่ง คือ ตัวโปรแกรม avrdude จะต้องปรับแต่ง เพื่อให้ใช้กับ bitbang ได้ ซึ่งมันยังไม่ compatible กับ arduino-0018 ครับ ลักษณะโปรเจค open-source ก้ออย่างงี้ล่ะครับ ถ้ามันยังไม่นิยมมาก ก้อไม่ค่อยเป็นมาตราฐาน และบ่อยครั้งมันก้อปิดตัวเองไปช้าๆ ครับ ตอนนี้เราก้อใช้กับมันแล้วทำความเข้าใจกันไปครับ</p>
<p style="text-align: justify;">การเบิร์น bootloader ถ้าเราใช้ Arduino IDE ขั้นตอนจะไม่ยุ่งยากมากครับ กด [Burn Bootloader] จากเมนูอย่างเดียว ก้อจบ แต่พอเราใส่เครื่องเบิร์นไปใน IDE ไม่ได้ เลยลำบากเลย วิธีนี้ก้อเผื่อไว้ครับ ส่วนมากเครื่องเบิร์นหรือเครื่องโปรแกรมที่ขายในไทย มันอาจจะไม่ใช้ไม่ได้กับ arduino IDE เราก้อ manual เองเลย [<a href="http://www.geocities.jp/arduino_diecimila/bootloader/bitbang_w_ide_en.html">ใครอยากใช้ FTDI แบบไม่ manual  เข้าไปดูตามลิงค์นี้ครับ</a>]</p>
<p style="text-align: justify;">สำหรับในบทความนี้จะขอยึดกับ การเบิร์น Bootloader ของ ไอซี ATmega328 เป็นหลักครับ สำหรับไอซีตัวอื่น ทางท่านผู้อ่าน ต้องลองเองครับ</p>
<p style="text-align: justify;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/P10303771.jpg"><img class="aligncenter size-full wp-image-1850" title="P1030377" src="http://www.ayarafun.com/wp-content/uploads/2010/07/P10303771.jpg" alt="" width="399" height="249" /></a><strong><span id="more-1853"></span></strong><span style="color: #33cccc;"><strong>ขั้นตอนการเบิร์น bootloader มีสี่ขั้นตอนสั้นๆดังนี้ครับ</strong></span></p>
<ol>
<li><span style="color: #000000;"><strong>Unlock</strong></span></li>
<li><span style="color: #000000;"><strong>Write Fusebit</strong></span></li>
<li><span style="color: #000000;"><strong>Burn Bootloader</strong></span></li>
<li><span style="color: #000000;"><strong>Lock</strong></span></li>
</ol>
<h2><strong><span style="color: #ff6600;">วิธีการเบิร์น bootloader</span><br />
</strong></h2>
<p style="text-align: justify;">[ 0 - Zero] เตรียมความพร้อมก่อน ให้ตั้ง clock mode เป็นแบบช้า ให้ใส่ &#8220;-B 4800&#8243; เข้าไปก่อน  <strong><br />
** chip ใหม่ ยังไม่สามารถใช้ความเร็วสูงได้ (fast  clock mode)<br />
</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">1. unlock Fuse-Bit</p>
<p style="text-align: justify; padding-left: 30px;">[1] กด [Chip Erase] ลบให้หมด.<br />
[2] จากนั้นกดปุ่ม [Read] บริเวณกรอก Lockbit , ตรวจสอบว่าค่า Lockbit = 0x3F หรือป่าว</p>
<p style="text-align: justify; padding-left: 30px;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit2.png"><img class="size-full wp-image-1863 alignnone" title="fusebit2" src="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit2.png" alt="" width="594" height="129" /></a></p>
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">2. Write Fuse-bits</p>
<p style="text-align: justify; padding-left: 30px;">(1) เซ็ท Fusebit ตามค่าข้างล่าง (สำหรับ ATmega328)</p>
<ul style="padding-left: 30px;">
<li>hfuse = DA</li>
<li>lFuse = FF</li>
<li>eFuse = 05</li>
</ul>
<p style="text-align: justify; padding-left: 30px;">(2) คลิก [Write] เพื่อเขียน fusebit</p>
<p style="text-align: justify; padding-left: 30px;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit3.png"><img class="alignnone size-full wp-image-1864" title="fusebit3" src="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit3.png" alt="" width="581" height="124" /></a></p>
<p style="text-align: justify; padding-left: 30px;"><strong>สลับโหมดเป็น Fast Clock</strong><br />
ลบพารามิเตอร์  &#8221; -B 4800&#8243; ในช่อง command line แล้วกด read fuse-bits<br />
ถ้าอ่านค่า fuse bits ผิคให้กลับสลับเป็นค่า slow clock อีกรอบ แล้วทำการเขียน Fuse-Bits  ใหม่</p>
<p style="text-align: justify;">
<p style="text-align: justify;">3. เบิร์นไฟล์ Bootloader</p>
<p style="padding-left: 30px;">[1] กดปุ่ม [...] -&gt; เลือกไฟล์   &#8220;G:\arduino\arduino-0018\hardware\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex&#8221;<br />
[2] กดปุ่ม [Erase-Write-Verify] ที่บริเวณ Flash Area</p>
<p style="padding-left: 30px;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit4.png"><img class="alignnone size-full wp-image-1865" title="fusebit4" src="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit4.png" alt="" width="596" height="122" /></a></p>
<p style="padding-left: 30px;">
<p>4. เซ็ท lock bit  ล๊อคไม่ให้มีการเขียนทับบริเวณ bootloader</p>
<p style="padding-left: 30px;">[1] เซ็ทค่า Lock = 0F<br />
[2] กดปุ่ม [Write] เพื่อบันทึกค่า</p>
<p style="padding-left: 30px;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit5.png"><img class="alignnone size-full wp-image-1862" title="fusebit5" src="http://www.ayarafun.com/wp-content/uploads/2010/07/fusebit5.png" alt="" width="594" height="91" /></a></p>
<p style="padding-left: 30px;">
<p>ที่กล่าวไปสำหรับ atmega328 แต่ถ้าใครใช้ AVR ตัวอื่น อย่าง ATmega8 และ ATmega168 ใช้ขั้นตอนแบบเดิม แต่ Fuse-bit ไม่เหมือนกันครับ ใช้ค่าดังตัวเลขข้างล่าง</p>
<p style="text-align: justify; padding-left: 60px;"><strong>สำหรับ ATmega168</strong></p>
<ul style="padding-left: 60px;">
<li>hfuse = DD</li>
<li>lfuse = FF</li>
<li>efuse = 00</li>
<li>unlock = 3F</li>
<li>lock = 0F</li>
<li>bootloader file<br />
arduino-0018\hardware\bootloaders\atmega\ATmegaBOOT_168_diecimila.hex</li>
</ul>
<p style="padding-left: 60px;"><strong>สำหรับ ATmega8</strong></p>
<ul style="padding-left: 60px;">
<li>hfuse  = CA</li>
<li>lfuse = DF</li>
<li>unlock = 3F</li>
<li>lock = 0F</li>
<li>bootloader file<br />
arduino-0018\arduino-0018\hardware\arduino\bootloaders\atmega8\ATmegaBOOT.hex</li>
</ul>
<p>หลังจากนั้น ถอดสาย ICSP จากนั้นจ่ายไฟเข้าไปยังบอร์ด arduino จะได้เห็น LED13 กระพริบๆ  ตอนนี้ตัวไอซี ATmega ตัวใหม่เราได้บรรจุ Bootloader พร้อมจะนำไปใช้กับ Arduino IDE แล้วครับ</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/atmel-programming-with-ftdi-bitbang/' rel='bookmark' title='Permanent Link: เบิร์น AVR ด้วย FTDI-Bitbang [ตอนที่ 1]'>เบิร์น AVR ด้วย FTDI-Bitbang [ตอนที่ 1]</a></li>
<li><a href='http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/' rel='bookmark' title='Permanent Link: Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?'>Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?</a></li>
<li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เบิร์น AVR ด้วย FTDI-Bitbang [ตอนที่ 1]</title>
		<link>http://www.ayarafun.com/2010/07/atmel-programming-with-ftdi-bitbang/</link>
		<comments>http://www.ayarafun.com/2010/07/atmel-programming-with-ftdi-bitbang/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 12:14:24 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[mini project]]></category>
		<category><![CDATA[FT232RL]]></category>
		<category><![CDATA[FTDI Bitbang]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1820</guid>
		<description><![CDATA[รอบนี้ยังนำเสนอเครื่องเบิร์นกันอีกสักวิธีครับ  ที่ผมมาแนะนำบ่อยๆ เพราะว่าช่วงนี้เห็นว่าหลายคนเหลือเอาไปใช้งานกัน บอร์ดเดียวคงจะไม่พอใช้งาน แต่จะซื้อมาใช้หลายๆบอร์ด มันก้อคงไม่ประหยัดมากนักครับ ผมจึงพยายามหาเครื่องไม้เครื่องมือมาช่วยทำ สร้างสรรค์โปรเจคกันได้เต็มที่ สำหรับเครื่องเบิร์นนี้จริง จุดประสงค์เพื่อ จะเอามาช่วย เบิร์น bootloader สำหรับการสร้างบอร์ด arduino เอง  เพราะว่าจริงแล้วไอซี ATmega328 หรือ ATmega168 ที่เพิ่งซื้อมาใหม่จากโรงงาน จะไม่บรรจุโปรแกรมอะไรไว้เลยครับ ต้องเบิร์น boot loader เข้าไปก่อนครับ ถึงจะใช้งานกับ IDE ของ Arduino Notes: 2 jQuery(function() { knsprImageNote.initializeNoteDisplay('.wp-image-1819', [{"x1":635,"y1":48,"width":281,"height":215,"imageId":"1819","note":"UCON-UART","url":"http://www.inex.co.th/electronic/computerinterface.html"},{"x1":109,"y1":23,"width":378,"height":265,"imageId":"1819","note":"Freeduino V1.16","url":"http://www.ayarafun.com/shop/arduino/freeduino-usb/"}], 1819, false, false, 1024, 377); }); This image contains notes, please open the website directly แต่สำหรับรอบนี้ ขอพูดแบบกลางๆ ก่อน


Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">รอบนี้ยังนำเสนอเครื่องเบิร์นกันอีกสักวิธีครับ  ที่ผมมาแนะนำบ่อยๆ เพราะว่าช่วงนี้เห็นว่าหลายคนเหลือเอาไปใช้งานกัน บอร์ดเดียวคงจะไม่พอใช้งาน แต่จะซื้อมาใช้หลายๆบอร์ด มันก้อคงไม่ประหยัดมากนักครับ ผมจึงพยายามหาเครื่องไม้เครื่องมือมาช่วยทำ สร้างสรรค์โปรเจคกันได้เต็มที่</p>
<p style="text-align: justify;">สำหรับเครื่องเบิร์นนี้จริง จุดประสงค์เพื่อ จะเอามาช่วย เบิร์น bootloader สำหรับการสร้างบอร์ด arduino เอง  เพราะว่าจริงแล้วไอซี ATmega328 หรือ ATmega168 ที่เพิ่งซื้อมาใหม่จากโรงงาน จะไม่บรรจุโปรแกรมอะไรไว้เลยครับ ต้องเบิร์น boot loader เข้าไปก่อนครับ ถึงจะใช้งานกับ IDE ของ Arduino</p>
<p style="text-align: center;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/P1030334.jpg"><img class="size-full wp-image-1819  aligncenter" src="http://www.ayarafun.com/wp-content/uploads/2010/07/P1030334.jpg" alt="" width="669" height="246" />	<p class="numberOfNotes">Notes: 2</p>        <script type="text/javascript">
jQuery(function() {
    knsprImageNote.initializeNoteDisplay('.wp-image-1819', [{"x1":635,"y1":48,"width":281,"height":215,"imageId":"1819","note":"UCON-UART","url":"http://www.inex.co.th/electronic/computerinterface.html"},{"x1":109,"y1":23,"width":378,"height":265,"imageId":"1819","note":"Freeduino V1.16","url":"http://www.ayarafun.com/shop/arduino/freeduino-usb/"}], 1819, false, false, 1024, 377);
});
</script><p>This image contains notes, please open the website directly</p></a></p>
<p style="text-align: justify;">แต่สำหรับรอบนี้ ขอพูดแบบกลางๆ ก่อน คือทำเครื่องเบิร์นสำหรับใช้งานการเบิร์น AVR ทั่วไปครับ สำหรับเครื่องเบิร์นที่จะมาแนะนำบทความนี้ เรียกว่า FTDI Bitbang ครับ เป็นโปรเจคที่พัฒนาโดย <a href="http://translate.google.com/translate?prev=_t&amp;hl=ja&amp;ie=UTF-8&amp;u=http%3A%2F%2Fsuz-avr.sblo.jp%2Farchives%2F20070621-1.html&amp;sl=ja&amp;tl=en&amp;history_state0=">Mr.Suz</a> ซึ่งทางเขาได้ทำให้ Bitbang ของ FT232RL เป็นเครื่องโปรแกรมไอซีได้ โดยโปรแกรมที่จะใช้งานกัน วันนี้จะมาแนะนำวิธีการใช้งาน กับ setup กันครับ<span id="more-1820"></span></p>
<p>บทความนี้ นำมาจาก <a href="http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html">Burning the Bootloader without  external AVR-Writer</a> ของ  Kimio Kosaka แต่เอามาแก้ไข นิดหน่อยให้ใช้งานกับของที่มีในไทยได้ครับ สำหรับสิ่งที่น่าสนใจอย่างหนึ่ง เหมือนนำ FT232RL มาใช้เป็นเครื่องเบิร์นคือ มันสามารถ รันได้ทุก platform ตัวไอซี มี driver ที่รันได้ทั้ง mac os และ linux  ถ้าท่านใช้ OS อื่น ก้อลงเข้าไปอ่านดูึครับ ลิงค์ต้นฉบับ</p>
<h3>Download ซอฟร์แวร์ที่จำเป็น จากเวปไซค์ต้นฉบับ</h3>
<ol type="i">
<li>&#8220;avrdude-serjtag&#8221; FTDI BitBang AVR-Writer<br />
<a href="http://www.geocities.jp/arduino_diecimila/bootloader/files/serjtag-0.3.zip">serjtag-0.3.zip</a> mirror site<br />
<a href="http://www.geocities.jp/arduino_diecimila/bootloader/files/serjtag-0.3.tar.gz">serjtag-0.3.tar.gz</a> mirror site</li>
<li><a href="http://www.nmj.sakura.ne.jp/suz-avr/serjtag/serjtag-0.3.zip">serjtag-0.3.zip</a> original site (<a href="http://suz-avr.sblo.jp/archives/20070621-1.html">http://suz-avr.sblo.jp/archives/20070621-1.html</a>)<br />
<a href="http://www.nmj.sakura.ne.jp/suz-avr/serjtag/serjtag-0.3.tar.gz">serjtag-0.3.tar.gz</a> original site (<a href="http://suz-avr.sblo.jp/archives/20070621-1.html">http://suz-avr.sblo.jp/archives/20070621-1.html</a>)</li>
<li>ไฟล์ configure-file สำหรับ avrdude-serjtag<br />
<a href="http://www.geocities.jp/arduino_diecimila/bootloader/files/avrdude.conf">avrdude.conf</a> (<strong>Update:</strong> เพื่อให้ใช้  ATmega328P,168P and 88P ได้ครับ)</li>
<li>โปรแกรมกราฟฟิกสำหรับ AVRDude &#8211; &#8220;avrdude-GUI (yuki-lab.jp Version)&#8221;<br />
<a href="http://www.geocities.jp/arduino_diecimila/bootloader/files/avrdude-GUI-1.0.5.zip">avrdude-GUI-1.0.5.zip</a> mirror site<br />
<a href="http://yuki-lab.jp/hw/avrdude-GUI/avrdude-GUI-1.0.5.zip">avrdude-GUI-1.0.5.zip</a> original site (<a href="http://yuki-lab.jp/hw/avrdude-GUI/index.html">http://yuki-lab.jp/hw/avrdude-GUI/index.html)</a></li>
<li>avrdude-GUI (yuki-lab.jp Version) require  Microsoft .NET Framework 2.0. ถ้าสามารถเปิดโปรแกรม avrdude-gui ได้ไม่ต้องติดตั้งใหม่ครับ<br />
แต่ถ้ามีปัญหา ระบบต้องการ ก้อเข้าไปโหลดได้ที่นี้ครับ              <a href="http://www.microsoft.com/Downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=us"> here (Microsoft .NET Framework 2.0 download page)</a></li>
</ol>
<h3>วิธีการติดตั้ง</h3>
<p>ไฟล์ที่ให้โหลด ส่วนมากไม่ได้มีระบบ install ไฟล์ เราต้องติดตั้งเองครับ ซึ่งความจริงเราจะติดตั้งไว้ที่ไหนก้อได้คับ เอาที่เราสะดวกครับ เพราะเวลามันรัน ไม่ได้อ้างอิงตำแหน่งไดเร็กทรอรี่อยู่แล้วครับ</p>
<ul>
<li>สำหรับไฟล์<strong> serjtag-0.3</strong> หลังจากแตกไฟล์ มาเราจะใช้แค่โฟลเดอร์ &#8220;serjtag-0.3/binary&#8221; ซึ่งภายในโฟลเดอร์จะมีโปรแกรม avrdude.exe ที่ทำการแก้ไขแล้ว เพื่อสามารถใช้เครื่องโปรแกรมจาก FTDI Bitbang ได้ครับ สำหรับโฟลเดอร์อื่นจะไม่เอามาก้อได้ครับ ในที่นี้ผมเอาไปใส่รวมกับ arduino และเปลี่ยนชื่อ เป็น <strong>&#8220;G:/arduino/avrdude-serjtag&#8221;</strong></li>
<li><strong>avrdude.conf</strong> เป็นไฟล์ configure สำหรับเพื่อใช้กับ avrdude ให้แตกไฟล์ แล้วไปรวมใน ไดเร็กทรอรี่ <strong>&#8220;g:/arduino/avrdude-serjtag/binary</strong>&#8221; ก้อได้ครับ</li>
<li>สำหรับโปรแกรม สุดท้าย คือ <strong>avrdude-gui </strong>เป็นโปรแกรม wrapper  จะมีอยู่ไฟล์เดียว ไว้ที่ไหนก้อได้ที่เรา ที่เราสะดวก ผมเอารวมไว้ที่ <strong>&#8220;g:/arduino/&#8221;</strong></li>
</ul>
<p>* สำหรับไดเร็กทรอรี่ จะจัดไว้ที่ไหนก้อได้แล้วแต่สะดวกครับ</p>
<h3>แปลงกาย UCON-UART เป็นเครื่องเบิร์นไอซี</h3>
<p>สำหรับตอนนี้ส่วนของ software คงจะเริ่มแล้วมาดู Hardware กันบ้าง ความจริงโปรเจคนี้เขาดัดแปลงบอร์ด Arduino Diecimila มาใช้งานเบิร์นบอร์ดตัวเอง แต่ทาง freeduino ของเราไม่ได้เตรียมไว้ให้ครับ เดี่ยวจะเพิ่มเติมในโอกาสหน้าครับ <img src='http://www.ayarafun.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  หรือใครใจร้อนจะทำ hardwire บนบอร์ดแบบท่านเบียร เพื่อนสมาชิกแห่ง electoday ก้อได้ครับ <a href="http://www.electoday.com/bbs/viewthread.php?tid=4427&amp;extra=page%3D3&amp;page=1">ชมได้ที่นี้</a></p>
<p>สำหรับบอร์ดที่ผมเลือกมา เป็น <a href="http://www.inex.co.th/electronic/computerinterface.html">UCON-UART</a> ของบริษัท <a href="http://www.inex.co.th/">INEX</a> เป็นบอร์ด usb2serial ที่มีขาสัญญาณ RS232c ออกมาครบ มีระดับไฟอยู่ +5/+3.3v  ซึ่งมันเลยเหมาะกับการใช้งานกับไมโคร ต่อตรงไม่ต้องผ่าน buffer อีกที่ และยังเอามาทำตัวเบิร์นแบบ ftdi bitbang ได้อีกครับ ผมว่ามันก้อเหมือน 2 in 1 คุ้มดี สำหรับผู้ที่สนใจก้อสามารถสั่งซื้อทาง บริษัทเขาเลยครับ ราคาตอนนี้ 290 บาทครับ</p>
<p><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/P1030329.jpg"><img class="aligncenter size-full wp-image-1832" title="P1030329" src="http://www.ayarafun.com/wp-content/uploads/2010/07/P1030329.jpg" alt="" width="599" height="336" /></a></p>
<p>คุณสมบัติคร่าวๆดังนี้ครับ</p>
<ul>
<li>ใช้ไอซี FT232R ในการแปลงสัญญาณ</li>
<li>มี LED แสดงสภาวะการทำงาน</li>
<li>มีจุดต่อสัญญาณครบทุก สัญญาณทั้ง DCD,RxD,TxD,DTR,DSR,RTS และCTS</li>
<li>เลือกใช้ไฟเลี้ยงได้ทั้ง  +3.3V และ +5V หรือใช้จากพอร์ต USB ก็ได้</li>
</ul>
<p>มาดูเรื่องการ setup กันต่อ สำหรับบอร์ด Freeduino เวลาเราจะเบิร์น bootloader จะเบิร์นผ่าน ISP ครับ โดยคอนเน็กเตอร์ ICSP หรือ ISP แบบ 6 PIN ครับ ดังรูปครับ</p>
<p><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/P1030332.jpg"><img class="aligncenter size-full wp-image-1818" title="P1030332" src="http://www.ayarafun.com/wp-content/uploads/2010/07/P1030332.jpg" alt="" width="596" height="298" /></a></p>
<p>ให้เราต่อสาย ICSP กับบอร์ด UCON-UART ดังแผนภาพข้างหลังนี้ครับ</p>
<p><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/ft232.png"><img class="aligncenter size-full wp-image-1816" title="ft232" src="http://www.ayarafun.com/wp-content/uploads/2010/07/ft232.png" alt="" width="580" height="279" /></a></p>
<p>ภาพสุดท้ายที่เพิ่มใช้งานแล้ว ใช้สายนิดเดียวครับ ที่เห็นที่คอนเน็กเตอร์ ICSP ผมเอาเข็มขัดรัดสายไฟ มันมัดให้มันรวมกันไว้ครับ  ตอนนี้เราก้อได้เครื่องเบิร์น AVR ที่ถูกที่สุดในโลกแล้ว ถูกกว่านี้ต้องทำเองครับ <img src='http://www.ayarafun.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<h3><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/P1030377.jpg"></a><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/P10303771.jpg"><img class="aligncenter size-full wp-image-1850" title="P1030377" src="http://www.ayarafun.com/wp-content/uploads/2010/07/P10303771.jpg" alt="" width="564" height="352" /></a><br />
การใช้งาน avrdude-gui ครับ</h3>
<p>บอร์ดพร้อมติดตั้งโปรแกรมแล้ว มาถึงการใช้งานโปรแกรม avrdude ครับ</p>
<p>รันชื่อโปรแกรม avrdude-gui.exe ที่เราได้ติดตั้งไป จะได้หน้าต่างดังภาพข้างหลังนี้ครับ</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.geocities.jp/arduino_diecimila/bootloader/files/avrdude-gui.png" alt="" /></p>
<p>จากนั้น Setting โปรแกรมดังภาพครับ</p>
<p style="text-align: center;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/setting_p1.png"><img class="aligncenter size-full wp-image-1833" title="setting_p1" src="http://www.ayarafun.com/wp-content/uploads/2010/07/setting_p1.png" alt="" width="596" height="223" /></a></p>
<ol type="i">
<li>ตำแหน่งของโปรแกรม avrdude.exe
<ul>
<li>เปิดโฟลเดอร์ &#8220;G:\arduino\avrdude-serjtag\binary&#8221;.</li>
<li>เลือก &#8220;avrdude.exe&#8221;, แล้วคลิก [Open(O)] .</li>
</ul>
</li>
<li>เลือกเครื่องโปรแกรมมิ่ง (Programmer area)
<ul>
<li>เลือก &#8220;FT232R Synchronous BitBang (diecimila)&#8221; ให้สังเกตุ diecimila ที่ตัวท้ายครับ เผื่อจะมีหลายตัวให้เลือก</li>
</ul>
</li>
<li>เลือก Device เบอร์ ไอซี สำหรับ arduino จะมี ATmega168 ,ATmega328 แต่ถ้าอยากเอาไปใช้งานกับเครื่องเบิร์น AVR ตัวอื่นก้อได้เช่นกันครับ (ยังไม่ได้ลองนะครับ)</li>
<li>เพิ่มเติม Command line Option area
<ul>
<li>ให้ใส่ ที่ Textbox<br />
-P ft0 -B 4800<br />
&#8220;-P ft0&#8243; กำหนด port ของ Bitbang,  &#8220;-B 4800&#8243; ใช้ความเร็วต่ำ ในการเบิร์น</li>
</ul>
<p>**<strong> ข้อควรระวัง</strong> ในช่อง Port ปล่อยวางไว้ครับ<br />
** &#8211; B 4800 เปลี่ยนได้นะครับ ที่ใส่ไว้ เพื่อให้ชัวส์ว่าใช่งาน แต่ใช้งานจริงเอาออกได้</li>
</ol>
<h3>ทดสอบเบื้องต้น</h3>
<ol type="i">
<li>เสียบสาย ICSP กับบอร์ดแล้ว เสียบ UCON-UART ติดตั้ง driver usb2serial  ปกติ ก้อพร้อมใช้งานครับ</li>
<li>รันโปรแกรม avrdude-GUI.</li>
<li>การทดสอบง่ายๆที่สุดก้อ กด Read Fuse-bits</li>
</ol>
<p><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/setting_p2.png"><img class="aligncenter size-full wp-image-1842" title="setting_p2" src="http://www.ayarafun.com/wp-content/uploads/2010/07/setting_p2.png" alt="" width="596" height="121" /></a></p>
<p><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/setting_p2.png"></a>ถ้ากดอ่าน Fuse-bit แล้วไม่มีอะไร error ออกมา แสดงว่า เราติดตั้งโปรแกรม สำเร็จแล้วครับ<br />
แต่ถ้าไม่ work ตรวจสอบสาย กับ config ในโปรแกรม avrdude-GUI อีกรอบครับ อาจจะเลือกไอซีผิค เครื่องโปรแกรมผิด</p>
<p>มาถึงตอนนี้เครื่องเบิร์นแบบ USB ที่ถูกสุดในจักรวาลก้อพร้อมใช้งานแล้วครับ ตอนนี้เราแค่เลือกไฟล์ flash ก้อใช้งานได้แล้วครับ เจอกันในต่อสอง เกี่ยวกับ ใช้เครื่องเบิร์น FTDI Bitbang สำหรับเบิร์น bootloader ให้ arduino ครับ</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2010/07/atmel-programming-with-ftdi-bitbang/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2010/07/atmel-programming-with-ftdi-bitbang/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>แก้ปัญหาไอซี Fusebit เสีย ด้วยเครื่อง Chuprog &#8211; อุปกรณ์เบิร์นไอซีแบบ HighVolt</title>
		<link>http://www.ayarafun.com/2010/07/how-to-clear-lock-bit-with-hv-programming/</link>
		<comments>http://www.ayarafun.com/2010/07/how-to-clear-lock-bit-with-hv-programming/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 19:13:24 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[Chuprog]]></category>
		<category><![CDATA[HVProg]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1789</guid>
		<description><![CDATA[เปิดหัวมาสักแรง เหมือนจะแอบโฆษณา วันนี้ก้อเอาเหตุการณ์สำหรับคนเล่นไมโครฯ คงจะได้เจอกันบ้างครับ อาการ &#8220;Fusebit -Lockbit&#8221; อาการที่จะเกิดขึ้นได้ ถึงจะไม่บ่อยแต่ชวนให้ปวดหัว ปวดใจอย่างแน่นอน อยู่ไอซีที่เรามี หรือ บอร์ดที่เรามี ดันไป set fusebit หรือ ดันไป lockbit เข้าไป burn ไม่ได้ ขยายความอาการ Fusebit Lock เป็นอาการเรียกไอซีของ AVR ครับ ที่วันนี้ไอซีมันไม่ต่อสนองกับเครื่องเบิร์น จะ flash ไม่ได้ จะอ่านก้อไม่ได้ มันอาจจะเกิดได้จาก บางครั้งเราก้อเผลอ ไป lockbit ไอซีจริงๆ ก้อแก้ไม่ได้ บางที่เราก้อไป set fusebit เกี่ยวกับ Clock อาจะทำให้มันให้ ext-clock มันก้อเลยอ่านไม่ได้ บางที่ใช้งานอยู่ มันก้อ hang แล้ว fusebit กับ flash เสียไปก้อมีครับ


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">เปิดหัวมาสักแรง เหมือนจะแอบโฆษณา วันนี้ก้อเอาเหตุการณ์สำหรับคนเล่นไมโครฯ คงจะได้เจอกันบ้างครับ อาการ <strong>&#8220;Fusebit -Lockbit&#8221; </strong>อาการที่จะเกิดขึ้นได้ ถึงจะไม่บ่อยแต่ชวนให้ปวดหัว ปวดใจอย่างแน่นอน อยู่ไอซีที่เรามี หรือ บอร์ดที่เรามี ดันไป set fusebit หรือ ดันไป lockbit เข้าไป burn ไม่ได้</p>
<p style="text-align: center;"><a href="../wp-content/uploads/2010/07/33404_412775463591_250201053591_4363298_5335144_n.jpg"></a><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/33404_412775463591_250201053591_4363298_5335144_n.jpg"><img class="aligncenter size-full wp-image-1839" title="33404_412775463591_250201053591_4363298_5335144_n" src="http://www.ayarafun.com/wp-content/uploads/2010/07/33404_412775463591_250201053591_4363298_5335144_n.jpg" alt="" width="586" height="257" /></a></p>
<blockquote>
<p style="text-align: justify;">ขยายความอาการ Fusebit Lock เป็นอาการเรียกไอซีของ AVR ครับ ที่วันนี้ไอซีมันไม่ต่อสนองกับเครื่องเบิร์น จะ flash ไม่ได้ จะอ่านก้อไม่ได้ มันอาจจะเกิดได้จาก</p>
<ul>
<li>บางครั้งเราก้อเผลอ ไป lockbit ไอซีจริงๆ ก้อแก้ไม่ได้</li>
<li>บางที่เราก้อไป set fusebit เกี่ยวกับ Clock อาจะทำให้มันให้ ext-clock มันก้อเลยอ่านไม่ได้</li>
<li>บางที่ใช้งานอยู่ มันก้อ hang แล้ว fusebit กับ flash เสียไปก้อมีครับ (เจอแบบนี้ รีบไปแก้ไข PCB ด่วนครับ อาการเข้าขั้นหนักครับ)</li>
</ul>
</blockquote>
<p style="text-align: justify;">
<p style="text-align: justify;">ในรอบนี้ผมจะถือว่า อาการ FuseBit Lock ถือได้ว่าเป็นปัญหาระดับชาติกันเลยที่เดียวครับ (เว่อมาก) เพราะว่าทางผมเคยเจอเหตุการณ์มาครั้งหนึ่งตัว ตัวสมัยยังเป็นวันรุ่น ยังมีประสบการณ์น้อยนิด ตอนนนั้นผมใช้เครื่องเบิร์นหรือเครื่อง programming (ขอเรียกว่าเครื่องเบิร์น แล้วกันนะครับ)  เครื่องเบิร์นที่ผมใช้มีปัญหา check หา AVR มันดันเจอผิคเบอร์ แต่ทางผมก้อ force flash เข้าไป <strong>ตกลงไอซี AVR หลายตัวตอนนั้นก้อก้อเสียหมด</strong> <strong>ตอนโน่นเจอ LockBit ซื้อไอซีใหม่อย่างเดียว </strong> เพราะเรายังไม่มีเครื่องโปรแกรม High Volt ใช้กัน ก้อเป็นเรื่องตรวจใจ ถ้าเจออาการแบบนี้ อย่าไปพยายามใช้ครับ ต้องให้ชัวส์ ว่าเราเจอสาเหตุของปัญหาสักก่อนครับ อย่างน้อยก้อให้เครื่องเบิร์นมันเจอไอซี  ซึ่งทางผมเองคาดว่าตัวเครื่องเบิร์นฯ มันไม่ดีครับ (โทษไปเรื่อย) ตอนนั้นผมจะใช้เครื่องเบิร์น แบบผ่านสาย LPT  มันคงควบคุม timing ได้ไม่ดีครับ เศร้าไปหลายวันเลยที่เดียว</p>
<p style="text-align: justify;">สำหรับตอนนี้ประสบการณ์เยอะขึ้น แต่ก้อยังเผลอไป lockbit เหมือนเดิม ไหนก้อแก้ไม่ได้แล้ว ก้อหาเครื่องโปรแกรม HighVolt มาใช้เผื่อไว้เลยดีกว่าวันนี้เราจะมาดูกันว่า เครื่องเบิร์นแบบ HighVolt ดีอย่างไงครับ</p>
<p style="text-align: right;">(สนใจอ่านต่อคลิกเลยครับ)<span id="more-1789"></span></p>
<p style="text-align: justify;">สำหรับกระบวนการ Flash ไอซี AVR ผมเคยอธิบายวิีธี <a href="../2009/09/basic-isp-programming-for-av/">การเบิร์นแบบ ISP</a> ไปแล้ว ใครอยากทบทวนลองเข้าไปอ่านก่อน</p>
<p style="text-align: justify;">เครื่องเบิร์น หรือเครื่องโปรแกรมแบบ Parallel ที่จะมาแนะนำ เหมาะกับนักพัฒนาคนยากอย่างพวกเรานะครับ เป็นผลงานของเพื่อนสมาชิก electoday ครับ นามว่า เครื่องเบิร์น<a href="http://www.electoday.com/bbs/viewthread.php?tid=6042&amp;extra=page%3D1"> &#8220;Chuprog&#8221; </a>ดังรูปที่เห็นดังบนเลย ให้เราหาเครื่องเบิร์นแบบ High Volt ส่งข้อมูลแบบ Parallel มาใช้กันครับ (วิธีการ  flash แบบ  parallel นะครับ ไม่ใช่ผ่าน parallel port /printer port)</p>
<p style="text-align: justify;">สำหรับเครื่องโปรแกรมนี้ พัฒนาต่อโดยคนไทย เพื่อให้หาอุปกรณ์ที่เหมาะกับท้องถิ่นคับ อย่างเช่นใช้ไอซี PIC ตัวเล็กมาทำเป็น USB to Serial ครับ เพื่อใช้เบิร์น AVR มันช่างเป็นการทำลายเกียรติยศของ AVR สักจิงๆ เดี่ยวรอบหน้าจะขอให้ PIC โดน AVR เบิร์นบ้าง (ตึง&#8230;)</p>
<div class="wp-caption aligncenter" style="width: 552px"><img class="  " title="รูปเครื่องโปรแกรม Chuprog  กับเครื่องโปรแกรม Clone ตัวเดิมครับ (ตัวนี้ใช้งานดีกว่า อีเขียวอีกนะครับ)" src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs039.ash2/35307_412634238591_250201053591_4360116_3026656_n.jpg" alt="" width="542" height="419" /><p class="wp-caption-text">Chuprog and AVRISP Clone</p></div>
<p style="text-align: justify;">โดยเครื่องเบิร์นผมได้ทดสอบ การใช้งานโดยทั่วไปๆ ใช้ในโหมด ISP ไม่รู้จะเทียบกันอย่างไง เล่าเป็นประสบการณ์การใช้งานแล้วกันนะครับ เทียบการเครื่อง AVRISP (อีเขียว รูปบน) จากการใช้ AVRISP ตัว Clone ที่ซื้อมาจากจีน มันเจอไอซีบ้าง ไม่เจอบ้างครับ อย่างเช่น ผมต่อสาย ISP เข้ากับบอร์ด mega128 แล้ว Read Signature บางที่มันไม่เจอ แต่เอาไปใช้อ่าน mega8/mega168/mega328 มาก้อเจอดี เรื่องนี้ยังสับสนอยู่ว่า เป็นได้ไง แต่ไปยืมเครื่อง AVRISP MKII ของเพื่อนมาลองเจอมัน (แต่มันแพงนะ) มันก้อแปลดีครับ แต่สำหรับ <strong>Chuprog</strong> นี้ไม่ค่อยเจอปัญหาดังกล่าวครับ</p>
<p style="text-align: center;"><img class="aligncenter" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs052.snc4/34969_412797893591_250201053591_4364085_1938146_n.jpg" alt="" width="350" height="374" /></p>
<p style="text-align: left;"><strong>สำหรับเครื่องเบิร์นแบบ HighVolt ตัวนี้ มีสรรพคุณดังนี้ครับ</strong></p>
<ul>
<li>สามารถเบิร์นผ่าน ISP mode ได้ (เหมือนเครื่องเบิร์นปกติตามท้องตลาด)</li>
<li>สามารถเบิร์นผ่าน HVSP/PP และยังช่วยให้เข้าไปแก้ Fusebit และ Lockbit ได้ครับ</li>
<li>ใช้งานผ่าน USB ได้ มันจะจำลองตัวเอง เป็น serial ใช้งานกับโปรแกรมอื่นได้ง่ายครับ</li>
<li>วงจรใช้ไฟแค่ +5Volt จาก USB เท่านั้น อันนี้ สะดวกครับไม่ต้องไปหา Adaptor ให้ยุ่งยาก โดยที่วงจร High-Volt  เป็นวงจร Switching จะ Up ไฟจาก 5v เป็น 12v</li>
<li>มีโปรโตคอทชุดคำสั่ง STK500 V2 สามารถใช้กับโปรแกรม AVRStudio หรือจะเอาไปใช้กับโปรแกรมอื่นๆก้อยังได้ (คาดว่า Arduino ก้อใช้ได้)</li>
</ul>
<h3>มาดูการใช้จริง</h3>
<p style="text-align: justify;">สำหรับการทดสอบนี้ ผมเน้นไปทางแก้ Fusebit แล้วกันครับ เนื่องจากถ้าไอซีมัน Lock จะมีเหลือวิธีเดียว หาเครื่องโปรแกรม High Volt เข้ามาอ่าน มาเขียนข้อมูลแทน การทำงานของเครื่อง HighVolt ก้อคือ มันจะจ่ายไฟ +12 Volt เข้าที่ขา Reset ครับ ทำให้ไอซี อนุญาติให้เข้าเขียน Flash ได้</p>
<p style="text-align: justify;">สำหรับบอร์ดที่นำมาใช้  เป็นบอร์ดที่โดนล๊อคจริง ผมได้บอร์ดของ ETT  BASE -AVR MEGA128 มาครับ  แต่ก่อนก้อเราส่ง claim ล่ะครับ แป็บเดียวก้อได้ แต่เราอยู่ไกลจากพระโขนง( ETT อยู่พระโขนงนะ) นานๆจะไปที่ สำหรับรอบนี้ น้องๆ ก้อส่งบอร์ดมาให้ลองของ  นี้ถ้า chuprog  ทำไม่ได้ ผมมีเผามันแน่แท้ อิอิ</p>
<p style="text-align: justify;">
<div class="wp-caption aligncenter" style="width: 586px"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs079.snc4/35307_412634223591_250201053591_4360113_5363617_n.jpg" alt="" width="576" height="386" /><p class="wp-caption-text">บอร์ด MEGA128 ที่โดน Lock Bit ใช้งานต่อไม่ได้ล่ะ</p></div>
<p style="text-align: left;">สำหรับการต่อใช้งานในโหมดแบบ Parallel จะยุ่งยากกว่าเดิมมากนะสักหน่อย เพราะว่าเราต้องการส่งข้อมูล Parallel เข้าไปยังไอซี จึงใช้สายสัญญาณเยอะครับ ดังรูป</p>
<p style="text-align: left;">
<p style="text-align: center;"><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs059.snc4/35307_412634218591_250201053591_4360112_4512343_n.jpg" alt="" width="293" height="195" /><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs039.ash2/35307_412634228591_250201053591_4360114_2033267_n.jpg" alt="" width="315" height="196" /></p>
<p>ซึ่งการต่อสายนิ ต้องทำใจครับเพราะว่าการflash แบบ paralell ใช้สายเยอะ และมันก้อยังไม่มีเป็น Port มาตราฐานสักด้วย แต่ใครวางแผนใส่ไว้เผื่อซ่อมก้อดีครับ อย่างบอร์ด MEGA128 ผมก้อได้ต่อตัวรูปข้างล่างครับ ใช้ Port B สำหรับรับส่ง DATA และ Port D เป็นตัวส่งค่า Control แต่เพิ่มขา PA0 ต่อกับ BS2 และเพิ่ม CLK จิ่มลงที่บอร์ด (บอร์ดมันไม่มี pin Xtal1 ออกมาให้)</p>
<p style="text-align: center;"><img class="alignnone" src="http://www.electoday.com/bbs/attachments/month_1006/1006121645794d6874e6835cfc.jpg" alt="" width="502" height="372" /></p>
<p style="text-align: justify;">สำหรับ XTAL สามารถจิ่มหาได้หลังบอร์ด ดังภาพครับ</p>
<p style="text-align: center;"><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs039.ash2/35307_412634233591_250201053591_4360115_7117847_n.jpg" alt="" width="584" height="389" /></p>
<p style="text-align: left;">
<p style="text-align: left;">เมือเสียบสายสำเร็จ ให้ปรับโหมด Programming เป็น PP/HVSP ครับ แล้วลองตรวจสอบไอซี ว่าถูกต้องหรือ่ปาวครับ ข้อควรระวังผมเสียบสาย DATA ผิคเรียงกลับกัน มันก้อยังอ่าน Signature ออกมาเป็น 0&#215;00 ,0&#215;00 ,0&#215;00  อันนี้ให้ไปไปแก้ไขสายก่อนนะครับ</p>
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs052.snc4/34969_412797893591_250201053591_4364085_1938146_n.jpg" alt="" width="350" height="374" /></p>
<p style="text-align: left;">
<p style="text-align: left;">จากนั้นเข้าไปแก้ไข Fusebit หรือ LockBit ที่ให้เป็น Default  เราก้อสามารถกลับมาใช้งานแบบ ISP ได้ตามปกติแล้ว  สำหรับคนที่ทำถึงขั้นตอนนี้แล้วไอซียังใช้งานไม่ได้ ส่งกลับ claim ผู้ผลิตครับ อาจจะเสียแล้วนะครับ</p>
<p style="text-align: center;"><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs059.snc4/35307_412634243591_250201053591_4360117_80234_n.jpg" alt="" width="432" height="289" /></p>
<p style="text-align: left;">
<p style="text-align: left;">สรุป สิ่งที่ประทับใจกันหน่อยนะครับ</p>
<p style="text-align: left;"><strong>ประทับใจ</strong></p>
<ul>
<li>เราสามารถแก้ไข Fuse bit,lock bit ไ้ด้แล้ว แถมเป็นเครื่องโปรแกรมใช้งานปกติได้อีก</li>
<li>วงจรของเครื่องโปรแกรมสามารถจ่ายไฟ +5V และ +12V สำหรับโหมด HV ผมว่าสะดวกมากครับ ไม่ต้องพก adaptor</li>
<li>หาโปรแกรมที่มาใช้งาน ง่ายมันใช้ โปรโตคอล STK500v2 มาตราฐานดี</li>
</ul>
<p style="text-align: left;"><strong>ไม่ประทับใจ</strong></p>
<ul>
<li>คงหาซื้อยาก สำหรับคนทั่วไป ตอนนี้ซื้อได้ทางเน็ทอย่างเดียว</li>
<li>Design Package ต้องปรับครับ เกือบดีแล้ว</li>
</ul>
<p style="text-align: left;">เอาล่ะ คราวนี้เราก้อแก้ไขบอร์ด AVR ด้วยตัวเองได้แล้ว หรือไม่ก้อพอเห็นวิธีการแก้ไขบ้างล่ะ ขอบคุณที่เข้ามาติดตาม ใครใช้งานเจอปัญหาอะไรก้อ share ก้อได้นะครับ</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2010/07/how-to-clear-lock-bit-with-hv-programming/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2010/07/how-to-clear-lock-bit-with-hv-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ออกแบบ นาฬิกา หลงยุค (The Lost Clock)</title>
		<link>http://www.ayarafun.com/2010/05/the-lost-clock-by-arduino/</link>
		<comments>http://www.ayarafun.com/2010/05/the-lost-clock-by-arduino/#comments</comments>
		<pubDate>Sat, 15 May 2010 02:03:45 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Project]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[retro]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1677</guid>
		<description><![CDATA[วันนี้ผมมานำ เสนอ นาฬิกาหลงยุค (lost clock) เป็นนาฬิกาสไตล์ย้อนยุค ตั้งใจจะเอา นาฬิกาดิจิตอลรวมกับหลอดแก้วสูญญากาศ อยากจะทำอุปกรณ์ไฮเทคในยุคปี 60s มันจะออกมาหน้าตามันจะออกมาเป็นอย่างไงน่ะ สำหรับ &#8220;นาฬิกาหลงยุค&#8221; เป็นผลงานที่ผม ได้เข้าร่วมประกวดในงาน PEAC-2009 และได้ตีพิมพ์ในนิตยสาร The Prototype Magazine (TPE) ซึ่งในบทความจะเล่าถึงการสร้าง กว่าจะเป็นนาฬิกาหลงยุค ซึ่งตอนนี้ก้อได้ตีพิมพ์เรียบร้อยแล้วใน หนังสือ TPE เล่มที่ 10 บทความเรื่อง THE LOST CLOCK เดือนปัจจุบันนี้ล่ะครับ (เดือนพฤษภาคม) จะมีรูปสีั การอธิบายง่าย ใครอยากเก็บไว้อ่าน ก้ออย่าลืมไปอุดหนุน ทาง TPE กันล่ะครับ สำหรับนาฬิกาเรือนนี้ยังเป็นต้นแบบอยู่นะครับ ยังไม่ได้ ออกแบบ PCB จริงออกมา อดใจรอสักนิดนะครับสำหรับคนที่อยากจะทำเล่นกัน สำหรับบทความในเวปก้อนี้ ถือว่ามา preview เล็กๆน้อยๆ แล้วกันนะครับ สำหรับในโปรเจคนี้ ได้เอาหลอดแสดงผล สูญญากาศ


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">วันนี้ผมมานำ เสนอ<strong> นาฬิกาหลงยุค (lost clock)</strong> เป็นนาฬิกาสไตล์ย้อนยุค ตั้งใจจะเอา นาฬิกาดิจิตอลรวมกับหลอดแก้วสูญญากาศ อยากจะทำอุปกรณ์ไฮเทคในยุคปี 60s มันจะออกมาหน้าตามันจะออกมาเป็นอย่างไงน่ะ<span style="font-size: small;"><span style="font-family: times new roman;"> </span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: times new roman;">สำหรับ  &#8220;นาฬิกาหลงยุค&#8221; เป็นผลงานที่ผม ได้เข้าร่วมประกวดในงาน PEAC-2009 และได้ตีพิมพ์ในนิตยสาร <a href="http://www.tpemagazine.com/2009/">The Prototype  Magazine (TPE)</a> ซึ่งในบทความจะเล่าถึงการสร้าง กว่าจะเป็นนาฬิกาหลงยุค ซึ่งตอนนี้ก้อได้ตีพิมพ์เรียบร้อยแล้วใน หนังสือ TPE เล่มที่ 10 บทความเรื่อง <a href="http://www.tpemagazine.com/2009/images/issue10/thelostclock.jpg">THE LOST CLOCK</a> เดือนปัจจุบันนี้ล่ะครับ (เดือนพฤษภาคม) จะมีรูปสีั การอธิบายง่าย ใครอยากเก็บไว้อ่าน ก้ออย่าลืมไปอุดหนุน ทาง TPE กันล่ะครับ</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: times new roman;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/05/lostclock.jpg"><img class="aligncenter size-full wp-image-1685" title="lostclock" src="http://www.ayarafun.com/wp-content/uploads/2010/05/lostclock.jpg" alt="" width="489" height="392" /></a></span></span></p>
<p style="text-align: justify;"><span id="more-1677"></span>สำหรับนาฬิกาเรือนนี้ยังเป็นต้นแบบอยู่นะครับ ยังไม่ได้ ออกแบบ PCB จริงออกมา อดใจรอสักนิดนะครับสำหรับคนที่อยากจะทำเล่นกัน สำหรับบทความในเวปก้อนี้ ถือว่ามา preview เล็กๆน้อยๆ แล้วกันนะครับ</p>
<p style="text-align: justify;">สำหรับในโปรเจคนี้ ได้เอาหลอดแสดงผล สูญญากาศ ของ ซึ่งเป็นหลอดแบบ 7-segment ที่ผลิตและใช้กันในช่วงปี 1960-1969 อุปกรณ์ส่วนใหญ่ เป็น หลอดสูญญากาศ มันจะทำงานกับไฟสูงครับ 100-200 โวลต์ ซึ่งหลอดนี้ยังสามารถหาซื้อได้ในไทยครับ (จะเรียกมันตกค้างในไทยก้อได้) ที่ร้านโชคชัยที่บ้านหม้อ ราคาไม่แพงมากครับ</p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="http://www.ayarafun.com/wp-content/uploads/2010/05/lostclock2.jpg"><img class="aligncenter size-full wp-image-1684" title="lostclock2" src="http://www.ayarafun.com/wp-content/uploads/2010/05/lostclock2.jpg" alt="" width="502" height="378" />	<p class="numberOfNotes">Notes: 5</p>        <script type="text/javascript">
jQuery(function() {
    knsprImageNote.initializeNoteDisplay('.wp-image-1684', [{"x1":67,"y1":58,"width":74,"height":129,"imageId":"1684","note":"EDFIN TUBE","url":""},{"x1":67,"y1":58,"width":74,"height":129,"imageId":"1684","note":"EDFIN TUBE","url":""},{"x1":67,"y1":58,"width":74,"height":129,"imageId":"1684","note":"EDFIN TUBE","url":"http://"},{"x1":387,"y1":88,"width":161,"height":49,"imageId":"1684","note":"IC HC595 x6","url":""},{"x1":83,"y1":266,"width":56,"height":121,"imageId":"1684","note":"EDFIN TUBE in working","url":""}], 1684, false, false, 610, 460);
});
</script><p>This image contains notes, please open the website directly</p></a></p>
<p>ส่วนประกอบหลักๆ ส่วนประมวลผล และ ส่วนติดต่อผู้ใช้ ผมนำมาจากโปรเจค<a title="Permanent Link: สร้างนาฬิกาดิจิตอลจาก arduino" rel="bookmark" href="../2009/05/digital-clock-with-arduino-ds1307-seven-segment/"> นาฬิกา ดิจิตอลจาก arduino</a> จากเวปผมนี้ล่ะครับ มาเพิ่มเติมส่วนขับ ไฟสูง High-Volt และดัดแปลงโปรแกรมนิดหน่อยครับ</p>
<p>- <a href="http://www.ayarafun.com/wp-content/uploads/2010/05/bitmap_sch.zip">วงจร (schematic) -- PNG file</a></p>
<p><a href="http://www.ayarafun.com/wp-content/uploads/2010/05/diagram.png"><br />
</a>อันนี้เป็นวีดีโอ ตอนแข่งขัน ขอบคุณทางเวป <cite><strong>Mce-Engineer</strong></cite> ที่แอบถ่ายผมไว้</p>
<p style="text-align: center;"><span class="youtube">
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/FBY2TJLyKYg&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showsearch=0?rel=1" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/FBY2TJLyKYg&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showsearch=0?rel=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=FBY2TJLyKYg">www.youtube.com/watch?v=FBY2TJLyKYg</a></p></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2010/05/the-lost-clock-by-arduino/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2010/05/the-lost-clock-by-arduino/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ชุดทดลองอิเล็กทรอนิกส์ สำหรับ Arduino ภาคปฏิบัติ</title>
		<link>http://www.ayarafun.com/2010/04/arduino-experiment-kit/</link>
		<comments>http://www.ayarafun.com/2010/04/arduino-experiment-kit/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 05:32:15 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1625</guid>
		<description><![CDATA[สวัสดีครับ มิตรรัก แฟนรัก ที่เข้ามาอ่านกัน สำหรับโพสนี้ ผมจะมาเสนอ ชุดทดลองอิเล็กทรอนิกส์ เบื้องต้น และ ขั้นสูง (advance) ด้วย arduino กันครับ แต่ขอบ่น ตามกระแสสักนิด ช่วงนี้ประเทศเรามีแต่เรื่องเครียด ประท้วงกัน ยึดโน่น ยึคนี้ ปิดถนน ผมสงสารเยาวชน ยุคนี้จริงๆ ยิ่งในยุคนี้ระบบการสื่อสารมีหลายช่องทางมาก นอกจาก ทีวี วิทยุ ที่เราก้อดูกันพร้อมหน้า พร้อมตากันได้ แล้วยังมีสื่อที่รับจาก  youtube , twitter ,facebook ที่เราทั้งรับ และแสดงความคิดเห็นได้ ที่ผมกลัวคือ น้องๆหลายคน อาจจะซึมซาบความรุนแรง จากกระประท้วง แต่เพียงอย่างเดียว แล้วอาจจะขาดการคิด การไตร์ตรองให้ดีสักก่อน ทำให้กลายเป็นคนหัวรุนแรงไปสักก่อน ขนาดอย่างผมแก่ๆแล้วฟัง ผมยังรุนแรง ไปบางช่วงเวลาเลย ต้องไปหาโปรเจคทำแก้เครียด เอาล่ะครับ พานอกเรื่องไปได้อีก สำหรับโพสนี้ ผมได้รวบรวม เอกสาร workshop ที่ผมว่ามันเหมาะมากสำหรับคนเริ่มต้น


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="aligncenter" src="http://www.clipartpal.com/_thumbs/Youngscientist_tnb.png" alt="" width="180" height="238" /></p>
<p style="text-align: justify;">สวัสดีครับ มิตรรัก แฟนรัก ที่เข้ามาอ่านกัน สำหรับโพสนี้ ผมจะมาเสนอ ชุดทดลองอิเล็กทรอนิกส์ เบื้องต้น และ ขั้นสูง (advance) ด้วย arduino กันครับ แต่ขอบ่น ตามกระแสสักนิด ช่วงนี้ประเทศเรามีแต่เรื่องเครียด ประท้วงกัน ยึดโน่น ยึคนี้ ปิดถนน ผมสงสารเยาวชน ยุคนี้จริงๆ ยิ่งในยุคนี้ระบบการสื่อสารมีหลายช่องทางมาก นอกจาก ทีวี วิทยุ ที่เราก้อดูกันพร้อมหน้า พร้อมตากันได้ แล้วยังมีสื่อที่รับจาก  youtube , twitter ,facebook ที่เราทั้งรับ และแสดงความคิดเห็นได้ ที่ผมกลัวคือ น้องๆหลายคน อาจจะซึมซาบความรุนแรง จากกระประท้วง แต่เพียงอย่างเดียว แล้วอาจจะขาดการคิด การไตร์ตรองให้ดีสักก่อน ทำให้กลายเป็นคนหัวรุนแรงไปสักก่อน ขนาดอย่างผมแก่ๆแล้วฟัง ผมยังรุนแรง ไปบางช่วงเวลาเลย ต้องไปหาโปรเจคทำแก้เครียด</p>
<p style="text-align: justify;">เอาล่ะครับ พานอกเรื่องไปได้อีก สำหรับโพสนี้ ผมได้รวบรวม เอกสาร workshop ที่ผมว่ามันเหมาะมากสำหรับคนเริ่มต้น ไม่รู้จะเริ่มอย่างไง ก้อทดลองทำตามเขาไปเลยแล้วกัน สำหรับเอกสารนี้ จัดทำจากเมืองนอก มันจะเป็นภาษาอังกฤษครับ ใครสนใจตามไปโหลดกันครับ</p>
<p style="text-align: justify;">รูปแบบของ Workshop ด้วยตัวเอง นี้มาเจ๋งอย่างไงเหรอครับ คือ ทางคนจัดทำเอกสาร เขามีไอเดียว่าอยากให้ทดลอง อิเล็กทรอนิกส์ แบบไม่มีการบัคกี้เลย ให้ทดลองบนบอร์ดทดลอง(bredboard) ต่อกันแบบง่ายๆ สำหรับในเอกสารนี้ิจะมีแผ่น sheet มาให้ด้วย แผ่น sheet จะแผงภาพเล็กๆ บอร์ดทดลองแล้ว เอาไอชี มาประกอบตามกันไปได้ครับ แถมในเอกสารยังมีตัวอย่างโปรแกรม มีเทคนิคการโมดิฟายโปรแกรม ให้ได้ทดลองตามไปเรื่อยๆ<span id="more-1625"></span></p>
<h2 style="text-align: justify;"><strong>ชุดเบื้องต้น (Basic Step)</strong></h2>
<p id="productName">สำหรับอันนี้ <strong>ชุดเบื้องต้น (Basic Step)</strong> ทาง <a href="http://www.adafruit.com/">adafruit</a> เขาจะเรียกว่า <a href="http://www.adafruit.com/index.php?main_page=product_info&amp;cPath=17&amp;products_id=170">Arduino Experimentation Kit &#8211;  ARDX &#8211;  v1.0</a> เป็นชุดทดลองที่ไม่เหมือนใครมาก่อนครับ เพราะว่าเราจะได้ต่อกันเองเลยแผงบอร์ดทดลอง (bredboard)  ผมว่าแบบนี้จะได้คุ้นเคยกับ อุปกรณ์ อิเล็กทรอนิกส์มากขึ้น และ การทดลองด้วยตัวเอง จะทำให้เราเจอปัญหา แก้ไข เข้าใจไปเอง ทำไปเดียวก้อเป็น</p>
<p style="text-align: justify;">สำหรับการทดลองภายในจะประกอบด้วย</p>
<p style="text-align: justify;"><img class="alignright" src="http://www.adafruit.com/images/large/ARDX-01_LRG.jpg" alt="" width="411" height="277" /></p>
<ul>
<li>เริ่มต้นด้วยไฟกระพริบ (Blinking LED)</li>
<li>ไฟ LED 8 ดวง (8 LED Fun  &#8211; Multiple LEDS)</li>
<li>ควบคุมมอเตอร์ (Spin Motor Spin &#8211; Trasistor and motor)</li>
<li>ควบคุมมอเตอร์เซอร์โว (A Single Servo)</li>
<li>ขยาย port และ ควบคุมไฟ LED ด้วยไอชี 595 (8 More LEDS with 595 Shift Register)</li>
<li>ปุ่ม (Button Pressing)</li>
<li>อ่านค่าหมุนๆๆ (Twisting Potentimeters)</li>
<li>อ่านค่าแสง (Light Photo Resisters)</li>
<li>อ่านค่าอุณหภูมิ (TMP36 Temperture senosr)</li>
<li>โหลดใหญ่ (Larger Loads with Relays)</li>
</ul>
<h4><strong>สนใจเอกสาร กดไป download ได้ตามนี้ครับ</strong></h4>
<ul>
<li><a href="http://oomlout.com/products/ARDX/ARDX-experimenters-guide-DD.pdf">เอกสารทดลอง workshop (13MB)</a> or   <a href="http://oomlout.com/products/ARDX/ARDX-experimenters-guide-WEB.pdf">(2MB)</a></li>
<li><a href="http://oomlout.com/products/ARDX/ARDX-circuit-sheets.pdf">Printable  Circuit Board Layout Sheets</a></li>
<li><a href="http://www.instructables.com/id/EN90SWTFRD89IBH/">Online  Guide</a></li>
</ul>
<h2 style="text-align: justify;"><strong>ขั้น สูงกว่า (Advance Step)</strong></h2>
<p>ชุดต่อมา <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9646"><strong>ขั้นสูงกว่า (Advance Step)</strong></a> ชุดนี้พัฒนาต่อมาจากของ <a href="http://www.adafruit.com/">Ladyada </a>แต่วางขายที่ <a href="http://www.sparkfun.com">sparkfun </a>ครับ ชุดนี้ชื่อ &#8220;<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9646">Arduino Inventor&#8217;s Kit</a>&#8221;</p>
<p>การทดลอง คล้ายกัน แต่อันนี้เน้นการเป็นนักประดิษฐ์ครับ</p>
<p style="text-align: justify; padding-left: 30px;"><a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9646"><img class="alignleft" src="http://static.sparkfun.com/images/products/Kit-temp-_working_copy.jpg" alt="" width="326" height="326" /></a>สำหรับการทดลองภายในจะประกอบด้วย</p>
<ul style="padding-left: 30px;">
<li>ไฟกระพริบ (Blinking LEDs)</li>
<li> ควบคุมมอเตอร์ของเล่น  (Controlling a toy motor)</li>
<li> ควบคุมมอเตอร์เซอร์โว (Controlling a servo)</li>
<li> สร้างเสียงดนตรี(เสียงแย่) Making (bad) music</li>
<li> ตอบสนองกับปุ่ม (Responding to buttons)</li>
<li> หมุนวอลุ่ม (Twisting a volume knob)</li>
<li> ตรวจจับแสงสว่าง (Detecting ambient light)</li>
<li> อ่านค่าอุณหภูมิ (Reading temperature)</li>
<li> ควบคุมอุปกรณ์ใหญ่ (Controlling big devices)</li>
</ul>
<h4 style="padding-left: 30px;"><strong>สนใจเอกสาร กดไป download ได้ตามนี้ครับ<br />
</strong></h4>
<ul style="padding-left: 30px;">
<li> <a href="http://www.sparkfun.com/datasheets/DevTools/Arduino/AIK%20Guide%20Web%20Quality%202-19-10.pdf" target="_blank">เอกสาร Workshop (Web quality guide</a>) (1MB)</li>
<li>Print quality guide (34MB!)</li>
<li><a href="http://www.sparkfun.com/datasheets/DevTools/Arduino/AIK%20Breadboard%20Overlays%202-22-10.pdf" target="_blank">Circuit overlays</a></li>
</ul>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2010/04/arduino-experiment-kit/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2010/04/arduino-experiment-kit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>บันทึกนักทดลอง [ตอนที่ 1] ลองไปมั่วๆ</title>
		<link>http://www.ayarafun.com/2009/12/%e0%b8%9a%e0%b8%b1%e0%b8%99%e0%b8%97%e0%b8%b6%e0%b8%81%e0%b8%97%e0%b8%94%e0%b8%a5%e0%b8%ad%e0%b8%87-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-1/</link>
		<comments>http://www.ayarafun.com/2009/12/%e0%b8%9a%e0%b8%b1%e0%b8%99%e0%b8%97%e0%b8%b6%e0%b8%81%e0%b8%97%e0%b8%94%e0%b8%a5%e0%b8%ad%e0%b8%87-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-1/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 16:34:00 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[cnc]]></category>
		<category><![CDATA[take]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1365</guid>
		<description><![CDATA[ช่วงนี้ เข้ามาไม่ได้เห็นโปรเจคอะไร อย่าพึ่งตกใจ ว่าเวปผมเปลี่ยนไปสักแล้ว จิงๆ ตอนนี้ทางเราก้อยังทำการสร้าง ทดลองโปรเจคกันต่อไปเรื่อยครับ แต่ส่วนมากก้อยังไม่มีอะไร work มากครับ มันเน้นไปทดลองโหลต libary มาลองแล้ว สักมากกว่า พวกอยากรู้ อยากลอง งั้นก้อมาดูว่า เล่นอะไรไปแล้วบ้างนะครับ อาจจะเป็นบันทึกไปหน่อยนะครับ 1. Music /tone ทดลอง Tone libary มันไว้สร้างเสียงครับ แถมมีโปรแกรมส่วนเล่นเพลงตามโน็ตด้วย วิธีการสร้างเสียงใช้ PWM กับ timer ของ arduino /AVR ต่อง่ายมาก แค่ ลำโพงต่อเขาขา PWM กับ R หนึ่งตัว Arduino/AVR มันก้อทำเพลงได้นะ ไม่ต้องมี DAC ใน Linary มี เพลงน่ารัก ยุค 60 เยอะเลย แต่ข้อเสียของมัน แต่มันจะเสีย timer


Related posts:<ol><li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
<li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">ช่วงนี้ เข้ามาไม่ได้เห็นโปรเจคอะไร อย่าพึ่งตกใจ ว่าเวปผมเปลี่ยนไปสักแล้ว จิงๆ ตอนนี้ทางเราก้อยังทำการสร้าง ทดลองโปรเจคกันต่อไปเรื่อยครับ แต่ส่วนมากก้อยังไม่มีอะไร work มากครับ มันเน้นไปทดลองโหลต libary มาลองแล้ว สักมากกว่า พวกอยากรู้ อยากลอง</p>
<p>งั้นก้อมาดูว่า เล่นอะไรไปแล้วบ้างนะครับ อาจจะเป็นบันทึกไปหน่อยนะครับ</p>
<p><strong>1. Music /tone</strong></p>
<ul>
<li> ทดลอง<a href="http://code.google.com/p/arduino-tone/"> Tone libary</a> มันไว้สร้างเสียงครับ แถมมีโปรแกรมส่วนเล่นเพลงตามโน็ตด้วย</li>
<li>วิธีการสร้างเสียงใช้ PWM กับ timer ของ arduino /AVR ต่อง่ายมาก แค่ ลำโพงต่อเขาขา PWM กับ R หนึ่งตัว</li>
<li>Arduino/AVR มันก้อทำเพลงได้นะ ไม่ต้องมี DAC</li>
<li>ใน Linary มี เพลงน่ารัก ยุค 60 เยอะเลย</li>
<li>แต่ข้อเสียของมัน แต่มันจะเสีย timer กับ PWM ไปนะ มันอาจจะเอาไปใช้งาน ต่อยอด ได้ยากครับ</li>
</ul>
<p><strong>2.<a href="http://www.arduino.cc/playground/Code/Dataflash"> Dataflash</a></strong></p>
<ul>
<li>ที่ทดลอง เพื่อนใน electoday แนะนำมา  ตอนนั้นอยากได้วิธีเอาไฟล์เสียงมาเก็บไว้บน arduino</li>
<li> มันเป็น flash แบบใหม่ (จิงๆ ไม่ใหม่มาก) แต่ผมไม่เคยลอง ความจุมันเยอะ ราคาถูก ก้อเลย เอามาลองว่าใช้ยากไหม</li>
<li> ที่ผมได้มาเป็นมา Dataflash 4Mbit จาก ES ขนาดเร็วเป็น มา bit นะครับไม่ใช้ byte ใช้จริงๆ ก้อ หาร 8 อีกที่</li>
<li> ตอนนี้กำลังเริ่มเล่น อันนี้ได้ความว่า มันมี RAM /Flash เราเอาข้อมูลอัดเข้า RAM แล้ว dump ลง flash อีกที่ โดยที่ flash</li>
<li>มันจะแบ่งเก็บเป็น Page โดยแต่ล่ะ Page มีขนาด 256Byte จำนวนหน้าก้อ เท่ากันขนาด flash ในไอชีเราครับ</li>
</ul>
<p><span id="more-1365"></span></p>
<p><strong>3. Ball track จาก BLACK BERRY ไม่ work</strong></p>
<ul>
<li> ตอนนี้ยังไม่มี hall switch เอา เลยเอา hall sensor ที่หาซื้อได้จาก es มาก่อน ซึ่งมัน อ่านเป็น analog ก้อเลยเขียนนับหยาบๆ (นับยากๆด้วย)</li>
<li> รู้สึกว่า ball black berry นิ หมุน หนึ่งรอบ มันจะรอบ หนึ่งครั้ง  (มันอย่างงั้นหรือป่าว ผมก้อไม่มี black berry สักด้วย) ซึ่งมันก้อไม่ต่างอะไรกับปุ่มธรรมดานะ</li>
<li>ตอนแรก นึกว่ามันจะเหมือน encoder ตัว ball track มันจะแกนแม่เหล็ก สี่แกน บน ล่าง ซ้าย ขวา  การใช้งาน เราสามารถจับได้แต่ความ เร็ว เพื่อเอาไปปรับเปลี่ยนหน้า text</li>
<li>สุดท้ายก้อยังเจอปัญหา การติดตั้ง ตอนนี้ไม่ได้ ทำบอร์ด วางบน proto board ก้านของบอลมันติดกับแม่เหล็ก ระยะห่าง ระหว่างบอล กับ sensor ก้อมีผลครับ ตอนนี้เลยหมุน ไป ตัว sensor up down หมุนหมด (ในกรณีนี้ผมใช้ hall sensor ไม่ได้ใช้ hall แบบ switch) รอหา hall switch มาได้จะ ลุ้นกันใหม่</li>
</ul>
<p><strong>4. นาฬิกาหลงยุค </strong></p>
<p>สร้าง นาฬิกาจากหลอด VFD โบร้าณ โบราณ หลอดน่าจะมีอายุมากกว่า 30 ปีแล้ว เป็นหลอดใช้ทำ คิดว่าใช้เครื่องคิดเลข เครื่องมือวัดยุคแรกๆ  รุ่นพ่อ รุ่นปู่ เราอาจจะเคยเห็น ผมว่าอุปกรณ์แบบนี้ ในสมัยนั้นน่าจะมีราคาแพงมาก ก้อเครื่องคิดเลข มันก้อน่าจะเป็น PDA ของยุคโน่นเลยมั่ง แต่มันก้อหลงมาอยู่ในมือผม</p>
<p style="text-align: justify;">ออกแบบเป็นนาฬิกาดู เอามาแข่งกับ nixon หลังจากหาข้อมูล พบว่า มันจุดไส้หลอดด้วยไฟกระแสตรง DC 170 volt ขึ้น จะเอาไฟจากไหน 170 volt  ผมก้อเอามาจากไฟกระแสสลับนี้ล่ะเอามาทำผ่านไดโอด สยอง เล็กน้อย เกิดไฟดูด</p>
<p style="text-align: justify;">ปัญหาต่อมา วงจร digital ทำงานที่ระดับไฟแค่ 5 volt จะไปควบคุมได้ไง อันนี้ก้อเลยลองสร้าง ภาคขับ ทำมาจาก transitor MPSA42 กับ MPSA92 ตอนนี้ภาคขับไม่มีปัญหาครับ</p>
<p style="text-align: justify;">ทดลองขับแบบหลายๆ หลอดดู ด้วยใช้ เทคนิดทำแบบ multiplex  หรือสแกนเป็นหลักๆ ปรากฏว่าไม่ work , Segment ในหลอดยังสว่างอยู่ ยังไม่ดับไม่ทัน ทำให้ดูเลขไม่ออก เพราะว่าไฟที่ใช้ มันเป็นไฟ High volt อาจจะหาวิธีเร่งความเร็วตรงนี้ แต่ก้อทดลองทำการสแกนให้ช้าลง ก้อทำให้มุมแต่ล่ะหลักเป็นไฟกระพริบ ดูแปลกตา แต่มันไม่สวยนะครับ เหมือนหลอดจะปัญหา</p>
<p>ตอนนี้จะใช้วิธีไม่ สแกน จะต่อ I/O ควบคุมแทน ว่าจะใช้ HC595 เป็น serial to pararell เป็น buffer ร่วมกับภาค high volt เดิม เดี่ยวลุ้นกันว่าจะเอาตัวนี้ไปโชว์ที่งานประกวดครับ</p>
<p><strong>5. ทดลองใช้ CNC เครื่องคอมก้อเสีย</strong></p>
<ul>
<li> ตัวนี้เป็นโปรเจคร่วมกับรุ่นน้องว่าจะเอา CNC มาใช้ทำงานกัน ก้อเลยต้องเรียนรู้กันหน่อย ปีหน้าได้เห็นอะไร เจ๋งๆ แน่ๆครับ</li>
<li>ผมเคยใช้งาน CNC ,แต่ตัวนี้ตัวใหม่เป็น ball screw ทำงานเร็วมาก ความเร็วสูงสุด 2000mm/sec ยังไม่ได้ลองความเร็วสูงสุดครับ ความผิคพลาดในการเคลื่อนที่น้อยมากๆ</li>
<li>ผมเสียเวลามากกๆๆ กับการลง windows เพิ่งจากรู้ว่า โปรแกรม mach3 ประเทศเรานิ ใช้ winxp sp2 เท่านั้น โคตรมีเหตุผลเลย เครื่องจะเจ้งอีก ตกลงทั้งวัน ทำอะไรก้อไม่ work ฮ่าๆ</li>
<li>ตอนนี้ทำให้มันทำงานได้แล้ว เพิ่งจะเข้าใจแล้วว่า CNC วิ่งดีๆ มันชีวิตมีความสุขอย่างไง ฮ่าๆ (ออกแนวบ้าไปแล้วเล่นเยอะไป)</li>
</ul>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2009/12/%e0%b8%9a%e0%b8%b1%e0%b8%99%e0%b8%97%e0%b8%b6%e0%b8%81%e0%b8%97%e0%b8%94%e0%b8%a5%e0%b8%ad%e0%b8%87-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-1/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
<li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/12/%e0%b8%9a%e0%b8%b1%e0%b8%99%e0%b8%97%e0%b8%b6%e0%b8%81%e0%b8%97%e0%b8%94%e0%b8%a5%e0%b8%ad%e0%b8%87-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</title>
		<link>http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/</link>
		<comments>http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 08:59:47 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Project]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[rf433]]></category>
		<category><![CDATA[virtual wire]]></category>
		<category><![CDATA[wireless sensor]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1302</guid>
		<description><![CDATA[สวัสดีครับ ช่วงนี้กำลังบ้างาน กับไปออกกำลังกายครับ สุขภาพไม่ดี ทำอะไร ก้อไม่ดีนะครับ มือยังคัน หาโครงการใหม่ๆมาลองทำ ตอนนี้ผมมีโครงการจะทำอุปกรณ์ควบคุมภายในบ้าน ยังไม่ได้ตั้งชื่อนะครับ ตอนนี้เรียกว่า Smart Home ไปก่อน โดยโปรเจคนี้ ผมจะได้ทดลองการสื่อสารหลายๆ อย่าง อย่างระยะใกล้ก้อจะใช้สัญญาณวิทยุ RF หรือ อุปกรณ์ไร้สาย เพื่อเอามาสร้าง เซ็นเซอร์ ไร้สาย กับ ทำรีโมตไร้สาย กับระยะไกลขึ้นมาอีกนิด ก้อว่าจะใช้ internet กับ twitter ก้อทดลองไปแล้วคร่าวๆ วันนี้เลยมาเล่าเรื่องทดลองอุปกรณ์สื่อสาร กับ arduino กันก่อนครับ โดยตอนนี้ ผมจะรวบรวมโมดูลไร้สาย ที่มาในไทยและราคาไม่สูงมากมาทดลองก่อน หลังจากที่ดูใน Playground ของ Arduino.cc จะพบว่าในข้อหัว wireless จะมีอุปกรณ์รับส่งไร้สาย อยู่ หลายตัวมาก ถ้าเอาตัวที่หาได้ในไทยก้อจะมี  Bluetooth, Zigbee, โมดุล RF433, โมดุล NRF24L01 ซึ่งราคามีตั้งแต่


Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
<li><a href='http://www.ayarafun.com/2009/12/%e0%b8%9a%e0%b8%b1%e0%b8%99%e0%b8%97%e0%b8%b6%e0%b8%81%e0%b8%97%e0%b8%94%e0%b8%a5%e0%b8%ad%e0%b8%87-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-1/' rel='bookmark' title='Permanent Link: บันทึกนักทดลอง [ตอนที่ 1] ลองไปมั่วๆ'>บันทึกนักทดลอง [ตอนที่ 1] ลองไปมั่วๆ</a></li>
<li><a href='http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/' rel='bookmark' title='Permanent Link: ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่'>ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">สวัสดีครับ ช่วงนี้กำลังบ้างาน กับไปออกกำลังกายครับ สุขภาพไม่ดี ทำอะไร ก้อไม่ดีนะครับ มือยังคัน หาโครงการใหม่ๆมาลองทำ ตอนนี้ผมมีโครงการจะทำอุปกรณ์ควบคุมภายในบ้าน ยังไม่ได้ตั้งชื่อนะครับ ตอนนี้เรียกว่า Smart Home ไปก่อน</p>
<p style="text-align: justify;">โดยโปรเจคนี้ ผมจะได้ทดลองการสื่อสารหลายๆ อย่าง อย่างระยะใกล้ก้อจะใช้สัญญาณวิทยุ RF หรือ อุปกรณ์ไร้สาย เพื่อเอามาสร้าง เซ็นเซอร์ ไร้สาย กับ ทำรีโมตไร้สาย กับระยะไกลขึ้นมาอีกนิด ก้อว่าจะใช้ internet กับ twitter ก้อทดลองไปแล้วคร่าวๆ</p>
<p style="text-align: justify;">วันนี้เลยมาเล่าเรื่องทดลองอุปกรณ์สื่อสาร กับ arduino กันก่อนครับ โดยตอนนี้ ผมจะรวบรวมโมดูลไร้สาย ที่มาในไทยและราคาไม่สูงมากมาทดลองก่อน</p>
<p><a href="http://www.ayarafun.com/wp-content/uploads/2009/10/4054559555_155903c32d.jpg"><img class="aligncenter size-full wp-image-1569" title="4054559555_155903c32d" src="http://www.ayarafun.com/wp-content/uploads/2009/10/4054559555_155903c32d.jpg" alt="" width="500" height="355" /></a></p>
<p style="text-align: justify;">หลังจากที่ดูใน Playground ของ <span onclick="tagshow(event)">Arduino</span>.cc จะพบว่าในข้อหัว wireless จะมีอุปกรณ์รับส่งไร้สาย อยู่ หลายตัวมาก ถ้าเอาตัวที่หาได้ในไทยก้อจะมี  Bluetooth, Zigbee, โมดุล RF433, โมดุล NRF24L01</p>
<p style="text-align: justify;"><span id="more-1302"></span></p>
<p>ซึ่งราคามีตั้งแต่ สองพัน ถึง ร้อยกว่าบาท ความสามารถแตกต่างกันแน่ๆ ซึ่งผมก้อขอรวบรวมกับสรุปสั้นๆ ดังต่อไปนี้</p>
<h3><span style="font-size: medium;"><span style="color: blue;"><strong>สำหรับโมดุลสื่อสารที่่เรารู้จักกันในปัจจุบัน</strong></span></span></h3>
<p style="text-align: justify;"><strong><a href="http://en.wikipedia.org/wiki/Bluetooth" target="_blank">Bluetooth</a></strong> เป็นระบบเครือข่ายอุปกรณ์ระยะใกล้ รองรับ Full duplex รับส่งพร้อมกันได้เลย ประมาณ 5-10 เมตร ซึ่งออกแบบให้เป็นเครื่อข่ายอุปกรณ์ สำหรับเครื่องคอมพิวเตอร์ จะมีทั้ง  Handfree ,Fax ,Send file ,<span onclick="tagshow(event)">Serial</span> profile ซึ่งเขาตั้งใจจะออกแบบให้เป็นเครือข่ายไร้สายส่วนบุคคลความเร็วสูง ดังตัวอย่างจะเห็นว่า ความเร็วในการส่งข้อมูลจะเร็วมาก สามารถส่งเสียงดิจิตอล โดยมีสัญญาณมีการดีเลย์เพียงเล็กน้อย (ขึ้นอยู่กับสภาพช่องสัญญาณ มีการใช้หนาแน่น ก้อคงจะเชื่อมต่อลำบาก) แต่อย่างไร bluetooh เหมาะกับงานที่มีการถ่ายโอนข้อมูลแบบเป็นสตรีมและการทำงานร่วมกับโหนดอื่นๆ เป็นเน็ตเวิร์ค อย่างเช่นในอุปกรณ์คอมพิวเตอร์ หรือ โทรศัพท์มือถือ มากกว่าครับ</p>
<p style="text-align: center;"><img src="http://embedded-system.net/embedded-system/images/embedded/2009/05/bluetooth-3-0-hs.gif" alt="" width="225" height="225" /> <img src="http://www.es.co.th/Picture/MB-C04.jpg" alt="" width="242" height="182" /></p>
<p style="text-align: left;"><strong>ZigBee / XBee</strong> รองรับ Full duplex เป็นโมดุลไร้สายอีกตัวที่กำลังมีความนิยมสูงขึ้นเรื่อยๆ ซึ่งในอนาคตราคาอาจจะถูกลง ตอนนี้เห็นถูกราคาประมาณ 950 บาท จาก 2000 บาทนะครับ  ทำให้นักพัฒนา มักจะมองมาที่ zigbee ก่อน xbee สามารถเชื่อมผ่านทาง UART(สัญญาณ TX ,RX) ได้ และการส่งสัญญาณระยะใกล้ๆ (ยิ่งไกล ยิ่งแพงมากขี้น) และข้อมูลที่ได้มีความถูกต้องมาก (มีไอชีช่วยเข้ารหัสภายใน) ข้อดีที่เห็นชัดเจนคือกินกำลังไฟฟ้าต่ำ ถึงแม้จะส่งได้ระยะไม่ไกลมาก แต่สามารถส่งข้อมูลจาก node ไปยังอีก node ได้ ซึ่งตาม concept นี้เหมาะกับ wireless sensor มาก ซึ่งการมา Xbee ดัน X11 ที่ว่าจะเป็น network ภายในบ้านตกเทรนไปเลยทันที</p>
<p style="text-align: center;"><img src="http://www.es.co.th/Picture/XBP24-AWI-001.jpg" alt="" width="242" height="182" /></p>
<p style="text-align: left;">อันที่จริงๆแล้วโมดุล Zigbee ทำอะไรได้มากกว่า ตัวรับส่งนะครับ สามารถเขียนโปรแกรมเข้าไปแล้วทำเป็น wireless sensor ได้เลย ซึ่งเห็นว่ามันน่าสนใจมาก แต่ผมรอให้มัน ราคาถูกกว่านี้ก่อน <img src='http://www.ayarafun.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>เอาล่ะครับ สำหรับนักทดลองไส้แห้งแบบเรารอไปก่อนดีกว่า มองหาของถูกๆ มาทดลองก่อน</p>
<p><strong><a href="http://www.es.co.th/search.asp?Word=RF&amp;PC=056001&amp;Mode=2&amp;tb=056001&amp;stk=&amp;pb=&amp;view=&amp;pic=checked" target="_blank">โมดุล RF433MHz, RF315MHz ,RF918MHz</a></strong> จะมีโมดุลเลือกหลายความถี่ และจะรองรับการส่งข้อมูลแบบทางเดียว ไม่รับก้อส่ง หรือจะรับส่ง ก้อต้องติดตั้ง สองโมดุลเข้าไป</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.es.co.th/Picture/RWS-374.jpg" alt="" width="242" height="182" /></p>
<p style="text-align: center;"><strong>ตัวรับ </strong>รูปภาพจาก electronic source (es บ้านหม้อ)</p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter" src="http://www.es.co.th/Picture/TWS-BS.jpg" alt="" width="242" height="182" /><strong>ตัวส่ง</strong> รูปภาพจาก electronic source (es บ้านหม้อ)</p>
<p style="text-align: left;">ความเร็วการส่งข้อมูลไม่สูงนัก แค่ 2400BPS จะช้ากว่าพวก zigbee bluetooth เป็นสิบๆๆเท่า แต่ราคามันถูกกว่า โมดุลนี้จะมีแค่อุปกรณ์ขยายสัญญาณ กับ วงจรจูนเนอ์วิทยุ ข้อดีอย่างแรกคือราคาถูก กับ เชื่อมต่อง่าย ใช้ Uart หรือจะเอา I/O มาต่อส่งข้อมูลก้อได้ แต่สิ่งที่เราต้องมาทำคือเราต้องทำส่วน เข้ารหัสข้อมูล และ ออกแบบวิธีการตรวจสอบข้อมูลเองนะครับ ซึ่งคุณ aday ให้ความคิดเห็นว่า อยากเข้าใจอย่างลึกซึ้งต้องไปอ่านเรื่อง data communication เพิ่มเติมครับ เดี่ยวเราจะมาเข้าใจ รู้จัก data comm ง่ายๆ กันในตอนต่อไป</p>
<p><strong>ตัวอย่างการใช้งานกับ arduino </strong> <a href="http://www.glacialwanderer.com/hobbyrobotics/?p=291" target="_blank"> Cheap Arduino Wireless Communications</a>, <a href="http://www.open.com.au/mikem/arduino/VirtualWire.pdf" target="_blank">Virtual wire</a></p>
<h3><span style="font-size: medium;"><span style="color: blue;"><strong><strong>เริ่มสร้างกันเลยดีกว่า ทดลองโมดุล 433 รุ่นถูกๆ<br />
</strong></strong></span></span></h3>
<p>ในการทดลองตอนแรก ผมเลือกเอา ที่ถูกสุดก่อน เลือกเอาโมดุลรับ ส่ง RF433 จาก ES มาใช้ครับ แต่โมดุลนี้จะเป็น <strong>การสือสารแบบทางเดียว</strong> นะครับ อธิบายให้เข้าใจง่ายๆนะครับ เหมือนเราคุยกับแฟนเรานี้เอง แฟนพูดอะไร เราก้อตั้งใจฟัง แต่เราห้ามโต้แย่ง ไม่งั้นโดยตัดงบ คงเห็นภาพชัดเจนนะครับ</p>
<p><strong>ภาค hardware</strong> โดยตัวโมดุล จะหน้าตาแบบในภาพครับ</p>
<p style="text-align: left;"><strong>ตัวส่ง สัญญาณ </strong></p>
<p style="text-align: center;"><img src="http://www.es.co.th/Picture/TWS-BS.jpg" alt="" width="242" height="182" /><img src="http://farm3.static.flickr.com/2464/4055072778_ee54764965_m.jpg" alt="" width="180" height="240" /></p>
<p style="text-align: left;"><strong>วิธีการต่อ</strong> จ่ายไฟเข้า VCC,GND และนำขา data in ออกมาใช้งาน</p>
<p style="text-align: left;"><strong>ตัวส่ง</strong><br />
1. GND<br />
2. DATA in  ต่อเข้า D12<br />
3. VCC  จ่ายไฟ 3-12 โวลต์<br />
4. ANT ใช้สายไฟแข็งทำเสา ยาว 23 cm</p>
<p><strong> </strong></p>
<p><strong>ตัวรับสัญญาณ (ตัวใหญ่) ไอชีไม่ได้ใช้นะครับ</strong></p>
<p style="text-align: center;"><img src="http://www.es.co.th/Picture/RWS-374.jpg" alt="" width="242" height="182" /><img src="http://farm3.static.flickr.com/2662/4054326003_e2c65bb15d_m.jpg" alt="" width="180" height="240" /></p>
<p style="text-align: justify;"><strong>วิธีการต่อ </strong>จ่ายไฟเข้า VCC,GND ที่เห็นขาเยอะๆ จะเป็นขา vcc กับ gnd นะครับ  และนำข้อมูลจาก data out ออกมาใช้งาน</p>
<p style="text-align: justify;"><strong>ตัวรับ</strong><br />
1. GND<br />
2. ขา data out ต่อเข้า D11<br />
3. not connect<br />
4. +5v</p>
<p>5. +5v<br />
6. GND<br />
7. GND<br />
8. ANT  ใช้สายไฟแข็งทำเสา ยาว 23 cm</p>
<p><strong>ภาค software กันต่อ</strong> โดยตัว libary ที่ผมเอามาใช้ ชื่อ <a href="http://www.open.com.au/mikem/arduino/VirtualWire.pdf" target="_blank">virtual wire</a></p>
<p><a href="http://www.open.com.au/mikem/arduino/VirtualWire.pdf" target="_blank">Virtual wire</a> เป็น libary ที่ arduino แนะนำอย่างเป็นทางการ ให้เลือกใช้ playgroud ซึ่งในตัว libary ได้ออกแบบ protocol ที่จัดการ |header | id | data | checksum| เอาไว้แล้ว</p>
<p>หลังจากทดลองตามตัวอย่างที่ตัว libary ให้มาแล้ว ผมก้อแก้ไขโปรแกรมนิดหน่อยครับ เพื่อทดสอบความผิคพลาดของการรับส่งข้อมูล อันนี้เรียกว่า ping test ผมจะใส่หมายถึงเข้าไปด้วยในแต่ล่ะ packet เพื่อดูความต่อเนื่องของการส่งสัญญาณ และ ดูว่ามี packet lost หรือข้อมูลที่ไม่ได้ รับไปเท่าไรแล้ว</p>
<p><strong>โปรแกรมในส่วน Arduino การทดสอบ</strong><br />
<strong>ภาคตัวส่ง</strong> ใช้ตามตัวอย่าง transmitter.pde เพียงเพิ่มหมายเลขของ packet เข้าไปด้วย</p>
<pre class="brush: cpp">// transmitter.pde
//
// Simple example of how to use VirtualWire to transmit messages
// Implements a simplex (one-way) transmitter with an TX-C1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include &lt;VirtualWire.h&gt;

#undef int
#undef abs
#undef double
#undef float
#undef round

int count;
char cc;
char buffer [8];

void setup()
{
count = 0;

Serial.begin(9600);      // Debugging only
Serial.println("setup");

// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(1000);     // Bits per sec
}

void loop()
{   cc = sprintf (buffer , "ping %d", count);
digitalWrite(13, true); // Flash a light to show transmitting

vw_send((uint8_t *)buffer, strlen(buffer));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
delay(1000);

count++;
}</pre>
<p><strong>ภาครับ </strong>ใช้ตามตัวอย่างชื่อ receiver.pde ไม่ได้แก้ไข</p>
<pre class="brush: cpp">// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include &lt;VirtualWire.h&gt;
#undef int
#undef abs
#undef double
#undef float
#undef round
void setup()
{
Serial.begin(9600);    // Debugging only
Serial.println("setup");

// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(1000);     // Bits per sec

vw_rx_start();       // Start the receiver PLL running
}

void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message(buf, &amp;buflen)) // Non-blocking
{
int i;

digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");

for (i = 0; i &lt; buflen; i++)
{
Serial.print(buf[i], BYTE);
//Serial.print(" ");
}
Serial.println("");
digitalWrite(13, false);
}
}</pre>
<p><strong>การทดสอบ</strong><br />
<img class="aligncenter" src="http://farm3.static.flickr.com/2662/4055311076_b35d6dedf5.jpg" alt="" width="500" height="375" /></p>
<p>จากการทดสอบแบบ ping test นะครับ ผมจ่ายไฟให้ตัวส่ง 12v ทดลองในสภาพแวดล้อมที่ไม่มีอะไรกีดขวาง ทั้งกำแพง ประกฏว่าข้อมูลจะส่งได้ดี ไม่มีการผิคพลาดที่ระยะ 20-25 เมตร และยิ่งไกล ก้อ packet ยิ่ง lost มากขึ้น</p>
<p>อันที่จริงผมอยากได้โมดุลส่งข้อมูล ได้ระยะไกลๆ ตามสเปกมันว่าส่งไป 200ft หรือประมาณ 60 เมตร</p>
<p><strong>บทวิเคราะห์</strong><br />
ที่เลือกโมดุลนี้ ตั้งใจจะทำ wireless sensor ง่ายๆ กระจายตามบ้าน ส่งข้อมูลไม่เกิน 20 m จากสเปกว่าจะได้ส่งได้ 60m (200ft ) แต่ปรากฏว่าเหมือนระยะทางเกิน 30 เมตร ยังไม่ถึงครึ่งเลย แล้วมันจะส่งข้อมูลได้ไม่ดีนะ</p>
<p>ผมก้อเลยกลับมาวิเคราะห์ว่า มีหลายปัจจัยที่มีผลนะคับ ทางสภาพแวดล้อมก้อจะมี<br />
1. <strong>สิ่งกิ่ดขวาง</strong> จากการทดลอง มีคนเดินผ่านในระยะใกล้ๆ มันก้อส่งข้อมูลไม่ได้ครับ<br />
2. <strong>สัญญาณรบกวน</strong> จากการสอบถามเพื่อนคลื่นคนล่ะย่าน ไม่รบกวนกัน<br />
3. <strong>ระยะทาง</strong> ด้วยตัวโมดุล เป็นแบบ ASK หรือ ใช้<a href="http://en.wikipedia.org/wiki/Digital_modulation#Digital_modulation_methods" target="_blank"> Amplitude-shift keying</a> หรือใช้ความสูงของคลื่นสัญญาณในการตีความ ค่าทาง digital ครับ นั้นหมายความว่า ยิ่งไกล ความสูงของคลื่นยิ่งอ่อนลง จนตีความไม่ได้</p>
<p>นอกจากโปรแกรมจะมีส่วน ตรวจสอบ packet ความถูกต้อง ถ้าข้อมูลไม่ถูกต้อง 100% ,packet นั้นจะไม่ได้ยอมรับ (eject) การตรวจสอบของ libary virtual wire จะใช้ checksum error ค่าที่ได้มาคำนวนเป็นค่า checksum แล้วตรวจสอบข้อมูล</p>
<p><strong>มาดูว่าภายในโปรแกรม software อะไรที่มีผลบ้าง</strong><br />
1. <strong>สัญญาณรบกวนในวงจร</strong> อย่างที่กล่าวไว้ ข้อมูลไม่ถูกต้อง 100% จะทำให้ไม่รับ packet<br />
2. <strong>ความยาวของ packet</strong> ส่ง packet ข้อมูลยาว ก้อมีโอกาสที่จะมีผิคพลาดได้</p>
<p><strong>สรุปดีกว่า</strong><br />
เอาล่ะครับเป็นอันว่า ตัวโมดุลเอง อาจจะอ้างว่าส่งข้อมูลได้ 200ft โดยการส่ง อาจจะไม่ได้ตรวจสอบว่า ระยะ 200ft นี้ packet lost ไปมากน้อยแค่ไหนครับ ซึ่งจิงผมก้อไม่ได้ใช้ขนาดนั้นหรอก คิดว่าถ้าจะให้ดี คงหาตัวส่งที่กำลังสูงๆกว่านี้ หรือ มีตัวช่วยกระจายเป็น node to node</p>
<p>เรือง packet ข้อมูล นอกจาก checksum ก้อยังมีวิธีอีกหลายวิธีที่ช่วยส่งข้อมูลแบบมี recovery data ได้ อย่างเช่นที่ใช้กันใน raid5 ที่ใช้ hdd 3 ตัว มีตัวไหนเสีย ก้อยังใช้งานได้ เราอาจจะประยุกต์แบบเดียวกันได้</p>
<p>แต่อย่างไงก้อตาม ผมก้อยังคิดว่าจะเลือกใช้ โมดุลนี้ เพราะว่างานที่จะใช้เป็นแค่ wireless sensor เล็กน้อยๆ เอาไปใส่ check การเปิด-ปิด ประตู, หน้าตา และระยะทางไม่เกิน 20 เมตร <img src='http://www.ayarafun.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  คงยังโอเคอยู่ครับ</p>
<p>สุดท้าย หวังว่าจะได้เห็นเพื่อน จะติดตามอ่านกันจนจบนะครับ และเอาไปประยุกต์กันงานตัวเองต่อไปนะครับ เดี่ยวติดตามชมตอน 1.5 ต่อไป สวัสดี <img src='http://www.ayarafun.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
<li><a href='http://www.ayarafun.com/2009/12/%e0%b8%9a%e0%b8%b1%e0%b8%99%e0%b8%97%e0%b8%b6%e0%b8%81%e0%b8%97%e0%b8%94%e0%b8%a5%e0%b8%ad%e0%b8%87-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-1/' rel='bookmark' title='Permanent Link: บันทึกนักทดลอง [ตอนที่ 1] ลองไปมั่วๆ'>บันทึกนักทดลอง [ตอนที่ 1] ลองไปมั่วๆ</a></li>
<li><a href='http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/' rel='bookmark' title='Permanent Link: ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่'>ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>รู้จัก In System Programming (ISP) เบิร์นไอชีได้อย่างไง</title>
		<link>http://www.ayarafun.com/2009/09/basic-isp-programming-for-av/</link>
		<comments>http://www.ayarafun.com/2009/09/basic-isp-programming-for-av/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 13:30:42 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[bootloader]]></category>
		<category><![CDATA[isp]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1150</guid>
		<description><![CDATA[กลับมาแล้วครับ รอบนี้ผมก้อมีบทความ ละเอียดอีกแล้ว บทความนี้เป็นของพี่ samira ผมยืมมาช่วยเผยแพร่ทางเวปนี้อีกช่องทางครับ หวังว่าคนเพิ่งมาจะได้ประโยชน์นะครับ (ท่าน CEO ไอยาราฟันส์ขี้เกียจขึ้นเรื่อยๆ) ส่วนมากคนที่เพิ่งเข้ามาจับ จะเจอคำศัพท์ใหม่ๆเยอะเลย ซึ่งมันต้องใช้เวลานะครับ วันนี้ผมมาแนะนำเรื่องพื้นฐานก่อน เรื่อนการเบิร์นครับ กว่าจะเป็น เบิร์นโปรแกรมได้แบบ ทุกวันนี้ เมื่อก่อน เวลาเราพัฒนาคอนโทรลเลอร์ การเขียนข้อมูล ( data หรือ program ) ลงใน EEPROM (erasable rom) นั้น เขาจะต้องถอดเอา chip ไปล้างข้อมูลด้วยแสง ultraviolet ถึงจะเขียนโปรแกรมเข้าไปในใหม่ได้ ( ไม่รู้ว่าเกิดกันทัน ผมมาก้อไม่เห็นแล้วนะครับ ) และอายุการใช้งานจำกัด ดังนั้นจะเห็นว่า เวลาจะพัฒนาโปรแกรมอะไรใหม่ จะมีกระบวนการที่วุ่นวายมากๆเลย PROM ตัวแรกๆ ของโลก รูปจาก http://en.wikipedia.org/wiki/Read-only_memory ต่อมาความก้าวหน้าทาง Technology ทาง flash memory พัฒนามากขึ้น


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">กลับมาแล้วครับ รอบนี้ผมก้อมีบทความ ละเอียดอีกแล้ว บทความนี้เป็นของพี่ samira ผมยืมมาช่วยเผยแพร่ทางเวปนี้อีกช่องทางครับ หวังว่าคนเพิ่งมาจะได้ประโยชน์นะครับ (ท่าน CEO ไอยาราฟันส์ขี้เกียจขึ้นเรื่อยๆ) ส่วนมากคนที่เพิ่งเข้ามาจับ จะเจอคำศัพท์ใหม่ๆเยอะเลย ซึ่งมันต้องใช้เวลานะครับ วันนี้ผมมาแนะนำเรื่องพื้นฐานก่อน เรื่อนการเบิร์นครับ</p>
<p style="text-align: left;"><strong> </strong><strong>กว่าจะเป็น เบิร์นโปรแกรมได้แบบ ทุกวันนี้</strong><br />
เมื่อก่อน เวลาเราพัฒนาคอนโทรลเลอร์ การเขียนข้อมูล ( data หรือ  program ) ลงใน EEPROM (erasable rom) นั้น เขาจะต้องถอดเอา chip  ไปล้างข้อมูลด้วยแสง ultraviolet ถึงจะเขียนโปรแกรมเข้าไปในใหม่ได้ (  ไม่รู้ว่าเกิดกันทัน ผมมาก้อไม่เห็นแล้วนะครับ ) และอายุการใช้งานจำกัด  ดังนั้นจะเห็นว่า เวลาจะพัฒนาโปรแกรมอะไรใหม่ จะมีกระบวนการที่วุ่นวายมากๆเลย</p>
<p style="text-align: left;"><img class="aligncenter" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Eprom.jpg/300px-Eprom.jpg" alt="" width="300" height="156" /></p>
<p style="text-align: left;">PROM ตัวแรกๆ ของโลก รูปจาก <a href="http://en.wikipedia.org/wiki/Read-only_memory" target="_blank">http://en.wikipedia.org/wiki/Read-only_memory</a></p>
<p style="text-align: left;">ต่อมาความก้าวหน้าทาง Technology ทาง flash memory พัฒนามากขึ้น  ได้บรรจุ flash memory ลงไปใน chip ด้วยทำให้การทำงานลบล้างข้อมูลบน chip ง่ายขึ้น  อาจจะไม่ต้องใช้แสง ultraviolet เพื่อลบข้อมูล ใช้ไฟ ปกติก้อสามารถ อ่านเขียน ลบ  โปรแกรมได้ แตก้อ่ยังต้องมีเครื่องมือ หรือ  วงจรที่ต้องออกแบบมาเพื่อใช้งานนี้อยู่ดี</p>
<p style="text-align: right;"><strong>(อ่านต่อ click เลย)</strong><span id="more-1150"></span></p>
<h3 style="text-align: left;"><strong>เครื่องเบิร์นโปรแกรม  (flash programmers)</strong></h3>
<p style="text-align: left;">การอัดโปรแกรมเข้าไปในชิป  หรือเรียกภาษาเราบ่อยๆว่า &#8220;เบิร์นโปรแกรม&#8221; จะต้องใช้ไฟสูง หรือ  สัญญาณระดับไฟมากกว่า 12 โวลต์ เข้าไป tick ขาสัญญาณ เพื่อให้<span onclick="tagshow(event)">ไมโคร</span>ฯ  รับรู้ว่าจะมีการเขียนโปรแกรม ซึ่งในอดีตต้องมีการถอดเข้า ถอดออก ชิปบ่อยๆ  เพื่อย้ายชิปจากบอร์ดที่เราใช้ ไปยังเครื่องโปรแกรม ซึ่งจะมีวงจรที่ทำไฟสูง  แต่ด้วยความต้องการปัจจุบัน ทางบริษัทผลิต chip ได้บรรจุวงจร เพิ่มแรงดันเข้าไปใน  chip ด้วยจึงทำให้สามาร flash โปรแกรม เข้าไปใน chip ได้ด้วย เรียกว่า  In Circuit  System Programming ( ICSP or ISP) พูดตามภาษาชาวบ้านก็คือ การเขียน การเบิร์น  (burn) อุปกรณ์วงจรต่าง จึงลดลงไป</p>
<p>ส่วนการเบิร์นโปรแกรม (flash  programmers) (ISP) จะสามารถเบิร์นโปรแกรมได้สองวิธี เรียกว่า แบบ Parallel  Programming Mode (Parallel Mode) และแบบ <span onclick="tagshow(event)">Serial</span> Downloading Mode (ISP  mode)<br />
ถ้าเป็นแบบ pararell คือการต่อตรงเข้าไป mcu  ไม่ได้ผ่านชุดคำสั่งพิเศษ แต่ถ้าเป็น spi จะใช้ชุดคำสั่งใช้ในการ flash โปรแกรม  เข้าไป ที่นี้ขอกล่าวเฉพาะเขียนโปรแกรมแบบ serial<em><strong> ผ่านโมดุลสื่อสาร  SPI</strong></em></p>
<h2 style="text-align: left;"><strong>การทำงานของ In System Programming (ISP) </strong></h2>
<p style="text-align: left;">อย่างที่บอกไว้ตอนแรก flash memory สามารถเขียนได้ต้องใช้ไฟสูง  ในการขับขา gate จึงได้มีการพัฒนาเพิ่มทวีแรงดัน เพื่อสร้างไฟสูงภายในวงจร  การเบิร์นจึงทำได้ง่ายขึ้น</p>
<p>ในโมดุล ISP จะประกอบด้วยส่้วนการเขียนโปรแกรม  ลบโปรแกรม โดยมีรูปแบบ การส่ง command และ data ตาม datasheet หน้า 299<br />
<a href="http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf" target="_blank">http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf</a></p>
<p>บทความนี้ไม่ได้  มาชวนเขียนวิธีการเขียนโปรแกรมเพื่อลง flash  เพียงต้องการให้เข้าใจพื้นฐาน</p>
<p><strong> </strong></p>
<h3 style="text-align: left;"><strong>ขา <span onclick="tagshow(event)">MCU</span> ที่ใช้ใน In System  Programming</strong></h3>
<p style="text-align: left;"><img class="aligncenter" src="http://docs.google.com/File?id=dk2qpvk_960cn58rndd_b" alt="" width="500" height="370" />(ภาพ : ด้วยความเอื้อเฟื้อ จากเว็ปท่าน elmchan.org )</p>
<p style="text-align: left;">หากเข้าไปดูใน Atmel Chip จะเห็นว่า ขาของ chip เหล่านั้น  มีคำอธิบายไว้แทบทุกขาว่ามันทำอะไรบ้าง แต่เราจะสนใจแต่ ขาที่ใช้สำหรับ ISP<br />
<a href="http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf" target="_blank">http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf</a><br />
หน้า  2 ของเอกสารนี้ ท่านจะเห็น pin out ของ chip Atmega 44/88/168</p>
<p><strong>MOSI </strong>==  Master Out Slave In: data input<br />
<strong>MISO </strong>== Master In Slave out : data  output<br />
<strong>SCK</strong> == Serial ClocK : clock input<br />
<strong>RST</strong> == RESET: used to activate  the serial Programming</p>
<p>จากข้างบนจะเห็นว่า ขาที่บ่งว่า MOSI นั้น  จะเป็นขาส่งข้อมูลออก( Output ) ของตัวแม่ ( master )<br />
MISO นั้น  เป็นขาที่รับข้อมูล (input ) ที่ส่งมาจากลูก ( slave )<br />
SCK นั้น  เป็นตัวนาฬิกาคอยให้จังหวะการส่งข้อมูล<br />
ขาสุดท้ายก็คือ RST นั้น  คือตัวที่เริ่มให้มีการเขียนโปรแกรมลง chip</p>
<h3 style="text-align: left;"><strong>ขั้นตอนการทำงาน In  System Programming ผ่าน SPI ( จาก datasheet ของ Atmel )</strong></h3>
<p style="text-align: left;">ขั้นตอนการเขียนโปรแกรม ( code ) ลงบน chip นั้นจะส่งข้อมูลเป็นแบบ serial หรือ  ISP จะเริ่มต้นทำงานด้วยขณะที่ขา RST ถูกปรับให้มีค่า Logic high ( ระดับสัญญาณ  เท่ากับ Vcc )</p>
<p>สำหรับขา RST นั้น ปกติ ใช้สำหรับ reset โปรแกรม  กล่าวคือสัญญาณ Reset จะหยุดโปรแกรมและเริ่มต้นการทำงานใหม่ โดยเราทำให้ขา RST  มีระดับสัญญาณต่ำ ( logic ต่ำ )<br />
เมื่อขา RST ถูกตั้งให้เป็น High  คำสั่งพิเศษที่เรียกว่า Programming Enable instruction จะทำงานก่อน</p>
<p>สำหรับการรับส่งข้อมูลแบบ Serial คือการส่งข้อมูลจาก  ด้วยช่องสัญญาณเพียงช่องเดียว หรืือ ขาสัญญาณขาเดียว ในที่นี้คือขาสัญญาณ MISO และ  MOSI<br />
โดยข้อมูลจะส่งผ่าน MOSI ทีละ bit โดยแต่ละ bit สัญญาณจาก SCK  จะเป็นตัวควบคุมจังหวะของการรับส่ง และทางขา MISO  ใช้สำหรับรับข้อมูลจากลูกส่งกลับไปยังต้วแม่</p>
<p>โดยเริ่มจากข้อมูลใน chip  จะถูกลบหมด (chip erase) การลบข้อมูลใน flash memory และจะตามด้วยการเขียนค่า &#8220;FF&#8221;  (hexadecimal number) ลงไปในแต่ละตำแหน่งใน flash or ram memory ของ chip</p>
<p>ความเร็วของสัญญาณนาฬิกา ของ ISP จะถูกกำหนดโดยสัญญาณนาฬิกาอ้างอิงจาก  external clock ทีต่อที่ขา Xtal1 หรือ crystal ที่ต่อกับขา Xtal1&amp;Xtal2  โดยมีข้อกำหนดว่า ความเร็วของขา SCK นั้นจะเร็วไม่เกิน 1/16 ของ ความเร็วของ  crystal ไม่ได้</p>
<p>ฉะนั้น หากระบบของเรา ใช้ Crystal 16 MHz ความเร็วสูงสุดของ  SCK ก็จะได้แค่ 1 MHz แค่นั้น</p>
<h3 style="text-align: left;"><strong>โปรแกรมเบิร์นทำงานได้อย่างไง</strong></h3>
<p style="text-align: left;">โปรแกรมเบิร์น (Software  programmer) สำหรับ <span onclick="tagshow(event)">AVR</span> ที่นิยม ได้แก่ BASCOM ( basic ), avrstudio,  ponyprog , AVR Prog ซึ่ง โปรแกรมบางตัวสื่อสารตรง กับ mcu เลย อย่างเช่น ponyprog  ใช้สาย pararell สื่อสารแบบ SPI ตรงเข้า mcu เลย หรือบางตัวต้องผ่าน usb ติดต่อกับ  บอร์ดของเรา ซึ่ง hardware เหล่านี้จะสื่อสารข้อมูลโดยอาศัย protocol แบบ spi  ติดต่อกับ mcu อยู่ดี</p>
<p>ฉะนั้นโปรแกรมเบิร์นจึงเป็นการเขียนข้อมูล firmware  (hex code) เข้าไปในตัวชิปบนบอร์ดเรา<br />
software เช่น AVR studio, averdude หรือ  BASCOM ที่เราจะใช้เขียนโปรแกรมลง chip นั้น โปรแกรมเหล่านี้ จะมี Option  ให้เราเลือกใช้สายต่อ( hardware programmer ) ระหว่าง PC กับ  บอร์ดที่เราพัฒนา</p>
<p>สาเหตุที่เราต้องเลือกว่าจะใช้ programmer ตัวไหนนั้น  เพราะผู้สร้าง programmer แต่ละอัน ใช้ขาที่ใช้ทางฝั่ง PC สำหรับติดต่อกับ ขา MOSI,  MISO, SCK และ RST นั้น ไม่เหมือนกัน</p>
<p>ตัว hardware programmer  ซึ่งมีหลายรูปแบบ ไม่ว่าจะเป็น แบบต่อผ่าน สาย<strong> parallel สาย serial หรือ สาย <span onclick="tagshow(event)">USB</span></strong> ให้เราเลือกใช้ เช่น จาก <a href="http://www.captain.at/electronics/atmel-programmer/" target="_blank">http://www.captain.at/electronics/atmel-programmer/</a><br />
<img class="aligncenter" src="http://www.captain.at/electronics/atmel-programmer/th_atmega16-programmer.png" alt="" width="529" height="476" /></p>
<p>ต้วอย่าง<strong> serial programmer</strong> จาก <a href="http://www.serasidis.gr/circuits/avr_isp/avr_isp.htm" target="_blank">http://www.serasidis.gr/circuits/avr_isp/avr_isp.htm</a></p>
<p style="text-align: center;"><img style="cursor: pointer;" src="http://www.serasidis.gr/circuits/avr_isp/images/avr_isp_sch.jpg" alt="" width="600" height="306" /></p>
<p style="text-align: left;">จากข้างบน จะเห็นว่าสายต่อไปยัง MOSI ของparallel programmer  สองแบบนี้ มาจากคนละแหล่ง ของ parallel pin</p>
<p>อย่างไรก็ดี  ไม่ว่าสายที่ออกมาจาก ขาใหนก็ตามของ parallel or serial  port  ตัวรับที่อยู่บนบอร์ดของเรา จะมีมาตรฐานเดียวกันหมด กล่าวคือ  10 pin ICSP  header จะมีมาตรฐานเดียวกัน</p>
<p><a href="http://www.olimex.com/dev/pdf/avr-pg2b.pdf" target="_blank">http://www.olimex.com/dev/pdf/avr-pg2b.pdf</a><br />
<strong><br />
ขา 1 ==  MOSI<br />
ขา 2  == Vcc<br />
ขา 1  == LED หรือ เว้นว่าง<br />
ขา 4  == GND<br />
ขา 5  ==  RST<br />
ขา 6  == GND<br />
ขา 7  == SCK<br />
ขา 8  == GND<br />
ขา 9  == MISO<br />
ขา  10  ==GND</strong></p>
<p style="text-align: left;">เอาล่ะครับ จบสักที่นะครับ อาจจะเข้าใจยากสักนิดนะครับ บทความนี้ เป็นบทความเขียนร่วมกัน ผู้เขียนทั้งสอง คุณพี่ @samira จาก  St. Louis,  MO กับผม <a href="http://www.twitter.com/ayarafun">@ayarafun</a> ช่วยแต่งเติม  หวังว่าบทความคงจะมีประโยชน์บ้าง</p>
<p>บทความเขียนเรียบเรียงโดย samira ,St. Louis,  MO<br />
แนะนำ ตรวจ เพิ่มเติม แก้ใข โดย ChANg,  BKK, Thailand</p>
<h3>เอกสารอ้างอิง</h3>
<p style="text-align: left;"><a href="http://www.ikalogic.com/isp.php" target="_blank">http://www.ikalogic.com/isp.php</a><br />
<a href="http://www.olimex.com/dev/pdf/avr-pg2b.pdf" target="_blank">http://www.olimex.com/dev/pdf/avr-pg2b.pdf</a><br />
<a href="http://www.captain.at/electronics/atmel-programmer/" target="_blank">http://www.captain.at/electronics/atmel-programmer/</a></p>
<p style="text-align: left;"><strong>ข้อมูลเพิ่มเติมเกี่ยวกับ  Memory </strong><br />
<a href="http://en.wikipedia.org/wiki/Read-only_memory" target="_blank">http://en.wikipedia.org/wiki/Read-only_memory</a><br />
<a href="http://en.wikipedia.org/wiki/Flash_memory" target="_blank">http://en.wikipedia.org/wiki/Flash_memory</a></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2009/09/basic-isp-programming-for-av/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/09/basic-isp-programming-for-av/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่</title>
		<link>http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/</link>
		<comments>http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 13:00:05 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Project]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avrisp]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1095</guid>
		<description><![CDATA[ตอนนี้เกือบปีแล้ว เร็วเหมือนโกหก เวปไอยาฟันส์ ก้อเดินทางไปเรื่อยๆ จิงอาจจะดูว่าช้าไปบ้างนะครับ ทางเราก้อกำลังปรับตัวให้เข้ากับโลกอินเตอร์เน็ทอยู่ สำหรับตอนนี้ทาง ไอยาฟันส์ใช้ ก้อทำบอร์ดสำหรับการ burn ทำมาพิเศษ นิดหน่อย เพราะว่า ทางเราก้อหารายได้เล็กน้อยจากการขายบอร์ด Arduino(clone) /freeduino บ้างครับ หาทุนไปทำโปรเจคต่อนะ สำหรับไอเดียนี้ช่วยให้เบิร์นง่ายขึ้นนิดหน่อยครับ พวกวิชาเรียน ,พวก workshop หรือจะทำ product ขาย (ไม่กลัวโดน copy เลยนะนิ) หน้าตาบอร์ดที่ทำมาพิเศษ เป็นบอร์ดอเนกประสงค์ ที่มีการรวมกับ TEXTTOOLS และมี LED13 กับ switch Reset ไปด้วย ใส่ไอชีได้ง่ายขึ้นครับ ทำกันแบบบ้านๆ งบประมาณ น่าจะไม่ถึงร้อยนะ มาดูการใช้งาน ทางผมก้อต่อกับ เครื่องโปรแกรม ISP ปกติ เลือกน้องเขียว เป็น  AVRISP ตัว clone จากจีน นี้ล่ะครับ ดู


Related posts:<ol><li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
<li><a href='http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/' rel='bookmark' title='Permanent Link: Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?'>Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?</a></li>
<li><a href='http://www.ayarafun.com/2009/08/thai-twitter-reader-part-2/' rel='bookmark' title='Permanent Link: arduino + twitter เสียงทวิตๆเล็ก ดังถึงดวงดาว ภาค Hardware &#8211; ตอน 2'>arduino + twitter เสียงทวิตๆเล็ก ดังถึงดวงดาว ภาค Hardware &#8211; ตอน 2</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">ตอนนี้เกือบปีแล้ว เร็วเหมือนโกหก<strong> เวปไอยาฟันส์</strong> ก้อเดินทางไปเรื่อยๆ จิงอาจจะดูว่าช้าไปบ้างนะครับ ทางเราก้อกำลังปรับตัวให้เข้ากับโลกอินเตอร์เน็ทอยู่ สำหรับตอนนี้ทาง ไอยาฟันส์ใช้ ก้อทำบอร์ดสำหรับการ burn ทำมาพิเศษ นิดหน่อย เพราะว่า ทางเราก้อหารายได้เล็กน้อยจากการขาย<strong>บอร์ด Arduino(clone) /freeduino บ้างครับ </strong>หาทุนไปทำโปรเจคต่อนะ สำหรับไอเดียนี้ช่วยให้เบิร์นง่ายขึ้นนิดหน่อยครับ พวกวิชาเรียน ,พวก workshop หรือจะทำ product ขาย (ไม่กลัวโดน copy เลยนะนิ)</p>
<p style="text-align: center;"><img title="อุปกรณ์ช่วย" src="http://lh3.ggpht.com/_Yf5JCo_hjfM/SnMtHp9RxgI/AAAAAAAACBc/OvSGgJx1GsQ/s400/P1220557.JPG" alt="" width="400" height="300" /></p>
<p style="text-align: justify;"><strong>หน้าตาบอร์ดที่ทำมาพิเศษ เป็นบอร์ดอเนกประสงค์ ที่มีการรวมกับ TEXTTOOLS และมี LED13 กับ switch Reset ไปด้วย ใส่ไอชีได้ง่ายขึ้นครับ ทำกันแบบบ้านๆ งบประมาณ น่าจะไม่ถึงร้อยนะ</strong></p>
<p style="text-align: justify;">มาดูการใช้งาน ทางผมก้อต่อกับ เครื่องโปรแกรม ISP ปกติ เลือกน้องเขียว เป็น <strong> AVRISP ตัว clone จากจีน </strong>นี้ล่ะครับ ดู inter ดี</p>
<p style="text-align: center;"><img class="alignnone" src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SnMtGi6qSbI/AAAAAAAACBU/3jC6864bwxk/s400/P1220554.JPG" alt="" width="400" height="300" /><img class="alignnone" src="http://lh5.ggpht.com/_Yf5JCo_hjfM/SnMtGNRVL9I/AAAAAAAACBQ/n7xT_i4djSE/s400/P1220549.JPG" alt="" width="400" height="300" /></p>
<p style="text-align: justify;">หลังจากใช้งาน รู้สึกว่า ชีวิตจะสบายขึ้น ใช้ texttool ขามันกว้างอยู่แล้ว จับไอชี ใส่แล้ว lock เลย และ เอาเข้า เอาออก มันไม่เสียเวลามากครับ  คราวหน้าจะให้อะไรใหม่ๆ มาให้ชมอีก</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
<li><a href='http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/' rel='bookmark' title='Permanent Link: Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?'>Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?</a></li>
<li><a href='http://www.ayarafun.com/2009/08/thai-twitter-reader-part-2/' rel='bookmark' title='Permanent Link: arduino + twitter เสียงทวิตๆเล็ก ดังถึงดวงดาว ภาค Hardware &#8211; ตอน 2'>arduino + twitter เสียงทวิตๆเล็ก ดังถึงดวงดาว ภาค Hardware &#8211; ตอน 2</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino Hacking ตอน Burn Bootloader ง่ายนิดเดียว ?</title>
		<link>http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/</link>
		<comments>http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 16:46:18 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[booloader]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1092</guid>
		<description><![CDATA[ตอนนี้ คนเริ่มใช้ Arduino กันเยอะมากขึ้นแล้ว หลังจากที่สำรวจ ตอนนี้ก้อมี บอร์ดที่เรียกว่า Arduino(clone) /Freeduino /m168 board อยู่หลายเจ้าเลย เดี่ยวคงจะมีปัญหา ตัว bootloader พังบ้างล่ะ ตอนผมลองเล่นแรกๆ ส่วนมากจะชอบสร้างบอร์ดเองกัน แต่จะติดปัญหา ส่วนของเครื่องโปรแกรม คือเครื่องโปรแกรมที่อยู่ในโปรแกรม Arduino มันหาไม่ได้ คือจะเพิ่มเครื่องโปรแกรมที่เรามีอยู่ได้หรือป่าว ทางเราเลยจะบอกวิธีการ hack สุดแสนจะง่าย ให้ Arduino ใช้เครื่องโปรแกรมเราได้ ขอเล่าย้อนไปก่อน การจะ Hack จะต้องเข้าใจโครงสร้างของ Arduino ก่อน Arduino เป็นโปรเจค open-source ที่รวมกับ โปรเจค open-source หลายๆตัวเข้ามาใช้ (อันนี้ต้องขอบคุณ คนพัฒนาในอดีตครับ ทำเอาไว้เยอะมาก) อย่างเช่น ตัวโปรแกรม base จะเป็น java ทำให้มันทำงานได้หลายๆ platform ตัวคอมไพล์เลอร์ของ Arduino


Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
<li><a href='http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/' rel='bookmark' title='Permanent Link: ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่'>ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่</a></li>
<li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">ตอนนี้ คนเริ่มใช้ Arduino กันเยอะมากขึ้นแล้ว หลังจากที่สำรวจ ตอนนี้ก้อมี บอร์ดที่เรียกว่า<strong> Arduino(clone) /Freeduino /m168 board </strong>อยู่หลายเจ้าเลย</p>
<p style="text-align: justify;">เดี่ยวคงจะมีปัญหา ตัว bootloader พังบ้างล่ะ ตอนผมลองเล่นแรกๆ ส่วนมากจะชอบสร้างบอร์ดเองกัน แต่จะติดปัญหา ส่วนของเครื่องโปรแกรม คือเครื่องโปรแกรมที่อยู่ในโปรแกรม Arduino มันหาไม่ได้ คือจะเพิ่มเครื่องโปรแกรมที่เรามีอยู่ได้หรือป่าว ทางเราเลยจะบอกวิธีการ hack สุดแสนจะง่าย ให้ Arduino ใช้เครื่องโปรแกรมเราได้</p>
<p style="text-align: justify;">ขอเล่าย้อนไปก่อน การจะ Hack จะต้องเข้าใจโครงสร้างของ Arduino ก่อน</p>
<blockquote>
<p style="text-align: justify;"><em>Arduino เป็นโปรเจค open-source ที่รวมกับ โปรเจค open-source หลายๆตัวเข้ามาใช้ (อันนี้ต้องขอบคุณ คนพัฒนาในอดีตครับ ทำเอาไว้เยอะมาก) อย่างเช่น ตัวโปรแกรม base จะเป็น java ทำให้มันทำงานได้หลายๆ platform ตัวคอมไพล์เลอร์ของ Arduino จะใช้ avr-gcc และตัวสุดท้าย ตัวโปรแกรม ใช้ avrdude ในการ burn โปรแกรม</em></p>
</blockquote>
<p style="text-align: justify;">ถ้าเข้าใจโครงสร้างมันแล้วจะใส่อะไร เพิ่มอะไรก้อพอจะหาทางไปต่อได้ถูกครับ (ใช้พี่ google ดำไปได้ต่อ)</p>
<p style="text-align: justify;">กลับมาที่ bootloader อีกรอบ การเบิร์น boot-loader นั้นไม่ยากยุ่ง เพราะว่าในโปรแกรม Arduino จะมีส่วนของ burn bootloader อยู่แล้ว ถ้าท่านมีเครื่องโปรแกรมตามรายชื่อในรูปก้อใช้งานได้เลยครับ แต่ปัญหามีอยู่ว่า <span style="color: #ff0000;"><span style="text-decoration: underline;">เครื่องโปรแกรมที่มีรายชื่อ เป็นเครื่องที่ไม่มีขายในไทย จะเอามาใช้งานได้บ้างไหม</span></span></p>
<p><img class="aligncenter" src="http://lh3.ggpht.com/_Yf5JCo_hjfM/SqPjHrdBngI/AAAAAAAACOk/sMw-RkGMx-w/s400/list_programmers.jpg" alt="" width="333" height="400" /></p>
<p style="text-align: justify;">โดยปกติจะใช้<strong> burn bootloader </strong>ตอนไหนบ้าง ผมจะใช้ตอนแรก ในการสร้างบอร์ดครับ หลังจากที่ได้ไอชีมาใหม่ ยังไม่ได้ใส่ firmware กับอีกรอบที่ bootloader เสีย (อันนี้โอกาสเกิดได้น้อย แต่มันก้อยังเสียได้) อาการเสียของ bootloader ดูง่ายๆ ถ้า LED13 บนบอร์ดไม่กระพริบ แสดงว่า boot-loader มันจะเสียแล้ว  วิธีการเบิร์น bootloader ก้อแค่ กดที่เมนู Burn Bootloader ตอนโปรแกรมมันจะเบิร์น firmware และ set fusebit ให้</p>
<blockquote><p><strong>::กรอบแทรก</strong> :: เดี่ยวคนมาใหม่จะงง ขออธิบายให้รู้จัก bootloader กันสักนิด</p>
<p>“ bootloader คือ firmware ส่วนหนึ่งที่ทำหน้าที่ เป็นที่ช่วยในการ upload โปรแกรม หรือ sketch ที่เราเขียนเข้าไปใน flash rom ผ่านทางสาย serial หรือ usb ซึ่งแล้วแต่คนออกแบบครับ โดยไม่จำเป็นต้องมีเครื่องโปรแกรมไอชี</p></blockquote>
<p style="text-align: justify;">สำหรับวิธีการ Hacking ให้ Arduino มีเครื่องโปรแกรมนั้นง่ายๆครับ ก้อแค่ edit file ไฟล์ programmers.txt ซึ่งจะอยู่ที่  &gt;&gt;<span style="text-decoration: underline;"><strong> [drive:]\arduino\hardware\programmers.txt </strong></span>ดังรูป</p>
<p><img class="aligncenter" src="http://lh5.ggpht.com/_Yf5JCo_hjfM/SqPi8TPo-eI/AAAAAAAACOg/CTh_cB0stq0/s400/find_programmers_txt.jpg" alt="" width="350" height="400" /></p>
<p style="text-align: justify;">วิธีการเพิ่มแค่ใส่ CODE เข้าไปเพิ่ม แล้ว restart โปรแกรมใหม่เท่านั้นเอง ตัวแปร config ต่างๆมันจะเก็บไว้ในรูปแบบ object ของ java เอาที่สำคัญๆ ได้แก่</p>
<p style="padding-left: 60px; text-align: justify;"><em><strong>.communtication</strong></em> กำหนดว่าใช้ usb หรือ serial</p>
<p style="padding-left: 60px; text-align: justify;"><em><strong>.protocol </strong></em>เครื่องโปรแกรมใช้รูปแบบการรับส่งข้อมูลแบบไหน อันนี้ท่านต้องรู้จักโปรแกรม avrdude แล้วท่านจะรู้จัก protocol ต่างๆครับ</p>
<p style="text-align: justify;"><strong>เครื่องโปรแกรมที่มีในไทยนะครับ ที่ผมเคยทดลองใช้อยู่ จะมีรุ่นดังต่อไปนี้นะครับ</strong></p>
<ol>
<li>AVR-ISP (LPT)</li>
<li>AVR-ISP (USB)</li>
<li>USBASP (รุ่นทำกันเอง)</li>
</ol>
<p><span id="more-1092"></span></p>
<h2><strong><span style="color: #0000ff;">AVR-ISP-LPT</span></strong></h2>
<p><strong><img class="aligncenter" src="http://lh3.ggpht.com/_Yf5JCo_hjfM/SnMtIutBhoI/AAAAAAAACBk/Mp_9xBbVrAg/s400/P1220561.JPG" alt="" width="400" height="300" /></strong></p>
<p style="text-align: justify;"><a href="http://www.etteam.com/product/03A09.html">ET -AVR ISP </a> ตัวแรกนี้ ก้อมันถูกดี พอใช้งานได้ แต่มันเป็น LPT เดี่ยวนี้เลยไม่นิยมกัน  แต่ก้อแนะนำเลยสำหรับคนที่ นานๆๆ จะเอามาใช้สักที่</p>
<p style="text-align: justify;">วิธีติดตั้งก้อ copy code เข้าไปใส่ใน programming.txt</p>
<pre class="brush : java">ettparallel.name=ETT ISP Parallel Programmer
ettparallel.protocol=pony-stk200
ettparallel.force=true
#ettparallel.delay=200</pre>
<p>ก้อใส่ที่บรรทัดล่างสุดครับ</p>
<p><img class="aligncenter" src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SqPibB9YLpI/AAAAAAAACOY/wlplryzp8YY/s400/edit_programmers.jpg" alt="" width="400" height="294" /></p>
<p style="text-align: justify;">หลังจากนั้นเปิดโปรแกรม Arduino แล้วเปิดใหม่ จะเห็น ett isp ที่เพิ่มเข้าไป ตอนนี้ก้อสามารถเบิร์นด้วย ETT ISP ได้แล้ว และ เราใช้วิธีนี้ เพิ่ม ตัว programmer  ตัวอื่นด้วยครับ</p>
<p><img class="aligncenter" src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SqPilPLQLsI/AAAAAAAACOc/l34koHagnmE/s400/ettisp_add.jpg" alt="" width="288" height="173" /></p>
<p style="text-align: justify;">** วิธีการใช้งาน ก้อแค่ กด เลือก ETT ISP เครื่องโปรแกรมนี้มีปัญหานิดหน่อยครับ ถ้าบนบอร์ดมี LED13 ที่ต่อกับ SPI บัสอยู่ควรจะเอาออกด้วย มันจะทำให้ burn ไม่ได้ครับ</p>
<h2><span style="color: #0000ff;">DIY USBASP</span></h2>
<p><img class="aligncenter" src="http://lh5.ggpht.com/_Yf5JCo_hjfM/SnMtIE2VZCI/AAAAAAAACBg/Wy0wTRyTFhQ/s400/P1220559.JPG" alt="" width="400" height="300" /></p>
<p style="text-align: justify;">ตัวนี้เป็นรุ่นยอดนิยมอีกเช่นกัน สำหรับมือเก๋า ที่ชอบทำเอง  และ งงเองบ่อยๆๆ ผมก้อกว่าจะใช้งานได้ ก้องง ไปนานเหมือนกัน ใครสนใจก้อไปหาวงจรและทดลองทำได้ครับ USBASP(link หน่อย)</p>
<pre class="brush : java">usbasp.name=Usbasp
usbasp.communication=usb
usbasp.protocol=usbasp</pre>
<p style="text-align: justify;">รุ่นนี้ผมใช้แล้วมันงอแงง บ่อย เลยเลิกใช้ไปครับ เครื่องเบิร์น น่าจะใช้อะไรที่ไว้ใจได้ครับ หลังๆๆ ที่ไอยาราฟันส์ เบิร์น IC เป็น เข่งๆๆ เลยไอชีเสีย เครื่องเบิร์น ใช้งานได้บ้างไม่ได้บ้าง  มันเสียเวลาครับ</p>
<h2><span style="color: #0000ff;">AVR-ISP-USB</span></h2>
<p style="text-align: center;"><img class="aligncenter" src="http://lh5.ggpht.com/_Yf5JCo_hjfM/SnMtHBzpnsI/AAAAAAAACBY/ZKDj8Hw3Gvk/s400/P1220555.JPG" alt="" width="400" height="300" /></p>
<p style="text-align: justify;">ตัวนี้เป็นของ <a href="http://www.sureelectronics.net/goods.php?id=18">sure electronic</a> สำหรับสีเขียวฟ้า เป็นของทำเลียนแบบ ของแท้ครับ แต่ถ้าเป็นของไทยๆ ก้อจะมี  <a href="http://www.etteam.com/product/avr/et-avr-isp-usb-v1.html">ETT </a>จะกล่องสีดำครับ หลังจากผมใช้ LPT แล้วมันมีปัญหาบ้าง USBASP ก้อยังไม่พอใจอีก ผมลองของ ett ข้างห้องมันก้อไม่ถูกใจ ก้อมันโหลนิ ใครๆก้อมี ฮ่าๆ ผมเลยอยากลองของแพงๆบ้าง เลยซื้อกล่องเขียวๆมาจาก เวปจีนราคาประมาณ 1200 บาทครับ (CEO รวยจิงๆ)</p>
<pre class="brush : java">serialavrisp.name=SerialAVRISP
serialavrisp.communication=serial
serialavrisp.protocol=stk500v2</pre>
<p>หลังจากใส่ code ครบจะเป็นดังภาพ</p>
<p style="text-align: left;"><img class="aligncenter" src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SqPiNBfElkI/AAAAAAAACOU/--IOlomtCzI/s400/add_all_programmer.jpg" alt="" width="288" height="184" /></p>
<p style="text-align: justify;">ตอนนี้ ท่านก้อสามารถเอาเครื่องโปรแกรมในไทย มาใช้งานได้แล้ว สำหรับเครื่องของยี่ห้ออื่น เดี่ยวเอาไว้ผมหายืมมาได้จะมาบอกวิธีใช้อีกที่ครับ</p>
<p style="text-align: justify;">ประสบการณ์เสริมที่ได้จาก Arduino นะครับ เมื่อก่อนที่ใช้ avr เวลาโปรแกรมจะผ่าน เครื่องโปรแกรมไอชี พวก isp programming ผมจะเจอปัญหาเครื่องโปรแกรมไม่ดี เบิร์นไอชีเสียบ่อยๆมาก ถ้าเป็นไอชี mega8 ตัวล่ะ 50 บาท ไม่เท่าไร บ้างที่ smt ตัวแพงๆ เบิร์นเสียมันเจ็บใจ แต่หลังจากที่ upload ผ่าน bootloader ก้อมีข้อดีอย่างหนึ่ง คือโอกาสที่จะเบิร์นให้ไอชีเสียมันก้อน้อยลงครับ (เพราะว่าไม่ค่อยได้ใช้เครื่องเบิร์น ไม่มีคุณภาพมั่ง)</p>
<p style="text-align: justify;">สำหรับ bootloader ถ้าท่านประยุกต์ใช้กับ โปรเจค AVR อื่นๆ ได้นะครับ ซึ่งหาได้จากในไอยาราฟันส์ จะมีอยู่ จับ ettstamp ใส่ bootloader ,bootloader แบบ usbasp</p>
<p><em>Justfun</em></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/&amp;layout=standard&amp;show_faces=true&amp;width=260&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:260px; height:26px'></iframe></p>

<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2010/07/burn-bootloader-with-ftdi-bit-bang-writer/' rel='bookmark' title='Permanent Link: เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]'>เบิร์น Bootloader ให้ Arduino ตัวใหม่ด้วย FTDI-Bitbang [ตอนที่ 2]</a></li>
<li><a href='http://www.ayarafun.com/2009/09/make-texttool-board-adaptor-for-burn-arduin/' rel='bookmark' title='Permanent Link: ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่'>ชมการผลิตบอร์ด Arduino(clone) เครื่องเบิร์นดัดแปลงที่ข้าพเจ้าใช้งานอยู่</a></li>
<li><a href='http://www.ayarafun.com/2009/10/arduino-with-lowcost-rf-control/' rel='bookmark' title='Permanent Link: สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF'>สื่อสารไร้สาย กับ Arduino : ตอนที่ 1 ทดลองโมดุล lowcost RF</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/09/hacking-arduino-add-new-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
