tag:blogger.com,1999:blog-83612148820876143362024-03-05T12:08:56.344+07:00IPST-SE & POP-BOT XTTip & Trick | POP-X2 | IPST-SE | micro:bit | POP-7 | ATX2
| Application Module | Sensor Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.comBlogger49125tag:blogger.com,1999:blog-8361214882087614336.post-38091807352357098122018-09-05T23:47:00.004+07:002018-09-05T23:50:35.444+07:00micro:bit with TM1637 4 digit 7 Segmentไอซี TM1637 ของบริษัท Titan micro electronics ออกแบบมาเพื่อควบคุมการแสดงผล 7 Segment แบบคอมมอนอาโนดได้สูงสุด 6 หลัก โดยใช้ขาควบคุมเพียง 2 เส้นคือ DIO (ขาข้อมูล) และ CLK (สัญญาณนาฬิกา) และยังสามารถปรับความสว่างของ 7 Segment ได้ นอกจากนี้ไอซีตัวนี้ยังสามารถต่อสวิตช์ร่วมได้อีก 16 ตัว<br />
<br />
การเชื่อมต่อกับ micro:bit ผ่านบอร์ด PLAY:BIT ทำได้ง่าย ๆ กับสายเพียง 4 เส้นดังรูป<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="799" data-original-width="1024" height="498" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s640/TM1367-with-microbit-PLAYBIT.png" width="640" /></a></div>
ในรูปต่อ<br />
ขา 13 ==> CLK<br />
ขา 14 ==> DIO<br />
ขา VCC ==> +<br />
ขา GND ==> -<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvxkAk-c-aIrUO6eSN_o8jRnzhc7fmuvW4lYee0nuoXJ2WJ3UJPegvXfPCRAQbbyHK4cUwAnhbMt9BN4KxsTcY8dJJwponARM36izeHUB5kzpGBvJ3cK6vhEXel0NblkoR0VcILkrrguSJ/s1600/TM1367-wire01-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="588" data-original-width="1024" height="366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvxkAk-c-aIrUO6eSN_o8jRnzhc7fmuvW4lYee0nuoXJ2WJ3UJPegvXfPCRAQbbyHK4cUwAnhbMt9BN4KxsTcY8dJJwponARM36izeHUB5kzpGBvJ3cK6vhEXel0NblkoR0VcILkrrguSJ/s640/TM1367-wire01-microbit-PLAYBIT.png" width="640" /></a><br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFpdI0zd0ueVX6wpR-DLA9qmZNxa5YVRMo_YhCArRtrT-Iw-imCD4qgYkUiRfvtQK3TMkcqfPVG8nBItKJeg4gglxpqeBvnrM_OMUgsCfTMeoQVp-8kn3A1EmHKV1VkLHiP2YCBQdcKiNF/s1600/TM1367-wire02-microbit-PLAYBIT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="604" data-original-width="1024" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFpdI0zd0ueVX6wpR-DLA9qmZNxa5YVRMo_YhCArRtrT-Iw-imCD4qgYkUiRfvtQK3TMkcqfPVG8nBItKJeg4gglxpqeBvnrM_OMUgsCfTMeoQVp-8kn3A1EmHKV1VkLHiP2YCBQdcKiNF/s640/TM1367-wire02-microbit-PLAYBIT.png" width="640" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a>สำหรับการเขียนโค้ด ด้วย micro:bit เพื่อให้ง่าย สามารถใช้ Package ที่มีผู้ทำอยู่แล้วมาใช้งานได้ ตามลิงก์นี้<br />
<a href="https://github.com/zhuning239/TM1637" style="background-color: white; box-sizing: border-box; color: #0366d6; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; outline-width: 0px;">https://github.com/zhuning239/TM1637</a><br />
<br />
<br />
โดยกดเลือกที่คำสั่ง Add Package<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmnKa65KVY-sq_vgPPVX0biLxsxc-TDXIjiKD7XAa4OqIN6fk7B8y8lB7dLhJSX97hSzDxmZdwfgczD5hY0lfpcpYWLJELB0RKtzzEqBQtiM-ghPc4_4GCgQZcImCM4vLVoAIt-pA-xKn8/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="832" data-original-width="875" height="608" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmnKa65KVY-sq_vgPPVX0biLxsxc-TDXIjiKD7XAa4OqIN6fk7B8y8lB7dLhJSX97hSzDxmZdwfgczD5hY0lfpcpYWLJELB0RKtzzEqBQtiM-ghPc4_4GCgQZcImCM4vLVoAIt-pA-xKn8/s640/5.png" width="640" /></a></div>
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6eSPxkVOyEepZktEFCP6i7jawnjlRPBETfCWL8zUKWt8Qs1LqKxaJkbSpVOJ1YF_OU8MuPr9x1BuE_qnXO8Q90etOVIjq_RQPSDmqJ8uO0Dd7T-BdLLW4qZOYzcSzJ9C56Veu5y5v769y/s1600/6.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6eSPxkVOyEepZktEFCP6i7jawnjlRPBETfCWL8zUKWt8Qs1LqKxaJkbSpVOJ1YF_OU8MuPr9x1BuE_qnXO8Q90etOVIjq_RQPSDmqJ8uO0Dd7T-BdLLW4qZOYzcSzJ9C56Veu5y5v769y/s1600/6.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a><br />
จากนั้นวางลิงก์ <a href="https://github.com/zhuning239/TM1637" style="background-color: white; box-sizing: border-box; color: #0366d6; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; outline-width: 0px;">https://github.com/zhuning239/TM1637</a> ลงในช่อง URL และกดเพื่อค้นหา<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6eSPxkVOyEepZktEFCP6i7jawnjlRPBETfCWL8zUKWt8Qs1LqKxaJkbSpVOJ1YF_OU8MuPr9x1BuE_qnXO8Q90etOVIjq_RQPSDmqJ8uO0Dd7T-BdLLW4qZOYzcSzJ9C56Veu5y5v769y/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="451" data-original-width="1131" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6eSPxkVOyEepZktEFCP6i7jawnjlRPBETfCWL8zUKWt8Qs1LqKxaJkbSpVOJ1YF_OU8MuPr9x1BuE_qnXO8Q90etOVIjq_RQPSDmqJ8uO0Dd7T-BdLLW4qZOYzcSzJ9C56Veu5y5v769y/s640/6.png" width="640" /></a></div>
<br />
<br />
<br />
จะพบ TM1637 ให้กดเลือก<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD0ovf9an_rulPCVVobHZKLZ7q2U24XIByA8kshTzV9hGKA1MkPsuZb6NgfUXERWtirmpskPJMS54U3ify-K_ViRjqNzGNZcvLRd6j-s7wdZtmNlWW1mnZNHaiaqp2JcFq8lH16NvdllG4/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="358" data-original-width="1127" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD0ovf9an_rulPCVVobHZKLZ7q2U24XIByA8kshTzV9hGKA1MkPsuZb6NgfUXERWtirmpskPJMS54U3ify-K_ViRjqNzGNZcvLRd6j-s7wdZtmNlWW1mnZNHaiaqp2JcFq8lH16NvdllG4/s640/7.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
หน้าจอจะพบกลุ่มคำสั่ง ของ TM1637 ปรากฎขึ้นมา<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsbDEhHt_0Z0lXKSB7nhupYhxwxa-b_9LDwvsW_65LWDOvsqjMcuGtT_8Q5h4hgzrsztigKO1o5MaTpH9sg6N1rDvlHgwVYunl-ix8RSR4DBy9T1be3Hg25vfmjnEBcO26WLhgdWgzPAp9/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="409" data-original-width="898" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsbDEhHt_0Z0lXKSB7nhupYhxwxa-b_9LDwvsW_65LWDOvsqjMcuGtT_8Q5h4hgzrsztigKO1o5MaTpH9sg6N1rDvlHgwVYunl-ix8RSR4DBy9T1be3Hg25vfmjnEBcO26WLhgdWgzPAp9/s640/8.png" width="640" /></a></div>
<br />
<br />
<br />
มาดูตัวอย่างการเขียนโปรแกรมอย่างง่าย ๆ กันครับ<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1XZ6K3zHeSEYqPVzVVpD9jSYxuPKqeCw1tkeld-PArLueDo1DX3tRhA_AWCaV0CTbCeX7mCJihmO0qFFUpwo4cB4NWHb52j2HKpZoGAtgmPRN0VdjTHa6YwbWDw_CZzFQpFED3weyUtex/s1600/microbit-screenshot+%25283%2529.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="495" data-original-width="1600" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1XZ6K3zHeSEYqPVzVVpD9jSYxuPKqeCw1tkeld-PArLueDo1DX3tRhA_AWCaV0CTbCeX7mCJihmO0qFFUpwo4cB4NWHb52j2HKpZoGAtgmPRN0VdjTHa6YwbWDw_CZzFQpFED3weyUtex/s640/microbit-screenshot+%25283%2529.png" width="640" /></a></div>
<br />
<div style="height: 0; overflow: hidden; padding-bottom: 70%; position: relative;">
<iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:_1PmDKKTRJdPU" style="height: 100%; left: 0; position: absolute; top: 0; width: 100%;"></iframe></div>
<br />
<br />
จากตัวอย่างเป็นการกำหนดให้ TM1637 เชื่อมต่อกับขา 13 และ 14 ของ micro:bit และจำนวน 7 Segment มี 4 หลัก จากนั้นวนลูปเพื่อนับค่าตัวเลขขึ้นไปเรื่อยๆ ทุก ๆ 1 วินาที โดยทุกครึ่งวินาที แสดงการติดดับของ LED ตำแหน่งตรงกลางด้วย<br />
โดยคำสั่งสำคัญประกอบด้วย<br />
<br />
<br />
<b><i>การสร้างออบเจ็กต์สำหรับ TM1637 </i></b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1ui6iXZ5FbiWtFO1FL7fHcqcTri2OTxFsTUwRkkOSnPkwoo2lBIdGkq7-XWxstiOXHRyC1OqXz9TDboUp8xeDRjJN2QqVAvxRypl1ABt2aVuj4jl4oHc4YRhun42NqUzVI03q_W6eP-UJ/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="113" data-original-width="169" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1ui6iXZ5FbiWtFO1FL7fHcqcTri2OTxFsTUwRkkOSnPkwoo2lBIdGkq7-XWxstiOXHRyC1OqXz9TDboUp8xeDRjJN2QqVAvxRypl1ABt2aVuj4jl4oHc4YRhun42NqUzVI03q_W6eP-UJ/s320/11.png" width="320" /></a></div>
<br />
<br />
โดย<br />
<ul style="background-color: white; box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">clk, เป็นขาพอร์ตขาใดก็ได้</li>
<li style="box-sizing: border-box; margin-top: 0.25em;">dio, เป็นขาพอร์ตขาใดก็ได้</li>
<li style="box-sizing: border-box; margin-top: 0.25em;">intensity, กำหนดค่าความสว่างของจอมีค่าตั้งแต่ [0-8]</li>
<li style="box-sizing: border-box; margin-top: 0.25em;">count, คือจำนวน 7 Segment มีค่า [1-5]</li>
</ul>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSQwgkT6seGGqiemBbtYCHU63mguY0d8xaKgEHawVRbkAl4IUtqjKi76IyL2cGnHro6i2DtleEroN5Mfm0hCXpKTEDCfHonaCSIGNSoJaxWoSon0hj74s4SQLlR_0e6sSzTlCBdZBRtPO/s1600/15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="48" data-original-width="204" height="73" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSQwgkT6seGGqiemBbtYCHU63mguY0d8xaKgEHawVRbkAl4IUtqjKi76IyL2cGnHro6i2DtleEroN5Mfm0hCXpKTEDCfHonaCSIGNSoJaxWoSon0hj74s4SQLlR_0e6sSzTlCBdZBRtPO/s320/15.png" width="320" /></a></div>
<br />
เปิดการแสดงผล 7 Segment<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG5JkJbKyrgGM1Mti_q7CrhUbRSX5YaDIODsGyOcqkz1yCC6Y6h-p1CZy1X3GvlLy0DQT8mZ-KkgcIPbfH1rpZs9ql076lZ_Ld7BqKnibNcHV1KmNSfL0Xu6-WjXXZcm7FnbtVkH_0qqtt/s1600/16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="52" data-original-width="219" height="75" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG5JkJbKyrgGM1Mti_q7CrhUbRSX5YaDIODsGyOcqkz1yCC6Y6h-p1CZy1X3GvlLy0DQT8mZ-KkgcIPbfH1rpZs9ql076lZ_Ld7BqKnibNcHV1KmNSfL0Xu6-WjXXZcm7FnbtVkH_0qqtt/s320/16.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
ปิดการแสดงผล 7 Segment<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq6tEV1DwBnE1rzbu4uJcZiateS8sw6eaTiT7gCCdcD78Jl6fcFLdhQWaUpZLfJJyRw6Xn4SCwX7eV_8GpEfOPvRE2vwJ4B6OsV_a55-CaRWppBmIuMlebjL2eJsI5Vo3CaLYzwqgoQyXs/s1600/17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="49" data-original-width="188" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq6tEV1DwBnE1rzbu4uJcZiateS8sw6eaTiT7gCCdcD78Jl6fcFLdhQWaUpZLfJJyRw6Xn4SCwX7eV_8GpEfOPvRE2vwJ4B6OsV_a55-CaRWppBmIuMlebjL2eJsI5Vo3CaLYzwqgoQyXs/s320/17.png" width="320" /></a></div>
<br />
<br />
<br />
เคลียร์ค่าข้อมูลการแสดงผล<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbVDt4Vr_1Avr0L3mCelDJq5oaIY20WwGlsaB_EAGrP56Rscwt7q1nWF1gV-aAWj7UOlYPEVzmM2PrqgKadGlUJj66hij1jJ8fKeh9QGy-FgIxUezNiOfye4Y_-QtCMLVT_v4VxhbojmBw/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="48" data-original-width="355" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbVDt4Vr_1Avr0L3mCelDJq5oaIY20WwGlsaB_EAGrP56Rscwt7q1nWF1gV-aAWj7UOlYPEVzmM2PrqgKadGlUJj66hij1jJ8fKeh9QGy-FgIxUezNiOfye4Y_-QtCMLVT_v4VxhbojmBw/s400/13.png" width="400" /></a></div>
<br />
<br />
<br />
แสดงตัวเลขในตำแหน่งที่ระบุ<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzy9vFTROU0lhjI_7Nne1-lkhfriMD4WAFh7XCnMR9vPLzZktJxUFUXsDE8bPulPxmkgmr9U0abFPlZ1uJjagWuF68arPiyZIOQIn2mOsA3upPuUiVmER0sGf0GeLy6EpXOij6NPWEe9TM/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="51" data-original-width="292" height="68" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzy9vFTROU0lhjI_7Nne1-lkhfriMD4WAFh7XCnMR9vPLzZktJxUFUXsDE8bPulPxmkgmr9U0abFPlZ1uJjagWuF68arPiyZIOQIn2mOsA3upPuUiVmER0sGf0GeLy6EpXOij6NPWEe9TM/s400/12.png" width="400" /></a></div>
<br />
<br />
แสดงค่าตัวเลขจำนวนเต็ม<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7-23iv0_mN8zS0DgrdHuHj7v9IeVeVAKU_nh-X1Cn6KrpYEDGxbMQR8Ax131ezGQvvdFMoQ3cTE-Vvc_XlDrtW1nLigkrYuUSkgkOf5OucMLofdwdS3uWDGCm_wAkEVZRqbkx09lT4jl7/s1600/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="49" data-original-width="328" height="58" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7-23iv0_mN8zS0DgrdHuHj7v9IeVeVAKU_nh-X1Cn6KrpYEDGxbMQR8Ax131ezGQvvdFMoQ3cTE-Vvc_XlDrtW1nLigkrYuUSkgkOf5OucMLofdwdS3uWDGCm_wAkEVZRqbkx09lT4jl7/s400/14.png" width="400" /></a></div>
<br />
<br />
<br />
แสดงค่าตัวเลขฐานสิบหก<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXnWopkL_xww4xyPKUBtQ04ojWbTspQnR4F_sbmGD_Y7n5o_wuEVFvM45ZB_HNJ6XrmbW4Y4qldtZSku96q1UrqPl_Cq3nFwIwzXk5aEN2O8-IaLFywgliMYkrtJqh2vFujwVjppZsDQQm/s1600/18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="48" data-original-width="426" height="45" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXnWopkL_xww4xyPKUBtQ04ojWbTspQnR4F_sbmGD_Y7n5o_wuEVFvM45ZB_HNJ6XrmbW4Y4qldtZSku96q1UrqPl_Cq3nFwIwzXk5aEN2O8-IaLFywgliMYkrtJqh2vFujwVjppZsDQQm/s400/18.png" width="400" /></a></div>
<br />
<br />
<br />
แสดงจุด (จากการทดสอบแสดงได้แค่จุดกึ่งกลาง : เท่านั้น )<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCytIMowMC0XYPkbtvhy13rs5G-Nw4yWCi15_uKsL5ibtrqh06BQNPE04gJya362Xvj9-SjZTDKapyDDpMKt1r_WdYUiiKVkFUTDbrhyUMkfX67U2oJQMoIMiCHdYXRdMlUctAtnBGUrIT/s1600/19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="47" data-original-width="302" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCytIMowMC0XYPkbtvhy13rs5G-Nw4yWCi15_uKsL5ibtrqh06BQNPE04gJya362Xvj9-SjZTDKapyDDpMKt1r_WdYUiiKVkFUTDbrhyUMkfX67U2oJQMoIMiCHdYXRdMlUctAtnBGUrIT/s400/19.png" width="400" /></a></div>
<br />
<br />
<br />
กำหนดค่าความสว่างหน้าจอ<br />
<br />
<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGzNkC0z0Ad7amWQIGe48L95ijDw96JAysGOr-0EKnKxWnz_SLLzQYM14l2gKcbhk0rmTqZ6EDPo1n6GqEvLgnNMfxGpckzs-vv1RjyxJI0y3NaSEHw8AMmVpJKgxMemoTIf73hyphenhypheneDH9rO/s1600/TM1367-with-microbit-PLAYBIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br />
</a>Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-2545270637840977742018-09-04T19:09:00.001+07:002018-10-25T11:38:41.883+07:00Running 20 LED on Arduinoแนวคิดง่าย ๆ กับการเขียนโปรแกรม Arduino ทำไฟวิ่งจนครบขาทั้งหมด 20 ขา<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6PWNOaWlgHkyaLfenxpR8VaEZOqaVgGCSRQ-w5tt-9pbk8EvfNhwmHrf9Mq2gAa1bRqi3I_wG72c2Fpm5gSP5QgrZM5r6HmVZCk0UX22onkuPt5td0rTDgqjCC8DLx1AKJTTfzCOH58Bj/s1600/Running+20+LED+on+Arduino.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="590" data-original-width="1532" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6PWNOaWlgHkyaLfenxpR8VaEZOqaVgGCSRQ-w5tt-9pbk8EvfNhwmHrf9Mq2gAa1bRqi3I_wG72c2Fpm5gSP5QgrZM5r6HmVZCk0UX22onkuPt5td0rTDgqjCC8DLx1AKJTTfzCOH58Bj/s640/Running+20+LED+on+Arduino.png" width="640" /></a></div>
<div>
<br />
<div>
<br /></div>
<div>
ลิงก์ของ ThinkerCad ตามนี้</div>
<div>
<br />
http://bit.ly/2oDYpmr</div>
</div>
<div>
<br /></div>
<div>
ส่วนโปรแกรมก็ตามนี้</div>
<div>
<iframe src="https://pastebin.com/embed_iframe/PtcUEuMQ" style="border: none; height: 300px; width: 100%;"></iframe><br /></div>
<br />
ซึ่งหัวใจคือการประกาศตำแหน่งขาต่างๆ ซึ่งไม่เรียงต่อกัน ผ่าน ArrayKritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-27915480880556566942018-09-04T13:35:00.001+07:002018-09-04T13:35:14.383+07:00Arduino Uno with 74HC595<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuj77eefqEU2bGc0nC-T-YfRSE5nvjkYHcTfHEKk_e9WxINtCy-NWRnx_Hw-VT2l2xSw1AaEGSi-VYF8cx-4eXUCHo_Whctf6X_fWJkiPuTZ9AHefLT2FYTRXajNXigxXUH6ZuvSY5gmFc/s1600/Arduino+with+2+74HC595+Running+LED.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1532" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuj77eefqEU2bGc0nC-T-YfRSE5nvjkYHcTfHEKk_e9WxINtCy-NWRnx_Hw-VT2l2xSw1AaEGSi-VYF8cx-4eXUCHo_Whctf6X_fWJkiPuTZ9AHefLT2FYTRXajNXigxXUH6ZuvSY5gmFc/s640/Arduino+with+2+74HC595+Running+LED.png" width="640" /></a></div>
<br />
วันนี้มีคำถาม สอบถามเรื่องการต่อ Arduino กับ 74HC595 ไหน ๆ ก็ตอบคำถามแล้ว เอารายละเอียดที่ทำไว้มาบันทึกลง บล็อกไว้เลยดีกว่า ทั้ง ส่วนของการต่อวงจร และลิงก์สำหรับการทดสอบการทำงานผ่าน 123D Circuit (ปัจจุบันไปรวมตัวอยู่กับ ThikerCad แล้ว) ลิงก์สมบูรณ์ตามนี้เลย<br />
ทั้งวงจรและการจำลองการทำงาน<br />
http://bit.ly/2NLNj9P<br />
สำหรับโค้ด<br />
<iframe src="https://pastebin.com/embed_iframe/97EfH4BW" style="border: none; height: 300px; width: 100%;"></iframe><br />
<br />
<br />Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-44508762552937718302018-08-31T17:58:00.002+07:002018-08-31T17:58:38.353+07:00#pragma onceวันนี้ไปเจอส่วนหัวของโปรแกรม มีคำสั่งนี้มาก่อนเลย<br />
<br />
#pragma once<br />
ก็เลยไปหาข้อมูลและขอเก็บบันทึกไว้กันลืม<br />
<br />
<dl style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.2em;">
<dt style="font-weight: bold; margin-bottom: 0.1em;">File "grandparent.h"</dt>
</dl>
<div class="mw-highlight mw-content-ltr" dir="ltr" style="background: rgb(248, 248, 248); color: #222222; direction: ltr; font-family: sans-serif; font-size: 14px; unicode-bidi: embed;">
<pre style="background-color: #f8f9fa; border: 1px solid rgb(234, 236, 240); color: black; font-family: monospace, monospace; line-height: 1.3em; padding: 1em; tab-size: 4; white-space: pre-wrap;"><span class="cp" style="color: #bc7a00;">#pragma once</span>
<span class="k" style="color: green; font-weight: bold;">struct</span> <span class="n">foo</span>
<span class="p">{</span>
<span class="kt" style="color: #b00040;">int</span> <span class="n">member</span><span class="p">;</span>
<span class="p">};</span>
</pre>
</div>
<dl style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.2em;">
<dt style="font-weight: bold; margin-bottom: 0.1em;">File "parent.h"</dt>
</dl>
<div class="mw-highlight mw-content-ltr" dir="ltr" style="background: rgb(248, 248, 248); color: #222222; direction: ltr; font-family: sans-serif; font-size: 14px; unicode-bidi: embed;">
<pre style="background-color: #f8f9fa; border: 1px solid rgb(234, 236, 240); color: black; font-family: monospace, monospace; line-height: 1.3em; padding: 1em; tab-size: 4; white-space: pre-wrap;"><span class="cp" style="color: #bc7a00;">#include</span> <span class="cpf" style="color: #408080; font-style: italic;">"grandparent.h"</span><span class="cp" style="color: #bc7a00;"></span>
</pre>
</div>
<dl style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.2em;">
<dt style="font-weight: bold; margin-bottom: 0.1em;">File "child.c"</dt>
</dl>
<div class="mw-highlight mw-content-ltr" dir="ltr" style="background: rgb(248, 248, 248); color: #222222; direction: ltr; font-family: sans-serif; font-size: 14px; unicode-bidi: embed;">
<pre style="background-color: #f8f9fa; border: 1px solid rgb(234, 236, 240); color: black; font-family: monospace, monospace; line-height: 1.3em; padding: 1em; tab-size: 4; white-space: pre-wrap;"><span class="cp" style="color: #bc7a00;">#include</span> <span class="cpf" style="color: #408080; font-style: italic;">"grandparent.h"</span><span class="cp" style="color: #bc7a00;"></span>
<span class="cp" style="color: #bc7a00;">#include</span> <span class="cpf" style="color: #408080; font-style: italic;">"parent.h"</span></pre>
<br /></div>
<br />
จากตัวอย่างไฟล์ child.c เรียกใช้ parent.h และ grandparent.h แต่ parent.h มีการเรียกใช้ grandparent.h อยู่แล้ว ภาษา C จะแจ้ง error เพราะว่าเป็นเรียกไลบรารี่ซ้ำ ดังนั้น ปกติ เมื่อเขียนไลบรารี่จะต้องมีการกำหนด คำสั่งเป็น<br />
<br />
<pre style="background-color: #f8f9fa; border: 1px solid rgb(234, 236, 240); font-family: monospace, monospace; font-size: 14px; line-height: 1.3em; padding: 1em; tab-size: 4; white-space: pre-wrap;"><span class="cp" style="color: #bc7a00;">#ifndef GRANDPARENT_H</span>
<span class="cp" style="color: #bc7a00;">#define GRANDPARENT_H</span>
<span class="p">...</span> <span class="n">contents</span> <span class="n">of</span> <span class="n">grandparent</span><span class="p">.</span><span class="n">h</span>
<span class="cp" style="color: #bc7a00;">#endif </span></pre>
<br />
ซึ่งใช้ #ifdef เพื่อตรวจสอบว่า มีการเรียกใช้ grandpatent.h แล้วหรือยัง ถ้ายังก็อนุญาตให้เรียกใช้ ทั้ง 3 คำสั่งนี้สามารถแทนด้วย #pragma once เพียงคำสั่งเดียว <br />
หมายเหตุ ต้องดูคอมไพเลอร์แต่ละตัวด้วยว่ารองรับหรือไม่ ที่แน่ๆ ใช้ได้กับ arduino ครับKritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-34877328520474548472018-05-31T23:57:00.000+07:002018-05-31T23:57:32.162+07:00Running LED From microBit with Array<div style="text-align: center;">
<div style="height: 0; overflow: hidden; padding-bottom: 81.97%; position: relative;">
<br />
<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/---run?id=_DcJiff0RAHdU" style="height: 60%; left: 0; position: absolute; top: 0; width: 60%;"></iframe><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
</div>
<div style="height: 0; overflow: hidden; padding-bottom: 70%; position: relative;">
<iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:_DcJiff0RAHdU" style="height: 90%; left: 0; position: absolute; top: 0; width: 80%;"></iframe><br /></div>
<br />Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-77546798234064517102017-06-03T13:24:00.003+07:002017-10-24T16:51:43.859+07:00micro:bit simple Dice Code<b>ตัวอย่างการเขียนโค้ดของ micro:bit<br />
</b><br />
<br />
<div style="height: 0; overflow: hidden; padding-bottom: 70%; position: relative;">
<iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://pxt.microbit.org/#pub:27973-29171-02345-20926" style="height: 100%; left: 0; position: absolute; top: 0; width: 100%;"></iframe></div>
<br />
<br />
<div style="height: 0; overflow: hidden; padding-bottom: 81.97%; position: relative;">
<iframe allowfullscreen="allowfullscreen" frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://pxt.microbit.org/---run?id=27973-29171-02345-20926" style="height: 100%; left: 0; position: absolute; top: 0; width: 100%;"></iframe></div>
<br />
<br />
<a href="https://pxt.microbit.org/#pub:27973-29171-02345-20926"><img src="data:image/png;base64,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" /></a>Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-88683263192735130802016-09-10T21:49:00.001+07:002016-09-10T21:51:24.450+07:00[IPST-SE] แนวการเขียนโปรแกรม STEM FESTIVAL 2016 EP.1<h1>ตอนที่ 1 การอ่านบาร์โค้ด</h1> <h1><a href="http://doc.inex.co.th/wp-content/uploads/2016/09/STEM_Fes01.jpg"><img title="STEM_Fes01" style="background-image: none; display: inline" border="0" alt="STEM_Fes01" src="http://doc.inex.co.th/wp-content/uploads/2016/09/STEM_Fes01_thumb.jpg" width="640" height="348"></a></h1> <h1></h1> <p><a href="http://doc.inex.co.th/wp-content/uploads/2016/09/STEM_Fes02.jpg"><img title="STEM_Fes02" style="background-image: none; display: inline" border="0" alt="STEM_Fes02" src="http://doc.inex.co.th/wp-content/uploads/2016/09/STEM_Fes02_thumb.jpg" width="640" height="412"></a></p> <p>บาร์โค้ดประกอบไปด้วย สี 3 สีคือ สีดำ สีน้ำตาลและสีขาว โดยแผ่นบาร์โค้ดออกแบบให้สีน้ำตาลเป็นพื้น สีดำ แทนลอจิก “1” สีขาวแทนลอจิก “0” แถบบาร์โค้ดมีทั้งหมด 3 แถบ แทนตัวเลขฐานสอง 3 บิต ให้ค่าเท่ากับ 0 ถึง 7</p> <p><a href="http://doc.inex.co.th/wp-content/uploads/2016/09/STEM-Barcode.jpg"><img title="STEM-Barcode" style="background-image: none; display: inline" border="0" alt="STEM-Barcode" src="http://doc.inex.co.th/wp-content/uploads/2016/09/STEM-Barcode_thumb.jpg" width="640" height="165"></a></p> <table cellspacing="0" cellpadding="2" width="479" border="1"> <tbody> <tr> <td style="text-align: center" valign="top" width="155"> <h4>แถบสีที่ 3</h4></td> <td style="text-align: center" valign="top" width="120"> <h4>แถบสีที่ 2</h4></td> <td style="text-align: center" valign="top" width="105"> <h4>แถบสีที่ 1</h4></td> <td style="text-align: center" valign="top" width="97"> <h4>ค่าที่ได้</h4></td></tr> <tr> <td style="text-align: center" valign="top" width="198">สีขาว</td> <td style="text-align: center" valign="top" width="144">สีขาว</td> <td style="text-align: center" valign="top" width="122">สีขาว</td> <td style="text-align: center" valign="top" width="110">0</td></tr> <tr> <td style="text-align: center" valign="top" width="210">สีขาว</td> <td style="text-align: center" valign="top" width="153">สีขาว</td> <td style="text-align: center" valign="top" width="129">สีดำ</td> <td style="text-align: center" valign="top" width="116">1</td></tr> <tr> <td style="text-align: center" valign="top" width="210">สีขาว</td> <td style="text-align: center" valign="top" width="156">สีดำ</td> <td style="text-align: center" valign="top" width="132">สีขาว</td> <td style="text-align: center" valign="top" width="120">2</td></tr> <tr> <td style="text-align: center" valign="top" width="207">สีขาว</td> <td style="text-align: center" valign="top" width="157">สีดำ</td> <td style="text-align: center" valign="top" width="133">สีดำ</td> <td style="text-align: center" valign="top" width="123">3</td></tr> <tr> <td style="text-align: center" valign="top" width="205">สีดำ</td> <td style="text-align: center" valign="top" width="157">สีขาว</td> <td style="text-align: center" valign="top" width="133">สีขาว</td> <td style="text-align: center" valign="top" width="125">4</td></tr> <tr> <td style="text-align: center" valign="top" width="205">สีดำ</td> <td style="text-align: center" valign="top" width="156">สีขาว</td> <td style="text-align: center" valign="top" width="132">สีดำ</td> <td style="text-align: center" valign="top" width="127">5</td></tr> <tr> <td style="text-align: center" valign="top" width="205">สีดำ</td> <td style="text-align: center" valign="top" width="156">สีดำ</td> <td style="text-align: center" valign="top" width="132">สีขาว</td> <td style="text-align: center" valign="top" width="127">6</td></tr> <tr> <td style="text-align: center" valign="top" width="205">สีดำ</td> <td style="text-align: center" valign="top" width="156">สีดำ</td> <td style="text-align: center" valign="top" width="132">สีดำ</td> <td style="text-align: center" valign="top" width="127"> <p>7</p></td></tr></tbody></table> <h4></h4> <h4>การอ่านค่าแถบสีน้ำตาลด้วย ZX-03</h4> <p><a href="http://doc.inex.co.th/wp-content/uploads/2016/09/ZX-03-For-Brown.jpg"><img title="ZX-03 For Brown" style="background-image: none; display: inline" border="0" alt="ZX-03 For Brown" src="http://doc.inex.co.th/wp-content/uploads/2016/09/ZX-03-For-Brown_thumb.jpg" width="640" height="369"></a></p> <p>โดยปกติ ZX-03 จะอ่านค่าได้เฉพาะสีในช่วงโทนสีเทา คือไล่ลำดับตั้งแต่สีขาวไปจนถึงสีดำเท่านั้น แต่ถ้าติดตั้งเซนเซอร์ให้สูงจากพื้นมากขึ้น ดังรูป ZX-03 จะสามารถแยกโทนสีอื่นๆ ได้ด้วย ซึ่งในที่นี้ใช้สีน้ำตาล โดยการอ่านค่าแสดงที่หน้าจอ GLCD ให้ค่าดังนี้</p> <p><a href="http://doc.inex.co.th/wp-content/uploads/2016/09/i-BOT-With-ZX-03-On-Black-Brown-White.jpg"><img title="i-BOT-With-ZX-03-On-Black-Brown-White" style="background-image: none; display: inline" border="0" alt="i-BOT-With-ZX-03-On-Black-Brown-White" src="http://doc.inex.co.th/wp-content/uploads/2016/09/i-BOT-With-ZX-03-On-Black-Brown-White_thumb.jpg" width="640" height="222"></a></p> <p>ในการอ่านค่าบาร์โค้ด เราจะเลือกใช้เซนเซอร์ด้านใดด้านหนึ่งเท่านั้น ในที่นี้เลือกใช้เซนเซอร์ด้านขวา</p> <p>จากรูปค่าที่อ่านได้ พอสรุปได้ว่า จะต้องสร้างค่าอ้างอิงขึ้นมา 2 ช่วง คือ<br>ค่าอ้างอิงระหว่างสีขาวกับสีน้ำตาล <span style="color: #ff0000">เท่ากับ (890+440)/2 = 665</span></p> <blockquote> <p><span style="color: #ff0000">ค่าอ้างอิงสร้างเป็นตัวแปรได้เป็น word whiteBrown=665 ;</span></p></blockquote> <p>ค่าอ้างอิงระหว่างสีน้ำตาลกับดำ <span style="color: #ff0000">เท่ากับ (440+90)/2 = 265</span></p> <blockquote> <p><span style="color: #ff0000">ค่าอ้างอิงสร้างเป็นตัวแปรได้เป็น word blackBrown=265 ;</span></p></blockquote> <h3>การเขียนโปรแกรม โดยใช้คำสั่ง while</h3> <p><span style="color: #ff0000"> <span style="color: #000000">คำสั่ง while จะวนลูปทำงาน โดยดูเงื่อนไขในวงเล็บ ถ้าเงื่อนไขในวงเล็บยังเป็นจริง จะทำงานตามคำสั่งต่อไปเรื่อยๆ เมื่อนำมาใช้กับการอ่านบาร์โค้ดคือ เป็นการเขียนโปรแกรมให้หุ่นยนต์เคลื่อนที่ไปจนกระทั่งถึงแถบสีต่างๆ นั่นเอง เมื่อถึงแถบสีที่ต้องการ (เงื่อนไขเป็นเท็จ ) ก็ให้หยุดทำงาน </span></span></p> <h5>ตัวอย่าง</h5> <p><span style="color: #ff0000"><span style="color: #000000">การเคลื่อนที่จากพื้นสนาม "สีดำ" ไปหยุดที่บาร์โค้ด "สีน้ำตาล" ก็เขียนโปรแกรมได้ว่า<br>"ให้หุ่นยนต์เคลื่อนที่ไปเรื่อยๆ จนกระทั่งเจอสีน้ำตาลแล้วหยุด"</span></span></p><pre class="prettyprint">while (analog(1)<blackBrown) {</pre><pre class="prettyprint"> fd(40);delay(12); </pre><pre class="prettyprint">} </pre><pre class="prettyprint">ao(); delay(100);</pre>
<p><strong><span style="color: #666666">หมายเหตุ </span></strong>ค่า delay(100); ที่ตามมาเพื่อให้เห็นว่าหุ่นยนต์หยุดจริงๆ ก่อนไปทำงานส่วนถัดไป</p>
<h3><strong><em>การตรวจสอบแถบสีขาวหรือดำ</em></strong></h3>
<p><strong><em>ปัญหาอยู่ตรงที่ เมื่อเดินผ่านสีน้ำตาลมาแล้ว ไม่แน่ใจว่าสีต่อไปเป็นสีขาวหรือสีดำ จึงต้องเขียนเงื่อนไข while ดักไว้สองกรณีคือ มีค่ามากกว่าสีน้ำตาล (ขาว) <span style="color: #ff0000">และ </span>มีค่าน้อยกว่าสีน้ำตาล (ดำ) โดยใช้ AND (&&) มาช่วย โดยให้เงื่อนไขเป็นเท็จ เมื่อเจอสีขาวหรือสีดำ และค่อยแยกแยะว่า สีที่ตรวจพบเป็นสีขาวหรือดำ </em></strong></p>
<h5><strong>ตัวอย่าง</strong></h5>
<p>เดินผ่านสีน้ำตาลจนเงื่อนไขเป็นเท็จแล้ว จึงใช้คำสั่ง if ตรวจสอบว่าเป็นสีขาวหรือดำ จากนั้นนำค่าแสดงที่หน้าจอ</p><pre class="prettyprint">while (analog(1)>blackBrown&&analog(1)<whiteBrown) {
fd(40);delay(12);
}
ao(); delay(100);</pre><pre class="prettyprint">if (analog(1)<blackBrown){</pre><pre class="prettyprint"> glcd(2,0,"BLACK"); </pre><pre class="prettyprint">} </pre><pre class="prettyprint">else if (analog(1)>whiteBrown){</pre><pre class="prettyprint"> glcd(2, 0, "WHITE"); </pre><pre class="prettyprint">}</pre>
<p> </p>
<p>การอ่านค่าบาร์โค้ด 3 แถบก็คือการเคลื่อนที่ลักษณะนี้ซ้ำ 3 ครั้ง แล้วนำค่าที่อ่านได้ทั้ง 3 บิต มารวมกัน สรุปเป็นโค้ดได้ดังนี้<iframe style="border-top-style: none; border-left-style: none; height: 1000px; width: 100%; border-bottom-style: none; border-right-style: none" height="150" src="//pastebin.com/embed_iframe/NjEWn5bg" width="300"></iframe></p>
<p><span style="color: #ff0000">เราสามารถนำค่าบาร์โค้ดจากตัวแปร BAR ไปใช้เพื่อตรวจสอบเส้นทางการเดินในขั้นตอนต่อไปได้</span></p>
<p><span style="color: #ff0000"> </span></p>
<p><span style="color: #ff0000"> </span></p>
<p><span style="color: #ff0000"> </span></p>
<p><span style="color: #ff0000"> </span></p>
<p><span style="color: #ff0000"> </span></p>
<p><span style="color: #ff0000"> </span></p>
<p><span style="color: #ff0000"> </span></p>Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-24374906555015478352015-11-24T16:35:00.000+07:002015-11-24T16:35:35.751+07:00บันทึกช่วยจำ Raspberry Pi<b>ถาม </b>ถ้าต้องการพิมพ์เครื่องหมาย % ให้แสดงที่คำสั่ง Print ต้องใช้คำสั่งอย่างไร<br />
<b>ตอบ </b>ต้องใช้ "%%" <br />
<br />
<b>ถาม </b> ฟังก์ชัน datetime.datetime.now() จะแสดงค่า วันเดือนปีและเวลา และค่าไมโครวินาทีของเวลาด้วย ถ้าต้องการแสดงแค่บางส่วนต้องทำอย่างไร<br />
<b>ตอบ</b> date=str(datetime.datetime.now().strftime("%Y-%m-%d : %H:%M:%S")) จะเป็นการกำหนดรูปแบบ วันที่และเวลาได้<br />
<br />
<br />
<br />Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-1742682933186227202015-07-14T15:51:00.002+07:002016-06-27T12:00:52.303+07:00สร้างหุ่นยนต์ POPBOT-XT+ กับมอเตอร์ BO1 และติดตั้ง Encoder<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpf25gcFb6bSBGPpKVZmKC5nLIrcLaMEJ3R-GKVUMlex8lLSl3Qh9lbqoxdIMS0XymUXBGdgMtmazkF61K6x89Sm1ttgZEqMU_Fzmb6d42l7USdP4S53hkbHAKNcj0AJsAWn2dH2AlNTBF/s1600/DSC_2075.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="608" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpf25gcFb6bSBGPpKVZmKC5nLIrcLaMEJ3R-GKVUMlex8lLSl3Qh9lbqoxdIMS0XymUXBGdgMtmazkF61K6x89Sm1ttgZEqMU_Fzmb6d42l7USdP4S53hkbHAKNcj0AJsAWn2dH2AlNTBF/s640/DSC_2075.jpg" width="640" /></a><a href="http://lh3.googleusercontent.com/-qD7sTCaUDz0/VaTLQZ2zaUI/AAAAAAAAgFQ/SOoybYEDEPU/s1600-h/DSC_2075%25255B7%25255D.jpg"></a><br />
<br />
<h5>
popbot-xt รุ่นมาตรฐานจะมาพร้อมกับมอเตอร์รุ่น BO2 ทำให้ยากต่อการติดตั้ง Encoder เพื่อนับระยะทางการเคลื่อนที่ มาดูว่า ถ้าต้องการติดตั้ง Encoder ให้กับ POPBOT XT ต้องปรับแต่งหุ่นยนต์อย่างไรกันบ้าง</h5>
<div>
รายละเอียดของตัว Encoder ที่ inex ใช้งานเป็นลักษณะดังนี้</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsK6EDWIc7a7icHDPtOelaVLFIkKqDUTJN2kWgK9nPZ1eAkkAC9wOFj0btyEQACB9SCMnmGZVf97gcEy7MgbtaTauC3qiHmb2cQrJzWSaS_z_gU5FWdhecKiWRCvyauHHNdJkrdaWML8sY/s1600/Encoder01.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsK6EDWIc7a7icHDPtOelaVLFIkKqDUTJN2kWgK9nPZ1eAkkAC9wOFj0btyEQACB9SCMnmGZVf97gcEy7MgbtaTauC3qiHmb2cQrJzWSaS_z_gU5FWdhecKiWRCvyauHHNdJkrdaWML8sY/s640/Encoder01.jpg" width="640" /></a></div>
<div>
<br /></div>
<div>
เริ่มสร้างกันเลย...</div>
<a href="http://lh3.googleusercontent.com/-BZYl7TOfcNE/VaTLSUM9nII/AAAAAAAAgFg/85rFZeJrKKE/s1600-h/Untitled-1%25255B9%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSLvC8rdRMpekJaup_J4V3vZsw91pnUwdMfhDN2ASuxMroQB3syicyv5P7qo7aoytGz6p2IlIk2slx2EOHaPujwv0GoSTZIrEhhAjuiaUwf97C4WkD_QCBS6mLvJILhMQr0WRQs9VorQfG/s1600/Untitled-1.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSLvC8rdRMpekJaup_J4V3vZsw91pnUwdMfhDN2ASuxMroQB3syicyv5P7qo7aoytGz6p2IlIk2slx2EOHaPujwv0GoSTZIrEhhAjuiaUwf97C4WkD_QCBS6mLvJILhMQr0WRQs9VorQfG/s640/Untitled-1.jpg" width="640" /></a><br />
1. ใช้ฉากโลหะ 2x3 ขันยึดเข้ากับฐานหุ่นยนต์ <br />
2. ใช้สกรู 3x10 มม.ขันยึดด้วยนอต 3 มม. <br />
<a href="http://lh3.googleusercontent.com/-I5w7NjKGrcQ/VaTLUHaNDcI/AAAAAAAAgFw/Z437HUm_204/s1600-h/Untitled-2%25255B6%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrYcR1gwdpKbARhnlEqPPdEDz2HxeW24pdonk21sgZMNb-C1qQfp7bSlidFh3XvLb45BNqv1NXpw-db7J-YZPA4aysoitQJ3TsPRwLuI3kxHqKBdFEDC1a1HEC7G5vihbpPiXmjz8AQH3_/s1600/Untitled-2.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrYcR1gwdpKbARhnlEqPPdEDz2HxeW24pdonk21sgZMNb-C1qQfp7bSlidFh3XvLb45BNqv1NXpw-db7J-YZPA4aysoitQJ3TsPRwLuI3kxHqKBdFEDC1a1HEC7G5vihbpPiXmjz8AQH3_/s640/Untitled-2.jpg" width="640" /></a><br />
3. นำมอเตอร์มายึดโดยใช้สกรู 3x25 มม. เฉพาะด้านล่างก่อน <br />
4. นำเสารองโลหะ 37 มม. คั่นระหว่างมอเตอร์ 2 ตัวแล้วใช้สกรู 3x25 มม.ขันยึด <br />
<a href="http://lh3.googleusercontent.com/-eXvQoUVzDp8/VaTLVwCyipI/AAAAAAAAgGA/tsn6WxaAwR8/s1600-h/Untitled-3%25255B6%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2k5N45C4Pw_fjgF9VbWgFneDBAMOjMyLkgAzs2veNZ0TvTt0Es11n7E0FxWzIFw5X8ma7uBMMbh1o7hQJPYkJT2Uc2ewoW7ef-mNg36JZVCsWchD6kw3QttkTcUu1of0lLG5xDp-lpMz/s1600/Untitled-3.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2k5N45C4Pw_fjgF9VbWgFneDBAMOjMyLkgAzs2veNZ0TvTt0Es11n7E0FxWzIFw5X8ma7uBMMbh1o7hQJPYkJT2Uc2ewoW7ef-mNg36JZVCsWchD6kw3QttkTcUu1of0lLG5xDp-lpMz/s640/Untitled-3.jpg" width="640" /></a><br />
5. นำล้อมายึดเข้ากับแกนมอเตอร์ แล้วใช้สกรูเกลียวปล่อยขันยึด <br />
<a href="http://lh3.googleusercontent.com/-bTu4B3KI1ek/VaTLX3tNQxI/AAAAAAAAgGQ/IqlpZy_eX7A/s1600-h/Untitled-4%25255B7%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkWoPmrwgxjZdvT1x9oFyamUrbOU1l0-FeBjYAmoyGmMV4ErvSxKt_1kjFCW6WyFf3og-_rHEXUmbtEFqd8pzcuR5de3A5chrUkFPj1usjA2R2zqX96ZyEo0dQ_0Ojof5xskcE_rDz9Gof/s1600/Untitled-4.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkWoPmrwgxjZdvT1x9oFyamUrbOU1l0-FeBjYAmoyGmMV4ErvSxKt_1kjFCW6WyFf3og-_rHEXUmbtEFqd8pzcuR5de3A5chrUkFPj1usjA2R2zqX96ZyEo0dQ_0Ojof5xskcE_rDz9Gof/s640/Untitled-4.jpg" width="640" /></a> <br />
6. เสียบจานเอ็นโค้ดเดอร์ เข้ากับแกนของมอเตอร์ <br />
<a href="http://lh3.googleusercontent.com/-M76Vu7bOTEQ/VaTLZxsgTKI/AAAAAAAAgGg/BFWdjQZgQTw/s1600-h/Untitled-5%25255B7%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlg7A3Zj99Ttw8M7-3MZy_kGKvUxW1tDd8nS43cIkx1tXdRjCCinjRW7Z1GcSzrUSglAaFBRn2xT1IalIMdMItVdEy8aACrCWrZvSTLbceTPaAa7YPQU8ZChWjQAulAve8h3DOr8b4myA/s1600/Untitled-5.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlg7A3Zj99Ttw8M7-3MZy_kGKvUxW1tDd8nS43cIkx1tXdRjCCinjRW7Z1GcSzrUSglAaFBRn2xT1IalIMdMItVdEy8aACrCWrZvSTLbceTPaAa7YPQU8ZChWjQAulAve8h3DOr8b4myA/s640/Untitled-5.jpg" width="640" /></a> <br />
7. ยึดเสารองเข้ากับเอ็นโค้ดเดอร์ ทำเหมือนกัน 2 ชุด <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoYwNIG9giqOfJxBeGhQLjMtdpmCGZpso10rWizWC8yAsXCpqwzTgBijbemoHJbFRjAJt70Gk5yD0Y1VQ7EvV9ycoKmHtpj9D5Oo6BNRKd_A7cUSRGJmDu0mt5QivWgkuI3Q5nArtrrQ6D/s1600/Untitled-6.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoYwNIG9giqOfJxBeGhQLjMtdpmCGZpso10rWizWC8yAsXCpqwzTgBijbemoHJbFRjAJt70Gk5yD0Y1VQ7EvV9ycoKmHtpj9D5Oo6BNRKd_A7cUSRGJmDu0mt5QivWgkuI3Q5nArtrrQ6D/s640/Untitled-6.jpg" width="640" /></a><br />
<br />
8. ครอบ Encoder ลงบนจาน Encoder ขันสกรูยึดให้แน่น <br />
9. เสียบสาย สัญญาณตำแหน่งดังรูป <br />
<a href="http://lh3.googleusercontent.com/-tE_GQbaCQcA/VaTLdlvKG-I/AAAAAAAAgHA/xh8br6Rs-Jw/s1600-h/Step07%25255B5%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho6bCLtL9hG8k6Ie54Mzkvdc_aXkjQMvfPvsV2TKkeHOj4giT-3_RKekevoZJj1lvg2oc0v_F6nu87VM3dNP4PKUSI_PbqshL3hrGH8S4JQSQ9yt7a_heqSi1KY14Ian5sBLhXGpA3wg06/s1600/Step07.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho6bCLtL9hG8k6Ie54Mzkvdc_aXkjQMvfPvsV2TKkeHOj4giT-3_RKekevoZJj1lvg2oc0v_F6nu87VM3dNP4PKUSI_PbqshL3hrGH8S4JQSQ9yt7a_heqSi1KY14Ian5sBLhXGpA3wg06/s640/Step07.jpg" width="640" /></a><br />
10. นำถาดรองกะบะถ่าน ยึดเข้ากับเสารองพลาสติก และเสารองโลหะ ใช้สกรูขนาด 3x15 ขันยึด <br />
11. นำถาดรองกะบะถ่าน ยึดเข้ากับฐานและใช้สกรู 3x6 มม.ขันยึดในตำแหน่งดังรูป <br />
<a href="http://lh3.googleusercontent.com/-fr3bnY98Xus/VaTLfVzDApI/AAAAAAAAgHQ/eg_qt5wnZKI/s1600-h/Step08%25255B5%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidG7PlGG7ohUWfWMaUOctxtstMBVxNLWg4gw7FcyLeSi6BGGhei-L8u5CRF9dZYDIx5g5hUUoqWjX8G3NSLJFLglfKwQ_u3Sd_1k5tvVWEhvFvCrxKAgUl1t63VmuI-GtQBc0ExmWEi0s_/s1600/Step08.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidG7PlGG7ohUWfWMaUOctxtstMBVxNLWg4gw7FcyLeSi6BGGhei-L8u5CRF9dZYDIx5g5hUUoqWjX8G3NSLJFLglfKwQ_u3Sd_1k5tvVWEhvFvCrxKAgUl1t63VmuI-GtQBc0ExmWEi0s_/s640/Step08.jpg" width="640" /></a> <br />
12. นำ ZX-03 ยึดเข้ากับแท่งต่อ 5 รู ใช้สกรู 3x15 มม.ขันยึดด้วยนอต 3 มม. <br />
13. นำ ZX-03 ยึดเข้ากับด้านหน้าของหุ่นยนต์ ในตำแหน่งดังรูป ใช้สกรูขนาด 3x10 มม. ขันยึดให้แน่น <br />
<a href="http://lh3.googleusercontent.com/-_KGF7ScHwEw/VaTLhJMukII/AAAAAAAAgHg/KuIVg9-jyqM/s1600-h/DSC_2093%25255B5%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOfauoEhwZ_g_b__6sgOOK7LoAbcEbw5RVsG7DpW3FziTi9lNORcbEiQoJMZBX7x70rYox2YzTnbfSb4VVZBBVPp65qJWaxi2EEfJ1-r1bMo0ukwPrX8ThCvp5IBdiYGOOsLdZvBUqKZVt/s1600/DSC_2093.jpg" imageanchor="1"><img border="0" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOfauoEhwZ_g_b__6sgOOK7LoAbcEbw5RVsG7DpW3FziTi9lNORcbEiQoJMZBX7x70rYox2YzTnbfSb4VVZBBVPp65qJWaxi2EEfJ1-r1bMo0ukwPrX8ThCvp5IBdiYGOOsLdZvBUqKZVt/s640/DSC_2093.jpg" width="640" /></a> <br />
14. จัดวางตำแหน่งเซนเซอร์ ให้อยู่ในระนาบเดียวกัน <br />
<a href="http://lh3.googleusercontent.com/-FuyazbyZnGw/VaTLjH2BPyI/AAAAAAAAgHw/uS8tIEK_W0M/s1600-h/Step09%25255B9%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPfOvkruwaeBcWH9itgQ-5DekTRltYjIccmVLYgqdLyr433DvoCMGauSOL91Q3jdLEHOaEfnM3omAAwfWkKaOOFltJNPSAG9NbFKoLFN6d-0fn5fFZdEHaWLb53MhPP2BABizXr84LTEjW/s1600/Step09.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPfOvkruwaeBcWH9itgQ-5DekTRltYjIccmVLYgqdLyr433DvoCMGauSOL91Q3jdLEHOaEfnM3omAAwfWkKaOOFltJNPSAG9NbFKoLFN6d-0fn5fFZdEHaWLb53MhPP2BABizXr84LTEjW/s640/Step09.jpg" width="640" /></a><br />
15. นำบอร์ด POP-XT ใส่ถ่าน AA 4 ก้อน <br />
16. เสียบบอร์ดไว้ที่โครงหุ่นยนต์ <br />
<a href="http://lh3.googleusercontent.com/-HuhpuC-vqtw/VaTLlEO8kHI/AAAAAAAAgIA/a4PXl6xqe3Q/s1600-h/Jump-Wire%25255B5%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4LDqHQ2IOzwAYKeCErxkD7LhCcuzk759PbDQ9UL92JjRwpadiGay7j68x61kdwOBH5l09AdHjOgVxUTjKBPUUxJuY7WwU-xaSbaaqdBNBuRnFtBwNQaeb_yMSsD3C5SjfooeGMCKmifs1/s1600/Jump-Wire.jpg" imageanchor="1"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4LDqHQ2IOzwAYKeCErxkD7LhCcuzk759PbDQ9UL92JjRwpadiGay7j68x61kdwOBH5l09AdHjOgVxUTjKBPUUxJuY7WwU-xaSbaaqdBNBuRnFtBwNQaeb_yMSsD3C5SjfooeGMCKmifs1/s640/Jump-Wire.jpg" width="640" /></a> <br />
17.เสียบสายมอเตอร์ ดูทิศทางให้ถูกต้อง โดยให้ปิดสวิตช์ที่ตัวหุ่นยนต์ จากนั้นลองหมุนมอเตอร์ หมุนไปด้านหน้าไฟต้องติดเป็นสีเขียว หมุนถอยหลังไฟติดเป็นสีแดง มอเตอร์ 1 ด้านซ้าย มอเตอร์ 2 ด้านขวา <br />
18. เสียบสาย Encoder เข้าที่จุด 2/SDA และ 3/SCL <br />
19. เสียบสาย ZX-03 เข้าที่ A0, A1, A2, A3 (จุดต่ออะนาลอกสีแดง) <br />
<a href="http://lh3.googleusercontent.com/-5YV-3Ai6rAc/VaTLnP_NKMI/AAAAAAAAgIQ/R-rw8cvpz5Y/s1600-h/DSC_2079%25255B6%25255D.jpg"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoaP7u_4DWoQwQspQQi-Wbh3lqT2Lkdz-IxWh5A0kjVDQJIt81phwsR1vFLM0M2Y72HGyNsJ45VGwNXDtM3csa0QkgYgq4T-eLK-u4wI1zL5ltEbh5bCwo-MBn6cpVGMojkFRW5olaLJXc/s1600/DSC_2079.jpg" imageanchor="1"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoaP7u_4DWoQwQspQQi-Wbh3lqT2Lkdz-IxWh5A0kjVDQJIt81phwsR1vFLM0M2Y72HGyNsJ45VGwNXDtM3csa0QkgYgq4T-eLK-u4wI1zL5ltEbh5bCwo-MBn6cpVGMojkFRW5olaLJXc/s640/DSC_2079.jpg" width="596" /></a> <br />
<h6>
หุ่นยนต์เมื่อประกอบเสร็จสมบูรณ์</h6>
<br />
<h2>
การเคลื่อนที่ของหุ่นยนต์เมื่อใช้ Encoder</h2>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Fivz9eBjNfeW7v8VG7afmn2n9KVaZNcnkPtfKfpFg524Zy62Ogn_vRmzF_10CONePxQTmJzCqPav8dLNYXT533yGlM9EX2hKi1MY_eFQGdwoNLgpuSZuUPk2wTy5n3i0GcyaIshCesX6/s1600/Encoder+Cal.jpg" imageanchor="1"><img border="0" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Fivz9eBjNfeW7v8VG7afmn2n9KVaZNcnkPtfKfpFg524Zy62Ogn_vRmzF_10CONePxQTmJzCqPav8dLNYXT533yGlM9EX2hKi1MY_eFQGdwoNLgpuSZuUPk2wTy5n3i0GcyaIshCesX6/s640/Encoder+Cal.jpg" width="640" /></a><br />
<br />
<h4>
ระยะทางการเคลื่อนที่เมื่อล้อหมุนครบ 1 รอบ</h4>
<br />
<h2>
แนวคิดการเขียนโปรแกรมอย่างง่ายๆ</h2>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjruvD42CppYMVnlZsdsnFhMb6K58d2wKMNYUM0cRZnSNyjITxjmLpOgw3pswV8-65xU1e8Vu_HHe6lIhcFeV__tGY1flA04VfyhyNURJHELxlRGk4wFfSmeSdkND1Emdiihvh-5546WJlD/s1600/Encoder+Simple+Code.jpg" imageanchor="1"><img border="0" height="143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjruvD42CppYMVnlZsdsnFhMb6K58d2wKMNYUM0cRZnSNyjITxjmLpOgw3pswV8-65xU1e8Vu_HHe6lIhcFeV__tGY1flA04VfyhyNURJHELxlRGk4wFfSmeSdkND1Emdiihvh-5546WJlD/s400/Encoder+Simple+Code.jpg" width="400" /></a><br />
<br />
อ่านค่าโดยใช้คำสั่ง in เพื่อรับค่าอินพุตเข้ามา เป็น "0" 1 ครั้ง เป็น "1" 1ครั้ง นับค่าเป็น 1 ค่า ดังนั้นถ้านับค่าครบ 20 ค่า จะเคลื่อนที่ได้ 1 รอบหรือประมาณ 22 เซนติเมตรพอดี<br />
<h2>
ขาที่ใช้งานเป็น Encoder ของ POP-XT</h2>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn7xuebx5vCDHG21VUfjF2-e7wk40RrBfCBEvs6P_NQwadKZpA5KnkREWDaYEgnZHp6iTqYTSVWzolPpmfOWzijRoG_m4PmxS7G38OgCykAgzaLemsIe9OfUWVaHJEreLiaOTolA1Ts4eK/s1600/Encoder+Pin+For+POP-XT.jpg" imageanchor="1"><img border="0" height="624" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn7xuebx5vCDHG21VUfjF2-e7wk40RrBfCBEvs6P_NQwadKZpA5KnkREWDaYEgnZHp6iTqYTSVWzolPpmfOWzijRoG_m4PmxS7G38OgCykAgzaLemsIe9OfUWVaHJEreLiaOTolA1Ts4eK/s640/Encoder+Pin+For+POP-XT.jpg" width="640" /></a><br />
<br />
<h2>
การอ่านค่าโดยใช้อินเตอร์รัปต์</h2>
บอร์ด POPXT ที่<a href="http://www.inex.co.th/store/programs/Arduino1.0.7_Setup150702.exe" target="_blank">ติดตั้งซอฟต์แวร์ตั้งแต่เวอร์ชั่น 1.07</a> ขึ้นไป จะมีไลบรารี่ ชื่อ XTencoder.h ติดตั้งมาด้วย ไลบรารี่ ตัวนี้จะยอมให้สามารถต่อขาเอ็นโค้ดเดอร์ได้ถึง 4 ขา และทำงานเบื้องหลังได้ ผู้ใช้งานเพียงอ่านค่า หรือรีเซตค่า โดยไม่ต้องคอยวนตรวจสอบ รูปแบบการใช้งานคำสั่งมีดังนี้<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijZP5Goo_40mqrDrLZauAV5HtGtoLMvqFS_AuoYhZ1dIA4jTxRQAP-knurywklRquFr95x4isiSnmuJfdJElkL1aVPAHwAV_brpVexD7BAMJg3rxPiPvJf4gxssaVVIUuYYPveG40WUDud/s1600/Encoder+Command+POP-XT.jpg" imageanchor="1"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijZP5Goo_40mqrDrLZauAV5HtGtoLMvqFS_AuoYhZ1dIA4jTxRQAP-knurywklRquFr95x4isiSnmuJfdJElkL1aVPAHwAV_brpVexD7BAMJg3rxPiPvJf4gxssaVVIUuYYPveG40WUDud/s640/Encoder+Command+POP-XT.jpg" width="640" /></a><br />
<span style="font-size: 12pt;"></span> <br />
<div align="left" style="direction: ltr; language: th; line-height: 11pt; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; unicode-bidi: embed;">
<br /></div>
<br />
<br />
<br />
<h2>
ตัวอย่างการใช้งาน</h2>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCPd3uUGBX5wEE1J1rqhnaVTw8qfHj3PCbwrOEy4ziSOIMK-o_FADe7txDvK90lwgk1FxhV_iibyJsfGSQV3_-dgeBduCeJUB-_9DS3kPwm49_IMvX5iMTKya-FAEOkJAYW9OiC1btqc8G/s1600/Encoder+Simple+Code2.jpg" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCPd3uUGBX5wEE1J1rqhnaVTw8qfHj3PCbwrOEy4ziSOIMK-o_FADe7txDvK90lwgk1FxhV_iibyJsfGSQV3_-dgeBduCeJUB-_9DS3kPwm49_IMvX5iMTKya-FAEOkJAYW9OiC1btqc8G/s320/Encoder+Simple+Code2.jpg" width="320" /></a><br />
<br />
<div style="background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20.7999992370605px; margin-bottom: 15px; outline: 0px; padding: 0px; vertical-align: baseline;">
จากตัวอย่างเป็นการใช้งาน Encoder ที่ขา 2 โดยเริ่มต้นจะต้องรีเซตค่าการนับให้เป็น 0 ก่อนจากนั้น สั่งให้หุ่นยนต์เดินหน้า ค่าการนับมีค่ามากกว่า 40 สั่งให้หุ่นยนต์หยุดหมุน</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20.7999992370605px; margin-bottom: 15px; outline: 0px; padding: 0px; vertical-align: baseline;">
จากตัวอย่างด้านบน สามารถเพิ่มคำสั่งสำหรับการหยุดหุ่นยนต์ แบบทันทีทันใดเข้าไป ด้วย สร้างเป็นโปรแกรมที่สมบูรณ์ได้ดังนี้</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20.7999992370605px; margin-bottom: 15px; outline: 0px; padding: 0px; vertical-align: baseline;">
<br /></div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20.7999992370605px; margin-bottom: 15px; outline: 0px; padding: 0px; vertical-align: baseline;">
<br /></div>
<br />
<script src="https://pastebin.com/embed_js.php?i=rDyzvVg0"></script><br />Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-8049913400775831212015-06-26T13:31:00.000+07:002015-06-26T13:32:56.861+07:00How do I delete Dead Shared Folders<h1>วิธีการลบชื่อแชร์โฟลเดอร์ในระบบเน็ตเวิร์ก </h1> <p> </p> <p><a href="http://lh3.googleusercontent.com/-xfi9tnVvcUg/VYztfpY-yMI/AAAAAAAAf6Q/FfNhzb03bRI/s1600-h/ATX003%25255B3%25255D.jpg"><img title="ATX003" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ATX003" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgihrqMcv2WhlR6hlRm77NeyIs-G6k-7decfMOBQeRozZ2p40xbI3hmDQObivqbWrf0X7K95j1Cj4pFRKfeQrCO2u4X27U4p8iIcdkEAnmm6u1b6EYm-aR-GE9ZmuKFk5QsRHwjD09ZDEjK/?imgmax=800" width="426" height="357"></a></p> <p>เมื่อใช้งานคอมพิวเตอร์ ในที่ทำงานหรือที่บ้าน แล้วมีการต่อคอมพิวเตอร์ ต้องแชร์โฟลเดอร์ระหว่างกัน เราก็เข้าไปที่เครื่องคอมพิวเตอร์ที่ต้องการและคัดลอกไฟล์หรือส่งไฟล์เข้าไป แต่ในกรณีต้องการยกเลิกการแชร์ ชื่อที่เรายกเลิกจะยังคงค้างอยู่ สร้างความรำคาญเป็นอย่างยิ่ง วิธีการยกเลิกทำได้ดังนี้ครับ (ใช้ได้กับ Windows 8 และ Windows 7)</p> <p>1. คลิกเมาส์ขวาที่ Computer เลือก Manage </p> <p><a href="http://lh3.googleusercontent.com/-gIwzLFTuIrw/VYztolbNf1I/AAAAAAAAf6g/6Y47tHsqx4I/s1600-h/ATX004%25255B3%25255D.jpg"><img title="ATX004" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ATX004" src="http://lh3.googleusercontent.com/-tyw7k2m36rI/VYztp7aBCoI/AAAAAAAAf6o/JHiRlWxREfs/ATX004_thumb%25255B1%25255D.jpg?imgmax=800" width="388" height="114"></a></p> <p>2. ที่หน้าต่าง Computer Management เลือกหัวข้อ Shared Folder > Shares</p> <p><a href="http://lh3.googleusercontent.com/-2Dj9ZGqxhVM/VYztq0iZoSI/AAAAAAAAf6w/O20u4zfwnbI/s1600-h/ATX005%25255B3%25255D.jpg"><img title="ATX005" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ATX005" src="http://lh3.googleusercontent.com/-k3etRrKMDNE/VYzyDR8ZAzI/AAAAAAAAf68/Ml84kOeNHbU/ATX005_thumb%25255B1%25255D.jpg?imgmax=800" width="454" height="330"></a></p> <p>3. จะเห็นชื่อโฟลเดอร์ทั้งหมดที่เราแชร์เอาไว้ ให้คลิกเมาส์ขวาที่โฟลเดอร์ที่ไม่ต้องการแชร์ จากนั้นเลือก Stop Sharing </p> <p><a href="http://lh3.googleusercontent.com/-OzG-d0xoHBw/VYzyEn8O-MI/AAAAAAAAf7E/Bwyi80OvsbA/s1600-h/ATX006%25255B5%25255D.jpg"><img title="ATX006" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ATX006" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikEmiEBEOBhUeYENM82XOWJBMWF09XDyAkEdbS6v8_z8jz9v45Xa96wxda0gOLG3AV8-EJNPqtJWiw__4uzUdJ3l2Qyuu08YKYa2uLEjLqxnjC20Afum2AVxMT8i-GhyphenhyphenYFyc0R0MIajtNA/?imgmax=800" width="407" height="341"></a></p> <p>เท่านี้ โฟลเดอร์เก่าๆ ที่เราแชร์ไว้ก็จะถูกลบออกไป</p> Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-75208376210996126422015-01-12T10:53:00.001+07:002015-01-12T10:53:21.173+07:00Triangle with rounded corners<h1>การสร้าง 3 เหลี่ยมแบบมีขอบโค้งใน Ilastrator</h1> <div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e81c3c5c-b9e7-4b81-8b77-ba33b782f3d6" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Flickr Tags: <a href="http://flickr.com/photos/tags/Ilastrator" rel="tag">Ilastrator</a>,<a href="http://flickr.com/photos/tags/Triangle+Round+Corners" rel="tag">Triangle Round Corners</a></div> <p>นอกเรื่อง กับโปรแกรม Illastrator ขอใช้ที่นี่บันทึกเตือนความจำกันหน่อย</p> <p>สำหรับการวาดรูป ที่ไม่ใช่รูปสี่เหลี่ยมในโปรแกรม Ilastrator และต้องมีการทำขอบโค้ง บางกรณีการลากเส้นเองด้วยเครื่องมือปากกา ก็จะได้เส้นโค้งที่ไม่สมมาตร วิธีนี้ช่วยได้ครับ</p> <p><a href="http://lh6.ggpht.com/-mEtXmrNdJSg/VLNETSuBvxI/AAAAAAAAcLg/zu0fSjA4tfo/s1600-h/IPST-SE016%25255B3%25255D.jpg"><img title="IPST-SE016" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IPST-SE016" src="http://lh6.ggpht.com/-RFxYymoCots/VLNEUfMJ6EI/AAAAAAAAcLo/KAqrdo8VreE/IPST-SE016_thumb%25255B1%25255D.jpg?imgmax=800" width="308" height="216"></a></p> <p>1. เลือกเครื่องมือ Polygon Tool</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhefZtkgF8OdMOS38W0YkT-pQbRWgOh9WrrlQVKwrQnPMKS6gdlFnuQnrlkUS0T_z2mUUNBahHv1YJ3OE20wHjMf8v8M-662tFQaLFqqdLg5h3yOwOGA6uRKe6BTwPRBBHBqvcxx88Wr-Hf/s1600-h/IPST-SE017%25255B2%25255D.jpg"><img title="IPST-SE017" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IPST-SE017" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLp_hDzaPOAffxBJIG_0lyn2X6cH_bIjy7FjHu0m6V2b77d1ygFXGFu1JH6-4dssPpuE6A6_Y9NDPcvwR8tvtLATFYzK9MU9Ze1NGna0umkr77cqhA8pblXT4gRVppwJWvLA8Mx_558Z_/?imgmax=800" width="239" height="207"></a></p> <p>2. เลือก Sides เป็น 3 สำหรับการทำรูป 3 เหลี่ยม</p> <p><a href="http://lh6.ggpht.com/-yl-0aax2wMw/VLNEl-XfrgI/AAAAAAAAcL8/NdxMFvO270w/IPST-SE018%25255B7%25255D.jpg?imgmax=800"><img title="IPST-SE018" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IPST-SE018" src="http://lh5.ggpht.com/-XAl8K52nZjg/VLNE5PCpINI/AAAAAAAAcME/Q5RmsEmKs0g/IPST-SE018_thumb%25255B5%25255D.jpg?imgmax=800" width="484" height="554"></a></p> <p>3. ไปที่เมนู Effect>Stylize>Round Corners...</p> <p><a href="http://lh5.ggpht.com/-hw0eKkYpBuc/VLNE_XT4tlI/AAAAAAAAcMQ/BTvaSaKIeIY/s1600-h/IPST-SE019%25255B3%25255D.jpg"><img title="IPST-SE019" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IPST-SE019" src="http://lh3.ggpht.com/-yzrj4EryI7w/VLNFAaySrkI/AAAAAAAAcMY/qZxbIr4pjp4/IPST-SE019_thumb%25255B1%25255D.jpg?imgmax=800" width="484" height="384"></a></p> <p>4. ปรับค่าความโค้งตามต้องการ</p> <p><a href="http://lh6.ggpht.com/-PYV8EpWKtxw/VLNFIQzpWfI/AAAAAAAAcMg/63Ka702rzeE/s1600-h/IPST-SE020%25255B3%25255D.jpg"><img title="IPST-SE020" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IPST-SE020" src="http://lh3.ggpht.com/-vyg_fnUGuSA/VLNFJiPhEgI/AAAAAAAAcMo/Dqyg7y9CFlc/IPST-SE020_thumb%25255B1%25255D.jpg?imgmax=800" width="484" height="456"></a></p> <p>5. เลือกคำสั่ง Expand Appearance </p> <p><a href="http://lh3.ggpht.com/-aXK6S4T0SzQ/VLNFK-Xo3MI/AAAAAAAAcMw/bOsLzgeiYOc/s1600-h/IPST-SE021%25255B3%25255D.jpg"><img title="IPST-SE021" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IPST-SE021" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF5rdZ9vqkcaw0mNmHEr_XcBErI1hZnXT9_rlJGlRBRXqHo0a7dzjXBojogQMVr8DjP4yeYooxSx9ZbZKaHEs7QsT7U20XR7dNN98bcrIsIrxwdsc5xCucLtiUnXs73huA9a7YsEE1gnk_/?imgmax=800" width="484" height="444"></a></p> <p> </p> <p>6. จะได้ 3 เหลี่ยมที่มีมุมโค้งตามต้องการ</p> Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-28403438788848851232014-09-26T16:30:00.001+07:002014-09-26T16:36:42.872+07:00POP-XT/IPST-SE with EVO24 Motor Driver 30A Ep2<h4>POP-XT/IPST-SE ขับมอเตอร์กำลังสูงด้วยบอร์ดขับมอเตอร์ 30A รุ่น EVO24 : ตอนที่ 2</h4> <p>ใน<a href="http://hobby-experiment.blogspot.com/2014/09/pop-bot-xt-with-evo24v91-30a-motor.html" target="_blank">ตอนที่ 1</a> แนะนำการสร้างวงจรขนาดเล็กเพื่อใช้สำหรับจัดรูปแบบสัญญาณเอาต์พุตจากจุดต่อมอเตอร์ของบอร์ด POP-XT ดังแสดงในรูปที่่ 1 เพื่อต่อไปใช้งานกับบอร์ดขับมอเตอร์ </p> <p><a href="http://hobby-experiment.blogspot.com/2014/09/pop-bot-xt-with-evo24v91-30a-motor.html" target="_blank"><img title="Print" style="display: inline" alt="Print" src="http://lh5.ggpht.com/-9qx2p4sKvKQ/VCUyCQZic3I/AAAAAAAAazE/q6seSagk4pk/Motor%252520Extent%252520Circuit%25255B7%25255D.jpg?imgmax=800" width="640" height="275"></a><br><font color="#0080ff">รูปที่ 1 การต่อวงจรขับมอเตอร์ในรูปแบบที่สร้างวงจรขึ้นมาเองจากตอนที่ 1 </font><br></p> <p>แต่ถึงวงจรจะง่ายๆ ไม่ซับซ้อนยังไง ก็ยังเป็นเรื่องยากสำหรับผู้ที่ไม่มีพื้นฐานด้านอิเล็กทรอนิกส์อยู่ดี ทาง inex เลยทำแผงวงจร ZX-nMotor ขึ้นมาเพื่อทดแทนวงจรในส่วนนี้ โดยหน้าตาของบอร์ด ZX-nMotor แสดงในรูปที่ 2 </p> <p><a href="http://lh6.ggpht.com/-Xt9NaEhvLYQ/VCUyDYonpVI/AAAAAAAAazM/wsRGKlwtVrU/s1600-h/ZX-nMotor%25255B4%25255D.jpg"><img title="ZX-nMotor" style="display: inline" alt="ZX-nMotor" src="http://lh5.ggpht.com/--WyXNuLPOZs/VCUyERli4ZI/AAAAAAAAazU/E2qa767kUZQ/ZX-nMotor_thumb%25255B2%25255D.jpg?imgmax=800" width="640" height="420"></a> <br><font color="#0080ff">รูปที่ 2 แผงวงจร ZX-nMotor สำหรับการแปลงสัญญาณเพื่อต่อกับบอร์ดขับมอเตอร์</font></p> <p>ซึ่งเมื่อนำมาต่อเข้ากับบอร์ดขับมอเตอร์สามารถขันสายยึดเพียงอย่างเดียวโดยผู้ใช้งานไม่จำเป็นต้องบัดกรีวงจรส่วนใดๆ อีก รูปที่ 3 เป็นการเชื่อมต่อกับบอร์ด IPST-SE </p> <p><br><a href="http://lh4.ggpht.com/-lBt78k_TW0k/VCUyFcftkuI/AAAAAAAAazc/RUcMFpoJsMc/s1600-h/Large-Motor-with-IPST-SE%25255B7%25255D.jpg"><img title="Large-Motor-with-IPST-SE" style="display: inline" alt="Large-Motor-with-IPST-SE" src="http://lh3.ggpht.com/-39B22wlk2Ec/VCUyGUg8CwI/AAAAAAAAazk/_R_jE3gEeDo/Large-Motor-with-IPST-SE_thumb%25255B3%25255D.jpg?imgmax=800" width="640" height="367"></a> <br><font color="#0080ff">รูปที่ 3 การต่อวงจรขับมอเตอร์เข้ากับบอร์ด IPST-SE ด้วยบอร์ด ZX-nMotor</font></p> <p>และรูปที่ 4 จะเป็นการเชื่อมต่อกับบอร์ด POP-XT</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1pnoGDuPfDM3Tm6VKNo5wgv2WJbPvVPR3MI65aflXwQm047Geu0WaPcvouGmNChGIBLd4Y_yPErWEANFIdC_wqL51JJSviJiRWS3rtAK8xjno7r3VQ1Vk-Z_3hRfokPHN119OMI8-SuBz/s1600-h/Large-Motor-with-POPBOT-XT%25255B6%25255D.jpg"><img title="Large-Motor-with-POPBOT-XT" style="display: inline" alt="Large-Motor-with-POPBOT-XT" src="http://lh4.ggpht.com/-4QlO2_LphGc/VCUyIu1AbWI/AAAAAAAAaz0/uGRUm-HUX-8/Large-Motor-with-POPBOT-XT_thumb%25255B4%25255D.jpg?imgmax=800" width="640" height="409"></a> <br><font color="#0080ff">รูปที่ 4 การต่อวงจรขับมอเตอร์เข้ากับบอร์ด POP-XT ด้วยบอร์ด ZX-nMotor</font><br></p> <p></p> <p>เมื่อต่อวงจรได้ตามนี้ บอร์ด IPST-SE/POP-XT สามารถขับมอเตอร์ขนาดใหญ่ ในขณะที่ยังคงเขียนโปรแกรมแบบเดิม ๆ</p> Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-67051417030152609682014-09-26T15:41:00.001+07:002016-06-27T13:32:34.720+07:00POP-XT with EVO24 Motor Driver 30A Ep1<div>
<h2>
POP-XT ขับมอเตอร์กำลังสูงด้วยบอร์ดขับมอเตอร์ 30A รุ่น EVO24 ตอนที่ 1</h2>
</div>
<div>
6 กันยายน 2013 เวลา 14:14 น.</div>
<div>
<strong></strong><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBUDY_GIPVz6t2tevunJWFffKZPhMOcZ68V-kkJ2M7KF_qeXONc3y97vp2okGHa5ipleLDfS0lJlajrxj8Sbr8U9DxugJay0ozIZG0upOTSK9C2VQkalIjlQ56xMFMGdmaQ3Un6zwEFtKs/s1600/1233554_571680032889605_359244136_n.jpg" imageanchor="1"><img border="0" height="580" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBUDY_GIPVz6t2tevunJWFffKZPhMOcZ68V-kkJ2M7KF_qeXONc3y97vp2okGHa5ipleLDfS0lJlajrxj8Sbr8U9DxugJay0ozIZG0upOTSK9C2VQkalIjlQ56xMFMGdmaQ3Un6zwEFtKs/s320/1233554_571680032889605_359244136_n.jpg" width="640" /></a><span style="font-size: 16px;">บอร์ด POP-XT หรือ Robo Creator ของ inex สามารถขับมอเตอร์ขนาดเล็ก ที่มีการกินกระแสไม่เกิน 600 มิลลิแอมป์ได้ แต่เมื่อต้องการขับมอเตอร์ที่มีขนาดใหญ่ขึ้น จำเป็นต้องเอาวงจรขับมอเตอร์ภายนอกเข้ามาช่วย</span><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjwMxAoru0jFnHPyuBSwHuJKp5yNL-SSXW5-ZMgIiVPpMz7oGdbJ5PDFfQc9PJYfk9IFkpz1T2regg9ZSWjLmW9jYok9dw0MMk31FitHhlh6Lsz3FDp_34yx29L6_v_PRQyKaO8juwa_Db/s1600/1240163_571676702889938_435689343_n.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjwMxAoru0jFnHPyuBSwHuJKp5yNL-SSXW5-ZMgIiVPpMz7oGdbJ5PDFfQc9PJYfk9IFkpz1T2regg9ZSWjLmW9jYok9dw0MMk31FitHhlh6Lsz3FDp_34yx29L6_v_PRQyKaO8juwa_Db/s640/1240163_571676702889938_435689343_n.png" width="640" /></a><strong></strong><br />
<span style="color: purple; font-size: 18px;"><strong>บอร์ด EVO24V9.1</strong></span><br />
<h2>
<span style="font-size: 16px;">ขอแนะนำวงจรขับมอเตอร์รุ่น EVO24V9.1 ของ SMile Robotics คุณสมบัติของวงจรขับมอเตอร์มีดังนี้</span></h2>
<ul>
<li>ขับกระแสสูงสุดชั่วขณะได้ถึง 30A </li>
<li>ขับกระแสต่อเนื่อง 9A ที่แรงดัน 24V </li>
<li>รองรับแรงดันได้ในช่วง 7-28V </li>
<li>ปรับความเร็วมอเตอร์แบบ PWM ได้ที่ความถี่ไม่เกิน 5kHz </li>
<li>มีวงจรป้องกันการจ่ายไฟกลับขั้ว </li>
<li>มีแผ่นระบายความร้อน </li>
<li>ตัดการทำงานเมื่ออุณหภูมิสูงกว่า 100 องศา </li>
</ul>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifPJxbShN8c0ogdCn24NetIbhmGjT9moMuNC4CGEsXYzStheJYS_ROmLX2OaeFpyRmN8vUPCeBFwN0KkjtSjbGrK32VhyphenhyphenZmLqocCPVypaHEmCkQQxe1fc_BlO6PChV1rN_R6p38JgNueB3/s1600/1234947_571676726223269_2094764588_n.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="398" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifPJxbShN8c0ogdCn24NetIbhmGjT9moMuNC4CGEsXYzStheJYS_ROmLX2OaeFpyRmN8vUPCeBFwN0KkjtSjbGrK32VhyphenhyphenZmLqocCPVypaHEmCkQQxe1fc_BlO6PChV1rN_R6p38JgNueB3/s400/1234947_571676726223269_2094764588_n.jpg" width="400" /></a><strong></strong><br />
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span></h2>
<h2>
<br /></h2>
<h2>
<span style="color: purple; font-size: 18px;"><strong>ด้านหน้าของบอร์ด EVO24V9.1</strong></span></h2>
<strong><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-WKxksQVT-tZpAmsh28rbU547sOQpN0lHCsK3gWMJinMF3uwYlHkcgb9Zxk2HASkyHv3Po0QQgizQCzJjsCY5DG_2zp7wN3j_Lqzcsde7ILn8dDh9Tri9ecYJ8QZ1X-26sohY60TmI2Ra/s1600/1185382_571676762889932_653564370_n.jpg" imageanchor="1"><img border="0" height="397" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-WKxksQVT-tZpAmsh28rbU547sOQpN0lHCsK3gWMJinMF3uwYlHkcgb9Zxk2HASkyHv3Po0QQgizQCzJjsCY5DG_2zp7wN3j_Lqzcsde7ILn8dDh9Tri9ecYJ8QZ1X-26sohY60TmI2Ra/s400/1185382_571676762889932_653564370_n.jpg" width="400" /></a></strong><br />
<h2>
<span style="color: purple; font-size: 18px;"><strong>แผ่นระบายความร้อนด้านหลัง EVO24V9.1</strong></span></h2>
<strong></strong><br />
<div>
<span style="color: purple; font-size: 18px;"><strong><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_SwMETRXYkWheoJCQWiNWHJvH1YHDxVsB9YRtTbsNoj-wbKbfo6KcVt9aou-OZxk9VaRn0eXA_6oUtYegtJYPSn9DlSCKTqfQWzHE-fIqBbNNr38aIQ2Mvr3sdDEw_nkDRwpSm1GOX2rp/s1600/1267245_571666629557612_620717444_o.jpg" imageanchor="1"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_SwMETRXYkWheoJCQWiNWHJvH1YHDxVsB9YRtTbsNoj-wbKbfo6KcVt9aou-OZxk9VaRn0eXA_6oUtYegtJYPSn9DlSCKTqfQWzHE-fIqBbNNr38aIQ2Mvr3sdDEw_nkDRwpSm1GOX2rp/s640/1267245_571666629557612_620717444_o.jpg" width="640" /></a></strong></span><br />
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong>รูปแบบการเชื่อมต่อบอร์ด EVO24V9.1 กับ POP-XT</strong></span></div>
<span style="font-size: 16px;">เมื่อนำวงจรขับมอเตอร์ตัวนี้มาใช้กับบอร์ด POP-XT โดยไม่ต้องปรับแต่งมากนัก ต้องสร้างวงจรเรียงขาสัญญาณใหม่อีกเล็กน้อย โดยวงจรในส่วนเส้นประ คือส่วนที่เราต้องทำเพิ่ม เพื่อจัดเรียงการขับมอเตอร์ซึ่งจากเดิมเป็นไฟบวกลบ ให้กลายเป็นสัญญาณลอจิก</span><br />
<strong></strong><br />
<div>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_rDpyWIldfYcbKmrTSKYh-LUhP7uQTxe_LIdo0EanHed3xYLQjyvF4mJakJEKtgKKVMt-YHBaGO3J2hfXYQRMMIN8mACDuB4RGBBDOhNpkTeVZi-qg8EOpOVsr7iPPOxnr3rsWxybI7FN/s1600/1186944_571666769557598_1346178120_n.jpg" imageanchor="1"><img border="0" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_rDpyWIldfYcbKmrTSKYh-LUhP7uQTxe_LIdo0EanHed3xYLQjyvF4mJakJEKtgKKVMt-YHBaGO3J2hfXYQRMMIN8mACDuB4RGBBDOhNpkTeVZi-qg8EOpOVsr7iPPOxnr3rsWxybI7FN/s400/1186944_571666769557598_1346178120_n.jpg" width="400" /></a></strong></span><br />
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong>การสร้างวงจรแปลงสัญญาณสำหรับขับมอเตอร์ EV024V9.1</strong></span></div>
<span style="font-size: 16px;">การสร้างเราจะใช้แผ่นวงจรพิมพ์อเนกประสงค์บัดกรี ไดโอดเบอร์ 1N4148 และตัวต้านทานค่า 330 โอห์มลงไป ได้ผลลัพธ์ตามนี้</span><br />
<strong></strong><br />
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3iak2cT8iPYwiUV7qC5HCsBySqDHK_7q_IKmy4hpmFYbAb1F-8YQQ2Be-xH330n7ghLOtKq8FRvFK9Ijc04W-4Kb-QHVtxi2yd6GaeZZIPIYd-7accowCAPK1NK0T5XQRbBSdOKoDqQif/s1600/1209334_571667246224217_1436721944_n.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3iak2cT8iPYwiUV7qC5HCsBySqDHK_7q_IKmy4hpmFYbAb1F-8YQQ2Be-xH330n7ghLOtKq8FRvFK9Ijc04W-4Kb-QHVtxi2yd6GaeZZIPIYd-7accowCAPK1NK0T5XQRbBSdOKoDqQif/s400/1209334_571667246224217_1436721944_n.jpg" width="400" /></a></div>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong><br /></strong></span>
<span style="color: purple; font-size: 18px;"><strong>การบัดกรีไดโอดและตัวต้านทานลงบนแผ่นวงจรพิมพ์อเนกประสงค์</strong></span></div>
<span style="font-size: 16px;">เพื่อป้องกันการชอร์ตก็ตควรหุ้มด้วยท่อหดไว้ด้วยดังรูป </span><br />
<strong><br /></strong>
<strong><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtNauY87bulO8sP5UIdpF1GGTQhvRSxG1x9QxfpyOmYzaDmPzaWjN6NHQxL6Qgq-S6zpIwUU-MVl_YrYQ071XPIyS_6ZzHdhKgq6e3St5ghCRV3pAv56AYhmuWmDXfv-VpT1BELJ4M1vZy/s1600/1239923_571668879557387_686694094_n.jpg" imageanchor="1"><img border="0" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtNauY87bulO8sP5UIdpF1GGTQhvRSxG1x9QxfpyOmYzaDmPzaWjN6NHQxL6Qgq-S6zpIwUU-MVl_YrYQ071XPIyS_6ZzHdhKgq6e3St5ghCRV3pAv56AYhmuWmDXfv-VpT1BELJ4M1vZy/s400/1239923_571668879557387_686694094_n.jpg" width="400" /></a></strong><br />
<strong></strong><br />
<div>
<span style="color: purple; font-size: 18px;"><strong>หุ้มท่อหดเพื่อความปลอดภัย</strong></span></div>
ผลลัพธ์ท้ายสุดของวงจรที่สร้างขึ้นก็เป็นดังนี้<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxU31FHe1BLf1147xLtvfgO2AFhWWlTjAXXEukhd0-HpQEYSXJyR5zDKAk9eme8x7z2skAVdrtbrOy_vnk-d6a1VuCr3567SnKZ9PuRcyINwWUCYt9KyUwxXJZT__MRwanlFSkzj6XdPvi/s1600/1185738_571669009557374_108983027_n.jpg" imageanchor="1"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxU31FHe1BLf1147xLtvfgO2AFhWWlTjAXXEukhd0-HpQEYSXJyR5zDKAk9eme8x7z2skAVdrtbrOy_vnk-d6a1VuCr3567SnKZ9PuRcyINwWUCYt9KyUwxXJZT__MRwanlFSkzj6XdPvi/s400/1185738_571669009557374_108983027_n.jpg" width="400" /></a><br />
<strong></strong><br />
<div>
<strong>วงจรที่เสร็จสมบูรณ์</strong></div>
เมื่อนำทั้งหมดมารวมกันและทดสอบการทำงาน จะได้ผลลัพธ์ดังรูปครับ<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhIffejIHfMtI1STLZMUDSripYJFiFh7SZiqEbgMC3yFCZjUIorslyfowlAHRJRvAeVFhqzlG86cniKsrhxcU_755LIO0Sw7MBtWJqBWth77AAuBjnIwR-5SYa-FGFQecXoNUY2jq2bFJj/s1600/1174595_571669159557359_2022513137_n.jpg" imageanchor="1"><img border="0" height="518" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhIffejIHfMtI1STLZMUDSripYJFiFh7SZiqEbgMC3yFCZjUIorslyfowlAHRJRvAeVFhqzlG86cniKsrhxcU_755LIO0Sw7MBtWJqBWth77AAuBjnIwR-5SYa-FGFQecXoNUY2jq2bFJj/s640/1174595_571669159557359_2022513137_n.jpg" width="640" /></a><br />
<strong></strong><br />
<div>
</div>
</div>
Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-21939772069082094472014-09-26T12:10:00.001+07:002014-09-26T12:10:43.334+07:00การลบโฟลเดอร์ที่ซ่อนอยู่จากการติดไวรัส<p align="center"><em><strong><font color="#0080c0">ไม่ค่อยเกี่ยวข้องกับไมโครคอนโทรลเลอร์เท่าไหร่นะครับ<br>แต่เนื่องจากประสบปัญหา และอยากบันทึกวิธีการแก้ไขเอาไว้</font></strong></em></p> <p>ปกติตัวเครื่องก็ผมจะไม่มีไวรัสชนิดนี้อยู่แล้วครับ แต่เมื่อวันนึง ต้องเอา External Harddisk ไปคัดลอกไฟล์กับเครื่องอื่นๆ หายนะก็เกิดขึ้นทันที ถ้าไม่สังเกต เราจะเป็นคนแพร่เชื้อไวรัสชนิดนี้ไปด้วย โดยการทำงานของไวรัสคือ ทำการซ่อนโฟลเดอร์ทั้งหมดของเราเก็บเอาไว้ จากนั้นสร้างชื่อไฟล์ .exe ที่มีไอคอนเป็นรูปโฟลเดอร์ขึ้นมาให้เรา เพื่อให้เราเผลอคลิ๊ก และนำไวรัสนั้นมาไว้ในเครื่องของเรา</p> <p><a href="http://lh4.ggpht.com/-N6x5Kb8KCwk/VCT1LLGnqvI/AAAAAAAAax0/c0nR0jKzF3c/s1600-h/Blogger022%25255B4%25255D.jpg"><img title="Blogger022" style="display: inline" alt="Blogger022" src="http://lh4.ggpht.com/-Zl4mQWlq4ao/VCT1LxYMWAI/AAAAAAAAax8/h5olVntMbW0/Blogger022_thumb%25255B2%25255D.jpg?imgmax=800" width="640" height="191"></a> <br><font color="#0080ff">รูปที่ 1 จะเห็นว่าโฟลเดอร์เป็นสีจางๆ เนื่องจากปกติถูกซ่อนเอาไว้</font> </p> <p><img title="Blogger023" style="display: inline" alt="Blogger023" src="http://lh3.ggpht.com/-ipciyW4Vxx0/VCT1Noc0uqI/AAAAAAAAayE/1xCXlf2F0uc/Blogger023%25255B5%25255D.jpg?imgmax=800" width="394" height="480"> <br><font color="#0080ff">รูปที่ 2 ต้องเลือกเครื่องหมายถูก หน้าหัวข้อ Hide protected operating system files(Recommended) ใน Folder Options ออก ถึงจะมองเห็นไฟล์</font></p> <p>วิธีการแก้ไวรัสชนิดนี้ก็ไม่ยาก ใช้ซอฟต์แวร์ สแกนไวรัสตัวไหนก็จัดการได้หมดครับ แต่สิ่งที่ ไวรัสทำกับเราคือซ่อนโฟลเดอร์ของเราเอาไว้ มองไม่เห็น ทางแก้ทำได้ง่ายๆ ดังนี้ครับ</p> <p>เปิด Command Prompt ในโหมด Admin (Run as administrator) ถ้าเป็น Windows 8 หน้าตาจะเป็นอย่างนี้ครับ</p> <p> <img title="Blogger019" style="display: inline" alt="Blogger019" src="http://lh6.ggpht.com/-E2JeoXFCtQc/VCT1OlBPeCI/AAAAAAAAayM/-c5eezcJzMI/Blogger019%25255B6%25255D.jpg?imgmax=800" width="640" height="203"><br><font color="#0080ff">รูปที่ 3 เลือกเปิด Command Prompt จาก windows 8 ด้วยการ Search หา</font></p> <p><br><img title="Blogger018" style="display: inline" border="0" alt="Blogger018" src="http://lh6.ggpht.com/-43znMlpvTjQ/VCT1QSDk-gI/AAAAAAAAayU/j_yoa1B2az4/Blogger018%25255B7%25255D.jpg?imgmax=800" width="640" height="94"> <br><font color="#0080ff">รูปที่ 4 เลือก รันให้ทำงานในโหมด Administator</font></p> <p><img title="Blogger020" style="display: inline" alt="Blogger020" src="http://lh3.ggpht.com/-NtdqRYJuddw/VCT1RVBt4rI/AAAAAAAAayc/1mUR0vaQjqo/Blogger020%25255B5%25255D.jpg?imgmax=800" width="640" height="324"> <br><font color="#0080ff">รูปที่ 5 หน้าต่าง Command Prompt ที่ต้อง Run ในโหมด Admin</font></p> <p>พิมพ์ คำสั่ง attrib -h -r -s /s /d g:\xxx</p> <p>โดยไดรฟ์ที่ต้องการตามตัวอย่างคือไดรฟ์ g: ส่วน xxx คือชื่อโฟลเดอร์ที่ต้องการล้างการซ่อนโฟลเดอร์ครับ</p> <p><img title="Blogger021" style="display: inline" alt="Blogger021" src="http://lh5.ggpht.com/-JDhPmx9ZGdA/VCT1SVHvZxI/AAAAAAAAayk/VM5XveXwFlE/Blogger021%25255B5%25255D.jpg?imgmax=800" width="640" height="123"><br><font color="#0080ff">รูปที่ 6 พิมพ์คำสั่งนี้พร้อมทั้งระบุชื่อโฟลเดอร์ที่ต้องการแก้ค่า</font><br> </p> <p>แนะนำให้แก้เฉพาะโฟลเดอร์ที่เราใช้งาน ส่วนโฟลเดอร์ระบบต่างๆ ไม่ต้องปรับแก้</p> <p><img title="Blogger024" style="display: inline" alt="Blogger024" src="http://lh5.ggpht.com/-jnEKyoslhmg/VCT1TU6jpFI/AAAAAAAAays/bk4NIOKjNAw/Blogger024%25255B5%25255D.jpg?imgmax=800" width="640" height="146"> <br><font color="#0080ff">รูปที่ 7 โฟลเดอร์หลังจากปรับเปลี่ยนแล้ว</font></p> <p>จากนั้นก็เปลี่ยนค่า Folder Options กลับมาเป็นเหมือนเดิม เป็นอันเสร็จขั้นตอน</p> <p><img title="Blogger025" style="display: inline" alt="Blogger025" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr_HM2by_rFdAml3cgQZiODegqgu6i7baZ8BpkLB7S2wWX86RiIN87RkYcO_PqHNBM7zaqCHOfTfdGlLRDQ1RqsgJvA7Rhcw2a25Jpv0sz0niq0UqJb90M3f8A6cJmreGVWybGCEXstxKi/?imgmax=800" width="394" height="480"> <br><font color="#0080ff">รูปที่ 8 การเปลี่ยนค่า Folder Options กลับมาเป็นเหมือนเดิม</font></p> Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-71819350168542558102014-09-22T22:41:00.001+07:002014-09-22T22:55:17.746+07:00IPST-SE with Large Speaker<h2>
ต่อลำโพงขยายให้กับบอร์ด IPST-SE ด้วยวงจรง่ายๆ</h2>
ปกติ IPST-SE จะมีลำโพงขนาดเล็ก ZX-Speaker ให้มาในชุด ใช้เพื่อขับเสียงแสดงสถานะต่าง ๆ ได้ เชื่อมต่อง่ายๆ ดังรูปที่ 1<br />
<a href="http://lh3.ggpht.com/-WXwMo7arjXA/VCBC_Vt9QDI/AAAAAAAAawA/0AtPBj2LhpU/s1600-h/IPST-with-ZX-Speaker%25255B6%25255D.jpg"><img alt="IPST-with-ZX-Speaker" src="http://lh5.ggpht.com/-tb_HyDf-70E/VCBDAQtD6GI/AAAAAAAAawI/qAp6TgswGqU/IPST-with-ZX-Speaker_thumb%25255B4%25255D.jpg?imgmax=800" height="428" style="display: inline;" title="IPST-with-ZX-Speaker" width="640" /></a> <br />รูปที่ 1 การเชื่อมต่อลำโพงเปียโซปกติจาก ZX-Speaker<br />
คำสั่งสำหรับสั่งงานให้ลำโพงเปียโซส่งเสียงออกมาก็คือคำสั่ง sound() โดยมีรูปแบบการใช้งานคือ <br />
<strong><em><span style="color: #ff8040;">sound(PIN,FREQ,DURATION);</span></em></strong><br />
<blockquote>
โดย <br /><span style="color: #ff8000;">PIN </span> คือตำแหน่งขาที่ต่อลำโพง</blockquote>
<blockquote>
<span style="background-color: white;"><span style="color: #ff8000;">FREQ </span>คือความถี่ที่ส่งไปยังลำโพง</span><br />
<span style="background-color: white;"><span style="color: #ff8000;">DURATION</span> คือระยะเวลาที่ต้องการให้เสียงดัง</span></blockquote>
แต่ข้อจำกัดของลำโพงเปียโซคือ จะตอบสนองความถี่เสียงช่วง 300-3kHz เท่านั้น และเสียงดังค่อนข้างเบา <br />
<h4>
วงจรขยายเสียงอย่างง่าย</h4>
<h4>
<span style="color: #ff0080;">รายการอุปกรณ์</span></h4>
<blockquote>
<pre><span style="color: #0080ff;">ลำโพงขนาด 5-10W 8<span style="font-family: Symbol;">W </span>1 ตัว
ตัวต้านทาน 1/4W 5% 1k<span style="font-family: Symbol;">W </span>1 ตัว
ทรานซิสเตอร์เบอร์ BC337 1 ตัว
สาย JST 3AA-8 1 เส้น</span> </pre>
</blockquote>
<br />
จากข้อจำกัดนี้เอามาสร้างเป็น วงจรเล็กๆ เพื่อขยายเสียงให้มีความดังเพิ่มมากขึ้น ต่อเข้ากับลำโพงตัวใหญ่ๆ ได้แสดงการเชื่อมต่อในรูปที่ 2 โดยเอาต์พุตจากขา 17 จะส่งไปยังขาเบสของทรานซิสเตอร์ โดยมีตัวต้านทาน 1k<span style="font-family: Symbol;">W</span> ทำหน้าที่จำกัดกระแส ไฟเลี้ยงที่ใช้ก็ใช้ไฟเลี้ยง 5V ภายในวงจรได้เลย<br />
<br />
<a href="http://lh6.ggpht.com/-whf965WMn94/VCBDBq0HSII/AAAAAAAAawQ/KLyccIAELG8/s1600-h/Large-Speaker-Circuit%25255B5%25255D.jpg"><img alt="Large-Speaker-Circuit" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOWVvIp5YTHASxI8KBwW6q5JUPWK7a1aW577eb5-qok9aYBAEp8qvRy7hd91-T5wNgCYeDA8uzUaq8CPI-Q9_SJ0b-es0sfY0pMJDe6Lw3NrWviURbMK-nV9HeO5xDYZgOH8mCiGeit1j0/?imgmax=800" height="449" style="display: inline;" title="Large-Speaker-Circuit" width="640" /></a><br />รูปที่ 2 วงจรแสดงการเชื่อมต่อเครื่องขยายเสียงอย่างง่าย<br />
<br />
<br />
ลองทดสอบเขียนโปรแกรมสั้น ๆ เป็นเสียงหวอรถพยาบาลตามโปรแกรมที่ 1 ทีนี้เสียงหวอของเราก็ดังไปทั่วแน่นอน<br />
<br />
#include <<span style="color: #cc6600;">ipst</span>.h><br /><span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>(){<br /><br />}<br /><span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>loop</b></span>()<br />{<br /> <span style="color: #cc6600;">sound</span>(17,500,500);<br /> <span style="color: #cc6600;">sound</span>(17,2500,500);<br />}<br />โปรแกรมที่ 1 ตัวอย่างโปรแกรมเสียงหวอรถพยาบาล<br />
<br />
<br />
<br />
แถมอีกโปรแกรมสำหรับเสียงเมโลดี้ของเกมสุดคลาสสิคอย่างมาริโอ้ครับ<br />
<br />
<br />
<pre>#include <<span style="color: #cc6600;">ipst</span>.h>
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>(){
}
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>loop</b></span>()
{ <span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,510,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,770,100);
<span style="color: #cc6600;">delay</span>(275);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(287);<span style="color: #cc6600;">sound</span>(17,510,100);
<span style="color: #cc6600;">delay</span>(225);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(200);<span style="color: #cc6600;">sound</span>(17,320,100);
<span style="color: #cc6600;">delay</span>(250);<span style="color: #cc6600;">sound</span>(17,440,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,480,80);
<span style="color: #cc6600;">delay</span>(165);<span style="color: #cc6600;">sound</span>(17,450,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(100);<span style="color: #cc6600;">sound</span>(17,660,80);
<span style="color: #cc6600;">delay</span>(100);<span style="color: #cc6600;">sound</span>(17,760,50);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,860,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,700,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,760,50);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,660,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,520,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,580,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,480,80);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,510,100);
<span style="color: #cc6600;">delay</span>(275);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(200);<span style="color: #cc6600;">sound</span>(17,320,100);
<span style="color: #cc6600;">delay</span>(250);<span style="color: #cc6600;">sound</span>(17,440,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,480,80);
<span style="color: #cc6600;">delay</span>(165);<span style="color: #cc6600;">sound</span>(17,450,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(100);<span style="color: #cc6600;">sound</span>(17,660,80);
<span style="color: #cc6600;">delay</span>(100);<span style="color: #cc6600;">sound</span>(17,760,50);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,860,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,700,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,760,50);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,660,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,520,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,580,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,480,80);
<span style="color: #cc6600;">delay</span>(250);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,760,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,720,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,680,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,620,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,650,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,570,100);
<span style="color: #cc6600;">delay</span>(110);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,760,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,720,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,680,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,620,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,650,200);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,1020,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,1020,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,1020,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,760,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,720,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,680,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,620,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,650,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,570,100);
<span style="color: #cc6600;">delay</span>(110);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,760,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,720,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,680,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,620,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,650,200);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,1020,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,1020,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,1020,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,760,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,720,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,680,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,620,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,650,150);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,430,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,570,100);
<span style="color: #cc6600;">delay</span>(210);<span style="color: #cc6600;">sound</span>(17,585,100);
<span style="color: #cc6600;">delay</span>(275);<span style="color: #cc6600;">sound</span>(17,550,100);
<span style="color: #cc6600;">delay</span>(210);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(180);<span style="color: #cc6600;">sound</span>(17,380,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,60);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,60);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,580,80);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,660,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,430,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,380,80);
<span style="color: #cc6600;">delay</span>(300);<span style="color: #cc6600;">sound</span>(17,500,60);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,60);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,580,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,660,80);
<span style="color: #cc6600;">delay</span>(225);<span style="color: #cc6600;">sound</span>(17,870,80);
<span style="color: #cc6600;">delay</span>(162);<span style="color: #cc6600;">sound</span>(17,760,80);
<span style="color: #cc6600;">delay</span>(300);<span style="color: #cc6600;">sound</span>(17,500,60);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,500,60);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,580,80);
<span style="color: #cc6600;">delay</span>(175);<span style="color: #cc6600;">sound</span>(17,660,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,500,80);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,430,80);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,380,80);
<span style="color: #cc6600;">delay</span>(300);<span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(75);<span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,510,100);
<span style="color: #cc6600;">delay</span>(50);<span style="color: #cc6600;">sound</span>(17,660,100);
<span style="color: #cc6600;">delay</span>(150);<span style="color: #cc6600;">sound</span>(17,770,100);
<span style="color: #cc6600;">delay</span>(225);<span style="color: #cc6600;">sound</span>(17,380,100);
}
</pre>
Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-52771588705753577502014-09-19T21:48:00.001+07:002014-09-19T21:48:42.019+07:00ชั่งน้ำหนักแบบอิเล็กทรอนิกส์<p> <p><a href="http://www.tpemagazine.com/2009/home.html"><อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40></a> <h4> </h4> <p><img title="UniconProject07-fig31_CO" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="UniconProject07-fig31_CO" src="http://lh5.ggpht.com/-CF3dkTjRY3g/VBw9igo2EnI/AAAAAAAAatY/U75p8cP8BLk/UniconProject07-fig31_CO%25255B6%25255D.jpg?imgmax=800" width="640" height="269"> </p> <h4>แนะนำอุปกรณ์สำหรับชั่งน้ำหนัก</h4> <p> <a href="http://lh4.ggpht.com/-HKPrXYdNKLo/VBw9rzCEbxI/AAAAAAAAatg/qdq-n0up8Cc/s1600-h/UniconProject07-fig29_CO-%25255BConverted%25255D%25255B4%25255D.jpg"><img title="UniconProject07-fig29_CO-[Converted]" style="display: inline" alt="UniconProject07-fig29_CO-[Converted]" src="http://lh4.ggpht.com/-_jc_l_5dLTA/VBw-AEnf4zI/AAAAAAAAato/f7gWTto_C8o/UniconProject07-fig29_CO-%25255BConverted%25255D_thumb%25255B2%25255D.jpg?imgmax=800" width="640" height="459"></a> <br>รูปที่ 1 ชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT <p> <h4>ตัวตรวจจับที่ชื่อโหลดเซลและแผงวงจรปรับสภาพสัญญาณคือตัวช่วยสำคัญ</h4> <p> ตัวตรวจจับสำหรับวัดน้ำหนักวัตถุสำหรับมินิโปรเจ็กต์นี้มีชื่อว่า ZX-WEIGHT แสดงในรูปที่ 1 ประกอบด้วยโหลดเซล (load cell) ที่มีหน้าตาเป็นแท่งโลหะอันเป็นตัวตรวจจับตัวจริงทำงานร่วมกับวงจรปรับสภาพสัญญาณที่เรียกว่า signal condition จนได้เป็นค่าข้อมูลของน้ำหนักที่ส่งไปยังไมโครคอนโทรลเลอร์ที่ติดต่อด้วย ในการใช้งานตัวตรวจจับนี้ผู้ผลิตไม่ได้มีเพียงฮาร์ดแวร์มาเท่านั้น ยังมาพร้อมกับไลบรารีสำหรับพัฒนาโปรแกรมบน Arduino เพื่อให้ใช้งานได้ง่ายขึ้นด้วย ชุดตัวตรวจจับและวัดน้ำหนักนี้ทำงานด้วยไฟเลี้ยงในย่าน +2.6 ถึง +5V <p> <h4>โหลดเซลที่เป็นตัววัดหรือชั่งน้ำหนักมีคุณสมบัติทางเทคนิคดังนี้</h4><br> <p> • ย่านวัดสูงสุด 1 กิโลกรัม ให้เอาต์พุตเป็นแรงดันไฟตรง<br> • ใช้ไฟเลี้ยง +5 ถึง +15V <br> • ความไวเอาต์พุต 1.0±0.15mV/V<br> • ค่าความผิดพลาด 100ppm ของค่าวัดเต็มสเกล<br> • ค่าสัมประสิทธิ์อุณหภูมิ 0.05/0.03 %F.S/10°C ในทุกๆ 30 นาที<br> • อินพุตอิมพีแดนซ์ 1.055kW <br> • เอาต์พุตอิมพีแดนซ์ 1kW<br> • ขนาด 33 x 38 มม. <br> โหลดเซลที่ใช้วัดน้ำหนัก 1 กิโลกรัมในชุด ZX-WEIGHT จะมีความคลาดเคลื่อนเป็นแบบไม่เป็นเชิงเส้นหรือนอนลิเนียร์อยู่เล็กน้อย โดยคลาดเคลื่อนในระดับไม่ถึง 100 กรัม ทั้งนี้ขึ้นอยู่กับน้ำหนักของวัตถุด้วย โดยวัตถุที่มีน้ำหนักน้อย ค่าที่ได้จะมีความแม่นยำมากกว่าวัตถุที่มีน้ำหนักมาก<br> <h4>แผงวงจรปรับสภาพสัญญาณสำหรับโหลดเซลในชุด ZX-WEIGHT มีคุณสมบัติทางเทคนิคดังนี้</h4> <p> • ใช้ไอซีฟังก์ชั่นพิเศษเบอร์ HX711 ผลงานของ AVIA Semiconductor เป็นไอซีแปลงสัญญาณอะนาลอกเป็นดิจิตอลความละเอียด 24 บิตสำหรับโหลดเซลโดยเฉพาะ <br> • มีอินพุตแบบดิฟเฟอเรนเชียล 2 ชุด จึงใช้งานกับโหลดเซลได้ง่าย<br> • มีขาเอาต์พุตไฟเลี้ยงสำหรับโหลดเซล มาจากวงจรเรกูเลเตอร์ภายในไอซี HX711<br> • เชื่อมต่อกับไมโครคอนโทรลเลอร์ด้วยสัญญาณ 2 เส้นคือ สัญญาณข้อมูล Dout และสัญญาณนาฬิกา PD_Clock <br> • ใช้ไฟเลี้ยง +2.6 ถึง +5.5V ใช้กระแสไฟฟ้าน้อยกว่า 1.6mA<br> • มีจุดต่อโหลดเซลเป็นเทอร์มินอลบล็อก 4 ขา และจุดต่อสัญญาณสำหรับเชื่อมต่อไมโครคอนโทรลเลอร์แบบ JST 3 ขา 2 ชุด พร้อมใช้งาน<br> ในชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT ยังมีชิ้นส่วนพลาสติกและอุปกรณ์ยึดติดเพื่อสร้างแท่นชั่งน้ำหนักอย่างง่ายมาให้พร้อมดังแสดงในรูปที่ 2 <p><img title="UniconProject07-fig30" style="display: inline" alt="UniconProject07-fig30" src="http://lh5.ggpht.com/-vx70Ah7N8jg/VBw-NSAr3vI/AAAAAAAAatw/UGNRi18MsKo/UniconProject07-fig30%25255B5%25255D.jpg?imgmax=800" width="640" height="372"> <br>รูปที่ 2 แสดงชิ้นส่วนและอุปกรณ์ทั้งหมดของชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT<br> <h4>เชื่อมต่อกับบอร์ด Unicon</h4> <p> การเชื่อมต่อบอร์ด Unicon เพื่อใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT แสดงดังรูปที่ 3 ใช้ 2 ขาพอร์ตคือ 1 และ 30 โดยพอร์ต 1 ต่อกับขา DOUT ส่วนขาพอร์ต 30 ต่อกับขา SCK และต่อแผงวงจรสวิตช์ ZX-01 เข้าที่พอร์ต 20 เพื่อใช้เป็นปุ่มสำหรับตั้งค่าเริ่มต้นให้เป็น 0 กรัม ในกรณีที่เปิดไฟเลี้ยงขึ้นมาแล้วค่าที่ได้ไม่เป็น 0 กรัมในขณะที่ยังไม่ได้ทำการชั่งน้ำหนักใดๆ หรือจะเรียกว่าเป็นสวิตช์ตั้งค่าศูนย์ก็ได้ </p> <p><img title="UniconProject07-fig31_CO" style="display: inline" alt="UniconProject07-fig31_CO" src="http://lh4.ggpht.com/-zTfqPU7EX8k/VBw-YrcpYaI/AAAAAAAAat4/58rCc24hiEs/UniconProject07-fig31_CO%25255B12%25255D.jpg?imgmax=800" width="640" height="269"> <br>รูปที่ 3 วงจรเชื่อมต่อระหว่างชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT กับบอร์ด Unicon</p> <p> สายสัญญาณที่ใช้เชื่อมต่อระหว่างแผงวงจรปรับสภาวะสัญญาณกับบอร์ด Unicon ใช้สายสัญญาณ JST3AA-8 มาทำการสลับสายตามรูปที่ 4</p> <p><img title="UniconProject07-fig32_CO-[Converted]" style="display: inline" alt="UniconProject07-fig32_CO-[Converted]" src="http://lh5.ggpht.com/-oVHX-WET4EU/VBw-kbB_VqI/AAAAAAAAauA/Q_q1Tx-NpoM/UniconProject07-fig32_CO-%25255BConverted%25255D%25255B6%25255D.jpg?imgmax=800" width="476" height="480"> <br>รูปที่ 4 การสลับสายสัญญาณ JST3AA-8 เพื่อใช้ในการเชื่อมต่อระหว่างแผงวงจรปรับสภาวะสัญญาณของชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT กับบอร์ด Unicon</p> <h4>สร้างและติดตั้งแท่นชั่งน้ำหนักอย่างง่าย</h4> <p><img title="UniconProject07-fig33-[Converted]" style="display: inline" alt="UniconProject07-fig33-[Converted]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrX9C51AiOiDCGAd3tnbLTveKPHyY9BjWC6hN8XI1AtFf7roVYMDcfW2r23WhVkn3KPy-3_URn10oLU5B7Bv1bgHmUSPnroFUUYkj4JPlxPR1B0vUG8bGIQvTGcyGvWXLWpsEwHj3Be35/?imgmax=800" width="640" height="314"> <br>รูปที่ 5 แบบของแท่นชั่งน้ำหนักที่ทำจากแผ่นอะครีลิกใส หนา 5 มม.</p> <p><img title="UniconProject07-fig34_CO-[Converted]" style="display: inline" alt="UniconProject07-fig34_CO-[Converted]" src="http://lh5.ggpht.com/-rYsXz7hXNlM/VBw-9Yp3NRI/AAAAAAAAauQ/zKkQAsapzos/UniconProject07-fig34_CO-%25255BConverted%25255D%25255B6%25255D.jpg?imgmax=800" width="640" height="489"> <br>รูปที่ 6 แนวทางการประกอบชิ้นส่วนของแท่นชั่งน้ำหนัก</p> <p> เพื่อให้การใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT มีประสิทธิภาพมากที่สุด จึงต้องติดตั้งโหลดเซลไว้กับโครงสร้างที่เหมาะสม นั่นคือ ทำเป็นแท่นชั่งน้ำหนัก โดยมีชิ้นส่วนต่างๆ แสดงในรูปที่ 5 ซึ่งใช้แผ่นอะครีลิกใสหนา 5 มม. ประกอบเข้าด้วยกันตามแนวทางในรูปที่ 6 จากนั้นติดตั้งแผงวงจรปรับสภาพสัญญาณ แล้วต่อสายสัญญาณของโหลดเซลทั้ง สี่เส้นเข้ากับแผงวงจรแผงวงจรปรับสภาพสัญญาณดังนี้<br> สายสีแดงต่อเข้าที่จุด E+<br> สายสีขาวต่อเข้าที่จุด E-<br> สายสีดำต่อเข้าที่จุด S-<br> สายสีเขียวต่อเข้าที่จุด S+<br> ในรูปที่ 7 แสดงแท่นชั่งน้ำหนักที่พร้อมสำหรับเชื่อมต่อกับบอร์ด Unicon </p> <p><img title="UniconProject07-fig35" style="display: inline" alt="UniconProject07-fig35" src="http://lh4.ggpht.com/-gDrAaJXkkx8/VBw_IacGUEI/AAAAAAAAauY/TSkohcRhxFY/UniconProject07-fig35%25255B5%25255D.jpg?imgmax=800" width="576" height="480"> <br>รูปที่ 7 แท่นชั่งน้ำหนักที่ประกอบเสร็จแล้ว พร้อมเชื่อมต่อกับบอร์ด Unicon<br>หรือบอร์ดไมโครคอนโทรลเลอร์อื่นๆ </p> <h4>เขียนโค้ดและผนวกไลบรารีสำหรับใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT</h4> <p> โค้ดโปรแกรมภาษา C/C++ สำหรับ Arduino เพื่ออ่านค่าจากชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT แสดงในโปรแกรมที่ 1 หัวใจหลักของโปรแกรมนี้คือ ไฟล์ไลบรารี <a href="http://www.tpemagazine.com/download/issue40/unicon-miniproject.zip" target="_blank">Hx711.h</a> จะต้องมีการคัดลอกไฟล์ไลบรารีนี้แล้วนำไปไว้ในโฟลเดอร์ libraries ของซอฟต์แวร์ Arduino ตามที่ได้ติดตั้งไว้ เช่น C:\Program Files\Arduino\libraries ดังรูปที่ 8 (อาจเปลี่ยนแปลงไปตามการติดตั้งซอฟต์แวร์ของผู้พัฒนาแต่ละคน) ก่อนที่จะทำการคอมไพล์หรืออัปโหลดโปรแกรมไปยังบอร์ด Unicon </p> <p> <a href="http://lh5.ggpht.com/-qPM7Caa-iLA/VBxBwqo6VkI/AAAAAAAAauk/pxJey6nzVx0/s1600-h/UniconProject07-Program08%25255B4%25255D.jpg"><img title="UniconProject07-Program08" style="display: inline" alt="UniconProject07-Program08" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-isXOFg_8fRTdm8fKM-q0njznorWfB575JIpuj4kNuIOGmYNypKg7lZTrz2mkMwtDqVBJv9odVJ-cDXjfIZWrOgXsx_HG_e6VGjUrjUi9rlKPxr0j3yM1EoZpsRK0H-KKHt0bKEIXrzqd/?imgmax=800" width="514" height="768"></a> <br>โปรแกรมที่ 1 ไฟล์ Unicon_WeightSensor.ino สำหรับอ่านค่าจากชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT โดยใช้บอร์ด Unicon</p> <p><img title="UniconProject07-fig36" style="display: inline" alt="UniconProject07-fig36" src="http://lh6.ggpht.com/-ie_hYHKmCaU/VBxCIANpzKI/AAAAAAAAau0/2e-nDANSY8s/UniconProject07-fig36%25255B5%25255D.jpg?imgmax=800" width="510" height="480"> <br>รูปที่ 8 แสดงโฟลเดอร์ libraries ของซอฟต์แวร์ Arduino สำหรับนำโฟลเดอร์ของไฟล์ไลบรารี Hx711.h มาติดตั้งไว้</p> <p> การทำงานของโปรแกรมที่ 1 จะอ่านค่าน้ำหนักของวัตถุที่วัดได้ นำมาคูณกับ 0.921 ก่อน ซึ่งค่า 0.921 เป็นค่าชดเชยความคลาดเคลื่อนของน้ำหนักที่วัดได้ โดยทำการเทียบน้ำหนักกับเครื่องชั่งน้ำหนักตัวอื่น แล้วนำมาคำนวณเป็นค่าดังกล่าว โดยค่า 0.921 มาจากการวัดเทียบน้ำหนัก โหลดเซลวัดน้ำหนักได้เกินจริงเฉลี่ยประมาณ 108.577% จึงนำมาคำนวณด้วย 100 / 108.577 ก็จะได้เป็น 0.921 เพื่อใช้ชดเชยค่าที่วัดไว้จากโหลดเซล เมื่อได้ค่าน้ำหนักแล้วจึงนำไปแสดงบนจอแสดงผล GLCD-XT ต่อไป <br> สำหรับสวิตชที่ใช้สำหรับตั้งค่าเริ่มต้นให้เป็น 0 หรือสวิตช์ตั้งค่าศูนย์ ใช้ในกรณีที่ยังไม่ได้ชั่งวัตถุใดๆ แล้วค่าที่ได้ไม่เป็น 0 กรัม โดยโปรแกรมจะตรวจสอบสถานะของสวิตช์ดังกล่าวว่า มีการกดหรือไม่ เมื่อมีการกด ก็จะนำค่าน้ำหนักที่โหลดเซลวัดได้ในขณะนั้นไปกำหนดใหม่ให้เป็น 0 กรัม<br> <h4>ทดสอบวัดน้ำหนัก</h4> <p> เมื่ออัปโหลดโค้ดและโปรแกรมในบอร์ด Unicon เริ่มทำงานแล้ว ให้รอสักครู่ เพื่อให้โหลดเซลได้เตรียมความพร้อมเข้าสู่สภาวะพร้อมทำงาน จึงไม่ควรวางวัตถุใดๆ ไว้บนแท่นชั่งในขณะเริ่มทำงานใหม่ๆ หากค่าน้ำหนักที่แสดงขณะไม่มีวัตถุใดๆ มาชั่งยังไม่เป็น 0 กรัม ให้กดสวิตช์ที่ต่อกับพอร์ต 20 หรือสวิตช์ตั้งค่าศูนย์ค้างไว้ จนกว่าจอแสดงผล GLCD-XT แสดงข้อความว่า Calibrate ให้ปล่อยสวิตช์ รอจนกระทั่งค่าน้ำหนักที่แสดงเป็น 0 กรัม เมื่อค่าคงที่ที่ 0 กรัมแล้ว จึงเริ่มชั่งน้ำหนักวัตถุได้ ดังแสดงผลการทำงานตามรูปที่ 9 <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p><img title="UniconProject07-fig37-[Converted]" style="display: inline" alt="UniconProject07-fig37-[Converted]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF0Rj5n-ZaOVfvzsn98rfUD2XUPWZH101vBew41YMBOPL8GR_pjRwVHgL2pCSNLzV5CVnuQX_h73LivzjxF54ACK2G03G0FBnt1wZ3YO_ipfmIB45oDTc-tNTsKqKiZPjhTUYYpisOjcR4/?imgmax=800" width="640" height="444"> <br>รูปที่ 9 ผลการชั่งน้ำหนักที่ได้จากมินิโปรเจ็กต์เครื่องชั่งน้ำหนักแบบดิจิตอลที่สร้างจากบอร์ด Unicon</p> <p><strong><font color="#0080ff">หมายเหตุ<br></font></strong>โค้ดของโครงงานทั้งหมดดาวน์โหลดได้ที่ <a href="http://www.tpemagazine.com/download/issue40/unicon-miniproject.zip" target="_blank">www.tpemagazine.com</a></p> Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-74946978257472660172014-09-19T17:44:00.001+07:002014-09-19T17:44:23.068+07:00วัดระยะทางด้วยคลื่นอัลตร้าโซนิก<h2>แนะนำโมดูลวัดระยะทางด้วยคลื่นอัลตร้าโซนิก HC-SR04</h2> <p><img title="UniconProject06-fig26_CO-[Converted]" style="display: inline" alt="UniconProject06-fig26_CO-[Converted]" src="http://lh3.ggpht.com/-dcEBDW-GJUc/VBwIRKYaW5I/AAAAAAAAasU/79lULg8BvB0/UniconProject06-fig26_CO-%25255BConverted%25255D%25255B5%25255D.jpg?imgmax=800" width="670" height="284"> </p> <p><a href="http://www.tpemagazine.com/2009/home.html"><อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40></a></p> <p><br> HC-SR04 เป็นโมดูลวัดระยะทางที่ใช้หลักการสะท้อนของคลื่นอัลตร้าโซนิก ราคาประหยัด โดยตัว HC-SR04 มีแหล่งกำเนิดคลื่นอัลตร้าโซนิกส่งไปสะท้อนกับวัตถุที่อยู่ข้างหน้ากลับมายังตัวรับสัญญาณ โดยระยะทางที่วัดได้จะสัมพันธ์กับระยะเวลาที่คลื่นอัลตร้าโซนิกเคลื่อนที่ไปกระทบวัตถุและสะท้อนกลับมายังตัวรับ เมื่อรู้ระยะเวลาที่คลื่นอัลตร้าโซนิกสะท้อนกลับมา จึงนำมาคำนวณหาเป็นระยะทางระหว่างโมดูล HC-SR04 กับวัตถุได้ โดยโมดูล HC-SR04 วัดระยะทางในช่วง 2 ถึง 500 ซม. (5 เมตร) มีความละเอียดอยู่ที่ 0.3 ซม. ใช้ไฟเลี้ยง +5V <br> ในรูปที่ 1 แสดงส่วนประกอบทั้งหมดของชุดโมดูล HC-SR04 เพื่อใช้ในการติดต่อกับบอร์ดไมโครคอนโทรลเลอร์ โดยเฉพาะอย่างยิ่งกับบอร์ด Unicon </p> <p><img title="" style="display: inline" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6MmlbMIfYYx5Rc2u4vGsAJjG_54hwGATHw479HLRFyPZpDJB2DifhVL3ECXf9vHSn6PEA2D2X-Sk4Ah8MDFBNKEllzzA734LKRg47kQ5RfGoNTVbiRk_whoogl_CxwyH3Ikjz-YxH-hjw/?imgmax=800" width="640" height="464"> <br>รูปที่ 1 โมดูล HC-SR04 พร้อมกับสาย JST3AC-8 จำนวน 2 เส้น เพี่อใช้เชื่อมต่อกับบอร์ด Unicon และบอร์ดไมโครคอนโทรลเลอร์อื่นๆ</p> <h4>การติดต่อกับบอร์ด Unicon</h4> <p> การเชื่อมต่อกับบอร์ด Unicon ของโมดูล HC-SR04 ใช้สายสัญญาณแบบ JST3AC-8 จำนวน 2 เส้น ดังรูปที่ 2 โดยปลายสายด้านหัวต่อ IDC ตัวเมียของสาย JST3AC-8 เส้นที่ 1 ต่อกับคอนเน็กเตอร์ของโมดูล HC-SR04 ที่ขาไฟเลี้ยง (+V), กราวด์ (GND) และ Trigger ส่วนเส้นที่ 2 ให้ต่อสายสัญญาณ (สีขาว เส้นกลาง) กับขา Echo ส่วนหัวต่อ IDC ตัวเมียของสายสีแดงและดำที่เหลือให้ปล่อยลอยไว้ ส่วนปลายสายด้านที่เป็นหัวต่อ JST ให้นำไปเสียบจุดต่อพอร์ต 2 สำหรับขา Trigger และพอร์ต 3 สำหรับขา Echo บนบอร์ด Unicon <p><img title="UniconProject06-fig26_CO-[Converted]" style="display: inline" alt="UniconProject06-fig26_CO-[Converted]" src="http://lh3.ggpht.com/-j1OJSHIKGqw/VBwInwj3EHI/AAAAAAAAask/HZz8gDYkoe8/UniconProject06-fig26_CO-%25255BConverted%25255D%25255B11%25255D.jpg?imgmax=800" width="640" height="270"> <br>รูปที่ 2 วงจรเชื่อมต่อเพื่อใช้งานโมดูล HC-SR04 กับบอร์ด Unicon <p> ในการสื่อสารข้อมูลกับโมดูล HC-SR04 ใช้ขาสัญญาณ 2 ขา คือ Trigger และ Echo โดยขา Trigger มีไว้สำหรับสั่งงานให้โมดูล HC-SR04 ส่งคลื่นอัลตร้าโซนิกออกไปข้างหน้า เมื่อคลื่นอัลตร้าโซนิกสะท้อนกลับมาจากวัตถุเป้าหมาย จะส่งสัญญาณพัลส์ออกมาทางขา Echo โดยสัญญาณนี้จะมีความกว้างที่สัมพันธ์กับระยะทางที่วัดได้ ดังนั้น ไมโครคอนโทรลเลอร์จะต้องส่งสัญญาณพัลส์ที่มีความกว้างพัลส์อย่างน้อย 10 ไมโครวินาทีไปยังขา Trigger ของโมดูล HC-SR04 แล้วรอรับสัญญาณพัลส์ที่ส่งกลับมาทางขา Echo เพื่อวัดความกว้างของสัญญาณพัลส์ ดังรูปที่ 3 <p> <img title="UniconProject06-fig27_CO-[Converted]" style="display: inline" alt="UniconProject06-fig27_CO-[Converted]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKYTRp-3iYJ3EtbECi7Br2OURMBfYQmy15i7AYIgGULSK0uZYuxgB66761wbfruTCxTMbphoixzcGYfwzJiqRJBz8a0RkX2WSAZQ8ZwsBt3vR5WuBAaf1OrV7xOiJeHnp3oxL646KVzIpa/?imgmax=800" width="640" height="473"> <br>รูปที่ 3 แสดงการติดต่อระหว่างบอร์ด Unicon กับโมดูล HC-SR04 เพื่อวัดระยะทาง <p> เมื่อวัดความกว้างของสัญญาณพัลส์จากขา Echo ในหน่วยไมโครวินาทีแล้ว นำไปคำนวณเป็นระยะทางในหน่วยเซนติเมตรหรือนิ้วได้ดังนี้<br> <strong>ระยะทาง (เซนติเมตร) = (ระยะเวลาในหน่วยไมโครวินาที / 29) / 2<br> ระยะทาง (นิ้ว) = (ระยะเวลาในหน่วยไมโครวินาที / 74) / 2 </strong></p> <h4>เขียนโค้ด</h4><br> <p> ตัวอย่างโปรแกรมสำหรับติดต่อกับโมดูล HC-SR04 ของบอร์ด Unicon แสดงในโปรแกรมที่ 1 ฟังก์ชั่นหลักของโปรแกรมนี้คือ getDistance(); โดยการทำงานของฟังก์ชั่นนี้ เริ่มต้นด้วยการกำหนดให้ขาพอร์ต 30 เป็น<br>เอาต์พุตดิจิตอล แล้วส่งสัญญาณพัลส์กว้าง 10 ไมโครวินาทีออกไป จากนั้นกำหนดให้ขาพอร์ต 6 เป็นอินพุตดิจิตอล เพื่อรอรับสัญญาณพัลส์กลับมาจากขา Echo ของโมดูล HC-SR04 โดยใช้ฟังก์ชั่น pulseIn(); จากนั้นนำค่าความกว้างของพัลส์ที่วัดได้มาทำการคำนวณเป็นระยะทางในหน่วยเซนติเมตรและนิ้ว <br> จากนั้นจึงนำค่าที่วัดได้ไปแสดงผลที่จอแสดงผล GLCD-XT ทั้งในหน่วยเซนติเมตรและหน่วยนิ้ว <p><img title="UniconProject06-Program07" style="display: inline" alt="UniconProject06-Program07" src="http://lh5.ggpht.com/-qP-1FTVTmm4/VBwIr1wltEI/AAAAAAAAas0/R_oU3rWpUBo/UniconProject06-Program07%25255B6%25255D.jpg?imgmax=800" width="384" height="590"> <br>โปรแกรมที่ 6 ไฟล์ Unicon_HCSR04.ino สำหรับติดต่อกับโมดูลวัดระยะทางด้วยคลื่นอัลตร้าโซนิก HC-SR04 ของบอร์ด Unicon <p> <h4>ทดสอบวัดระยะทาง</h4> <p> เมื่อรันโปรแกรม ที่จอแสดงผล GLCD-XT จะแสดงข้อความและค่าของการวัดในหน่วยเซนติเมตรและนิ้วทันที ทดลองใช้มือบังที่ด้านหน้าของโมดูล HC-SR04 แล้วเลื่อนมือเข้าใกล้และถอยห่างออกจากโมดูล สังเกตค่าการวัดที่ได้ ดังรูปที่ 4 อาจตรวจสอบความแม่นยำในการวัดด้วยการใช้ไม้บรรทัดหรือตลับเมตรวัดเทียบได้ <br> จากการทดสอบในพื้นที่โล่งกับวัตถุที่มีรูปร่างแน่นอนเพียง 1 ชิ้น โดยมีการปรับระยะทดสอบอย่างต่อเนื่องพบว่า <br>โมดูล HC-SR04 วัดระยะทางได้ระหว่าง 2 เซนติเมตร ถึง 5 เมตร แต่ระยะทำการที่ให้ผลค่อนข้างแน่นอนคือ 4 เซนติเมตร ถึง 3 เมตร <p></p> <p></p> <p></p> <p></p> <p><a href="http://lh5.ggpht.com/-hRVufjR0HCI/VBwI2MNkinI/AAAAAAAAas8/ch-D4YL31QI/s1600-h/UniconProject06-fig28-%25255BConverted%25255D%25255B5%25255D.jpg"><img title="UniconProject06-fig28-[Converted]" style="display: inline" alt="UniconProject06-fig28-[Converted]" src="http://lh5.ggpht.com/-VeBTI6r-hXU/VBwJBCAI59I/AAAAAAAAatE/Xi4oiFgXfGE/UniconProject06-fig28-%25255BConverted%25255D_thumb%25255B3%25255D.jpg?imgmax=800" width="640" height="446"></a> <br>รูปที่ 4 แสดงผลการทำงานของโมดูล HC-SR04 บนบอร์ด Unicon</p> Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-30364739242891327172014-09-19T16:33:00.001+07:002014-09-19T16:33:18.923+07:00ตรวจจับรังสีอัลตร้าไวโอเล็ต<h2>แนะนำตัวตรวจจับรังสีอัลตร้าไวโอเล็ต ZX-UV</h2> <p><a href="http://www.tpemagazine.com/2009/home.html"><อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40></a></p> <p><a href="http://lh4.ggpht.com/-tRvLc7iC-j8/VBv3Zw0x9QI/AAAAAAAAarE/ytX-0VqorqQ/s1600-h/UniconProject05-fig23-%25255BConverted%25255D%25255B5%25255D.jpg"><img title="รูปหัวเรื่อง" style="display: inline" alt="รูปหัวเรื่อง" src="http://lh5.ggpht.com/-259FFkAWZa0/VBv3dNo1whI/AAAAAAAAarM/ohG_50KD4Us/UniconProject05-fig23-%25255BConverted%25255D_thumb%25255B3%25255D.jpg?imgmax=800" width="640" height="320"></a> <br></p> <p> ตัวตรวจจับรังสีอัลตร้าไวโอเล็ตหรือ UV Sensor ที่นำมาแนะนำในมินิโปรเจ็กต์นี้เป็นผลงานที่น่าสนใจจาก DF Robot (www.dfrobot.com) เป็นตัวตรวจจับที่สามารถตรวจจับปริมาณรังสี UV หรืออัลตร้าไวโอเลต (Ultraviolet) ความไวสูง ที่ใช้ชิป GUVA-S12SD ติดตั้งบนแผงวงจรและมีจุดต่อพร้อมใช้งาน ดังแสดงในรูปที่ 1 โดยตัวตรวจจับนี้สามารถตรวจจับรังสี UV ที่มีความยาวคลื่นในช่วง 200 ถึง 370 นาโนเมตร โดยให้ผลลัพธ์ออกมาเป็นสัญญาณอะนาลอกที่นำไปคำนวณหาค่าดัชนีของรังสี UV หรือ UV Index ได้ทันที มีจุดเชื่อมต่อสำหรับ บอร์ดไมโครคอนโทรลเลอร์ในอนุกรม .NET Gadgeteer และจุดเชื่อมต่อแบบ IDC 3 ขา จึงเชื่อมต่อกับบอร์ดไมโครคอนโทรลเลอร์ได้ทุกตระกูลรวมถึงบอร์ด Unicon ด้วย </p> <p><img title="" style="display: inline" alt="" src="http://lh5.ggpht.com/-O-dW_vDFgaI/VBv3foVbP8I/AAAAAAAAarU/JiJrw4ktBQA/UniconProject05-fig22%25255B6%25255D.jpg?imgmax=800" width="640" height="428"> <br>รูปที่ 1 แผงวงจรตรวจจับรังสีอัลตร้าไวโอเล็ต ZX-UV พร้อมสายสัญญาณ JST3AC-8 สำหรับเชื่อมต่อบอร์ด Unicon</p> <h4>คุณสมบัติเบื้องต้น</h4> <p> • ใช้ไฟเลี้ยง +3.3V ถึง +5V <br> • ให้แรงดันเอาต์พุตในช่วง 0 ถึง 1V สัมพันธ์กับค่าดัชนีรังสี UV<br> • ใช้กระแสไฟฟ้า 0.06mA (สูงสุด 0.1mA)<br> • ตรวจจับรังสี UV ที่มีความยาวคลื่นในช่วง 200 ถึง 370 นาโนเมตร<br> • ความไวในการตรวจจับน้อยกว่า 0.5 วินาที<br> • ทำงานในสภาพแวดล้อมที่มีอุณหภูมิ -20 ถึง 85 องศาเซลเซียส<br> • จุดต่อสำหรับ .Net Gadgeteer และจุดต่อแบบ IDC 3 ขา <br> • มีขนาดเพียง 27 x 22 มิลลิเมตร<br> ในตารางที่ 1 แสดงค่าที่วัดได้จากตัวตรวจจับรังสีอัลตร้าไวโอเล็ต ZX-UV นำมาเทียบกับดัชนีรังสี UV หรือ UV index โดยค่าของแรงดันไฟตรงที่ได้จากตัวตรวจจับรังสีอัลตร้าไวโอเล็ต (Vout) จากในตารางที่ 1 มีหน่วยเป็น<br>มิลลิโวลต์ (mV) ยิ่งตรวจจับพบรังสี UV มีความเข้มมากเท่าใด แรงดันที่ได้จะสูงขึ้น และค่าดัชนีรังสีก็จะมีค่าสูงเช่นกัน <p><a href="http://lh4.ggpht.com/--dRKlGneMQw/VBv3nmIa5sI/AAAAAAAAarc/vGs286WoCqs/s1600-h/UniconProject05-Table04_CO-%25255BConverted%25255D%25255B4%25255D.jpg"><img title="ตารางที่ 1" style="display: inline" alt="ตารางที่ 1" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-kPgxioG6YojEiJ8sRINQcQ87uzO0TNJ2q2j1W3CE11g95QVYnfuOJsOOTpSViwgRsLj5cqbDq5qLsdLSlPdFr4gzrP5Q98VR-CkRx0Lvh5OtGESOEgxkLkHDgcZduWhqhQZm5gzrDE3f/?imgmax=800" width="640" height="258"></a> <br>ตารางที่ 1 แสดงค่าที่วัดได้จากตัวตรวจจับรังสี UV (ZX-UV) เทียบกับค่าดัชนีรังสี UV <h4> </h4> <h4>การต่อวงจรเพื่อใช้งานกับบอร์ด Unicon</h4> <p> ใช้สาย JST3AC-8 ในการเชื่อมต่อระหว่างบอร์ด Unicon กับตัวตรวจจับ ZX-UV ดังรูปที่ 2 โดยปลายสายด้านหัวต่อ IDC ตัวเมียของสาย JST3AC-8 ต่อกับคอนเน็กเตอร์ IDC ของแผงวงจรตรวจจับ ZX-UV ที่ขาไฟเลี้ยง (+V), กราวด์ (GND) และ OUT ส่วนปลายสายที่เป็นหัวต่อ JST ให้นำไปเสียบจุดต่อพอร์ต A0 ของบอร์ด Unicon <p><img title="รูปที่ 2" style="display: inline" alt="รูปที่ 2" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxfmeoSw0q9elLskXRw0Utbl0IGTbF_5Wgavby8BkG0_HHnyar50dnZ2NAOtaThNz8bsnn-b_0EXCxn9LxpS7VtYHSmCVaY79aPMPLJZa5GkWviHYBmpPxVsz2fTNce7DS2VB3VuqEgIPW/?imgmax=800" width="640" height="320"> <br>รูปที่ 2 วงจรเชื่อมต่อเพื่อใช้งานตัวตรวจจับรังสีอัลตร้าไวโอเล็ต ZX-UV กับบอร์ด Unicon <p> <h4>เขียนโค้ด</h4><br> <p> โปรแกรมสำหรับติดต่อเพื่ออ่านค่าจากตัวตรวจจับรังสี UV ของบอร์ด Unicon แสดงในโปรแกรมที่ 1 เป็นการอ่านค่าอินพุตอะนาลอกแบบพื้นฐาน จากนั้นนำค่าที่ได้มาทำการเปรียบเทียบกับฐานข้อมูลของค่าดัชนีรังสี UV ที่ได้มาจากตารางที่ 1 แล้วนำค่าทั้งข้อมูลดิบและค่าดัชนีรังสี UV ที่เทียบได้ไปแสดงผลที่จอแสดงผล GLCD-XT <p><a href="http://lh4.ggpht.com/-INMF3QqR6v0/VBv4GpMObZI/AAAAAAAAar0/LrQDkNU91dQ/s1600-h/UniconProject05-Program06%25255B7%25255D.jpg"><img title="UniconProject05-Program06" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="UniconProject05-Program06" src="http://lh3.ggpht.com/-I8C_wlndevQ/VBv4KVuCG2I/AAAAAAAAar8/ak9Nvhcswhg/UniconProject05-Program06_thumb%25255B5%25255D.jpg?imgmax=800" width="340" height="719"></a> <br>โปรแกรมที่ 1 ไฟล์ Unicon_UVsensor.ino สำหรับอ่านค่าจากแผงวงจรตรวจจับรังสีอัลตร้าไวโอเล็ต ZX-UV ของบอร์ด Unicon <p> <h4>ทดสอบการทำงาน</h4> <p> หลังจากอัปโหลดโปรแกรมไปยังบอร์ด Unicon แล้ว นำแผงวงจรตรวจจับ ZX-UV ไปวัดในพื้นที่ที่มีแสงแดดส่องถึง แล้วดูค่าที่แสดงบนจอแสดงผล GLCD-XT ดังรูปที่ 24 โดยในบรรทัดแรกเป็นข้อมูลดิบที่ได้จากตัวตรวจจับรังสี UV ผ่านการแปลงสัญญาณด้วยโมดูลแปลงสัญญาณอะนาลอกเป็นดิจิตอลของบอร์ด Unicon ส่วนในบรรทัดที่สองเป็นค่าดัชนีรังสียูวีที่วัดได้ เพื่อแสดงว่า แสงที่ส่องมายังตัวตรวจจับมีค่าดัชนีรังสี UV อยู่ในระดับใด หากดัชนีมีค่าสูงแสดงว่า มีปริมาณของรังสี UV มาก <br> ดัชนีรังสี UV 1 ถึง 2 แสดงว่า ยังมีความเข้มของรังสีต่ำ ควรสวมแว่นกันแดด และสวมเสื้อผ้าแบบป้องกันรังสี UV<br> ดัชนีรังสี UV 3 ถึง 5 แสดงว่า มีความเข้มของรังสีปานกลาง นอกจากแว่นกันแดดและเสื้อผ้าป้องกันรังสี UV แล้ว ควรสวมหมวกเพิ่มด้วย<br> ดัชนีรังสี UV 6 ถึง 7 แสดงว่า มีความเข้มของรังสีสูง ในระดับนี้ควรถือหรือใช้ร่มป้องกันร่วมกับแว่นกันแดด, เสื้อผ้าป้องกันรังสี UV และการสวมหมวก<br> ดัชนีรังสี UV 8 ถึง 10 แสดงว่า มีความเข้มของรังสีสูงมาก ต้องป้องกันเหมือนกับดัชนีรังสี UV ในระดับ 6 และ 7<br> ดัชนีรังสี UV 11 ขึ้นไป แสดงว่า ความเข้มของรังสีสูงจัด ควรอยู่ในร่ม และป้องกันในแบบเดียวกับเมื่อค่าดัชนีรังสี UV เป็น 8 ถึง 10 มักพบในช่วงเวลา 10 นาฬิกาถึง 16 นาฬิกา (สี่โมงเย็น) <p><img title="UniconProject05-fig24-[Converted]" style="display: inline" alt="UniconProject05-fig24-[Converted]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZBMZDybNGztqts2X3bwJesXAVAgRBCAgI3ppdtvscMGDcCeknGrU-5Uvzkl633WIwYARId2JyyJC1fX8Hih6-Y0LbuL8CaZkcasH-zrYLqngbj44_hXqFPWKx8qBjGELAd08-Vwr2LtnO/?imgmax=800" width="640" height="444"> <br>รูปที่ 3 ผลการทำงานของแผงวงจรตรวจจับรังสีอัลตร้าไวโอเล็ต ZX-UV ที่แสดงทั้งข้อมูลดิบที่ได้จากตัวตรวจจับและค่าดัชนีรังสี UV ผ่านทางบอร์ด Unicon Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-53598924295638292502014-09-19T14:52:00.001+07:002014-09-19T15:07:46.190+07:00CMPS10 Compass Sensor with UNICON<h1>
รู้ทิศและความเอียงด้วย CMPS10 โมดูลเข็มทิศอิเล็กทรอนิกส์</h1>
<a href="http://lh6.ggpht.com/-m4Ipr_Ka7Zc/VBvfsOqOYYI/AAAAAAAAaok/8QT2yeg7eDM/s1600-h/UniconProject04-fig19_CO-%25255BConverted%25255D%25255B5%25255D.jpg" target="_blank"><img alt="รูปหัวเรื่อง" src="http://lh4.ggpht.com/-Dr5oE-DxicY/VBvfwSujVLI/AAAAAAAAaos/tZXjmu_SFuc/UniconProject04-fig19_CO-%25255BConverted%25255D_thumb%25255B3%25255D.jpg?imgmax=800" height="480" style="display: inline;" title="รูปหัวเรื่อง" width="456" /></a> <br />
<a href="http://www.tpemagazine.com/2009/home.html" target="_blank"><อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40></a><br />
<h2>
<span style="color: green;">เบื้องต้นกับ CMPS10</span> </h2>
CMPS10 เป็นโมดูลเข็มทิศและวัดความเอียงผลงานของ <a href="http://www.robot-electronics.co.uk/" target="_blank">Devantech</a> ภายในตัวโมดูลประกอบไปด้วยตัวตรวจจับแม่เหล็กขั้วโลก 3 แกนกับตัวตรวจจับความเร่ง 3 แกนที่ทำงานร่วมกับชิปประมวลผลขนาด 16 บิต เพื่อวัดทิศทางได้ว่า โมดูลหันไปในทิศใด รวมถึงวัดความเอียงได้ด้วย <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdgW4GvVod5bRtfGq-bXb7LNJmSr5XyBl_ZMLkCvJBkN6uuSgDFqQTR3JWuGeP64pBr_N9uC8GnOMNGa86EkLpvOAp9uGBjiTfVK8MPU3QYs7xX7nDF9iBvEPJy0yDsXT2r3yXD4w5Enx_/s1600-h/UniconProject04-fig16_CO-%25255BConverted%25255D%25255B8%25255D.jpg"><img alt="รูปที่ 1" src="http://lh4.ggpht.com/-xF-iALATvFo/VBvf0_a94xI/AAAAAAAAao8/Zcy85gwk0Lw/UniconProject04-fig16_CO-%25255BConverted%25255D_thumb%25255B6%25255D.jpg?imgmax=800" height="302" style="display: inline;" title="รูปที่ 1" width="640" /></a> <br />
<span style="color: #0080ff;">รูปที่ 1 หน้าตา, การจัดขา และการกำหนดทิศอ้างอิงของโมดูลเข็มทิศ CMPS10</span><br />
<br />
โมดูล CMPS10 มีหน้าตา, การจัดขา และการกำหนดทิศทางหลักจากผู้ผลิตแสดงในรูปที่ 1 โดยตำแหน่งดังกล่าวจะอ้างอิงกับขั้วของแม่เหล็กโลกหรือเป็นทิศเหนือ อย่างไรก็ตาม ผู้ใช้งานสามารถกำหนดทิศอ้างอิงใหม่ได้ โดยไม่จำเป็นต้องเป็นทิศเหนือเสมอไป ด้วยกระบวนการทางซอฟต์แวร์และขั้นตอนทางฮาร์ดแวร์เล็กน้อย <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH3Z-QuW4bjFbDhto1yA671Tl8LnJIVWyKWl3L34RSX5xGSh4VZ_EDcStQavnJEIJerZS6ghMOa6rQpb6ah7S2pGzhH-KEkOQLV9GdTC4R7KWMtuNtQPojA00hGrtrfBLARtwdiMzeNawA/s1600-h/UniconProject04-fig17%25255B5%25255D.jpg"><img alt="รูปที่ 2" src="http://lh3.ggpht.com/-I1X_DANj0Tk/VBvf5rJ9sKI/AAAAAAAAapM/VBNUXVcLkr8/UniconProject04-fig17_thumb%25255B3%25255D.jpg?imgmax=800" height="480" style="display: inline;" title="รูปที่ 2" width="539" /></a> <br />
<span style="color: #0080ff;">รูปที่ 2 แสดงที่มาของค่าที่อ่านได้จากโมดูลเข็มทิศ CMPS10</span><br />
<br />
CMPS10 ใช้ไฟเลี้ยงในช่วง +3.6 ถึง +5V การเชื่อมต่อกับ CMPS10 ทำได้ 3 วิธีคือ โหมดบัส I2C, โหมดอนุกรมหรือ Serial และโหมด PWM ค่าที่ได้เลือกได้ทั้งแบบ Bearing, Pitch และ Roll โดย Bearing เป็นค่าทิศทางรอบตัวในแนวแกนนอน มีค่าระหว่าง 0 ถึง 359.9 องศา ส่วน Pitch เป็นมุมยกมีค่าระหว่าง -85 ถึง 85 องศาเทียบกับแนวระนาบ และ Roll เป็นมุมเอียงมีค่าระหว่าง -85 ถึง 85 องศาเทียบกับแนวระนาบ ดูรูปที่ 2 ประกอบ <br />
<h2>
<span style="color: green;"><br />
</span></h2>
<h2>
<span style="color: green;">การติดต่อในโหมดบัส I2C</span></h2>
ในมินิโปรเจ็กต์นี้เลือกติดต่อกับโมดูล CMPS10 ผ่านทางบัส I2C เนื่องจากช่วยลดจำนวนพอร์ตที่ใช้งานได้ เพราะด้วยการใช้บัส I2C ผู้ใช้งานสามารถต่อพ่วงขาพอร์ต SDA และ SCL ของบอร์ด Unicon เพียง 2 ขากับตัวตรวจจับที่ใช้บัส I2C ได้หลายตัวร่วมบนบัสเดียวกัน นอกจากนั้น จากการทดสอบพบว่า การติดต่อกับโมดูล CMPS10 ในโหมดบัส I2C สะดวกกว่าแบบอนุกรมและแบบ PWM Mode <br />
สำหรับ CMPS10 มีแอดเดรสสำหรับเชื่อมต่อผ่านระบบบัส I2C อยู่ที่ 0x60 มีรีจิสเตอร์เก็บค่าต่างๆ รวม 22 ตัว ดังแสดงในตารางที่ 1<br />
<br />
<a href="http://lh5.ggpht.com/-UYmDyIgIe1A/VBvf6wqeeaI/AAAAAAAAapU/7IBlLXGtUOI/s1600-h/UniconProject04-Table03_CO-%25255BConverted%25255D%25255B6%25255D.jpg"><img alt="ตารางที่ 1" src="http://lh3.ggpht.com/-8ZF-ggawGN0/VBvf9feG6FI/AAAAAAAAapc/qpgggM_XC4o/UniconProject04-Table03_CO-%25255BConverted%25255D_thumb%25255B4%25255D.jpg?imgmax=800" height="500" style="display: inline;" title="ตารางที่ 1" width="640" /></a> <br />
<span style="color: #0080ff;">ตารางที่ 1 รายละเอียดของรีจิสเตอร์ทั้งหมดของโมดูลเข็มทิศ CMPS10</span><br />
<br />
หากส่งข้อมูลคำสั่งเป็น 0x00 จะเป็นการอ่านค่าเวอร์ชันเฟิร์มแวร์ของโมดูล CMPS10<br />
หากส่งข้อมูลคำสั่งเป็น 0x02 จะเป็นการอ่านข้อมูล โดย CMPS10 จะส่งข้อมูลกลับมา 4 ไบต์ ไบต์แรกเป็นไบต์สูงของค่ามุมทิศ (bearing), ไบต์ที่สองเป็นไบต์ต่ำของค่ามุมทิศ, ไบต์ที่สามจะเป็นค่ามุมยก (pitch) และไบต์สุดท้ายจะเป็นค่ามุมเอียง (roll) โดยค่ามุมทิศที่อ่านได้มีค่าระหว่าง 0 ถึง 3599 (16 บิต) จึงต้องหารด้วย 10 เพื่อให้ได้ค่ามุมทิศที่มีค่าระหว่าง 0 ถึง 359.9 องศา<br />
<h2>
<span style="color: green;">การต่อวงจรเพื่อใช้งานกับบอร์ด Unicon</span></h2>
เตรียมอุปกรณ์ทั้งหมดดังรูปที่ 3 ใช้สาย JST3AC-8 จำนวน 2 เส้นต่อระหว่างบอร์ด Unicon และโมดูล CMPS10 ดังรูปที่ 4 โดยปลายสายด้านหัวต่อ IDC ตัวเมียของสาย JST3AC-8 เส้นที่ 1 ต่อกับคอนเน็กเตอร์ของ CMPS10 ที่ขาไฟเลี้ยง (+V), กราวด์ (GND)และ SDA ส่วนเส้นที่ 2 ให้ต่อสายสัญญาณ (สีขาว เส้นกลาง) กับขา SCL ส่วนหัวต่อ IDC ตัวเมียของสายสีแดงและดำที่เหลือให้ปล่อยลอยไว้ ส่วนปลายสายด้านที่เป็นหัวต่อ JST ให้นำไปเสียบจุดต่อพอร์ต SDA และ SCL บนบอร์ด Unicon <br />
<a href="http://lh6.ggpht.com/-VLcnKhaAUkM/VBvgB-cv-pI/AAAAAAAAapk/dx0ZVv1QEDE/s1600-h/UniconProject04-fig18%25255B5%25255D.jpg" target="_blank"><img alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnQXArPG-n_4VNilvipKFO6fwUA8Spq5T0G8phVa_TSOrFU_dPe67LFqXtzF-GNhK9xDE3LIwRYTxxR3XAEZWi1m7C61PmjPkVBv8yiUDTM_mRLtWxsV4kpraVLXnmdXbDN3ZBCaQxKrsW/?imgmax=800" height="480" style="display: inline;" title="" width="529" /></a> <br />
<span style="color: #0080ff;">รูปที่ 3 อุปกรณ์ทั้งหมดที่ต้องใช้ในการใช้งานโมดูลเข็มทิศ CMPS10 กับบอร์ด Unicon</span> <br />
<span style="color: #0080ff;"><br />
</span> <a href="http://lh6.ggpht.com/-S8761MwXKec/VBvgNEAaO9I/AAAAAAAAap0/xzPkmHeIeI8/s1600-h/UniconProject04-fig19_CO-%25255BConverted%25255D%25255B11%25255D.jpg"><img alt="UniconProject04-fig19_CO-[Converted]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ5zAgyDm4dD2AS3c_0FlOlWxl7O-QCqvnzAtX6VHtJT05SQr_4FxQ-G8CbLwGTaU2PwoGV9eC47sxSHQe77Ii9Rq6tUc4XEITBS6GIm1Je1Mivq2gCh73L4YKchibc1H_NPaQyemzS51r/?imgmax=800" height="480" style="display: inline;" title="UniconProject04-fig19_CO-[Converted]" width="456" /></a> <br />
<br />
<span style="color: #0080ff;">รูปที่ 4 วงจรเชื่อมต่อเพื่อใช้งานโมดูลเข็มทิศ CMPS10 กับบอร์ด Unicon</span><br />
<span style="color: #0080ff;"><br />
</span> <span style="color: #0080ff;"><br />
</span> หากต้องการติดตั้งโมดูลเข็มทิศ CMPS10 เข้ากับแท่นหรือฐานยึดใดๆ จะต้องใช้สกรูและนอตพลาสติกในการติดตั้งเพื่อลดผลกระทบจากโลหะที่อาจมีต่อการตรวจจับแม่เหล็กขั้วโลกของตัวตรวจจับภายใน CMPS10 (ในชุดอุปกรณ์ของ CMPS10 มีเตรียมไว้ให้แล้ว - ดูได้จากรูปที่ 3)<br />
<a href="http://lh5.ggpht.com/-STgQ01yc_SU/VBvgSnTHHeI/AAAAAAAAaqE/2kPn_NpIGuk/s1600-h/UniconProject04-Program04%25255B8%25255D.jpg"><img alt="UniconProject04-Program04" border="0" src="http://lh4.ggpht.com/-1SvosRvDt-0/VBvgYN18qAI/AAAAAAAAaqM/Bu2gjHPRQHw/UniconProject04-Program04_thumb%25255B6%25255D.jpg?imgmax=2048" style="border: 0px; display: inline;" title="UniconProject04-Program04" /></a> <br />
<span style="color: #0b5394;">โปรแกรมที่ 1 ไฟล์ Unicon_CMPS10_Button.ino สำหรับอ่านค่าจากโมดูลเข็มทิศ CMPS10 ของบอร์ด Unicon</span><br />
<h2>
<span style="color: green;"><br /></span></h2>
<h2>
<span style="color: green;">เขียนโค้ด</span></h2>
โค้ดตัวอย่างสำหรับอ่านค่าของโมดูลเข็มทิศ CMPS10 แสดงในโปรแกรมที่ 1 จากนั้นนำค่าที่ได้มาแสดงผลที่จอ GLCD-XT ที่ติดตั้งบนบอร์ด Unicon<br />
ฟังก์ชั่นหลักๆ ของโปรแกรมมี 3 ตัวคือ measurement();, display_data(); และ calibration(); โดยฟังก์ชั่นแรกเป็นฟังก์ชั่นติดต่อเพื่ออ่านค่าจาก CMPS10 ผ่านรูปแบบการสื่อสารข้อมูลระบบบัส I2C ค่าที่ได้มี 3 ค่าคือ bearing, pitch และ roll จากนั้นนำค่าทั้งหมดมาแสดงผลที่ GLCD-XT ด้วยฟังก์ชั่น display_data(); <br />
ส่วนฟังก์ชั่น calibrate(); ใช้ปรับเทียบทิศอ้างอิงให้แก่โมดูล CMPS10 โดยทำการเขียนค่า 0xF0 ไปยังรีจิสเตอร์ 22 ของโมดูล CMPS10 เพื่อเริ่มต้นการปรับเทียบ จากนั้นเมื่อกำหนดทิศอ้างอิงเริ่มต้นได้ ให้เขียนข้อมูล 0xF5 ไปยังรีจิส<br />
เตอร์ 22 ของโมดูล CMPS10 โดยในการเขียนแต่ละครั้งจะเกิดขึ้นเมื่อมีการกดสวิตช์ที่ต่อกับขาพอร์ต 30 ในการปรับแต่งต้องทำทั้งสิ้น 4 ครั้งตามทิศหลัก แต่ละทิศจะมีมุมต่างกัน 90 องศา <br />
<br />
<h2>
<span style="color: green;">ทดสอบวัดทิศทาง</span></h2>
หลังจากอัปโหลดโปรแกรมไปยังบอร์ด Unicon ระบบจะทำงานทันที Unicon จะติดต่อกับโมดูล CMPS10 เพื่ออ่านค่าและแสดงผลดังรูปที่ 5 หากไม่มีการกำหนดทิศทางอ้างอิงเป็นอย่างอื่น ตำแหน่ง 0 องศาจะหมายถึง ทิศเหนือ ซึ่งจะอ้างอิงกับขั้วแม่เหล็กโลก โดยทิศอ้างอิงหลักที่กำหนดมาจากโรงงานของโมดูล CMPS10 แสดงในรูปที่ 2 <br />
หากมีการหมุนหรือบิดตัวโมดูลไปมา ค่าของมุมยก (pitch) และมุมเอียง (roll) จะเปลี่ยนแปลง เป็นการแสดงให้เห็นว่า<br />
โมดูล CMPS10 สามารถวัดความเอียงได้ด้วย <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT62asSkLiVhPrmv-SYtLETb-dejxvYSL-KENEg2KHdthXqF7fOA_nrzVpFmIQ_-R2NhHfuewcyCRqS0VhvHICigeGRn0lQkpGmF-EQeR05WXL9_4Oxp4I-Khfwwylri8GAbbgxwuwyW-k/s1600-h/UniconProject04-fig20-%25255BConverted%25255D%25255B5%25255D.jpg"><img alt="UniconProject04-fig20-[Converted]" src="http://lh6.ggpht.com/-PVvzTFe0InQ/VBvghJVK-TI/AAAAAAAAaqc/fR_HTY0n1as/UniconProject04-fig20-%25255BConverted%25255D_thumb%25255B3%25255D.jpg?imgmax=800" height="444" style="display: inline;" title="UniconProject04-fig20-[Converted]" width="640" /></a><br />
<span style="color: #0080ff;">รูปที่ 5 ผลการทำงานของโมดูล CMPS10 ที่แสดงค่ามุมของทิศ (Bearing), มุมยก (Pitch) และมุมเอียง (Roll) ผ่านทางบอร์ด Unicon</span> <br />
<br />
<br />
<h2>
<span style="color: green;">การปรับแต่งทิศอ้างอิง</span></h2>
อย่างไรก็ตาม ในการใช้งานจริง ควรมีการปรับแต่งทิศอ้างอิงให้ถูกต้องเพื่อขจัดหรือลดผลจากสนามแม่เหล็กที่อาจค่างอยู่ภายในตัวตรวจจับสนามแม่เหล็กของโมดูล CMPS10 มีขั้นตอนโดยสรุปดังนี้ <br />
(1) เริ่มต้นด้วยการกดสวิตช์ที่ต่อกับพอร์ต 30 เพื่อเข้าสู่โหมดปรับทิศอ้างอิง จอแสดงผล GLCD-XT แสดงข้อความ Calibrate Start ตามด้วยข้อความ Turn module to North. ทำการหมุนตัวโมดูล CMPS10 ไปยังทิศที่กำหนดให้เป็นทิศเหนือ (อาจเป็นทิศเหนือจริงๆ หรือทิศใดๆ ที่ต้องการอ้างอิงก็ได้) แล้วกดสวิตช์ที่ต่อกับพอร์ต 30 เพื่อกำหนดทิศอ้างอิงครั้งที่ 1 จะเห็น LED ที่โมดูล CMPS10 ติดสว่าง<br />
(2) ที่จอแสดงผล GLCD-XT แสดงข้อความ Turn module to East. หมุนตัวโมดูล CMPS10 ไปทางขวาในทิศทางตามเข็มนาฬิกา 90 องศา แล้วกดสวิตช์ครั้งที่ 2 อันการกำหนดทิศตะวันออก <br />
(3) จอแสดงผล GLCD-XT แสดงข้อความ Turn module to South. หมุนตัวโมดูล CMPS10 ไปทางขวาในทิศทางตามเข็มนาฬิกาไปอีก 90 องศา แล้วกดสวิตช์ครั้งที่ 3 เพื่อกำหนดเป็นทิศใต้ <br />
(4) จอแสดงผล GLCD-XT แสดงข้อความ Turn module to West. จากนั้นหมุนโมดูลไปทางขวาในทิศทางตามเข็มนาฬิกาอีก 90 องศา แล้วกดสวิตช์ครั้งที่ 4 เป็นครั้งสุดท้าย LED ของโมดูล CMPS10 จะดับลง เป็นอันสิ้นสุดการปรับแต่งทิศอ้างอิงของโมดูล CMPS10 <br />
ในรูปที่ 6 แสดงขั้นตอนการปรับแต่งทิศอ้างอิงของโมดูล CMPS10 <br />
<br />
<a href="http://lh5.ggpht.com/-eE2haxR-KjU/VBvgreV410I/AAAAAAAAaqk/dV25ewUYrM0/s1600-h/UniconProject04-fig21_CO-%25255BConverted%25255D%25255B5%25255D.jpg"><img alt="UniconProject04-fig21_CO-[Converted]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFNONXxnMxj5clzw6zorZCuCYyhQ5jem4Fb5OFNhSw616U2hMzJhIxUvGeO4FXz2fijzTWBlmBFAw7UdC3cWyMJa86ErF9YGiTRgAupu9SwlDGMyzIY-zKLtLev5NjPi087MYRAHWgBzO/?imgmax=800" height="480" style="display: inline;" title="UniconProject04-fig21_CO-[Converted]" width="529" /></a> <br />
<span style="color: #0080ff;">รูปที่ 6 การปรับแต่งทิศอ้างอิงของโมดูล CMPS10</span> <br />
<h2>
</h2>
<div>
<br /></div>
<h2>
<span style="color: green;">แก้โค้ดลดอุปกรณ์</span></h2>
จากโปรแกรมที่ 1 เป็นตัวอย่างที่นำไปใช้กับบอร์ด Arduino ได้ทุกแบบ โดยอาจแก้โค้ดเพื่อเปลี่ยนอุปกรณ์แสดงผลเป็น<br />
โมดูล LCD 16 ตัวอักษร 2 บรรทัด หรือ LED รวมถึงแสดงผ่าน Serial Monitor ของ Arduino IDE สำหรับผู้ใช้งานบอร์ด Unicon และใช้การแสดงผลผ่านจอ GLCD-XT สามารถใช้สวิตช์ OK ในการเข้าสู่โหมดปรับเทียบทิศอ้างอิงแทนการใช้สวิตช์ภายนอกได้ โดยดูตัวอย่างโค้ดในโปรแกรมที่ 2 <br />
<img alt="UniconProject04-Program05" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwRbrt6gCpB09PQy9DIWN4NW3QXSpUjV1Dp5H9txgigQ2NbqBxpVTAQZxeDe55sJqu3UYmsPTBho-b5XfN3wcBPzq_vuOhxzKO-2nlQ3dHrEEH4ZuXLaLGTTcuddz0uFl8V6Q5pKCTt1ep/?imgmax=2048" style="border: 0px; display: inline;" title="UniconProject04-Program05" /><br />
<span style="color: #0080ff;">โปรแกรมที่ 2 ไฟล์ Unicon_CMPS10_SW_OK.ino สำหรับอ่านค่าจากโมดูลเข็มทิศ CMPS10 ของบอร์ด Unicon และใช้สวิตช์ OK บนบอร์ดแสดงผล GLCD-XT ในการปรับแต่งทิศอ้างอิง</span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-84753170236469806502014-09-19T12:26:00.001+07:002014-09-19T13:12:23.182+07:00BMP085 with UNICON<h1>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJiEaUpezjbuCsyhJVpQoW8j55j15NAt-ZnSYGU8S3-WuPSID6yI8V1lRlzbX0RoOFqyND8hY4nCIraN7clBf3rpgfQcMGf4DxSwndesAEUVIEt1bLvcShC9Xj75oVedAFmu6sfK5xZFBq/s1600-h/UniconProject03-fig13%25255B6%25255D.jpg"><img alt="UniconProject03-fig13" src="http://lh5.ggpht.com/-YM5dw-BYW3Q/VBu99nAnEoI/AAAAAAAAamc/FwId-qI-zUU/UniconProject03-fig13_thumb%25255B4%25255D.jpg?imgmax=800" height="320" style="display: inline;" title="UniconProject03-fig13" width="640" /></a> </h1>
<h1>
ตรวจสอบสภาพอากาศกับ Unicon และ BMP085 </h1>
<h5 style="background-color: white; color: #666666; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;">
<span style="color: #8000ff;"><a href="http://www.tpemagazine.com/2009/home.html" style="color: #32aaff;" target="_blank"><อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40></a></span></h5>
<h2>
<span style="color: green;">เกี่ยวกับโมดูลวัดความกดอากาศ BMP085</span></h2>
BMP085 เป็นตัวตรวจจับปริมาณของสภาพแวดล้อมที่พัฒนาขึ้นจากเทคโนโลยีเปียโซ-รีซิสตีฟ (Piezo-resistive technology) เป็นผลงานของ BOSCH หนึ่งในผู้ผลิตตัวตรวจจับคุณภาพสูงในวงการอุตสาหกรรมระดับโลก ใช้ไฟเลี้ยงในย่าน +1.8 ถึง +3.6V เชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านทางบัส I2C มีคุณสมบัติที่น่าสนใจดังนี้ <br /><span style="color: #8000ff;"> • วัดความกดอากาศได้ในช่วง 300 ถึง 1100 hPa (hPa คือหน่วย hecto Pascal โดยที่ hecto หมายถึง 100) <br /> • มีความผิดพลาดในการวัดต่ำสุด +2.5hPa <br /> • ไฟเลี้ยงย่าน 1.8 ถึง 3.6V กินกระแสไฟฟ้าเฉลี่ย 3mA ที่อัตราการเปลี่ยนแปลงของข้อมูล 1Hz <br /> • ติดต่อกับไมโครคอนโทรลเลอร์ผ่านบัส I2C <br /> • ให้ค่าของอุณหภูมิในพื้นที่ที่ตรวจวัดสัมพันธ์กับค่าความกดอากาศในช่วงเวลาและสภาพแวดล้อมเดียวกัน ทำให้นำผลการตรวจจับไปคำนวณเพื่อหาค่าตำแหน่งความสูงจากระดับน้ำทะเล (altitude) ของสถานที่ที่ติดตั้งตัวตรวจจับนี้ได้ <br /> • มีจุดต่อ 6 จุด มีระยะห่าง 0.1 นิ้ว หรือ 2.54 มม. <br /> • ขนาด 0.65 x 0.65 นิ้วหรือ 16.5 x 16.5 มม</span><br /> ในรูปที่ 1 แสดงหน้าตาของโมดูล BMP085 และบอร์ดเชื่อมต่อ ADX-BMP085 ที่นำมาใช้เชื่อมต่อกับบอร์ด Unicon ในมินิโปรเจ็กต์ที่ 3 นี้ สำหรับบอร์ด ADX-BMP085 ได้เคยแนะนำให้สร้างและตีพิมพ์ใน TPE ฉบับที่ 23 <a href="http://issuu.com/innovativeexperiment/docs/tpe_bmp085">บทความการใช้งานแผงวงจรเชื่อมต่อ BMP085 ตัวตรวจจับความกดดันอากาศ</a> <br />
<a href="http://lh4.ggpht.com/-rnCKuYQ1K5M/VBu9_6ddArI/AAAAAAAAamk/gBtKKiQx1es/s1600-h/UniconProject03-fig12%25255B5%25255D.jpg"><img alt="รูปที่ 1" src="http://lh5.ggpht.com/-Z5dn7l9DU3w/VBu-BgwLJbI/AAAAAAAAams/KAFFg9oDd4E/UniconProject03-fig12_thumb%25255B3%25255D.jpg?imgmax=800" height="369" style="display: inline;" title="รูปที่ 1" width="640" /></a> <br /><span style="color: #0080ff;">รูปที่ 1 โมดูล BMP085 และบอร์ดเชื่อมต่อ ADX-BMP085 พร้อมสายสัญญาณ JST3AA-8 สำหรับเชื่อมต่อกับบอร์ด Unicon</span> <br />
<h2>
<span style="color: green;">การต่อวงจรเพื่อใช้งานกับบอร์ด Unicon</span></h2>
การเชื่อมต่อกับบอร์ด Unicon ของ BMP085 ทำได้ไม่ยาก เพียงต่อขา SDA ของ BMP085 เข้าที่ขา 2 (SDA) และขา SCL เข้าที่ขา 3 (SCL) ของบอร์ด Unicon โดยติดตั้งโมดูล BMP085 ลงบนบอร์ด ADX-BMP085 จะทำให้การเชื่อมต่อง่ายขึ้นมาก อีกทั้งยังช่วยให้ใช้งาน BMP085 กับบอร์ด Unicon ที่ใช้ไฟเลี้ยง +5V ได้ ดังรูปที่ 2 เนื่องจากบอร์ด ADX-BMP085 มีวงจรควบคุมไฟเลี้ยงคงที่ +3.3V เมื่อได้ไฟเลี้ยง +5V จากบอร์ด Unicon ก็จะควบคุมให้เหลือคงที่ที่ +3.3V สำหรับเลี้ยงโมดูล BMP085 ได้ <br />
<a href="http://lh4.ggpht.com/-ieeiv6TxIOM/VBu-EWR_8NI/AAAAAAAAam0/44_bdtFCaMU/s1600-h/UniconProject03-fig13%25255B11%25255D.jpg"><img alt="รูปที่ 2" src="http://lh5.ggpht.com/-Ez-ddrvTPuY/VBu-GBp5fdI/AAAAAAAAam8/O877pUVfjSs/UniconProject03-fig13_thumb%25255B7%25255D.jpg?imgmax=800" height="320" style="display: inline;" title="รูปที่ 2" width="640" /></a> <br /><span style="color: #0080ff;">รูปที่ 2 การเชื่อมต่อเพื่อทดลองใช้งานโมดูล BMP085 กับบอร์ด Unicon</span> <br />
สำหรับวงจรของบอร์ด ADX-BMP085 แสดงในรูปที่ 3 ท่านที่มีโมดูล BMP085 อยู่แล้ว ก็สามารถต่อวงจรขึ้นมาเองได้เลย <br />
<a href="http://lh5.ggpht.com/-FrHjwZgKiuA/VBu-HwReReI/AAAAAAAAanE/EA1h2jHzPhA/s1600-h/UniconProject03-fig14_CO-%25255BConverted%25255D%25255B5%25255D.jpg"><img alt="รูปที่ 3" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2Akn5nuiVn3oAuEsIUpJVdgPJR_kG8sxisFhuf_ack8ETNxl7WkpVxWjgpihj-B6FueRw_uDnJLdnPQVFglt7vEqXBf0EgQb1yjkqh-5qDwZYkLHlanBmBbCH0cnKqdJfKdLGKLPbomhR/?imgmax=800" height="295" style="display: inline;" title="รูปที่ 3" width="640" /></a><br /><span style="color: #0080ff;">รูปที่ 3 วงจรของบอร์ดเชื่อมต่อ ADX-BMP085</span> <br />
<h2>
</h2>
<h2>
<span style="color: green;">เรื่องที่ควรทราบเกี่ยวกับรีจิสเตอร์ของ BMP085</span></h2>
โมดูลวัดความกดอากาศ BMP085 มีรีจิสเตอร์เพื่อใช้ในการปรับแต่งตัวตรวจจับให้สามารถวัดค่าได้แม่นยำอยู่หลายตัวจะต้องนำค่ามาคำนวณร่วมกันเพื่ออ่านค่าอุณหภูมิและความกดอากาศ ดังมีข้อมูลโดยสรุปตามตารางที่ 1 <br />
<a href="http://lh5.ggpht.com/-FYkUsPJcIuM/VBu-MRzM_SI/AAAAAAAAanU/KTx3YJPB9W4/s1600-h/UniconProject03-Table01%25255B6%25255D.jpg"><img alt="ตารางที่ 1" src="http://lh4.ggpht.com/-WSr4qf9cqlE/VBu-P5FFTxI/AAAAAAAAanc/PQ20EW1opqM/UniconProject03-Table01_thumb%25255B4%25255D.jpg?imgmax=800" height="541" style="display: inline;" title="ตารางที่ 1" width="400" /></a><br /><span style="color: #0080ff;">ตารางที่ 1 แอดเดรสของรีจิสเตอร์ค่าสัมประสิทธิ์ที่ใช้ในการปรับแต่งสำหรับโมดูล BMP085</span> <br />
สำหรับการอ่านค่าความกดอากาศจะอ่านค่าแบบ Oversampling (osrs) ได้ จึงเลือกอ่านค่าจากรีจิสเตอร์ควบคุมที่เกี่ยวข้องกับการอ่านค่าแบบ Oversampling ที่ต้องการได้ โดยเลือกได้ตั้งแต่ osrs0 ถึง osrs3 ดังแสดงในตารางที่ 2 โดยจะต้องอ่านค่าที่ได้จาก Oversampling 4 ระดับแล้วนำมาคำนวณเพื่อให้ค่าความกดอากาศออกมา <br />
<a href="http://lh4.ggpht.com/-kyRLC93DwFo/VBu-RLl8nWI/AAAAAAAAank/Htr1ScnMq1w/s1600-h/UniconProject03-Table02%25255B6%25255D.jpg"><img alt="ตารางที่ 2" src="http://lh5.ggpht.com/-lNj5qe1UcVw/VBu-ThV3kSI/AAAAAAAAans/blvcnNE4-qc/UniconProject03-Table02_thumb%25255B4%25255D.jpg?imgmax=800" height="326" style="display: inline;" title="ตารางที่ 2" width="400" /></a> <br /><span style="color: #0080ff;">ตารางที่ 2 แสดงค่าของรีจิสเตอร์ควบคุมการอ่านค่าจากโมดูล BMP085 ค่าระยะเวลาที่ปรากฏใหน่วยเป็นวินาที</span> <br />
สำหรับการใช้งานโมดูล BMP085 จะต้องมีการปรับแต่งตัวตรวจจับก่อนทุกครั้ง เพื่อให้ค่าที่วัดได้มีความแม่นยำ <br />
<h2>
<span style="color: green;">เกี่ยวกับโปรแกรมควบคุม</span></h2>
โปรแกรมควบคุมเพื่ออ่านค่าจากโมดูล BMP085 ของบอร์ด Unicon แสดงในโปรแกรมที่ 1 จะแล้วทำการอ่านค่าจากเซ็นเซอร์ BMP085 โดยจะนำค่าอุณหภูมิและความกดอากาศที่วัดได้มาแสดงบนจอ GLCD ของบอร์ด Unicon ตอนต้นของโปรแกรมในส่วนของ setup() จะต้องเรียกฟังก์ชั่น bmp085Calibration(); ก่อนเพื่อทำการปรับแต่งตัวตรวจจับให้พร้อมใช้งาน <br /> ในส่วนของการคำนวณค่าความกดดอากาศนั้นจะเป็นหน้าที่ของฟังก์ชั่น bmp085GetPressure() ที่นำค่าของ<br />รีจิสเตอร์ทั้งหมดของ BMP085 ที่อ่านค่าจากฟังก์ชั่น bmp085ReadUP(); มาทำการคำนวณ จนกระทั่งได้ค่าความกดอากาศมาเก็บไว้ในตัวแปร P เพื่อนำไปแสดงผลต่อไป<br />
<img alt="โปรแกรมที่ 1-1" border="0" src="http://lh4.ggpht.com/-QIDX0ryWbFM/VBu-U6E9mOI/AAAAAAAAan0/7TxYlCTX-Y0/UniconProject03-Program0301%25255B6%25255D.jpg?imgmax=800" height="879" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="โปรแกรมที่ 1-1" width="405" /> <br /><img alt="โปรแกรมที่ 1-2" border="0" src="http://lh4.ggpht.com/-tRWJ5goxsMo/VBu-W8wp7QI/AAAAAAAAan8/HsWO3T6wSsY/UniconProject03-Program0302%25255B5%25255D.jpg?imgmax=800" height="800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="โปรแกรมที่ 1-2" width="405" /> <br /><br /><img alt="โปรแกรมที่ 1-3" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7QHoy4r4pa3AzKeqryUrFdd9juCKjRert9Zf7x_MpL6To-natdvaW194uQhPD_gvF5gBiQhgtN0ddroHpIfpgVUVa1dGLndW70HeKAOG0RmdL_8YvUh7ULiqCspZirIdtBUvLewj1yhdL/?imgmax=800" height="822" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="โปรแกรมที่ 1-3" width="405" /> <br />
<span style="color: #0080ff;">โปรแกรมที่ 1 ไฟล์ Unicon_BMP085.ino สำหรับอ่านค่าจากโมดูล BMP085 ของบอร์ด Unicon</span><br />
<h2>
<span style="color: green;">ทดสอบวัดความกดอากาศ</span></h2>
สำหรับการทดสอบ BMP085 จะให้ได้ผลแบบชัดเจน ต้องวัดเปรียบเทียบระหว่างพื้นที่ที่มีความกดอากาศต่างกันมากๆ เช่น บนอาคารสูงกับห้องใต้ดิน จึงอาจทดสอบให้เห็นได้ไม่ง่ายนัก เนื่องจากโดยปกติพื้นที่ของประเทศไทยจะอยู่สูงจากระดับน้ำทะเลประมาณ 1.44 เมตร และภูมิประเทศเป็นที่ราบเสียส่วนใหญ่ ส่งผลให้ความกดอากาศปกติจึงไม่ต่างกันมากนักในแต่ละพื้นที่ จากการทดสอบในพื้นที่กรุงเทพมหานครโดยใช้โมดูล BMP085 วัดได้ 100,676 Pa หรือ 100.676 kPa (กิโลปาสคาล) เนื่องจากอยู่สูงกว่าระกับน้ำทะเลประมาณ 1 เมตร ค่าความกดอากาศจะลดลงเมื่ออยู่สูงจากระดับน้ำทะเล โดยที่ระดับน้ำทะเลจะมีค่าความกดอากาศ 1 atm หรือหนึ่งหน่วยบรรยากาศ หรือเท่ากับ 101.325 kPa หรือ 760 mmHg (มิลลิเมตรปรอท) <br />
<a href="http://lh4.ggpht.com/-sgUiaKDM0l4/VBu-Y4IVqzI/AAAAAAAAaoM/e_cPvsbzO7Y/s1600-h/UniconProject03-fig15-%25255BConverted%25255D%25255B7%25255D.jpg"><img alt="รูปที่ 4" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitZN-8dxoVjd1YM3Ge5_8cMO_otC6kNE1H8oGnc-hse30NoSrZvO0B_4Mf25AykXzyFMguLo63KpU2cW-WG39_TWiFmsL2wiXEGfjULAH6YjCQpdobY1bmxyg357GoIAsw8ARSc0uI-KRS/?imgmax=800" height="446" style="display: inline;" title="รูปที่ 4" width="640" /></a> <br /><span style="color: #0080ff;">รูปที่ 4 แสดงผลการทำงานของการวัดอุณหภูมิและค่าความกดอากาศด้วยโมดูล BMP085 และบอร์ด Unicon</span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-34307965914499165072014-09-19T11:19:00.001+07:002014-09-19T11:32:20.933+07:00HIH4030 Humidity Measurement with UNICON<h1>
วัดความชื้นสัมพัทธ์ในอากาศได้ง่ายๆ กับ HIH4030</h1>
<div>
<h5 style="background-color: white; color: #666666; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;">
<span style="color: #8000ff;"><a href="http://www.tpemagazine.com/2009/home.html" style="color: #32aaff;" target="_blank"><อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40></a></span></h5>
</div>
<a href="http://lh6.ggpht.com/-NdRzHeBFPy4/VBuuUcSFw2I/AAAAAAAAak8/XkQMdaUxYUs/s1600-h/UniconProject02-fig10%25255B6%25255D.jpg" target="_blank"><img alt="02" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6suqX32C1Fryx_BfFtEo5IQ4TXDQJqrD-CC9Pbc_RK0AkFMgXgWoXGMLxH0r2ecrtKWst_YblZHXfQataP2bauvw19Hr6FlKdDgG-sEK4XAX5rxLn4ZZP61GIf_bYgJVzm_NtxBew-HgP/?imgmax=800" height="393" style="display: inline;" title="02" width="640" /></a> <br />
<h2>
<span style="color: green;">เกี่ยวกับ HIH4030 ตัวตรวจวัดความชื้นสัมพัทธ์</span></h2>
<div align="left">
HIH4030 เป็นตัวตรวจจับและวัดความชื้นสัมพัทธ์ในอากาศที่ให้ผลการทำงานเป็นแรงดันไฟตรงที่สัมพันธ์กับค่าความชื้นสัมพัทธ์ HIH4030 ผลิตโดย Honeywell ผู้ผลิตอุปกรณ์ตรวจจับระดับโลกที่มีใช้งานในอุตสาหกรรมอิเล็กทรอนิกส์ทั่วโลก มีหน้าตาแสดงในรูปที่ 1.1 (ซ้าย) เนื่องจาก HIH4030 มีตัวถังแบบ SMD หรือแบบติดตั้งบนผิวหน้าของแผ่นวงจรพิมพ์ ซึ่งอาจใช้งานไม่สะดวกสำหรับนักทดลอง ทาง <a href="https://www.sparkfun.com/" target="_blank">Sparkfun</a> ผู้ผลิตและจำหน่ายอุปกรณ์อิเล็กทรอนิกส์สำหรับนักทดลองรายใหญ่จากสหรัฐอเมริกาจึงได้บัดกรีติดตั้ง HIH4030 ลงบนแผ่นวงจรพิมพ์ และต่อสายออกมาให้ใช้งานได้สะดวกขึ้นเป็นโมดูล HIH4030 ดังรูปที่ 1.2 </div>
<table border="0" cellpadding="0" cellspacing="0" style="width: 640px;"> <tbody>
<tr> <td valign="top" width="321"><a href="http://lh3.ggpht.com/-NtOYuRx5FA4/VBuuasYlXwI/AAAAAAAAalM/0Xpg88s1zDY/s1600-h/UniconProject02-fig0901%25255B15%25255D.png" target="_blank"><img alt="รูปที่ 1.1" src="http://lh4.ggpht.com/-iweOm4VORzY/VBuujoN2vhI/AAAAAAAAalU/2vPT--Ho6hg/UniconProject02-fig0901_thumb%25255B13%25255D.png?imgmax=800" height="355" style="display: inline;" title="รูปที่ 1.1" width="305" /></a> </td> <td valign="top" width="319"><a href="http://lh4.ggpht.com/-iA-Ljxk__0Y/VBuuozYVeYI/AAAAAAAAalc/9TcETYhhVao/s1600-h/UniconProject02-fig0902%25255B5%25255D.jpg" target="_blank"><img alt="รูปที่ 1.2" src="http://lh4.ggpht.com/-54TarMmaCUw/VBuup5u5soI/AAAAAAAAalk/LLbbPIVXFns/UniconProject02-fig0902_thumb%25255B3%25255D.jpg?imgmax=800" height="139" style="display: inline;" title="รูปที่ 1.2" width="320" /></a><br />
<br />
<span style="color: #0080ff;">รูปที่ 1 หน้าตาของ HIH4030 ทั้งแบบเฉพาะตัวตรวจจับและโมดูลที่มีการต่อสายพร้อมใช้งาน</span></td></tr>
</tbody></table>
<h2>
</h2>
<h2>
<span style="color: green;">คุณสมบัติเด่นของโมดูล HIH4030</span></h2>
<div align="left">
<span style="color: #8000ff;"><span style="color: #804000;"> • เป็นโมดูลวัดความชื้นสัมพัทธ์ (%RH) ที่ให้ผลการทำงานเป็นแรงดันไฟตรงที่แปรผันตรงกับค่าความชื้นสัมพัทธ์ในแบบใกล้เคียงเชิงเส้นมาก <br /> • ย่านวัดความชื้นสัมพัทธ์ 0 ถึง 100%RH เทียบกับแรงดันเอาต์พุตประมาณ 0.958Vถึง 4.065V ที่ไฟเลี้ยง +5V<br /> • มีความแม่นยำในการวัดสูง มีความผิดพลาด ±3.5%RH ที่ไฟเลี้ยง +5V และอุณหภูมิห้อง 25oC<br /> • ใช้ไฟเลี้ยง 4 ถึง 5.8V ต้องการกระแสไฟฟ้าเพียง 200µA <br /> • มีขาต่อใช้งาน 3 ขาคือ กราวด์, สัญญาณเอาต์พุต และไฟเลี้ยง<br /> • มีความเที่ยงตรงสูง และมีความไวในการทำงานสูง<br /> • ขนาด 0.75 x 0.30 นิ้ว (19.05 x 7.62 มม.)<br /> • ระยะห่างของขาต่อใช้งาน 0.1 มิล (หรือประมาณ 2.54 ซม.)</span></span></div>
<span style="color: #8000ff;"><span style="color: #804000;"></span> </span><br />
<div align="left">
<span style="color: #8000ff;"><br /></span></div>
เอาต์พุตที่ได้จาก HIH4030 อยู่ในรูปของแรงดันไฟตรงที่สัมพันธ์กับค่าความชื้นสัมพัทธ์ในอากาศ คำนวณได้จากความสัมพันธ์ดังนี้ <br />
<div align="left">
<span style="font-size: medium;"> <em><span style="color: #ff8040;">%RH = (Voltage - 0.958) / 0.0307</span></em></span></div>
<h2>
<span style="color: green;">การต่อวงจรเพื่อใช้งานกับบอร์ด Unicon</span></h2>
<div align="left">
ด้วยการให้ผลการทำงานเป็นแรงดันไฟตรงของ HIH4030 ทำให้ช่วยลดความซับซ้อนในการเขียนโปรแกรมเพื่ออ่านค่าความชื้นสัมพัทธ์ เพียงต่อเข้ากับอินพุตของโมดูลแปลงสัญญาณอะนาลอกเป็นดิจิตอล แล้วอ่านค่ามาคำนวณ ก็จะได้ค่าความชื้นสัมพัทธ์ออกมา ในรูปที่ 2 แสดงการต่อโมดูล HIH4030 เข้ากับบอร์ด Unicon โดยใช้สายที่ทาง INEX เตรียมมาให้พร้อมกับโมดูล HIH4030 (หากซื้อจาก Sparkfun ต้องปรับแต่งสายต่อให้ถูกต้อง) ต่อเข้าที่จุดต่อพอร์ตอินพุต<br />อะนาลอก A0 </div>
<div align="left">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn445ujekFRt7Hjrh8D9PcypmqrqPV69y4L1c32v_AEbsEO4lM3v93J1SEvuul_iMPdipInjoNARfKyEu4w7NMJd5d7pF7lDm7mrUuRsZZLGvOV7dxGXJ1OT7Vvoc5lKAAnFNGpgyCVNCa/s1600-h/UniconProject02-fig10%25255B7%25255D.jpg" target="_blank"><img alt="รูปที่ 2" src="http://lh5.ggpht.com/-50h8t_-X97U/VBuuWYQwN-I/AAAAAAAAal0/B3GWtZwgIHs/UniconProject02-fig10_thumb%25255B5%25255D.jpg?imgmax=800" height="393" style="display: inline;" title="รูปที่ 2" width="640" /></a><br /><span style="color: #0080ff;">รูปที่ 2 วงจรเชื่อมต่อเพื่อใช้งานโมดูลวัดความชื้น HIH4030 กับบอร์ด Unicon</span></div>
<h2>
<span style="color: green;">เขียนโค้ด</span></h2>
โค้ดตัวอย่างสำหรับอ่านค่าของโมดูล HIH4030 แสดงในโปรแกรมที่ 1 อันเป็นการอ่านค่าจากอินพุตอะนาลอก 0 จากนั้นนำค่ามาคำนวณให้ได้เป็นค่าความชื้นสัมพัทธ์ในหน่วย %RH เพื่อนำไปแสดงผลที่จอ GLCD-XT ที่ติดตั้งบนบอร์ด Unicon <br />
<table border="2" cellpadding="0" cellspacing="0" style="width: 640px;"> <tbody>
<tr> <td valign="top" width="640"><pre>#include <<span style="color: #cc6600;">unicon</span>.h>
<span style="color: #cc6600;">float</span> volt;
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>(){
<span style="color: #cc6600;"> glcdClear</span>();
}
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>loop</b></span>(){
volt=<span style="color: #cc6600;">analog</span>(2)/204.6;
<span style="color: #cc6600;">glcd</span>(0,0,<span style="color: #006699;">"%f "</span>,volt);
<span style="color: #cc6600;">glcd</span>(0,0,<span style="color: #006699;">"%f %RH "</span>,(volt-0.958)/0.0307);
<span style="color: #cc6600;">sleep</span>(50);
}</pre>
</td></tr>
</tbody></table>
<span style="color: #0080ff;">โปรแกรมที่ 1 ไฟล์ Unicon_HIH4030.ino สำหรับอ่านค่าจากโมดูล HIH4030 ของบอร์ด Unicon</span><br />
<br />โดยในโค้ดจะมีการแปลงค่าอะนาลอกที่อ่านได้ให้เป็นหน่วยโวลต์ก่อน เพราะเดิมทีคำสั่งอ่านค่าอะนาลอกของบอร์ด Unicon จะให้ค่าอยู่ในระหว่าง 0 ถึง 1023 จึงต้องแปลงให้เป็นแรงดันไฟฟ้า 0 ถึง +5V ก่อน จึงต้องหารด้วย 204.6 แล้วนำไปคำนวณในสูตรเพื่อหาค่าความชื้นสัมพัทธ์ต่อไป เมื่อได้ค่ามาแล้วจะแสดงค่าแรงดันที่คำนวณได้ในบรรทัดแรก และแสดงค่าความชื้นสัมพัทธ์ที่คำนวณได้ในบรรทัดที่สองบนจอแสดงผล GLCD-XT <br />
<br /><h2>
<span style="color: green;">ทดสอบวัดความชื้นสัมพัทธ์</span></h2>
<br /> <em><span style="color: #ff0080;"> ต้องขอบอกก่อนว่า โมดูล HIH4030 ใช้วัดความชื้นสัมพัทธ์ในอากาศเท่านั้น เอาไปวัดในดินหรือในน้ำไม่ได้</span></em> ผลการวัดแสดงตามรูปที่ 3 อาจลองทดสอบกับห้องที่มีอุณหภูมิต่างกัน หรือวัดในภาวะที่เปิดและปิดเครื่องปรับอากาศ ก็จะเห็นการเปลี่ยนแปลงของความชื้นสัมพัทธ์อย่างชัดเจน <br />
<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwVomoFnT7p53fqVGBnc9P9DNP8fRU-kTrQ0OOWEQdeUxzE1PdQJh9M410GoLCp7BuatnYC51Z4lJxRURNlikVlpdD6vXNKLg2aP1Lj3_D1C1lCsRMS_k7TJGoIcBcNE3JmBO8yBnaSZWG/s1600-h/UniconProject02-fig11%25255B6%25255D.jpg"><img alt="รูปที่ 3" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI6gjcCwciY67oKXv-rLNJMTjGFhW7-Y8-syH40aMQVYCIfpYs-jc74rjg_6mD2X8FN39ygP2c0rhtgukoRztvnkjnmTQovmES1E2ThjkBzLEK7Ou8alhRAtWTRPrQF8ZIz2jlJa1dNhgk/?imgmax=800" height="444" style="display: inline;" title="รูปที่ 3" width="640" /></a><br /><span style="color: #0080ff;">รูปที่ 3 แสดงผลการทำงานของการวัดความชื้นสัมพัทธ์ด้วยโมดูล HIH4030 โดยมีการแสดงทั้งค่าแรงดันที่ได้จากตัวตรวจจับและค่าความชื้นสัมพัทธ์ที่คำนวณได้จากค่าที่มาจากตัวตรวจจับ</span><br />
Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-26051317286595117362014-09-18T17:26:00.001+07:002014-09-18T17:31:30.093+07:00ตรวจจับแรงกดอย่างง่ายกับ Force sensor<h2> </h2> <h5><font color="#8000ff"><a href="http://www.tpemagazine.com/2009/home.html" target="_blank"><อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40></a></font></h5> <h2><a href="http://lh4.ggpht.com/-1Exc-odMwWI/VBqp9MdR03I/AAAAAAAAakU/K6yXR08cud4/s1600-h/UniconProject01-fig05%25255B10%25255D.jpg"><img title="UniconProject01-fig05" style="display: inline" alt="UniconProject01-fig05" src="http://lh5.ggpht.com/-h4PHFHSJmjU/VBqqHziDV8I/AAAAAAAAakg/ZVZuKghKlfE/UniconProject01-fig05_thumb%25255B8%25255D.jpg?imgmax=800" width="640" height="194"></a> </h2> <h2> </h2> <h2>ลักษณะการทำงานของตัวตรวจจับแรงกด</h2> <p><a href="http://lh6.ggpht.com/-HlfQCSb-NIw/VBqqcawGKdI/AAAAAAAAahs/2hHx6wIn_z4/s1600-h/UniconProject01-fig01_CO%25255B22%25255D.jpg" target="_blank"><img title="01" style="margin: 2px 0px; display: inline" alt="01" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMc3Cp5w-Wbv-dzv1Ask-0qVG9SBrPRR2pXkgpmG3v6B4WDZW_EG-sYncAbBWg3hpEfOM6iHyYVEB8BMLEyAYFEELdg1fPilwDYmqBMDUcbpuTZKkVoLR8BeA7cqSlO0_pd3KaXTEs4fYN/?imgmax=800" width="292" height="480"></a> </p> <p><font color="#800040" size="2"><em>รูปที่ 1 ลักษณะโครงสร้างของตัวตรวจจับแรงกด FSR</em></font></p> <p align="left"> ตัวตรวจจับแรงกดหรือ force sensor มีหลายประเภท สำหรับงานในระดับนักเล่นนักทดลองที่นำมาเสนอนี้เป็นตัวตรวจจับแรงกดแบบค่าความต้านทานหรือ Force Sensing Resistor (FSR) ที่ใช้เทคโนโลยีฟิล์มโพลีเมอร์แบบหนา (Polymer Thick Film) โดยแรงดันไฟฟ้าที่ตกคร่อมตัวตรวจจับจะลดลง เมื่อมีแรงกดมากระทำบนแผ่นตรวจจับ มีโครงสร้างของตัวตรวจจับแสดงในรูปที่ 1 ประกอบด้วยแผ่นสารกึ่งตัวนำแบบอ่อนที่เป็นตัวกำหนดค่าความต้านทานไฟฟ้าประกบเข้ากับแผ่นขั้วไฟฟ้าแบบอ่อน โดยมีแผ่นฉนวนแบบอ่อนคั่นกลาง ทำให้เกิดค่าความต้านทานไฟฟ้าขึ้นระหว่างขาต่อใช้งาน เมื่อมีการกดลงบนแผ่นขั้วนำไฟฟ้า จะทำให้เกิดการสัมผัสระหว่างสารกึ่งตัวนำกับขั้วไฟฟ้า ส่งผลให้ค่าความต้านทานไฟฟ้าเกิดการเปลี่ยนแปลง ดังแสดงกระบวนการทำงานในรูปที่ 2 </p> <p><a href="http://lh4.ggpht.com/-76M7Y9Wx0QA/VBqxSMvNYAI/AAAAAAAAah8/deHd4-_j2CY/s1600-h/UniconProject01-fig02_CO-%25255BConverted%25255D%25255B13%25255D.jpg" target="_blank"><img title="02" style="margin: 2px; display: inline" alt="02" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Bm0l0uf2E6lld_mCAOktYSqWYt6OvoYKDoilFTq-tHhz_2c8wO44tWceEFO49yDtU0m8INdA-mm3PUK5uDfa9PWJAlyDiJklTQWEBNojETyc24yMAHhokFhccyAICSg5wuyUa3ldmKw9/?imgmax=800" width="589" height="480"></a> </p> <p><font color="#800040" size="2" face="Tahoma"><em>รูปที่ 2 การทำงานของตัวตรวจจับแรงกด FSR</em></font></p> <p>ดังนั้นตัวตรวจจับแรงกดแบบนี้จึงเหมาะกับการใช้งานที่ต้องการรับรู้ว่า มีการกดเกิดขึ้นหรือไม่ เนื่องจากค่าที่ได้จากตัวตรวจจับเป็นการเปลี่ยนแปลงของค่าความต้านทานไฟฟ้าที่สัมพันธ์กับพื้นที่ของการกด <p>ตัวตรวจจับแรงกด FSR ที่มีจำหน่ายหลักๆ มี 3 ขนาดดังรูปที่ 3 <p><a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&product_id=374&category_id=20&flypage=flypage.tpl&option=com_virtuemart&Itemid=11" target="_blank"><img title="03" style="display: inline" alt="03" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLlsLAA1jDZpqXHQYYshlreJjE18V8wBPmueq4Rl2rUGXZ_1Rfyeh2m9R1MAH4UoEtQHSuQI97imzao_FieyHWNA1N5psDjbAt1zggZ69pxEujhHVnXJ66nja3jtd2p1Shi1tYUXmlCdr4/?imgmax=800" width="496" height="432"></a> </p> <p><font size="2"><font face="ta"><font color="#800080"><em>รูปที่ </em>3 แสดงตัวตรวจจับแรงกด FSR ที่มีจำหน่ายในประเทศไทย (<a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&product_id=376&flypage=flypage.tpl&pop=0&keyword=force&option=com_virtuemart&Itemid=11" target="_blank">www.inex.co.th</a> )</font></font></font></p> <h2>การต่อวงจรเพื่อใช้งานกับบอร์ด Unicon</h2> <p>ในการใช้งานตัวตรวจจับแรงกดทั้ง 3 ขนาดจะเหมือนกัน มีเพียงผลการทำงานที่แตกต่างกันตามพื้นที่และความสามารถในการรับแรงกด (ดูข้อมูลในรูปที่ 3 ประกอบ) สำหรับการอ่านค่าจากตัวตรวจจับแบบนี้จึงต้องต่อใช้งานในแบบวงจรแบ่งแรงดัน โดยต่อร่วมกับตัวต้านทานอีก 1 ตัว ดังรูปที่ 4 แล้วต่อสัญญาณจากตัวตรวจจับ FSR เข้าที่อินพุตอะนาลอกของบอร์ด Unicon ตามรูปที่ 5 ซึ่งมีการใช้บอร์ด <a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=458&category_id=2&keyword=jcon&option=com_virtuemart&Itemid=11" target="_blank">JCON-PORT4</a> มาช่วยในการเปลี่ยนขั้วต่อสัญญาณ <p><a href="http://lh5.ggpht.com/-NbElzPKnLrE/VBqxdz1DBJI/AAAAAAAAaiU/_nDCLouobGY/s1600-h/UniconProject01-fig04%25255B9%25255D.jpg" target="_blank"><img title="04" style="display: inline" alt="04" src="http://lh5.ggpht.com/-HOGduyd_v6E/VBqxj4GD4UI/AAAAAAAAaic/80uZDdktoOk/UniconProject01-fig04_thumb%25255B5%25255D.jpg?imgmax=800" width="640" height="380"></a> <p><font color="#800080" size="2" face="t"><em>รูปที่ 4 วงจรเชื่อมต่อเพื่อใช้งานตัวตรวจจับแรงกด FSR กับบอร์ด Unicon</em></font> <p><a href="http://lh4.ggpht.com/-1Exc-odMwWI/VBqp9MdR03I/AAAAAAAAako/CBA7mOhdLYM/s1600-h/UniconProject01-fig05%25255B12%25255D.jpg" target="_blank"><img title="05" style="display: inline" alt="05" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRJ0QeFkt1uIWhR6ONYL5LEi04UqPW5q9hLVdzu8y3SqOB74TVQcTGGZLWe3dGvOOKXWh0aZgmErAQm-R7zyW1epbbgL9d8it5xh2-GAwq6uY8-_VzcpkFb_lbNYr0ENtRBLBwuEuE39SB/?imgmax=800" width="640" height="194"></a> <p></p> <p><font color="#800080" size="2" face="t"><em>รูปที่ 5 ตัวอย่างการเชื่อมต่ออุปกรณ์จริงเพื่อใช้งานตัวตรวจจับแรงกด FSR กับบอร์ด Unicon</em></font></p> <h2>เขียนโค้ด</h2> <p>โค้ดตัวอย่างสำหรับอ่านค่าของตัวตรวจจับแรงกด FSR แสดงในโปรแกรมที่ 1 อันเป็นการอ่านค่าจากอินพุตอะนาลอกขา 20 หรือ A2 ที่ต่อกับตัวตรวจจับแรงกด FSR จากนั้นนำค่าที่ได้มาแสดงผลที่จอ GLCD-XT ที่ติดตั้งบนบอร์ด Unicon </p> <table cellspacing="0" cellpadding="2" width="640" border="2"> <tbody> <tr> <td valign="top" width="636"><pre>#include <<span style="color: #cc6600">unicon</span>.h><br /><span style="color: #cc6600">int</span> val;<br /><span style="color: #cc6600">void</span> <span style="color: #cc6600"><b>setup</b></span>(){ <br> <span style="color: #cc6600">glcdClear</span>();<br />}<br /><span style="color: #cc6600">void</span> <span style="color: #cc6600"><b>loop</b></span>(){ <br> val=<span style="color: #cc6600">analog</span>(2); <br> <span style="color: #cc6600">glcd</span>(0,0,<span style="color: #006699">"%d "</span>,val); <br> <span style="color: #cc6600">sleep</span>(100);<br />}</pre></td></tr></tbody></table><br /><p></p><br /><p><font color="#800080" size="2" face="t"><em>โปรแกรมที่ 1 ไฟล์ Unicon_Force_Sensor.ino สำหรับอ่านค่าจากตัวตรวจจับแรงกด FSR ของบอร์ด Unicon</em></font></p><br /><h2>ทดสอบกันจะจะ</h2><br /><p>ในการทดสอบเมื่อยังไม่ได้กดลงบนตัวตรวจจับ ค่าที่วัดได้จะมีค่าเป็น 1023 เมื่อลองกดลงบนแผ่นตรวจจับเบาๆ ค่าที่อ่านได้จะลดลง จากการทดสอบเมื่อกดลงเบาๆ ค่าจะลดลงเหลือประมาณ 300 ถึง 400 เมื่อออกแรงกดเพิ่มขึ้น ค่าที่อ่านได้จะลดลง </p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTU9akNu0Zphm65uBRHUTqY6AM5L7DCx5VipGA2MCKYZr_q8_JI0OHNMelWp-7G9ttN7tt2VCIe0N5zrZdAWxW-zaCmgekE8QQlhZJ59CbhdBHEB-Y0FVpHkWwc41xVGFjA-Xl2-unJWAo/s1600-h/UniconProject01-fig06%25255B10%25255D.jpg" target="_blank"><img title="6" style="display: inline" alt="6" src="http://lh5.ggpht.com/-4a2XHxo2NIA/VBqx2GXaR6I/AAAAAAAAai8/JuGmptsp1w8/UniconProject01-fig06_thumb%25255B6%25255D.jpg?imgmax=800" width="640" height="386"></a> </p><br /><p><font color="#800080" size="2" face="t"><em>รูปที่ 6 ทดสอบกดตัวตรวจจับแรงกด FSR เบาๆ ดูค่าที่อ่านได้บนจอ GLCD-XT ของบอร์ด Unicon</em></font></p><br /><p> นอกจากนี้พื้นที่ที่รับแรงกดมีผลกับค่าที่อ่านได้ด้วย ที่บริเวณกึ่งกลางของแผ่นตรวจจับจะให้การตอบสนองต่อการกดได้ดีที่สุด ถ้ากดที่ริมขอบและที่มุมของแผ่นตรวจจับ แม้ว่าจะกดด้วยแรงเท่าๆ กัน การตอบสนองจะน้อยกว่า นั่นคือ ค่าที่ได้จะลดลงเพียงเล็กน้อย ดังนั้นการนำไปใช้งานควรเลือกขนาดให้เหมาะสมกับพื้นที่ใช้งาน </p><br /><table cellspacing="0" cellpadding="0" width="664" border="0"><br /><tbody><br /><tr><br /><td valign="top" width="330"><a href="http://lh5.ggpht.com/-LWp-_wy8Grw/VBqyCu60-OI/AAAAAAAAajE/2PYavgbSqNo/s1600-h/UniconProject01-fig0701%25255B12%25255D.jpg" target="_blank"><img title="7.1" style="display: inline" alt="7.1" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3iuiugtgCG5NNfGLjHJMaNmpxnyTjYSOJXvrZHWc8U6-ygfCe1Zybg7Y3eIi7LgO_Bg9SUlhmq8JorsCfEUwySYvkaesYVoFxbDpC9PHHnorqv0jmoT4Z0jTebh8QqzVOm2EdQZdqYGvJ/?imgmax=800" width="320" height="185"></a> </td><br /><td valign="top" width="332"><a href="http://lh6.ggpht.com/-95-6iNWBnu4/VBqyfq-RuXI/AAAAAAAAajU/G6WewjiIKSw/s1600-h/UniconProject01-fig0702%25255B7%25255D.jpg" target="_blank"><img title="7.2" style="display: inline" alt="7.2" src="http://lh4.ggpht.com/-mQeGgAvOEs4/VBqyjHlNKUI/AAAAAAAAajc/LqTvTOuNVlw/UniconProject01-fig0702_thumb%25255B5%25255D.jpg?imgmax=800" width="320" height="185"></a> </td></tr><br /><tr><br /><td valign="top" width="330"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbsTAQwCIgliaqxL_X9qU-CW8yC-Htb0oiW3_FR20-WL8bMtVIPImGUFbz7wfKyEFnci1y_1ekadRIog9FCNPzb3QJsGY-MkcHnomsEfchFyADosBRMyVAhRJRyTIuS4huyWQdy3gMnI5u/s1600-h/UniconProject01-fig0703%25255B11%25255D.jpg" target="_blank"><img title="7.3" style="display: inline" alt="7.3" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf-kAzFfhtlvYvEGeMDxRHCMdrB7VUl3LoKhaIQYQiCisSKdEcprjoFdgMrUxUgZfTOQ9n9SS3XnMa1GtBM_vkxm1BSmsWnSloN7ob-1rGRp1-JjQrSjKpxudQvpkQaEZSL_ZQ7vlmMrzi/?imgmax=800" width="319" height="185"></a><font color="#800080" size="2" face="t"><em> </em></font></td><br /><td valign="top" width="332"><br /><p><font color="#800080" size="2" face="t"><em> (7.1) เมื่อกดที่กึ่งกลาง ได้ค่าประมาณ 340<br> (7.2) กดที่ขอบบนด้วยแรงพอๆ กัน ได้ค่าประมาณ 635<br> (7.3) กดที่มุมล่างด้วยแรงพอๆ กัน ได้ค่าประมาณ 722</em></font></p></td></tr></tbody></table><br /><p><font color="#800080" size="2" face="t"><em>รูปที่ 7 แสดงผลการทำงานของตัวตรวจจับแรงกดรูปสี่เหลี่ยมเมื่อกดลงบนแผ่นตรวจจับที่ตำแหน่งต่างๆ</em></font></p><br /><table cellspacing="0" cellpadding="0" width="640" border="0"><br /><tbody><br /><tr><br /><td valign="top" width="320"><a href="http://lh3.ggpht.com/-PwIGv11EaVs/VBqy_4ddRoI/AAAAAAAAaj0/USK_ycS7vQI/s1600-h/UniconProject01-fig0801%25255B8%25255D.jpg" target="_blank"><img title="8.1" style="display: inline" alt="8.1" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirqfhDH_pFLU6_U3el4W9y5z5odqu3oVsbCntb_yfrJ5fcJzoT8Vg7oIAglzpnSbh7mlIgOC1IyinCC8a1-LbDCajqU7LBst29MB2vXuMLS8jt-yYSZ9diDmLxWLDVciLUdNhwny6zA0BG/?imgmax=800" width="320" height="185"></a> </td><br /><td valign="top" width="320"><a href="http://lh5.ggpht.com/-zrPMFByKsn8/VBqzKFQOsEI/AAAAAAAAakE/rebwj7S8lhU/s1600-h/UniconProject01-fig0802%25255B5%25255D.jpg"><img title="8.2" style="display: inline" alt="8.2" src="http://lh6.ggpht.com/-_m2-nUVw1r8/VBqzROq7R-I/AAAAAAAAakM/KKrDjwlore0/UniconProject01-fig0802_thumb%25255B3%25255D.jpg?imgmax=800" width="320" height="185"></a> </td></tr></tbody></table><br /><p></p><br /><p><font color="#800080" size="2" face="t"><em>รูปที่ 8 แสดงผลการทำงานของตัวตรวจจับแรงกดแบบกลมเมื่อกดลงบนแผ่นตรวจจับที่ตำแหน่งต่างๆ<br> (8.1) เมื่อกดที่กึ่งกลาง ได้ค่าประมาณ 319<br> (8.2) กดที่ขอบด้วยแรงพอๆ กัน ได้ค่าประมาณ 748</em></font></p><br /><h2>การประยุกต์ใช้งาน</h2><br /><p> ในการนำตัวตรวจจับแรงกด SFR ไปใช้งานจะนิยมเป็นปุ่มกดแทนสวิตช์แบบเดิมๆ เพราะตัวตรวจจับแรงกดแบบนี้มีขนาดบาง จึงนำไปติดตั้งได้เรียบเนียนไปกับพื้นผิวได้ดี นำไปใช้เป็นปุ่มกดคล้ายปุ่มแบบสัมผัสได้ </p> Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-88896130856058203022014-09-08T13:36:00.000+07:002014-09-08T13:36:16.507+07:00Li-Po Battery EP.02 : Charging with G.T. Power C607D<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<h2>
การชาร์จแบตเตอรี่ Li-Po ด้วยเครื่องชาร์จรุ่น G.T. Power C607D</h2>
<br />
<a href="http://www.inex.co.th/inexstore/components/com_virtuemart/shop_image/product/_________________527b966278fc3.jpg"><img border="0" height="562" src="https://blogger.googleusercontent.com/img/proxy/AVvXsEhEov-W6UIdCKnV9aeh0rh0MJiZNPAxbnIUxfo-TqgVxrf5L5gBWAe9JJn_GM0BwhvODCLteDjWkMlsU8Aztyc1EKi15zFolhAWHGMRuYMhcAM2odVrpsKA9T0TUoXdV0DotBEdutRF-ORMOM7JwwmAqdLPKGtoywO2v_gOqiD9m2DSijzC07H0Iclv3qZqBQQUfoNsg8w1BJ_6C2kr-a83BI0qER8cneQVivq46-lX=" width="640" /></a><br />
<br />
แบตเตอรี่แบบ ลิเที่ยมโพลิเมอร์ มีการใช้งานกันอย่างแพร่หลาย ด้วยคุณสมบัติข้อเด่นๆ ของมันอ่านรายละเอียดของแบต Li-Po ได้จาก <a href="http://hobby-experiment.blogspot.com/2014/09/li-po-battery-ep01.html">Li-Po Battery EP.01 ความเข้าใจเกี่ยวกับแบตเตอรี่</a><br />
<h4>
คุณสมบัติของเครื่องชาร์จ G.T. Power รุ่น C607D</h4>
เป็นเครื่องชาร์จแบตเตอรี่ประสิทธิภาพสูงควบคุมด้วยไมโครคอนโทรลเลอร์
ที่ชาร์จได้ทั้งถ่าน Ni-Cd,Ni-MH, แบตเตอรี่ Li-Po/Li-Io/Li-Fe
และแบตเตอรี่ตะกั่วกรด (แบตเตอรี่รถยนต์) จ่ายกระแสสูงถึง 7A
พร้อมพัดลมระบายความร้อนในตัว ขั้วต่อต่างๆ มีมาให้ครบ
เสียบไฟบ้านหรือแบตเตอรี่ก็ได้<br />
<ul>
<li>ใช้แหล่งไฟได้จากทั้งไฟบ้านและแบตเตอรี่</li>
<li> AC: 100-240V (ไฟบ้าน) </li>
<li> DC: 11-18V (แบตเตอรี่) </li>
<li> จ่ายกำลังงานสูงสุดถึง 80W สำหรับการชาร์จ และ 5W สำหรับดิสชาร์จ </li>
<li> กระแสชาร์จปรับได้ตั้งแต่ 0.1-7.0A </li>
<li> กระแสดิสชาร์จปรับได้ตั้งแต่ 0.1-1.0A </li>
<li> สามารถชาร์จแบต Li-po แบบบาลานซ์ได้ที่ 300mAh/เซลล์ </li>
<li> ชาร์จถ่าน NiCd/NiMH ได้ตั้งแต่ 1-15 ก้อน </li>
<li> ชาร์จแบตเตอรี่แบบ Li-po ได้ตั้งแต่ 1-6 เซลล์ </li>
<li> ชาร์จแบตเตอรี่แบบตะกั่วกรด แรงดัน 2-20V </li>
<li> ขนาด 136x127x56 มม. </li>
<li> น้ำหนัก 400 กรัม</li>
</ul>
<h4>
ตำแหน่งต่างๆ บนเครื่องชาร์จ</h4>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqYwi_8XEUJoM8OP5RElfs_yluG2GpnYyeEk1HNAWbbEwT7a3_qjarLwebsVloGk_QvrwY_bJk0Uh0Hy7QNlRRB5umfv9qk0pu5I1fF9peq6cWtaDyl6iXCyIowOna2up0FOUHEZrFGeoV/s1600/GTP-C607D-Exterior.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqYwi_8XEUJoM8OP5RElfs_yluG2GpnYyeEk1HNAWbbEwT7a3_qjarLwebsVloGk_QvrwY_bJk0Uh0Hy7QNlRRB5umfv9qk0pu5I1fF9peq6cWtaDyl6iXCyIowOna2up0FOUHEZrFGeoV/s1600/GTP-C607D-Exterior.jpg" height="428" width="640" /></a></div>
<br />
เมนูต่างๆ ของการชาร์จแบตลิเธี่ยม โพลิเมอร์<br />
เมื่อกดเลื่อนปุ่ม STOP ซ้ายมือสุดไปเรื่อยๆ เป็นการเลือกเมนูของแบตเตอรี่ชนิดต่างๆ ให้กดไปจนถึงหน้าจอ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3SH-MkLZWr7DlBZSNC0BNiMW1ev18Kyezi3phcaZeZwZkTW83FmBR7U5iCM4PepSdmafuuCY4KalqJ9oZywklmbVVPnFpcgnx79slC-aiji0qxGV-45hbqhi8jc2dUkEpT8Jj2Kn5WOl4/s1600/Charger-Menu1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3SH-MkLZWr7DlBZSNC0BNiMW1ev18Kyezi3phcaZeZwZkTW83FmBR7U5iCM4PepSdmafuuCY4KalqJ9oZywklmbVVPnFpcgnx79slC-aiji0qxGV-45hbqhi8jc2dUkEpT8Jj2Kn5WOl4/s1600/Charger-Menu1.jpg" height="188" width="320" /></a></div>
เมื่อกด Enter แล้ว จะเข้าสู่เมนูย่อย โดยสามารถกดปุ่ม INC หรือ DEC เพื่อเปลี่ยนเมนูย่อยซึ่งประกอบไปด้วยเมนูต่างๆ ดังนี้<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVYfAOng0iUNst4vUO0-j9GCLA_JHEKDE-clnfEHJoBO7Dr44QxkQvWh4eYNd2XAanTQ-rhmx5RbPjUBLaKnKBqVzU7l0pVvVeRoGfcyw9Iagc8rCVknG7a6aYS9d_qcMZYUivHswMy5e2/s1600/Charger-Menu-LiPo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVYfAOng0iUNst4vUO0-j9GCLA_JHEKDE-clnfEHJoBO7Dr44QxkQvWh4eYNd2XAanTQ-rhmx5RbPjUBLaKnKBqVzU7l0pVvVeRoGfcyw9Iagc8rCVknG7a6aYS9d_qcMZYUivHswMy5e2/s1600/Charger-Menu-LiPo.jpg" height="208" width="640" /></a></div>
<br />
<br />
<h4>
<span style="color: purple;">การชาร์จในรูปแบบปกติ</span></h4>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK6z0hBXxXgwAzEfRk2RqE2bxGWirIEU76l__tCa22awgJk8uuTnsxJkSBCOFZXMt3BTCtjuQbXBnenlhjTABJ7HFL8aWFECTZ8CrC8QqVWzS5cSylQcaHc9iMKXFF9hTm7nbUbTSn5g5F/s1600/Charging02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK6z0hBXxXgwAzEfRk2RqE2bxGWirIEU76l__tCa22awgJk8uuTnsxJkSBCOFZXMt3BTCtjuQbXBnenlhjTABJ7HFL8aWFECTZ8CrC8QqVWzS5cSylQcaHc9iMKXFF9hTm7nbUbTSn5g5F/s1600/Charging02.jpg" height="354" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
1. ต่อสายจากแบตเตอรี่<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ3CyMSjjJTndXeIKVRbwGcZlBuMdJCLPmj_rYLwlrBUBegWEw_iOTYoB-nR4DhhT4EHmWuL43S5X3Ih2Qsvj2Stm80XE68LA7oVL49iclJfI7vt8_iz5gStrX53_kR7HfwGIHLM8hzwOQ/s1600/Batt-Li-Po-1100mAh-7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ3CyMSjjJTndXeIKVRbwGcZlBuMdJCLPmj_rYLwlrBUBegWEw_iOTYoB-nR4DhhT4EHmWuL43S5X3Ih2Qsvj2Stm80XE68LA7oVL49iclJfI7vt8_iz5gStrX53_kR7HfwGIHLM8hzwOQ/s1600/Batt-Li-Po-1100mAh-7.jpg" height="222" width="400" /></a></div>
<br />
2. กดปุ่ม Enter จะเป็นการเลือกกระแสชาร์จและแรงดัน(จำนวนเซล) โดยในรูปใช้แบตเตอรี่ ขนาด 2 เซล กระแส 1,100 มิลลิแอมป์ชั่วโมง และกระแสชาร์จได้สูงสุด 5 เท่า ดังนั้นกระแสสูงสุดที่ใช้่ชาร์จไม่ควรเกิน 5.5A<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEN0gXUaClDfslhMPUYAaq1QwGTwrg-M7Ug7VfP-wAX_C4DwXUZg8rXMreNl_H72HWhlqxf5LS8eiKmD2mTyA3mDevDJazRi6m32kU7BvUXEXptZg81bugBdbnNuwMxEyDgUQ7WM60YOC4/s1600/GTP-C607D-Exterior02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEN0gXUaClDfslhMPUYAaq1QwGTwrg-M7Ug7VfP-wAX_C4DwXUZg8rXMreNl_H72HWhlqxf5LS8eiKmD2mTyA3mDevDJazRi6m32kU7BvUXEXptZg81bugBdbnNuwMxEyDgUQ7WM60YOC4/s1600/GTP-C607D-Exterior02.jpg" height="155" width="640" /></a></div>
<br />
<br />
3. กดปุ่ม Enter ค้างไว้ประมาณ 3 วินาที หน้าจอจะแสดงข้อความตรวจสอบแบตเตอรี่ จากนั้นจะแสดงแบตเตอรี่ที่ตรวจพบ R: กับค่าที่เราตั้งไว้ S: โดยในรูปเป็นค่าตรงกันคือ 2SER หมายถึงอนุกรมกัน 2 เซล<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1XQE9vIM5-_Gfj45kdnJwVi40GItjQpVWsbqtAIyTwwi0LOJndouCdkrBCnUIuKFpFUAOyCNTkh8fX8xNtlRG5Z8pra1t3FYjKyD2DUE3pSc0F8PQ8X45mIbGZ0kuASlLiEdlQ4SbB2ui/s1600/GTP-C607D-Exterior03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1XQE9vIM5-_Gfj45kdnJwVi40GItjQpVWsbqtAIyTwwi0LOJndouCdkrBCnUIuKFpFUAOyCNTkh8fX8xNtlRG5Z8pra1t3FYjKyD2DUE3pSc0F8PQ8X45mIbGZ0kuASlLiEdlQ4SbB2ui/s1600/GTP-C607D-Exterior03.jpg" height="168" width="640" /></a></div>
<br />
4. ถ้าค่า R: และ S: ตรงกันให้กดปุ่ม ENTER เพื่อเริ่มต้นชาร์จ หน้าจอจะแสดง กระแสที่ใช้ชาร์จ แรงดันที่ชาร์จ เวลาที่ใช้ และปริมาณกระแสที่ถูกชาร์จไป<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhabB756p3khtSJCYyDd7jYcn67SQhuDZLM0RNvSlobhUOnj1ahM-XJJGBRA7y3IJeyH-C6TMAc0f3iCuAInpwxwSvpN23bItsOY6l1OG1EbCymDb0Uq6Uq3_xjy_Sbxm8eN3BeYMetmEcE/s1600/GTP-C607D-Exterior04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhabB756p3khtSJCYyDd7jYcn67SQhuDZLM0RNvSlobhUOnj1ahM-XJJGBRA7y3IJeyH-C6TMAc0f3iCuAInpwxwSvpN23bItsOY6l1OG1EbCymDb0Uq6Uq3_xjy_Sbxm8eN3BeYMetmEcE/s1600/GTP-C607D-Exterior04.jpg" height="168" width="640" /></a></div>
<br />
5. เมื่อชาร์จเต็มจะมีเสียงเตือนออกมาพร้อมทั้งบอกข้อมูลต่างๆ ตามรูป<br />
<br />
<b><span style="color: orange;">หมายเหตุ</span></b><span style="color: #b45f06;"><i> แรงดันสูงสุดสำหรับการชาร์จแบตเตอรี่ 2 เซลคือ 8.4V เมื่อชาร์จที่กระแสสูงสุดจนแรงดันถึง 8.4V แล้ว กระแสชาร์จจะค่อยๆ ลดลงจนใกล้เคียง 0 การชาร์จจะเสร็จสมบูรณ์</i></span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<mytubeelement data="{"bundle":{"label_delimitor":":","percentage":"%","smart_buffer":"Smart Buffer","start_playing_when_buffered":"Start playing when buffered","sound":"Sound","desktop_notification":"Desktop Notification","continuation_on_next_line":"-","loop":"Loop","only_notify":"Only Notify","estimated_time":"Estimated Time","global_preferences":"Global Preferences","no_notification_supported_on_your_browser":"No notification style supported on your browser version","video_buffered":"Video Buffered","buffered":"Buffered","hyphen":"-","buffered_message":"The video has been buffered as requested and is ready to play.","not_supported":"Not Supported","on":"On","off":"Off","click_to_enable_for_this_site":"Click to enable for this site","desktop_notification_denied":"You have denied permission for desktop notification for this site","notification_status_delimitor":";","error":"Error","adblock_interferance_message":"Adblock (or similar extension) is known to interfere with SmartVideo. Please add this url to adblock whitelist.","calculating":"Calculating","waiting":"Waiting","will_start_buffering_when_initialized":"Will start buffering when initialized","will_start_playing_when_initialized":"Will start playing when initialized","completed":"Completed","buffering_stalled":"Buffering is stalled. Will stop.","stopped":"Stopped","hr":"Hr","min":"Min","sec":"Sec","any_moment":"Any Moment","popup_donate_to":"Donate to","extension_id":null},"prefs":{"desktopNotification":true,"soundNotification":true,"logLevel":0,"enable":true,"loop":false,"hidePopup":false,"autoPlay":false,"autoBuffer":false,"autoPlayOnBuffer":false,"autoPlayOnBufferPercentage":42,"autoPlayOnSmartBuffer":true,"quality":"default","fshd":true,"onlyNotification":false,"enableFullScreen":true,"saveBandwidth":false,"hideAnnotations":false,"turnOffPagedBuffering":false}}" event="preferencesUpdated" id="myTubeRelayElementToPage"></mytubeelement><mytubeelement data="{"loadBundle":true}" event="relayPrefs" id="myTubeRelayElementToTab"></mytubeelement>
<!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2Fwww.inex.co.th%2Finexstore%2Fcomponents%2Fcom_virtuemart%2Fshop_image%2Fproduct%2F_________________527b966278fc3.jpg&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/proxy/AVvXsEhEov-W6UIdCKnV9aeh0rh0MJiZNPAxbnIUxfo-TqgVxrf5L5gBWAe9JJn_GM0BwhvODCLteDjWkMlsU8Aztyc1EKi15zFolhAWHGMRuYMhcAM2odVrpsKA9T0TUoXdV0DotBEdutRF-ORMOM7JwwmAqdLPKGtoywO2v_gOqiD9m2DSijzC07H0Iclv3qZqBQQUfoNsg8w1BJ_6C2kr-a83BI0qER8cneQVivq46-lX=" -->Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-11037262498099743992014-09-05T11:25:00.001+07:002014-09-05T11:36:03.863+07:00Li-Po Battery EP.01 ความเข้าใจเกี่ยวกับแบตเตอรี่<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
ช่วงนี้ มีคำถามเข้ามาเกี่ยวกับการใช้งาน<a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=598&category_id=47&option=com_virtuemart&Itemid=11#.UrFU5pz6E3U" target="_blank">แบตเตอรี่ลิเธี่ยม-โพลิเมอร์ (Lithium Polymer : Li-Po)</a> กับหุ่นยนต์รุ่นต่างๆ ของ inex โดยเฉพาะรุ่น<a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=466&category_id=6&option=com_virtuemart&Itemid=11#.UrBUFZz6E3U" target="_blank"><b> POP-BOT XT</b> </a>หรือ<span style="color: purple;"><b> <a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=618&category_id=68&option=com_virtuemart&Itemid=11#.VAk63GNJUsk" target="_blank">IPST-SE</a></b></span> ตอนนี้เรามาหาความกระจ่างกันครับ<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://doc.inex.co.th/wp-content/uploads/2013/12/Batt-Li-Po-1100mAh-7.4V-ONLY-300x225.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://doc.inex.co.th/wp-content/uploads/2013/12/Batt-Li-Po-1100mAh-7.4V-ONLY-300x225.jpg" height="480" width="640" /></a></div>
<br />
<h4>
<span style="color: #993300;"><b>ข้อดีของแบตเตอรี่แบบ Li-Po เมื่อนำมาใช้กับหุ่นยนต์</b></span></h4>
1. มีน้ำหนักเบาในเมื่อเทียบกับความจุ (mAh)<br />
2. สามารถจ่ายกระแสได้ปริมาณมากกว่าความจุ ทำให้หุ่นยนต์มีความเร็วเพิ่มขึ้นชัดเจน<br />
3. แรงดันคงที่ หุ่นยนต์ทำงานนิ่งตลอด จนหมดความจุ<br />
4. มีหลายรูปแบบขนาด ทำให้ยึดติดตั้งได้ง่าย<br />
5. คายประจุด้วยตัวเอง(Self Discharge) น้อย <br />
<h4>
<span style="color: #993300;"><b>ข้อเสียของแบตเตอรี่แบบ Li-Po เมื่อนำมาใช้กับหุ่นยนต์</b></span></h4>
1. มีราคาแพงเมื่อเทียบกับแบตเตอรี่ชนิดอื่นๆ<br />
2. ต้องใช้เครื่องชาร์จที่มีความเฉพาะ ซึ่งบางแบบก็มีราคาแพง<br />
3. ต้องให้การดูแลเป็นพิเศษ ถ้าเกิดการลัดวงจรจะเกิดความเสียหายใหญ่หลวง<br />
4. ต้องคอยดูแลเรื่องปริมาณความจุ ถ้าแบตเตอรี่ใหล้หมด
จะเกิดการสูญเสียแรงดันและแบตเตอรี่เกิดความเสียหาย
จึงต้องมีการตรวจวัดความจุของแบตเตอรี่อยู่เสมอเมื่อใช้งาน <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://doc.inex.co.th/wp-content/uploads/2013/12/Li-Po-1Cell.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://doc.inex.co.th/wp-content/uploads/2013/12/Li-Po-1Cell.png" height="192" width="640" /> </a></div>
<h4>
<span style="color: #993300;"><b>แรงดันของแบตเตอรี่ Li-Po</b></span></h4>
ปกติเราใช้งานถ่านอัลคาไลน์ แรงดันต่อถ่าน 1 ก้อนหรือ 1 เซลคือ 1.5V
หรือถ้าเป็นถ่านชาร์จ (Ni-MH) 1 เซลเท่ากับ 1.2V แต่เมื่อเป็นแบตเตอรี่
Li-Po 1 เซลมีความจุ 3.7V เมื่อนำมาต่ออนุกรมกัน 2 ก้อนจะกลายเป็น 7.4V
อนกรม 3 ก้อนจะกลายเป็น 11.1V<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://doc.inex.co.th/wp-content/uploads/2013/12/Batt-Li-Po-1100mAh-7.4V-With-POPXT-640.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://doc.inex.co.th/wp-content/uploads/2013/12/Batt-Li-Po-1100mAh-7.4V-With-POPXT-640.jpg" height="278" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h4>
<span style="color: #993300;"><b>แรงดันที่เหมาะสมสำหรับหุ่นยนต์</b></span></h4>
สำหรับหุ่นยนต์รุ่น <b>POPBOT-XT, Robo-Creator และ IPST-SE</b> เหมาะ
กับการใช้ขนาด 2 เซลหรือ 7.4 V
เนื่องจากสามารถใช้ได้ทั้งมอเตอร์ไฟตรง และเซอร์โวมอเตอร์
ไม่ควรใช้งานแบตเตอรี่ที่แรงดันมากกว่านี้
เนื่องจากถ้าจ่ายไฟไปยังวงจรขับมอเตอร์เป็นเวลานาน
วงจรขับมอเตอร์จะเสียหายได้<i><br />
</i><br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://doc.inex.co.th/wp-content/uploads/2013/12/Batt-Li-Po-1100mAh-7.4V-Label-640.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://doc.inex.co.th/wp-content/uploads/2013/12/Batt-Li-Po-1100mAh-7.4V-Label-640.jpg" height="318" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h4>
<span style="color: #993300;"><b>ความจุของแบตเตอรี่</b></span></h4>
ความจุมีหน่วยเป็น mAh หรือ มิลลิแอมป์ชั่วโมงเป็น <b>ปริมาณกระแสไฟฟ้าที่จ่ายได้ภายในเวลา 1 ชั่วโมง</b>
ค่ายิ่งมากก็จะใช้งานได้นานขึ้น
เช่นเดียวกับตัวเลขที่ระบุในสมาร์ทโฟนที่ใช้กันอยู่ในปัจจุบัน
ถ้าต้องการให้หุ่นยนต์ใช้งานได้นานๆ ก็ต้องหาความจุที่มาก
แต่เมื่อความจุมากขนาดก็ใหญ่ขึ้นไปด้วย จึงต้องคำนวณกระแสที่หุ่นยนต์ใช้งาน
เทียบกับเวลาที่ใช้งาน ก็จะได้ปริมาณที่ต้องการ โดยปกติหุ่นยนต์ POP-BOT
XT เมื่อขับมอเตอร์ไฟตรงที่แรงดัน 7.4 โวลต์จะใช้กระแสประมาณ 500 mA
ดังนั้น ถ้าเราใช้แบต Li-Po ขนาด 1000 mAh ก็จะใช้งานต่อเนื่องได้ประมาณ 2
ชั่งโมง<span style="color: lime;"> (อาจน้อยกว่านี้เนื่องจากผู้ผลิตบอกค่ามาเกินจริงไปบ้าง)</span><br />
<h5>
<b><span style="color: red;">ข้อควรระวัง</span></b></h5>
<span style="color: red;">แบตเตอรี่ Li-Po
ไม่สามารถใช้งานจนหมดความจุ เมื่อแรงดันลดต่ำลง ต่ำกว่า 3.0V
จะต้องหยุดใช้งานแล้วนำไปชาร์จประจุใหม่ มิเช่นนั้น
แบตเตอรี่จะไม่สามารถนำกลับมาใช้งานได้อีก </span><br />
<h4>
<span style="color: #993300;"><b>เครืองวัดแบตเตอรี่/เครื่องแจ้งเตือน</b></span></h4>
อุปกรณ์สำคัญสำหรับผู้ที่ใช้แบต Li-Po ถ้าเป็นโทรศัพท์มือถือ
ถ้าเราใช้แบตเตอรี่จนค่าแรงดันต่ำกว่าค่าที่ตั้งไว้
โทรศัพท์มือถือจะแจ้งเตือนให้เราชาร์จ เพื่อใช้งานต่อ แต่ถ้าเป็นแบต Li-Po
ก็จะต้องมีอุปกรณ์ประเภทนี้ไว้ใช้งาน แบ่งออกเป็น 3 ชนิด<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://doc.inex.co.th/wp-content/uploads/2013/12/Li-Po-Voltage-Monitor640.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://doc.inex.co.th/wp-content/uploads/2013/12/Li-Po-Voltage-Monitor640.jpg" height="306" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
1. แบบมีตัวเลขแสดงแรงดัน ผู้ใช้งานต้องคอยสังเกตว่า แรงดันต่ำกว่า 3.0V
ต่อเซลหรือยัง ข้อดีคือเราคาดการณ์ได้ว่าจะใช้แบตเตอรี่ได้อีกนานแค่ไหน
ข้อเสียคือไม่มีการแจ้งเตือน</div>
2. แบบมี LED แสดงสถานะของแบตเตอรี่แต่ละเซล
และมีลำโพงขนาดเล็กคอยแจ้งเตือนเมื่อแบตหมด
ข้อดีคือไม่ต้องคอยนั่งสังเกตว่าแบตจะหมดหรือยัง
ข้อเสียคือไม่รู้ปริมาณที่แท้จริงว่าใช้ได้นานอีกเท่าไหร่<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://doc.inex.co.th/wp-content/uploads/2013/12/ALARMxVOLTMeter-2-%E0%B8%86%E0%B8%A3%E0%B8%81%E0%B8%B3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://doc.inex.co.th/wp-content/uploads/2013/12/ALARMxVOLTMeter-2-%E0%B8%86%E0%B8%A3%E0%B8%81%E0%B8%B3.jpg" height="316" width="640" /></a></div>
<div style="padding-left: 30px;">
3. <a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=565&category_id=47&option=com_virtuemart&Itemid=11#.UrFzv5z6E3U">แบบมีทั้งตัวเลขแสดงแรงดันพร้อมทั้งแจ้งเตือ</a>น ก็จะสามารถรับรู้แรงดันของเซลล์พร้อมทั้งมีการแจ้งเตือนด้วย นอกจากนี้บางรุ่นยังสามารถตั้งค่าแรงดันในการแจ้งเตือนได้ด้วย</div>
การใช้งานเครื่องวัดแบตเตอรี่
ก็แค่เสียบเครื่องวัดเข้าที่ขั้วต่อบาลานซ์ โดยถ้าแบตเตอรี่เป็นแบบ 2 เซล
แต่เครื่องวัดวัดได้หลายๆ เซลก็ให้หันขั้วที่เป็นขั้วลบ (COM)
ชิดด้านล่างต่อเข้ากับสายสีดำ และปล่อยขาที่เหลือลอยไว้<br />
<br />
<br />
<h4>
<span style="color: #993300;"><b>ความสามารถในการจ่ายกระแส</b></span></h4>
<b></b>ข้อความด้านข้างของแบตเตอรี่จะแสดงค่าตัวเลข 15C 20C
30C เป็นค่าเพื่อแสดงความสามารถในการจ่ายกระแสเป็นจำนวนเท่าของความจุ
หมายถึงในช่วงขณะเวลาหนึ่งสามารถจ่ายกระแสออกมาได้สูงสุดเป็นปริมาณเท่าใด
ยกตัวอย่างเช่นแบต Li-Po 3000mAh มีค่า 20C จะสามารถจ่ายกระแสได้ชั่วขณะถึง
60,000 mA หรือ 60A ซึ่งเป็นค่าที่มหาศาลมาก มีทั้งข้อดีและข้อเสีย<br />
<div style="padding-left: 30px;">
<span style="color: blue;"><b>ข้อดี<i> </i></b></span>เมื่อ
ใช้งานกับหุ่นยนต์ หุ่นยนต์สามารถต่อกับมอเตอร์และเซอร์โวมอเตอร์ได้หลายๆ
ตัว โดยไม่ทำให้แรงดันตก
หุ่นยนต์สามารถทำงานได้อย่างมีประสิทธิภาพต่อเนื่อง<br />
<span style="color: red;"><b>ข้อเสีย</b></span> ถ้าเกิดการลัดวงจรหรือต่อไฟกลับขั้ว<span style="color: red;"> กระแส 60A <b> สามารถทำลายทุกอย่างได้</b> ตั้งแต่วงจรขับมอเตอร์ แผ่นวงจรพิมพ์ และอุปกรณ์ต่อพ่วงโดยรอบ </span><i>(การลัดวงจรนี้รวมไปถึงการทำให้ขั้วมอเตอร์ชอร์ตถึงกันในขณะที่สั่งงานมอเตอร์ให้ทำงานด้วย) </i><b><i><b><i>การใช้งานต้องใช้ความระมัดระวังเป็นพิเศษ</i></b></i></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0tag:blogger.com,1999:blog-8361214882087614336.post-39037915117132675082014-08-25T15:21:00.000+07:002014-08-25T15:21:00.877+07:00Bluetooth Control with AppInventor2 EP.2<h2 style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 16px; margin: 0px 0px 1em; position: relative;">
สร้างโปรแกรมควบคุม <span style="color: red;">IPST-SE</span> แบบไร้สายผ่าน <span style="color: red;">Android</span> ด้วยโมดูลบลูทูธและซอฟต์แวร์ <span style="color: red;">AppInventor2</span> ตอน 2</h2>
<h4>
<span style="color: purple;">การต่อโมดูล <a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=418&category_id=24&keyword=bluestick&option=com_virtuemart&Itemid=11#.U_q6b8DV8Uc" target="_blank">BlueStick</a> เข้ากับบอร์ด <a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=618&category_id=75&keyword=ipst-se&option=com_virtuemart&Itemid=11#.U_q6jMDV8Uc" target="_blank">IPST-SE</a></span></h4>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgNjW_7BN-RB8TB109Dk2rR1zOQdimfVNTA02iDlmLWChshDqdO3gINwbngmBuk-1GSZs9mdbECu1cARwGIj_JtTHv_FW3EDikylL6TGftEqF0hsz9h3SlDSEXtwZTTIv41n-Qpgr7wr5p/s1600/IPST-with-BlueStick.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgNjW_7BN-RB8TB109Dk2rR1zOQdimfVNTA02iDlmLWChshDqdO3gINwbngmBuk-1GSZs9mdbECu1cARwGIj_JtTHv_FW3EDikylL6TGftEqF0hsz9h3SlDSEXtwZTTIv41n-Qpgr7wr5p/s1600/IPST-with-BlueStick.jpg" height="522" width="640" /></a></div>
<br />
โมดูล BlueStick ควรใช้ร่วมกับ <a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=423&category_id=24&keyword=ADX-BT&option=com_virtuemart&Itemid=11#.U_q7D8DV8Uc" target="_blank">ADX-BTSTICK</a> จะได้ไม่ต้องกังวลเรื่องการต่อกลับขั้ว สำหรับการต่อสายเพื่อสื่อสารอนุกรม ขาส่ง(TxD) จะต้องต่อขารับ (RxD) ถึงจะรับส่งข้อมูลกันได้ ดังรูป<br />
<br />
<h4>
<span style="color: purple;">การเขียนโปรแกรมรับค่าจาก </span><a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=418&category_id=24&keyword=bluestick&option=com_virtuemart&Itemid=11#.U_q6b8DV8Uc" target="_blank">BlueStick</a></h4>
สำหรับบอร์ด <span style="color: blue;"><a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=618&category_id=75&keyword=ipst-se&option=com_virtuemart&Itemid=11#.U_rv8MDV8Uc" target="_blank">IPST-SE</a></span> , <span style="color: purple;"><a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=466&category_id=35&keyword=POPBOT&option=com_virtuemart&Itemid=11#.U_rwDcDV8Uc" target="_blank">POP-XT</a></span> และ <span style="color: orange;"><a href="http://www.inex.co.th/inexstore/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=404&category_id=35&keyword=Creator&option=com_virtuemart&Itemid=11#.U_rwI8DV8Uc" target="_blank">Robo-Creator</a></span> จะมีฟังก์ชั่นสำหรับการสื่อสารอนุกรม ใช้ชื่อว่า UART โดยมีคำสั่งใช้งานบ่อยๆ ดังนี้<br />
1. <span style="color: orange;">uart1() </span> สำหรับส่งข้อความออกไป<br />
2. <span style="color: orange;">uart1_available()</span> สำหรับดูผลว่ามีข้อมูลถูกส่งเข้ามาหรือไม่<br />
3. <span style="color: orange;">uart1_getkey()</span> สำหรับอ่านค่าข้อมูลที่ถูกส่งมา<br />
<br />
<b><span style="color: #674ea7;">ตัวอย่างโปรแกรม</span></b> <i>รับค่าและแสดงผลที่ GLCD</i><br />
<hr />
<pre>#include <ipst.h>
<span style="color: #cc6600;">byte</span> x;
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>(){
<span style="color: #cc6600;">setTextSize</span>(2);
<span style="color: #cc6600;">glcd</span>(0,0,<span style="color: #006699;">"You Press:"</span>);
<span style="color: #cc6600;">setTextSize</span>(3);
}
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>loop</b></span>(){
<span style="color: #cc6600;">if</span>(<span style="color: #cc6600;">uart1_available</span>()){
x=<span style="color: #cc6600;">uart1_getkey</span>();
<span style="color: #cc6600;">if</span>(x==1){
<span style="color: #cc6600;">glcd</span>(1,0,<span style="color: #006699;">"ON "</span>);
}
<span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(x==0){
<span style="color: #cc6600;">glcd</span>(1,0,<span style="color: #006699;">"OFF"</span>);
}
}
}
</pre>
<hr />
<span style="color: purple;"><b>การทำงานของโปรแกรม</b></span><br />
ส่วน <span style="color: orange;">void setup()</span> แสดงข้อความ "You Press"<br />
ส่วน <span style="color: orange;">void loop()</span> จะวนตรวจสอบว่ามีข้อมูลถูกส่งมาหรือไม่ ถ้ามีให้เก็บค่าข้อมูลไว้ที่ตัวแปร x จากนั้นเอามาตรวจสอบว่าตัวแปร x มีค่าเท่ากับ 1 หรือไม่ ถ้าใช่แสดงข้อความ ON ที่หน้าจอ GLCD ถ้าตรวจสอบแล้วมีค่าเท่ากับ 0 ให้แสดงข้อความ OFF ที่หน้าจอ GLCD<br />
<span style="color: red;"><i>สำหรับการควบคุมกรณีที่เป็นหุ่นยนต์ สามารถปรับปลี่ยนชุดคำสั่งจาก GLCD เป็นการขับเคลื่อนมอเตอร์ได้</i></span><br />
<h4>
<span style="color: purple;"><br />
</span></h4>
<h3>
<span style="color: purple;">การทดสอบผลการทำงานของ App ที่เขียนขึ้น</span></h3>
หลังจากที่ฝั่ง IPST-SE ดาวน์โหลดโปรแกรมและพร้อมทำงานแล้ว จะเห็นโมดูล BlueStick มีไฟติดกะพริบสีแดง ซึ่งหมายถึงพร้อมรอรับการจับคู่ <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJeo2hArNabg-7X7plrk13h9DSnP7_fN-bjF7ik36Q2aP918ItddawKhgj_C2QJUbrH06fBhEx7A_wpEnvO45UZ8Vic9F7ICQVtogIl1pkM_4Y1rnozf_GsuLVBod8vByhHrkMUDDoImZZ/s1600/Blogger000.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJeo2hArNabg-7X7plrk13h9DSnP7_fN-bjF7ik36Q2aP918ItddawKhgj_C2QJUbrH06fBhEx7A_wpEnvO45UZ8Vic9F7ICQVtogIl1pkM_4Y1rnozf_GsuLVBod8vByhHrkMUDDoImZZ/s1600/Blogger000.jpg" height="467" width="640" /></a></div>
ถ้าเป็นการจับคู่ครั้งแรกจะต้อง ไปที่ ตั้งค่า > บลูทูธ ของแอนดรอยด์ก่อน จากนั้นกดค้นหา เพื่อหาโมดูล BlueStick ซึ่งอาจจะตั้งชื่อเป็น <b><span style="color: purple;">Linvor</span></b> หรือชื่ออื่นๆ (สามารถปรับตั้งชื่อได้ด้วยบอร์ด UCON-2200)<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS197DU9_Hg_rfyZQeWQorCUCKlalYbs9u6Cavq3y0FKvjoZguGSYc3tGXl5wRjmjAc8XuAzw5hQVC6FyF4mfHU5-1kCLJIvLRjtTDDL5ySL_tWI4fwI8D5DNVhdpJTZkSJXi-seI_ct_E/s1600/Bluetooth-Pair.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS197DU9_Hg_rfyZQeWQorCUCKlalYbs9u6Cavq3y0FKvjoZguGSYc3tGXl5wRjmjAc8XuAzw5hQVC6FyF4mfHU5-1kCLJIvLRjtTDDL5ySL_tWI4fwI8D5DNVhdpJTZkSJXi-seI_ct_E/s1600/Bluetooth-Pair.jpg" height="296" width="640" /></a></div>
ให้คลิกเลือก อย่างในตัวอย่างผู้เขียนตั้งชื่อว่า BlueRover0002 ให้เลือกเพื่อจับคู่จากนั้น ใส่ PIN ซึ่งในที่นี้เลือกใช้ 1234 เป็นค่ามาตรฐาน<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTg3LH5oxmvK2_ifT1m05dICSC4z2L2v078TZwwTQ2WbDLk6iDdHlNZ45xyWm3CQVzWXLpnn9FLPfp093w5yAPxo4YsJuZ6ROEMEm17vVXWd4dmIkMggocLSTg7FKmdPkH3g3XBOPJtoOL/s1600/Blogger003.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTg3LH5oxmvK2_ifT1m05dICSC4z2L2v078TZwwTQ2WbDLk6iDdHlNZ45xyWm3CQVzWXLpnn9FLPfp093w5yAPxo4YsJuZ6ROEMEm17vVXWd4dmIkMggocLSTg7FKmdPkH3g3XBOPJtoOL/s1600/Blogger003.jpg" height="280" width="400" /></a></div>
อุปกรณ์ BlueStick จะอยู่ในรายชื่อของอุปกรณ์ที่จับคู่แล้ว<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizoP4GyKRFz3zOm6H53EBMtjLE_CyW7oSh-xlZg1zrVJelejHJMtqQyL-odhyphenhyphenvByTGjyFOJ-ujRJdWj4V3aIzwd_agTWLhlkubR-kG8UKjro-cJPrERGMCp4risZL9yjlzNgG2bYFHO2ur/s1600/Bluetooth-Connect.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizoP4GyKRFz3zOm6H53EBMtjLE_CyW7oSh-xlZg1zrVJelejHJMtqQyL-odhyphenhyphenvByTGjyFOJ-ujRJdWj4V3aIzwd_agTWLhlkubR-kG8UKjro-cJPrERGMCp4risZL9yjlzNgG2bYFHO2ur/s1600/Bluetooth-Connect.jpg" height="499" width="640" /></a></div>
ที่หน้าจอหลักของโปรแกรม ซึ่งตอนนี้มีปุ่ม วางอยู่ 3 ปุ่ม ให้เลือกปุ่ม Connect เพื่อเปิดหน้าต่างเชื่อมต่อ จากนั้นเลือกอุปกรณ์ที่ต้องการเชื่อมต่อดังรูป<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfHyqmBXFyQ7-eUeUxedpOE2agqXXSRwFVFwvC0OWTqpcpFNeMjO3znhKATSmbUZGH2qCzWtJECDdUXlfh46gDdGKKdxMpx8YCdUH8zZyFU7zdfSdw7Bof6CRfoprb1LxJ18dbLAWAcpFi/s1600/IPST-BlueStick02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfHyqmBXFyQ7-eUeUxedpOE2agqXXSRwFVFwvC0OWTqpcpFNeMjO3znhKATSmbUZGH2qCzWtJECDdUXlfh46gDdGKKdxMpx8YCdUH8zZyFU7zdfSdw7Bof6CRfoprb1LxJ18dbLAWAcpFi/s1600/IPST-BlueStick02.jpg" height="488" width="640" /></a></div>
เมื่อเลือกแล้ว LED สีแดงที่ BlueStick จะติดค้าง เมื่อกดสวิตช์ ON ที่หน้าจอ ข้อความที่ GLCD จะแสดงข้อความ <span style="color: blue;">"ON" </span>ส่วนเมื่อกดสวิตช์ OFF ที่หน้าจอ ข้อความที่ GLCD จะแสดงข้อความ <span style="color: blue;">"OFF"</span><br />
<h4>
<span style="background-color: white;"><span style="color: purple;"><br />
</span></span></h4>
<div>
<span style="background-color: white;"><span style="color: purple;"><br />
</span></span></div>
<h3>
<hr />
<span style="background-color: white;"><span style="color: purple;"><br /></span></span></h3>
<h3>
<span style="background-color: white;"><span style="color: purple;">การติดตั้ง App ไปที่แอนดรอยด์</span></span></h3>
<div>
<span style="background-color: white;"><span style="color: purple;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGD8zAfjPlXRPWVHl9JtfPg4ZmlwrYrpuCaUwnQyXzRiuaVkGNiIWOaztkUkBrhGug8efsWR80sieL3zOSiZ-Vpsh8cCvDWnT7o5zJT8KpAWmyXyPlx7Mciyj2gbHRbIlt3N3H8XG1G4R-/s1600/Blog_45.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGD8zAfjPlXRPWVHl9JtfPg4ZmlwrYrpuCaUwnQyXzRiuaVkGNiIWOaztkUkBrhGug8efsWR80sieL3zOSiZ-Vpsh8cCvDWnT7o5zJT8KpAWmyXyPlx7Mciyj2gbHRbIlt3N3H8XG1G4R-/s1600/Blog_45.jpg" height="290" width="640" /></a></div>
<div>
เมื่อทดสอบโค้ดเป็นที่พอใจแล้ว ต้องการติดตั้ง App ไปยังแอนดรอยด์ให้ไปที่เมนู Build เลือกทำได้ 2 ทาง</div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwzHNsGypTBgV4Q1x7BbnaSaVow03eIj71QtnwQ8HZAaEkOvE1wr9AVYDRz1DgpCW6xNK_PEk4oJ0NPBTTTLozA-49Yo0EFanTSmvgCRDEEF9P4ocobTYVKFmlK5clCpTapFx7OpbWhK7o/s1600/Blog_39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwzHNsGypTBgV4Q1x7BbnaSaVow03eIj71QtnwQ8HZAaEkOvE1wr9AVYDRz1DgpCW6xNK_PEk4oJ0NPBTTTLozA-49Yo0EFanTSmvgCRDEEF9P4ocobTYVKFmlK5clCpTapFx7OpbWhK7o/s1600/Blog_39.jpg" height="400" width="323" /></a></div>
<div>
</div>
<div>
<b><span style="color: purple;">วิธีที่ 1</span></b> App (provide QR code for .apk) วิธีนี้จะมีหน้าต่างแสดง QR code สำหรับลิงก์ที่จะดาวน์โหลดไฟล์ .apk สำหรับการติดตั้งซึ่งจะมีอายุให้ใช้ได้ 2 ชั่วโมงเท่านั้น </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc2xfUM7nzhv37-ctrP30kaB_JlC9fPPMRYwq6KHfcWL7Zi7Ysm0nCLUVPft4_Q4qnDQbbAmA5sO6RBwneqQw96FjnXJrDjnHZJo7AwW0F3FZztIa9uHfLpoeV8r0yJ1DUFmonF7WTM0XP/s1600/Blog_38.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc2xfUM7nzhv37-ctrP30kaB_JlC9fPPMRYwq6KHfcWL7Zi7Ysm0nCLUVPft4_Q4qnDQbbAmA5sO6RBwneqQw96FjnXJrDjnHZJo7AwW0F3FZztIa9uHfLpoeV8r0yJ1DUFmonF7WTM0XP/s1600/Blog_38.jpg" height="400" width="240" /></a></div>
<div>
ถ้าใช้วิธีนี้ให้เปิดโปรแกรม MIT AI2 Companion เพื่อ scan QR code นี้เพื่อติดตั้งไฟล์ลงเครื่องได้ทันที<br />
<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjffsnfdpR4nwKg8icqKO120F9fvZgcTl4kgKQceFAx5XYjSpIQBF7UD8_T8prOP7VXarEL879IAiZFjI1b9GWbi-oOMjvxG4N1H5xO_WZY_3alv2g1wndQM6gpXJ9s88IchvhggJhkGCdt/s1600/Blog_42.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjffsnfdpR4nwKg8icqKO120F9fvZgcTl4kgKQceFAx5XYjSpIQBF7UD8_T8prOP7VXarEL879IAiZFjI1b9GWbi-oOMjvxG4N1H5xO_WZY_3alv2g1wndQM6gpXJ9s88IchvhggJhkGCdt/s1600/Blog_42.jpg" height="302" width="400" /></a></div>
<div>
<b><span style="color: purple;">วิธีที่ 2</span></b> เลือกบันทึกไฟล์ลงคอมพิวเตอร์ แล้วค่อยคัดลอกใส่เครื่องไปติดตั้ง ซึ่งอาจจะไปติดตั้งเครื่องอื่นๆก็ได้<br />
<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglCirC9tHqajuhKhJ501CvejNYO34qF9XvjQqMDh6ZS98b4Ky6naNXSWkTjF0LTwWG7J7OV9HDixTwYwxlqjBnx7hHMpuONEz3VZCqzXAxVSbxh9WjlHoR85k-uW19eOZD37L-RSruXeYu/s1600/Blog_37.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglCirC9tHqajuhKhJ501CvejNYO34qF9XvjQqMDh6ZS98b4Ky6naNXSWkTjF0LTwWG7J7OV9HDixTwYwxlqjBnx7hHMpuONEz3VZCqzXAxVSbxh9WjlHoR85k-uW19eOZD37L-RSruXeYu/s1600/Blog_37.jpg" height="400" width="240" /></a></div>
<div>
ซึ่งจากทั้งสองวิธีก็ใช้วิธีการติดตั้งเหมือนกับติดตั้ง App ทั่ว ๆไป</div>
<div>
ตอนนี้แอนดรอยด์ของเราก็มีโปรแกรมของเราเองให้ใช้งานเพื่อควบคุมได้แล้วครับ<br />
<span style="color: red;"><i><b>ตอนต่อไป ลองเขียนโปรแกรมเพื่อควบคุมหุ่นยนต์จริงๆ กันดูนะครับ</b></i></span></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Kritsada Jaiyenhttp://www.blogger.com/profile/01690227864183885183noreply@blogger.com0