tag:blogger.com,1999:blog-77667799346893650672024-03-14T02:57:23.596+08:00小p老師的教具工房Anonymoushttp://www.blogger.com/profile/06663891665217069839noreply@blogger.comBlogger175125tag:blogger.com,1999:blog-7766779934689365067.post-60933049949812976172018-11-12T20:17:00.002+08:002018-11-12T20:17:23.925+08:00DHTxx時脈相衝問題當要用DHTxx溫濕度計和其他有pulseIn這種指令的程式共用的時候,就會發現機器會當掉。測試很多次之後,發現是DHTxx的濕度程式應該會用到arduino裡面的某個timer,然後會跟pulseIn這種東西衝突。<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjwwBrMZD3kv5m4BgWl0aQWKRLnIfEd4EO0Kx_TnR-M49nlMGlQgzqOfaW93m6iNWHOKilWAu76ou_ZL87xD1ecczjQLWMLBXZiOliN84FpTA740wICKqhR-AQNqtdF8p8XrCyql_S9JI/s1600/51pYYvbCSeL._SX466_.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="466" data-original-width="466" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjwwBrMZD3kv5m4BgWl0aQWKRLnIfEd4EO0Kx_TnR-M49nlMGlQgzqOfaW93m6iNWHOKilWAu76ou_ZL87xD1ecczjQLWMLBXZiOliN84FpTA740wICKqhR-AQNqtdF8p8XrCyql_S9JI/s320/51pYYvbCSeL._SX466_.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<a name='more'></a>溫度沒問題,濕度就不行了。</div>
<div>
<br /></div>
<div>
那我手邊會有PulseIn這種程式的,有超音波感測和MH-Z14a CO2感測器這些。所以如果要讓CO2感測器和DHTxx濕度同時出現的話,就會衝突當掉...MH-Z14a這個CO2感測器還不錯。有PWM, TX-RX腳位,還有analog輸出(不過這個我搞不定)。我喜歡用PWM腳位,因為這樣可以少接一條線(對,就是這種原因而已)。我買的版本,左邊還幫焊接上了排針接腳,但是要連接排線其實也不容易直接給arduino用,我就自己在上面焊接針腳了。</div>
<div>
<br /></div>
<div>
咦?我以前就把這兩個放在一起過,沒有當掉啊。這是因為CO2的程式是這樣寫的...</div>
<div>
<br /></div>
<div>
<div>
<span style="background-color: yellow;"> do {</span></div>
<div>
<span style="background-color: yellow;"> th = pulseIn(CO2Pin, HIGH, 1004000) / 1000;</span></div>
<div>
<span style="background-color: yellow;"> tl = 1004 - th;</span></div>
<div>
<span style="background-color: yellow;"> ppm = 5000 * (th-2)/(th+tl-4);</span></div>
<div>
<span style="background-color: yellow;"> } while (th ==0);</span></div>
</div>
<div>
<span style="background-color: yellow;"><br /></span></div>
<div>
<br /></div>
<div>
<span style="background-color: white;">這段是do while迴圈</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">意思是,只要th是0,就在這個迴圈裡面跑,直到th不等於0的時候,才跳出迴圈。</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">如果是if,就不是這樣。if的程式是會一直往下掃過去的。if條件成立,就執行;不成立就不執行。但不管有沒有執行,都會往下走。while迴圈則是只要條件還成立,就會在迴圈裡面一直跑。</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">所以這個pulseIn不會和DHTxx的濕度那邊執行的時候相衝。</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">啊那不就好了?</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">BUT...就是這個 BUT....如果用這個程式的話,假設沒有接上MH-Z14a,程式就會在迴圈裡面卡住出不來了。</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">如果這樣寫:</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<div>
<span style="background-color: yellow;"> th = pulseIn(CO2Pin, HIGH, 1004000) / 1000;</span></div>
<div>
<span style="background-color: yellow;"> tl = 1004 - th;</span></div>
<div>
<span style="background-color: yellow;"> ppm = 5000 * (th-2)/(th+tl-4);</span></div>
</div>
<div>
<span style="background-color: yellow;"><br /></span></div>
<div>
也就是把那個while條件拿掉,就讓它跑數據出來的話,就會跟DHTxx 衝突了。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
所以怎麼辦呢?我希望如果有裝CO2 sensor的時候,機器正常運作。沒有裝的時候也不要當掉的話,我就幹了一件事情,把程式改成這樣</div>
<div>
<br /></div>
<div>
<div>
<span style="background-color: yellow;"> do {</span></div>
<div>
<span style="background-color: yellow;"> th = pulseIn(CO2Pin, HIGH, 1004000) / 1000;</span></div>
<div>
<span style="background-color: yellow;"> tl = 1004 - th;</span></div>
<div>
<span style="background-color: yellow;"> ppm = 5000 * (th-2)/(th+tl-4);</span></div>
<div>
<span style="background-color: yellow;"> count=count+1; </span></div>
<div>
<span style="background-color: yellow;"> if (count > 7){ </span></div>
<div>
<span style="background-color: yellow;"> th =2;</span></div>
<div>
<span style="background-color: yellow;"> count =0;</span></div>
<div>
<span style="background-color: yellow;"> }</span></div>
<div>
<span style="background-color: yellow;"> } while (th ==0);</span></div>
</div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
我加了一段count去計數,如果從1數到7,th還是等於0的話(通常這就表示沒有接機器啦),那就強迫th=2讓ppm=0,然後就可以跳出迴圈了,然後順便把count歸零。這樣就可以正常運作啦...</div>
<div>
<br /></div>
<div>
<br /></div>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-2640900578728533532018-09-12T15:55:00.003+08:002018-09-12T18:54:53.338+08:00破掉的伽利略溫度計忘記是去年還是前年摔破的了,跑出來一堆聞起來像是汽油還是煤油的液體。總之是礦物油類的東西吧。一時之間,想說要找到適當密度的液體把伽利略溫度計復活還蠻不容易的,就放著沒理它。<br />
<br />
剛剛整理教室的時候(對啦!我會整理...一下)看到了裝在燒杯裡面的,伽利略溫度計的內容物,剛好也在整理酒精。就想:酒精可不可以作為裡面的液體呢?會不會剛好密度很適當呢?加下去,結果沒反應,全部沉底!表示酒精密度太小了!<br />
<br />
怎麼辦呢?怎麼調整酒精密度讓液體密度增加呢?啊~可以加水!水的密度大,又和酒精完全互溶。所以我只要慢慢的把水加進去,調到該往上跑的往上跑就好了!<br />
<br />
先把東西都丟到燒杯裡面,然後加酒精進去。然後再用滴管慢慢加水進去...加的過程很療癒喔,裡面的小朋友會晃啊晃的,一副好像快要飛起來又沒有飛起來的狀態。下面這影片超無聊的啊,就是看一堆好像快要浮起來的玻璃球在液體裡面晃個快三分鐘這樣<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/u7Z_FdZUvEY/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/u7Z_FdZUvEY?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
調好密度後,找個寶特瓶裝進去就行了<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZTF25xtI38uRqE7gHiF1gec4CqK0eHdRzoHcupXWNtHTJ-BaRjBHz_O700oWdxNI8yRiWh3JKXXdt5cpGFIX7gz7sxljKxdzD_KLAZC-pSMOyrt5bhb_22yhbUG4yi6w5ZtqXly7sz_8/s1600/IMG_3504.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZTF25xtI38uRqE7gHiF1gec4CqK0eHdRzoHcupXWNtHTJ-BaRjBHz_O700oWdxNI8yRiWh3JKXXdt5cpGFIX7gz7sxljKxdzD_KLAZC-pSMOyrt5bhb_22yhbUG4yi6w5ZtqXly7sz_8/s400/IMG_3504.JPG" width="300" /></a></div>
<br />
<br />
其實這樣只有校正一個點,只有一個溫度是準的,其他溫度就還不知道準不準。jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-17363329396684510412018-07-30T14:41:00.001+08:002018-07-30T14:41:17.961+08:00arduino 雷達<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/3dwgr0YoZGk/0.jpg" src="https://www.youtube.com/embed/3dwgr0YoZGk?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<br />
用JECTOR 9454板,結合底板和一些樂高。將HC-SR04超音波模組和SG90伺服馬達,加上用PLX-daq即時取得數據輸入EXCEL,再以雷達圖畫出來,就變成雷達了。(距離只有50cm的雷達啊啊啊)<br />
<br />
數據取得不能太快,excel取數據加畫圖,不夠快,吞不下去會當掉。設定500ms取一個數據,4度取一個數據,從10度~170度一輪共取40個數據。jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-31440130638673014132018-07-30T14:37:00.000+08:002018-07-30T14:37:04.104+08:00新玩具JECTOR 9453樂高相容小車<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKTgLCKhYhpFGgtBDkRiuuPvud11WMy5nnxBIGFHg-s0VFC9uAu61C5X8c-PK4Yo4GsrzFE9zPD-cVpu9blNaCardc11V9EddFjDVAGHfuxKn7jO6S_sKa6yoz8N7UiptylejNLWrYzOs/s1600/37689807_10214437154154041_1516901166691123200_n.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="902" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKTgLCKhYhpFGgtBDkRiuuPvud11WMy5nnxBIGFHg-s0VFC9uAu61C5X8c-PK4Yo4GsrzFE9zPD-cVpu9blNaCardc11V9EddFjDVAGHfuxKn7jO6S_sKa6yoz8N7UiptylejNLWrYzOs/s640/37689807_10214437154154041_1516901166691123200_n.png" width="640" /></a></div>
<br />
<br />
這塊板子的特點大概就是可以跟樂高結合,還有內建L293D晶片,可以驅動兩個馬達。對於想做車子的程式教育來說,算是很方便。<br />
<br />
底子是arduino nano,多了兩個類比腳位,所以我也很想拿來試試看能不能做出更好的實驗偵測儀器。搭配樂高積木,取得更方便和更多用途的方式。<br />
<br />
外包裝<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBK3hKoUfykYGwgGLML7r3kaNr6xA4OmWhWgDpjL3wTCTeJijLEWMimDtecrw6fZrF2tsa5gTK1dou6dBeiVGM1vILlPqvVcqLJAaOwktFOLwwv6l1bs3tgA2305mMFiAjdlBpEEnsRfY/s1600/IMG_3046.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBK3hKoUfykYGwgGLML7r3kaNr6xA4OmWhWgDpjL3wTCTeJijLEWMimDtecrw6fZrF2tsa5gTK1dou6dBeiVGM1vILlPqvVcqLJAaOwktFOLwwv6l1bs3tgA2305mMFiAjdlBpEEnsRfY/s320/IMG_3046.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
包含的零件們,馬達減速齒輪部分,是金屬的,感覺不錯</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKMGpM3NEL4y0XWqKOH3U_-NErm0-PH8ugVg3izHZdzJZ-EnO39JVN_78SfecxFG_b1I1vfQyjFrG8dAv-wkCaWbFaAxt6oSAE9WRsBpsttBA4N8qr6IrDV9eZbFlRZMa1efZPPO1_J_U/s1600/IMG_3047.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKMGpM3NEL4y0XWqKOH3U_-NErm0-PH8ugVg3izHZdzJZ-EnO39JVN_78SfecxFG_b1I1vfQyjFrG8dAv-wkCaWbFaAxt6oSAE9WRsBpsttBA4N8qr6IrDV9eZbFlRZMa1efZPPO1_J_U/s320/IMG_3047.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
馬達組裝沒啥難度<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqAeKoVS3PN9rOU9DJwBPvJeu4SqukVsxGRPn_u1jrD8MQRYJxoBD-32IbOG_Edytyi20ycxv8jmOARN3v_BwyGsbxfU3prQzFoz0PGtqZQyHsGSPrm3T4dNlp9Pj-QTedkvb-S1r0J0I/s1600/IMG_3048.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqAeKoVS3PN9rOU9DJwBPvJeu4SqukVsxGRPn_u1jrD8MQRYJxoBD-32IbOG_Edytyi20ycxv8jmOARN3v_BwyGsbxfU3prQzFoz0PGtqZQyHsGSPrm3T4dNlp9Pj-QTedkvb-S1r0J0I/s320/IMG_3048.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
跟同事借了樂高,看看能不能把一些旋鈕、感測器方便的裝置上去變成面板。結果還行~</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrMiKZbm-c-iwLL00_KZK0ajDDi6wxW8UU2zjmUly0wiio2tM_ZgOfQbml3N7UHd4ZHcTV_CuKsEmXSf-qw0bq98bJtyZF7Yqk60769PoUvszg4K0_SgGlb2R1TBbZ5jQOJwaX7D03C58/s1600/IMG_0737.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrMiKZbm-c-iwLL00_KZK0ajDDi6wxW8UU2zjmUly0wiio2tM_ZgOfQbml3N7UHd4ZHcTV_CuKsEmXSf-qw0bq98bJtyZF7Yqk60769PoUvszg4K0_SgGlb2R1TBbZ5jQOJwaX7D03C58/s320/IMG_0737.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeX4FGG_ZBtT0_DfXuelnF0J5ghoa53C4V0EiGdCOVVScrePN0UE006PNuH_vyzgaMqq5nH5n0gRyU4R8H50pvbw2v3ljyc9KiR0hdVzzph-6qmn8a7lJ9kdo5nmUBYovYzHesYzkhac/s1600/IMG_0738.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeX4FGG_ZBtT0_DfXuelnF0J5ghoa53C4V0EiGdCOVVScrePN0UE006PNuH_vyzgaMqq5nH5n0gRyU4R8H50pvbw2v3ljyc9KiR0hdVzzph-6qmn8a7lJ9kdo5nmUBYovYzHesYzkhac/s320/IMG_0738.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
麻煩的地方仍然在於接線,都用杜邦線,線的用量還是太大了</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrBD_muyl8QkINui252yeraSF1N5Blx5sreMQ9sn_1Eo0L98FCSqwH8_BMOrlUjdIYCRWKSZXVX2t_fM8i7LilkaNCX2FD6NmKtStFMbdOg_2Kx958GCRcZWiawSqrhVsgH4mSWX55NyQ/s1600/IMG_0739.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrBD_muyl8QkINui252yeraSF1N5Blx5sreMQ9sn_1Eo0L98FCSqwH8_BMOrlUjdIYCRWKSZXVX2t_fM8i7LilkaNCX2FD6NmKtStFMbdOg_2Kx958GCRcZWiawSqrhVsgH4mSWX55NyQ/s320/IMG_0739.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilCwoi1DNn2SeT58KZCEbV14zfsn6L9_-85SGof7kAskKA3Frbux5VJB5kDV9yxGVWBKJOwDBzFUY7COlEq9M1j8aPpM9JY3fpltJAf-IEluAonzFF2Itk423m5CMrxW8W42vel8voGy4/s1600/IMG_0740.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilCwoi1DNn2SeT58KZCEbV14zfsn6L9_-85SGof7kAskKA3Frbux5VJB5kDV9yxGVWBKJOwDBzFUY7COlEq9M1j8aPpM9JY3fpltJAf-IEluAonzFF2Itk423m5CMrxW8W42vel8voGy4/s320/IMG_0740.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-38561313146024419802017-12-29T19:57:00.003+08:002017-12-29T20:06:37.281+08:00建立360度旋轉物品的影像 之前看到有一款,可以將物品放在一個平台上,平台會旋轉同時讓相機拍照。然後再把相片串起來變成可以360旋轉的影像。當時就想,這玩意兒應該不難作。昨天終於下定決心要把這個東西做出來。<br />
<br />
要讓東西旋轉很簡單,就用伺服馬達就行,但是SG90伺服馬達只能轉180度,如果要360度的話就要連續旋轉伺服馬達(SG35)。不過這個東西要控角度很麻煩,也是讓我花最多時間的地方。<br />
<br />
要讓手機拍照的話,就要用手機快門線來控制了。原理部分,<a href="http://gsyan888.blogspot.tw/2014/09/diy-headset-shutter.html" target="_blank">雄哥說的很清楚</a>,這邊不用重複了。不過因為我有買便宜的自拍棒,放著好幾年都沒用(根本沒在自拍啊啊啊啊啊),所以就決定拆了自拍棒的快門線來改。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAajwXIl_oKGUqqkuN6yMufVkYRTtar7Rfg-_AFDAvhPeHg7ghuD_yFN9jb3QUTl-s5CKaQw3XIGYHhfuxHkR1S2jv1H9Z02KhDvD5cv8JsvgRPIlIW0S1l7bxONMYgV64uvUk9Yq1bpw/s1600/IMG_0338.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAajwXIl_oKGUqqkuN6yMufVkYRTtar7Rfg-_AFDAvhPeHg7ghuD_yFN9jb3QUTl-s5CKaQw3XIGYHhfuxHkR1S2jv1H9Z02KhDvD5cv8JsvgRPIlIW0S1l7bxONMYgV64uvUk9Yq1bpw/s400/IMG_0338.JPG" width="300" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<a name='more'></a><div style="text-align: left;">
這玩意兒就是自拍棒,把3.5mm的耳機頭插入手機耳機孔之後,按下按鈕就可以拍照。按鈕的功能,就是把其中兩個金屬接點連通,所以我只要用arduino控制繼電器,用繼電器控制金屬接點是否連通就可以控制拍照了。</div>
<br />
<br />
<br />
那麼接下來就先剝皮~不是太貴的東西,很容易拆!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP6hM2KKvbWdZF_PT6-ahSKQss14jvpWDpD0ADQ5NeQp8Kryiaoca9-qbuL0uJSlfg5IsDG6R23yVgPJk8kLVykoRSDr0W0dJmsPd1dQLruogtUeK6HxHw5JmMvRhFKNH3CpLcXYQjfYI/s1600/IMG_0339.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP6hM2KKvbWdZF_PT6-ahSKQss14jvpWDpD0ADQ5NeQp8Kryiaoca9-qbuL0uJSlfg5IsDG6R23yVgPJk8kLVykoRSDr0W0dJmsPd1dQLruogtUeK6HxHw5JmMvRhFKNH3CpLcXYQjfYI/s400/IMG_0339.JPG" width="300" /></a></div>
<br />
線拔下來之後(拆斷了,再焊回去)就長這樣子,右邊的電路板中間圓形金色的部分就是按鈕。其實是一個有彈性的圓形金屬片,按下去金屬片就接觸下面的接點。放手之後就會彈回來這樣。<br />
<br />
圓形金屬片周圍有四個裸露的接點,上下一接通,手機就拍照。所以我只要把兩個接點再各自焊上一條線和繼電器連接就行了。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFe_08gdiAtPiAi7Z8KKbsSoGOl34DVfBzlrYpJmcrEooYDCI3cFo5uhLeIF3M9j4ELKKR9H3waTAlls_Be4Kawr8CKKpOwwAnqAGCBvFOhF7AIyM8i-5GRtq_CaT69GPu1eNTX0R9vyA/s1600/IMG_0358.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFe_08gdiAtPiAi7Z8KKbsSoGOl34DVfBzlrYpJmcrEooYDCI3cFo5uhLeIF3M9j4ELKKR9H3waTAlls_Be4Kawr8CKKpOwwAnqAGCBvFOhF7AIyM8i-5GRtq_CaT69GPu1eNTX0R9vyA/s400/IMG_0358.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXo-MoQTTLh89o6FpxjEL_OXMk1RcVdBBmiiR6dng_3UW1rZ4dM2VyqAKm_7y82Y36lAvR0JNz_j_iN6jSyVWlsjkSh_gKDcBUG_XZ319cs4MqqGyxRRdLlmW0tRK3Y5EiTZIB3MeeDSE/s1600/IMG_0359.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXo-MoQTTLh89o6FpxjEL_OXMk1RcVdBBmiiR6dng_3UW1rZ4dM2VyqAKm_7y82Y36lAvR0JNz_j_iN6jSyVWlsjkSh_gKDcBUG_XZ319cs4MqqGyxRRdLlmW0tRK3Y5EiTZIB3MeeDSE/s400/IMG_0359.JPG" width="400" /></a></div>
<br />
<br />
焊好了,焊工很爛,這種小小的接點和不太愛吃焊錫的線真是辛苦我了。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpYsuIm3-lfbk6KmZxjhs46940UVFoTuo2GinEGUH4hb6V7-SGjYIcKXg1DLORDWxNHLwk3EUjWDXxPq7QTNZZRyoaiuiIqGWvuo1NLDlxd440muQtQhvrfuCIheXx8xmBkV-5ndpojww/s1600/IMG_0371.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpYsuIm3-lfbk6KmZxjhs46940UVFoTuo2GinEGUH4hb6V7-SGjYIcKXg1DLORDWxNHLwk3EUjWDXxPq7QTNZZRyoaiuiIqGWvuo1NLDlxd440muQtQhvrfuCIheXx8xmBkV-5ndpojww/s640/IMG_0371.JPG" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
實際的外觀和運作的效果就來看影片好了</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/ctv2Etv2oK8/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/ctv2Etv2oK8?feature=player_embedded" width="320"></iframe></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
接著利用<a href="http://webrotate360.com/" target="_blank">webrotate360</a>的程式來製作360相片。實際製作之前最好把照片縮圖一下,不然電腦loading很大,跑不動。</div>
<div style="text-align: left;">
<br />
<br />
最後做出來的gif檔如下圖。webrotate360還可以把檔案輸出,變成互動式的360旋轉檔案。也就是可以在電腦上用滑鼠或平板上用手指控制旋轉方向。我有在Windows的電腦上,用IE看到preview的檔案,但還不知道怎樣上傳到網路上,或是嵌入在blogger裡面。<br />
<br />
調校的過程中,最花時間的是調整伺服馬達的轉速和拍攝張數。也就是以某個轉速到底轉一圈會停多少次,然後多少張畫面拍起來才有連續的效果。這些都花了不少時間測試。</div>
<div style="height: 0; padding-bottom: 75%; position: relative; width: 100%;">
<iframe allowfullscreen="" class="giphy-embed" frameborder="0" height="100%" src="https://giphy.com/embed/xULW8Dc4e8tpOThPZ6" style="position: absolute;" width="100%"></iframe></div>
<a href="https://giphy.com/gifs/xULW8Dc4e8tpOThPZ6">via GIPHY</a><br />
<div style="text-align: left;">
<br /></div>
<br />
<br />
以下是程式碼<br />
//連續旋轉伺服馬達製作360 camera with iPhone<br />
<br />
<br />
#include <LiquidCrystal_I2C.h><br />
// Set the pins on the I2C chip used for LCD connections:<br />
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol<br />
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址<br />
//以上是驅動LCD的部分<br />
<br />
#include <Servo.h><br />
#define relayPin 8<br />
#define starter 2<br />
int speeder;<br />
int statue=0;<br />
int photos=0;<br />
int VR;<br />
int relayStatue;<br />
Servo servoH;<br />
int s=0;<br />
int time;<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
lcd.begin(16, 2);<br />
pinMode (relayPin, OUTPUT);<br />
pinMode (starter, INPUT);<br />
servoH.attach(7);<br />
digitalWrite(relayPin,HIGH);<br />
lcd.setCursor(0,0);<br />
lcd.print("press 2 to start");<br />
}<br />
<br />
void loop()<br />
{<br />
speeder = map(VR, 0, 1024, 1, 4);<br />
lcd.setCursor(0,1);<br />
lcd.print("speed=");<br />
lcd.print(speeder);<br />
VR=analogRead(0);<br />
float speeder2;<br />
Serial.print(speeder2);<br />
Serial.print(",");<br />
Serial.print(photos);<br />
Serial.print(",");<br />
Serial.println(s);<br />
if(speeder ==1){<br />
speeder2 = 97;<br />
photos=240;<br />
}<br />
<br />
if(speeder ==2){<br />
speeder2 = 98;<br />
photos=91;<br />
}<br />
<br />
if(speeder ==3){<br />
speeder2 = 100;<br />
photos=35;<br />
}<br />
speeder=analogRead(0)/128;<br />
if (digitalRead(starter) == 0){<br />
statue = statue +1;<br />
delay(300);<br />
}<br />
<br />
if (statue ==1){<br />
if(s < photos) {<br />
servoH.write(speeder2);<br />
digitalWrite(relayPin, HIGH);<br />
delay(200);<br />
servoH.write(95);<br />
digitalWrite(relayPin, LOW);<br />
lcd.clear();<br />
lcd.setCursor(0,0);<br />
lcd.print("photos left=");<br />
lcd.print(photos-s);<br />
delay(800);<br />
s=s+1;<br />
}<br />
else {<br />
servoH.write(95);<br />
digitalWrite(relayPin,HIGH);<br />
lcd.clear();<br />
lcd.print("completed");<br />
delay(1000);<br />
statue=0;<br />
s=0;<br />
photos=0;<br />
lcd.setCursor(0,0);<br />
lcd.print("press 2 to start");<br />
}<br />
}<br />
if (statue == 2){<br />
servoH.write(95);<br />
statue = 0;<br />
s=0;<br />
photos=0;<br />
}<br />
}<br />
<div>
<br /></div>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-59514897813884433792017-12-21T21:35:00.001+08:002017-12-21T21:35:23.327+08:00PLX-DAQ 二代!!!讓excel直接抓取arduino數據這大概是最近最令我振奮的消息了,PLX-DAQ終於出了v.2!<br />
<a href="http://forum.arduino.cc/index.php?topic=437398.0">http://forum.arduino.cc/index.php?topic=437398.0</a><br />
<br />
<br />
這是啥米玩意兒呢?應該可以說是EXCEL的外掛,按下連結按鈕,就會抓arduino那邊輸出的資料,然後直接丟到excel裡面。當然也就可以直接讓excel把圖畫出來囉!<br />
<br />
下載最新版本( V2.11)之後,解壓縮就會得到一個資料夾,裡面有幾個檔案<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig6wa4zRvsX8wStrhp1zCYPh98h8aEsM-zymRL3NP6xNSIYrE7-HD8vJAp4ZVP76yaG9ITUexEusdSyrttn_aF1Z5rtQZkgcPOV9dX1cFotqKvQ0z4rZlPA8RGkgX7yWTVpAYrYLyaKUc/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-12-21+%25E4%25B8%258B%25E5%258D%25888.27.52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="548" data-original-width="882" height="395" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig6wa4zRvsX8wStrhp1zCYPh98h8aEsM-zymRL3NP6xNSIYrE7-HD8vJAp4ZVP76yaG9ITUexEusdSyrttn_aF1Z5rtQZkgcPOV9dX1cFotqKvQ0z4rZlPA8RGkgX7yWTVpAYrYLyaKUc/s640/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-12-21+%25E4%25B8%258B%25E5%258D%25888.27.52.png" width="640" /></a></div>
<br />
<a name='more'></a>不用安裝,直接執行那個excel的檔案就可以了。<br />
<a href="https://www.blogger.com/goog_1335756447"><br /></a>
接著請看下面這個網址。這篇裡面有V2.11可以下載之外,還有一個beginner's guide可以看。裡面有二代的功能說明。<br />
<br />
<a href="http://forum.arduino.cc/index.php?topic=437398.msg3251256#msg3251256">http://forum.arduino.cc/index.php?topic=437398.msg3251256#msg3251256</a><br />
<br />
這邊簡單介紹EXCEL部份的介面操作方式和功能與arduino端對應要怎麼寫程式才能讓PLX-DAQ運作。<br />
<br />
先看一下EXCEL介面和運作起來的樣子,打開檔案之後,會跑出一個正常的EXCEL表單和一個操作介面<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2qJPxnOF6fe3Z9gBi-q0qznjUEe0XAbdiTQWE7ai1DTFwIoqc3TIc6wpVry3h_qnA-XEzdSZIAfhXzhyphenhyphen0HysfKCjY6XtNsVW7D2noQsnfS8fasLR6KNcp8FItUxZMy0hsbHqlMyiurzA/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-12-21+%25E4%25B8%258B%25E5%258D%25888.51.27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="353" data-original-width="334" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2qJPxnOF6fe3Z9gBi-q0qznjUEe0XAbdiTQWE7ai1DTFwIoqc3TIc6wpVry3h_qnA-XEzdSZIAfhXzhyphenhyphen0HysfKCjY6XtNsVW7D2noQsnfS8fasLR6KNcp8FItUxZMy0hsbHqlMyiurzA/s640/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-12-21+%25E4%25B8%258B%25E5%258D%25888.51.27.png" width="604" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
從左上開始,看到settings下面,先選擇arduino連接的port,以我今天使用的例子來說,是COM4,所以就選擇4。然後包率設定是9600。(據guide裡面說,包率太高可能在某些功能上會有問題,所以還是就設定9600就好)</div>
<br />
接下來看右邊有幾個核取方塊,上面的先不管。看下面的Reset on connect。就是在連結arduino的時候,把arduino重置。Reset timer,就是把時間歸零;下面的Clear Columns就是把數據資料清除。<br />
<br />
要開始連接arduino收數據,當然就是按下connect囉,效果如下影片。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/WY-y2yiU4gc/0.jpg" src="https://www.youtube.com/embed/WY-y2yiU4gc?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<br />
基本上這就已經達到我的需求了,再來看看Arduino端要怎麼寫才能和PLX-DAQ溝通。在PLX-DAQ中,都是用Serial.println的指令來溝通的,也就是它去看你從Serial.println那邊輸出什麼東西,當它讀到這些訊息,就會做出對應的動作。<br />
<br />
例如:<br />
1.我要在EXCEL表單最前面建立資料欄位名稱的話我就要在Arduino端寫一段:<span lang="EN-US" style="text-indent: -18pt;"><span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><br />
<span lang="EN-US" style="color: #31849b; font-family: Consolas; text-indent: -18pt;"><br /></span>
<span lang="EN-US" style="color: #31849b; font-family: Consolas; text-indent: -18pt;">Serial.println(“LABEL,1st Column,2nd
Column,Third one!”);</span><br />
<span lang="EN-US" style="color: #31849b; font-family: Consolas; text-indent: -18pt;"><br /></span>
PLX-DAQ看到"LABEL"之後,就會把後面的文字抓起來變成欄位資料。多個欄位,就用逗點分隔開來。假設我要他紀錄兩個溫度計的數值,要有兩個溫度的欄位,就要這樣寫:<br />
<br />
Serial.println("LABEL, T1, T2");<br />
<br />
2.假設我想把整張工作表都清空,連同欄位資訊都清空的話:<br />
<br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>10 pt</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>ZH-TW</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="380">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 9"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:表格內文;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Calibri;}
</style>
<![endif]-->
<!--StartFragment--><span lang="EN-US" style="color: #31849b; font-family: Consolas; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-bidi-language: AR-SA; mso-fareast-font-family: 新細明體; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-fareast;">Serial.println(“CLEARSHEET”);</span><!--EndFragment--> 代表要把整張工作表清空,連同欄位名稱一起 <br />
<br />
3.如果想把數值資料送到EXCEL的工作表的話(當然這就是最主要的功能):<br />
<br />
就要先有一行<br />
<br />
Serial.print("DATA");<br />
<br />
這行之後Serial.print出來的數值都會變成工作表裡面的資料,例如:<br />
<br />
Serial.print("DATA, TIMER,");<br />
Serial.print(T1);<br />
Serial.print(",");<br />
Serial.println(T2);<br />
<br />
DATA這個字串後面接了幾個東西,一個是TIMER字串,然後是逗點,然後是T1這個變數,然後是逗點,再來是T2這個字串<br />
<br />
PLX-DAQ看到DATA之後,就開始抓後面的東西丟到EXCEL裡面。首先抓到的是TIMER,這是PLX-DAQ自己內建的時間,相當好用。然後就是抓T1這個溫度和T2這個溫度丟到EXCEL裡面,接著是T2...<br />
<br />
<br />
PLX-DAQ裡面,有幾個幫你計算時間的方式,都不錯。首先上面的TIMER就是碼表,會幫你抓的時間,就是從開始執行Arduino為起點,每收到一個數據,就紀錄時間長度。<br />
<br />
另外還有兩個計算時間的方式,一個是DATE, 一個是TIME。DATE是抓電腦的日期,TIME是抓電腦的時間(時、分、秒)<br />
<br />
新版的還有一些功能我還沒弄懂,再持續研究啦jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com8tag:blogger.com,1999:blog-7766779934689365067.post-10103977208173317232017-12-18T21:32:00.003+08:002017-12-18T21:41:39.121+08:00人體反應時間測量裝置傳統生物課測量反應時間,是用接尺的反應來作實驗的。但這個接尺反應,只能測量視覺的反應時間,聽覺和觸覺的反應時間就無法測量。<br />
<br />
用Arduino + Ywrobot EMS,可以做出視覺、聽覺、觸覺的反應時間測量裝置。效果和說明如下影片所示。<br />
<br />
如果單純視覺的話,可以google "reaction time",就可以找到很多可以用的網頁服務甚至app喔<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyjKNWY6QV7Q-wO-m8aP6PwHWnZw05k6CSYZVPRxq5oeUphC8un1tehSfZyVv51jcIuTY6HKFcBLxd1YWgMG9G7ZSYtzBA6Kl9WXfZ_giiA-PfovcGbL2ysuEgbJ9d61j2oOFDPd9gPlU/s1600/IMG_0430.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyjKNWY6QV7Q-wO-m8aP6PwHWnZw05k6CSYZVPRxq5oeUphC8un1tehSfZyVv51jcIuTY6HKFcBLxd1YWgMG9G7ZSYtzBA6Kl9WXfZ_giiA-PfovcGbL2ysuEgbJ9d61j2oOFDPd9gPlU/s400/IMG_0430.PNG" width="300" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/rNM2p_W1nIM/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/rNM2p_W1nIM?feature=player_embedded" width="320"></iframe></div>
<br />
<a name='more'></a><br />
<br />
但是裝置自己會有反應時間,所以第一次按下D2開始之後,先持續按著D3不放,測量反應時間=0的情況。這時會發現,其實還是有一點時間差。以我的機器來說,是大約27ms。所以就在輸出反應時間的時候,扣掉27ms就行了<br />
<br />
另外一個問題是:伺服馬達轉動會有聲音,所以無法避掉聲音的干擾。不過可能可以讓學生戴耳機聽音樂避掉。只是又多了其他變因就是了<br />
<br />
程式碼和說明如下:<br />
<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
#include <LiquidCrystal_I2C.h></blockquote>
<blockquote class="tr_bq">
// Set the pins on the I2C chip used for LCD connections:</blockquote>
<blockquote class="tr_bq">
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol</blockquote>
<blockquote class="tr_bq">
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址</blockquote>
<blockquote class="tr_bq">
//以上是驅動LCD的部分</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
#include <Servo.h> //這是伺服馬達要用的library</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
#define pushbutton1 2 //設定腳位們</blockquote>
<blockquote class="tr_bq">
#define pushbutton2 3</blockquote>
<blockquote class="tr_bq">
#define buzzer 5</blockquote>
<blockquote class="tr_bq">
#define LED1 12</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
unsigned long time; //計算時間需要的東西</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
int time1; //設定變數們</blockquote>
<blockquote class="tr_bq">
int time2;</blockquote>
<blockquote class="tr_bq">
int reactiontime;</blockquote>
<blockquote class="tr_bq">
int starttime;</blockquote>
<blockquote class="tr_bq">
int start;</blockquote>
<blockquote class="tr_bq">
int reaction;</blockquote>
<blockquote class="tr_bq">
int VR;</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
Servo myservo1; //伺服馬達取個名字叫做myservo1</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
void setup(){</blockquote>
<blockquote class="tr_bq">
lcd.begin(16,2); </blockquote>
<blockquote class="tr_bq">
lcd.clear();</blockquote>
<blockquote class="tr_bq">
lcd.print("press 2 to start");</blockquote>
<blockquote class="tr_bq">
Serial.begin(9600);</blockquote>
<blockquote class="tr_bq">
pinMode(2, INPUT);</blockquote>
<blockquote class="tr_bq">
pinMode(3, INPUT);</blockquote>
<blockquote class="tr_bq">
pinMode(12,OUTPUT);</blockquote>
<blockquote class="tr_bq">
pinMode(5, OUTPUT);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
void loop(){</blockquote>
<blockquote class="tr_bq">
time = millis(); //時間用milli second當單位</blockquote>
<blockquote class="tr_bq">
myservo1.attach(7, 500, 2400); //設定伺服馬達的腳位</blockquote>
<blockquote class="tr_bq">
</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
VR= analogRead(0);</blockquote>
<blockquote class="tr_bq">
VR= map (VR,0,1024,1,4); //設定可變電阻VR控制訊息模式,這樣VR數字會從1~3變化</blockquote>
<blockquote class="tr_bq">
Serial.print(VR);</blockquote>
<blockquote class="tr_bq">
Serial.print(",");</blockquote>
<blockquote class="tr_bq">
Serial.println(analogRead(0));</blockquote>
<blockquote class="tr_bq">
if (VR ==1){</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(4,1);</blockquote>
<blockquote class="tr_bq">
lcd.print("hearing mode ");</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
</blockquote>
<blockquote class="tr_bq">
if (VR ==2){</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(4,1);</blockquote>
<blockquote class="tr_bq">
lcd.print("visual mode ");</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
</blockquote>
<blockquote class="tr_bq">
if(VR ==3){</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(4,1);</blockquote>
<blockquote class="tr_bq">
lcd.print("tactile mode ");</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
start = digitalRead(2); //數位二號按鈕按下去就開始</blockquote>
<blockquote class="tr_bq">
reaction = digitalRead(3); //數位三號按鈕按下去就停止計算時間</blockquote>
<blockquote class="tr_bq">
</blockquote>
<blockquote class="tr_bq">
if (start == 0){</blockquote>
<blockquote class="tr_bq">
delay(300);</blockquote>
<blockquote class="tr_bq">
starttime = random(3000,10000); //等待時間設定為從3s~10s之間</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
lcd.clear(); //讓LCD螢幕倒數三秒之後,顯示START</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(0,0);</blockquote>
<blockquote class="tr_bq">
lcd.print("3");</blockquote>
<blockquote class="tr_bq">
delay(1000);</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(0,0);</blockquote>
<blockquote class="tr_bq">
lcd.print("2");</blockquote>
<blockquote class="tr_bq">
delay(1000);</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(0,0);</blockquote>
<blockquote class="tr_bq">
lcd.print("1");</blockquote>
<blockquote class="tr_bq">
delay(1000);</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(0,0);</blockquote>
<blockquote class="tr_bq">
lcd.print("START");</blockquote>
<blockquote class="tr_bq">
delay(starttime); //等待starttime的長度之後,判斷模式發出訊號</blockquote>
<blockquote class="tr_bq">
time1= time; //抓啟始時間點</blockquote>
<blockquote class="tr_bq">
if (VR ==1){ //VR較小時,送出聲音訊號</blockquote>
<blockquote class="tr_bq">
tone(5,200);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
if (VR ==2){ //VR中間時,送出光亮訊號</blockquote>
<blockquote class="tr_bq">
digitalWrite(12,HIGH);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
if (VR ==3){ //VR較大時,讓伺服馬達振動</blockquote>
<blockquote class="tr_bq">
myservo1.write(120);</blockquote>
<blockquote class="tr_bq">
} </blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
if (reaction == 0){ //如果按下了D3就抓第二個時間點</blockquote>
<blockquote class="tr_bq">
time2 = time;</blockquote>
<blockquote class="tr_bq">
Serial.println(time2);</blockquote>
<blockquote class="tr_bq">
lcd.clear();</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(0,0);</blockquote>
<blockquote class="tr_bq">
lcd.print("reaction time=");</blockquote>
<blockquote class="tr_bq">
lcd.setCursor(0,1);</blockquote>
<blockquote class="tr_bq">
reactiontime = time2-time1-3300-starttime-27; </blockquote>
<blockquote class="tr_bq">
//顯示反應時間,是兩個時間點相減之後,再扣掉之前倒數三秒和按鈕的延遲時間,再減掉隨機的等待時間。最後15是系統運作遲滯的時間,需要檢測之後才知道</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
lcd.print(reactiontime); //顯示反應時間,單位為毫秒</blockquote>
<blockquote class="tr_bq">
lcd.print(" ms");</blockquote>
<blockquote class="tr_bq">
digitalWrite(12,LOW); //關掉LED燈和蜂鳴器,清除LCD螢幕,重新顯示</blockquote>
<blockquote class="tr_bq">
noTone(5);</blockquote>
<blockquote class="tr_bq">
myservo1.write(30);</blockquote>
<blockquote class="tr_bq">
delay(5000);</blockquote>
<blockquote class="tr_bq">
lcd.clear();</blockquote>
<blockquote class="tr_bq">
lcd.print("press 2 to start");</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
</blockquote>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-56734696844244963312017-12-12T21:54:00.000+08:002018-07-31T13:40:54.811+08:00arduino環境測量裝置其實就是同時測量溫度濕度,壓力,CO2濃度和懸浮微粒(pm1, 2.5, 10)的裝置整合起來,並用液晶螢幕顯示而已啦。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglXLgrog_f9ePSEe095AX8yUg_rI0nEU8EFty3y9UW1CLXi5nqsjN3KltEjL41o2vAXENJ3QaxjXEOq_Oh84hql3N-9lWtKTqGTkpAGZQbh690WwISAxZcn7RofXS7ZItpn4QA9V3N_2w/s1600/IMG_0003.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglXLgrog_f9ePSEe095AX8yUg_rI0nEU8EFty3y9UW1CLXi5nqsjN3KltEjL41o2vAXENJ3QaxjXEOq_Oh84hql3N-9lWtKTqGTkpAGZQbh690WwISAxZcn7RofXS7ZItpn4QA9V3N_2w/s400/IMG_0003.JPG" width="300" /></a></div>
<br />
用3DP印了一個底座整合這些裝置。本來下面的空間是要放麵包板的,結果後來放了PM3003的懸浮微粒偵測,大小差不多。再把右邊鑽一個洞,放mpx4115ap壓力計。結果MH-Z19就被擠到邊緣了。<br />
<br />
<br />
<a name='more'></a><br />
<br />
上方的液晶螢幕,只有16x2 很小,所以能顯示的東西不多。於是我就用EMS擴充版的D2按鈕去切換,按下去就切換成顯示PM1, PM10, PM2.5 或是CO2濃度。<br />
<br />
CO2濃度過高順便亮個藍燈之類的警示...<br />
<br />
//本來要把程式碼附上來的,結果發現前幾天撈到的程式,是舊的。上面寫的功能的那個程式,不知道被我丟到哪一台電腦了啊啊啊啊啊啊啊啊。<br />
<br />
<br />
撈到再po上來 Q_Q,不然就來重寫好了<br />
<br />
<div>
<br /></div>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-30277704314376492282017-11-07T18:31:00.000+08:002017-11-07T18:31:08.481+08:00樂扣真空抽氣+聲音介質實驗去年做了樂扣真空抽氣的裝置,就是利用兩個三通管和兩個單向閥。加上把樂扣的蓋子打一個洞之後,就可以完成的真空抽氣裝置。<br />
<br />
<a href="http://jjpaid.blogspot.tw/2016/09/blog-post.html">http://jjpaid.blogspot.tw/2016/09/blog-post.html</a><br />
<br />
但是去年用這個裝置進行聲音在真空中無法傳遞實驗的時候,不知道為什麼都失敗。就是不管怎麼抽,聲音都還是很明顯。印象中去年抽到大概0.5atm吧。今年努力抽到0.2atm左右,覺得效果很明顯了。<br />
<br />
操作的方式是將手機先打開音樂,放到樂扣裡面。然後記得裡面撲一層軟布或棉花,不要讓手機碰到容器壁。不然透過固體還是可以把聲音傳出來的。<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpQxU4F1ZTn_Vk9Qg_1pn15ndJf1TQC6ncbuaocqMB-bv2mpz71IwPmQWRDnh8awCnkjoA_N7vi7RbxBMzao5vhfqgfnc1wadfTmubvTVFfOtG-WggRNDUAx_3G87N1wJfn7CA7uycmng/s1600/IMG_0315.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpQxU4F1ZTn_Vk9Qg_1pn15ndJf1TQC6ncbuaocqMB-bv2mpz71IwPmQWRDnh8awCnkjoA_N7vi7RbxBMzao5vhfqgfnc1wadfTmubvTVFfOtG-WggRNDUAx_3G87N1wJfn7CA7uycmng/s320/IMG_0315.JPG" width="320" /></a></div>
<div style="text-align: center;">
有人「看」的出來正在播放的歌曲嗎?</div>
<br />
然後打開測量壓力的app。我用的是Bar-o-meter <a href="https://itunes.apple.com/us/app/bar-o-meter-altimeter-barometer/id930952204?mt=8">https://itunes.apple.com/us/app/bar-o-meter-altimeter-barometer/id930952204?mt=8</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3RNEGdtvfQdH5KXCAql0e5f0DrT2dR_QuOVJhNYCZdP2wkju9-JYPOGdCrANW8ammTyQbu5YOaZEhaE_B8Um1JS2sEegzGCymUuh1ptxJa6vxh4Etxc9LRqgLj_bxtOvYa4pvbMU76vc/s1600/IMG_0316.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3RNEGdtvfQdH5KXCAql0e5f0DrT2dR_QuOVJhNYCZdP2wkju9-JYPOGdCrANW8ammTyQbu5YOaZEhaE_B8Um1JS2sEegzGCymUuh1ptxJa6vxh4Etxc9LRqgLj_bxtOvYa4pvbMU76vc/s320/IMG_0316.JPG" width="320" /></a></div>
<br />
<div style="text-align: center;">
換成壓力計,開始抽</div>
<br />
打開之後,就可以邊看氣壓變化,邊聽聲音變化了。氣壓的單位hPa,就可以順便幫他們複習一下(地理)以及預習一下(理化)<br />
<br />
這樣抽氣,聽聲音,把氣放進去,再聽聲音。大概十分鐘以內就可以搞定了。如果手機沒有辦法測量壓力的話,用arduino + mpx4115ap <a href="http://jjpaid.blogspot.tw/search/label/MPX4115" target="_blank">http://jjpaid.blogspot.tw/search/label/MPX4115 </a>也是一個解決方案啦<br />
<br />
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-71943109533507637312017-10-27T20:43:00.001+08:002017-10-27T20:43:51.090+08:00平面鏡反射鏡架平面鏡的成像性質有物距=像距,物長=像長等需要觀察。實驗的方式就是用一片半透的鏡片當作平面鏡,可以同時在反射面上看到物體反射之後的成像位置和物體原本的位置。物體位置放好之後,觀察物體在平面鏡裡面成像的位置。然後把另一個一樣的物體放置到與成像疊合的地方之後,就可以觀察物距和像距關係了<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXoVpLrXbMpCAwb80NCuzLb1ReuOQBQyiOeW4iHS61WYLV90HyBlgN6HIOEMyboTTReXs604GjT3xMUX07Bbskp2Y7JyEwNm8_vnOIvQBldyyMmBPU5aRg8xVCE3uiVNYpGHmV1ChXCcw/s1600/IMG_6962.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXoVpLrXbMpCAwb80NCuzLb1ReuOQBQyiOeW4iHS61WYLV90HyBlgN6HIOEMyboTTReXs604GjT3xMUX07Bbskp2Y7JyEwNm8_vnOIvQBldyyMmBPU5aRg8xVCE3uiVNYpGHmV1ChXCcw/s400/IMG_6962.JPG" width="400" /></a></div>
<br />
<br />
<a name='more'></a><br />
<br />
用一般平面鏡,只能看到物體和成像,但是無法判斷「像距」,也很難比較物體和像真的一樣大。用這個裝置的話,就可以用尺測量物距。然後將物體放到平面鏡後方,讓物體和像重疊之後,就可以觀察鏡後物體的位置去查看像距。<br />
<br />
當物體可以跟像完全重疊的時候,就知道物體大小和像的大小一樣了。上面圖片用的是列印出來的白色長方柱。其實只要用一塊錢硬幣,也可以有相同的效果。<br />
<br />
但是每次實驗的時候,都會對平面鏡的位置定位的問題很傷腦筋。平面鏡要和尺完全垂直,也要和桌面完全垂直。尤其是平面鏡要和桌面垂直,會影響結果甚巨。傾斜一點點,物距和像距就不相等了。每次都調很久。學生測量出來的數據不對,還要去幫他看是不是歪掉了。<br />
<br />
如果讓學生調整平面鏡,跟學生說物距必須等於像距,那還真的就失去了作這個實驗的意義了。<br />
<br />
所以有一個穩定的支架是重要的。<br />
<br />
這個裝置,之前是在某版教科書上看到的實驗方式,後來又在<a href="https://www.facebook.com/Science.Excellence/" target="_blank">顧炳宏老師那邊</a>看到了比較精緻的版本。前一陣子拿到了幾片壓克力板,也可以當作半透的平面鏡來使用,於是就想可以用3DP印出支架,調校了一陣子,終於算是比較可以用了。<br />
<br />
然後今天測試的時候,平面鏡和尺的垂直,又讓我調了很久。突然想到之前看到<a href="https://www.designboom.com/design/ikea-cook-this-page-recipe-leo-burnett-campaign-06-22-2017/" target="_blank">IKEA的紙食譜</a>和<a href="http://a-chien.blogspot.tw/2017/09/ikea.html" target="_blank">阿簡拿這個概念來整理實驗器材</a>,我就想我也可以這樣作。只要在紙上印出平面鏡支架擺放的位置,不就可以讓學生很容易百放到正確位置嗎?製作的過程又更想到,乾脆連尺都印上去,就能更直接解決尺的擺放問題啦。jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-63004165993121096632017-10-08T22:02:00.005+08:002017-10-08T22:02:59.680+08:00NeoPixel NeoPixel是很厲害的三色LED燈條組,有各種規格。我買了8x8 和 16x16的,來做RGB混色的實驗。<br />
<br />
物品外觀可以看 <a href="http://mntech.com.tw/NeoPixel8x8">http://mntech.com.tw/NeoPixel8x8</a><br />
但是由於我要把裝置接在ywrobot EMS上,所以端子的腳位要做一點調整。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4-JqZJzOsWGIY6y30vr03g7ihuik3Y-Df6Wb03do0wL2f_w1gQewZlsh4n1aahL_9k1EzGu5tFY92FO2_AOWJVzIXcF71LC613MV80rvDoKFL8QEaKQJq6MZiTdhFlp8qAfEgqs7uufk/s1600/IMG_6667.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4-JqZJzOsWGIY6y30vr03g7ihuik3Y-Df6Wb03do0wL2f_w1gQewZlsh4n1aahL_9k1EzGu5tFY92FO2_AOWJVzIXcF71LC613MV80rvDoKFL8QEaKQJq6MZiTdhFlp8qAfEgqs7uufk/s640/IMG_6667.JPG" width="480" /></a></div>
<br />
上面是原本的焊接方式,下面是我調整過順序的。基本上GND不動,但是改變 5V和Din的位置,讓它們交換。這樣才能符合EMS上針腳排列的腳位。原本neopixel安排的端子,5V會在邊緣,線換過之後5V在端子的地方會跑到中間,這樣才能直接插上EMS。<br />
<br />
<a name='more'></a><br />
NeoPixel還允許多組串連,所以有個DOUT,雖然還用不到,我也就一併修改了。事實上我應該把我手上的neopixel都做修改,以免以後忘記接錯就糟糕了。<br />
<br />
<br />
接下來是軟體部分,需要一個 Adafruit Neopixel的library 連結在此 <a href="https://github.com/adafruit/Adafruit_NeoPixel">https://github.com/adafruit/Adafruit_NeoPixel</a><br />
<br />
NeoPixel的library有好幾個地方可以找到。我只有用上面那個adafruit的。我拿library的範例「simple」來改成自己要的程式碼。大概只有幾個地方需要處理<br />
<br />
首先是第六行的 PIN 要改成要接neopixel的數位腳位,以我來說要接D7,就改成7。再來是第七行的NUMPIXELS 是指要接上去的neopixel有幾顆?以8x8的來說就是64顆,如果是16x16,就是256。<br />
<br />
這個library的寫法,是把燈泡編號,總共64顆的話,就是把燈泡編碼從0開始一直編到63號。然後用第九行的程式,表達這兩件事情。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLnGyJmxhaRvFD2D2RqG5987bf80vSrPePuIL4GeDjgZbLC2K1o7O4Zjd7qSpR3wov0AoapvgtHOKO5vvFE8qdecRKcDgvEsvvRd25qLQoDVY9Lc-wUWM1_ZGruuuKQ6fTiz9UVefqKHo/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-10-08+%25E4%25B8%258B%25E5%258D%25889.03.13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="298" data-original-width="1211" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLnGyJmxhaRvFD2D2RqG5987bf80vSrPePuIL4GeDjgZbLC2K1o7O4Zjd7qSpR3wov0AoapvgtHOKO5vvFE8qdecRKcDgvEsvvRd25qLQoDVY9Lc-wUWM1_ZGruuuKQ6fTiz9UVefqKHo/s640/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-10-08+%25E4%25B8%258B%25E5%258D%25889.03.13.png" width="640" /></a></div>
<br />
<br />
接著看後半部的程式<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXETKJFp7rmeB69dHFg4ipsX4Cy4wMBCoNh3mKNyVTsj-ZVI0Szi6-zTQj8nK1D7LArnbt7daScZc9Y0mldTmR4tc0ugeUaLShPKQr4gvo6Cb2xq1CsiS2EWPyRBfoUc9ZSKvTH22dN6Q/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-10-08+%25E4%25B8%258B%25E5%258D%25889.18.45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="291" data-original-width="1058" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXETKJFp7rmeB69dHFg4ipsX4Cy4wMBCoNh3mKNyVTsj-ZVI0Szi6-zTQj8nK1D7LArnbt7daScZc9Y0mldTmR4tc0ugeUaLShPKQr4gvo6Cb2xq1CsiS2EWPyRBfoUc9ZSKvTH22dN6Q/s640/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-10-08+%25E4%25B8%258B%25E5%258D%25889.18.45.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="text-align: left;">第14行,是起始neopixel的指令</span></div>
<div class="separator" style="clear: both; text-align: left;">
第18行,是用一個迴圈,讓i從0開始,每次迴圈都+1,直到64就停下來。所以i會從0一直增加到64。然後第19行,是主要讓燈泡發光的指令</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
括號裡面的第一個數字i,代表燈泡的編號。然後pixels.Color的括號裡面,代表這個編號燈泡的RGB三色燈泡的強度。強度從0~255,0最暗,255最亮。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
上面的寫法,就會讓第一個燈泡(編號0)的紅色亮度為128,綠色亮度為0;然後編號越大,紅燈越暗,綠燈越亮,這樣就會跑出漸層的顏色囉。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio04n5nhysYNHxvcicRaJc-h3zsg2Xoxr9C8IaweF1NM32MjNGv2CCOXCrRSc-QXNdvQ-Gl9WQHgd1lZjT3E2VV28GY7_cHUxoRI0kuDKdEjhF_ypytSueeV89UZNKN-UGlWxZKzA4C5g/s1600/IMG_6692.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio04n5nhysYNHxvcicRaJc-h3zsg2Xoxr9C8IaweF1NM32MjNGv2CCOXCrRSc-QXNdvQ-Gl9WQHgd1lZjT3E2VV28GY7_cHUxoRI0kuDKdEjhF_ypytSueeV89UZNKN-UGlWxZKzA4C5g/s400/IMG_6692.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
教學部份,則是要觀察各種不同RGB比例可以組合出來的顏色。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
每個燈泡都做成純色,這樣比較好觀察。然後只要有個燈罩或者光可以照射上的白色物體,就可以看到混色後的顏色。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
第一個是純紅色</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz8zHfoDtMRZas5GQeWzDFFYU07SLTTExh33GlSwEgxGO5HRrSO2iJlcDq3DdNmtXS6DwLAIgsQIoAaVw-gsnjp1SGU9ETI3secy1T-zyJoqsYmIoIm5yj6h9P9HY4wUrbi7epoW_LnEo/s1600/IMG_6669.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz8zHfoDtMRZas5GQeWzDFFYU07SLTTExh33GlSwEgxGO5HRrSO2iJlcDq3DdNmtXS6DwLAIgsQIoAaVw-gsnjp1SGU9ETI3secy1T-zyJoqsYmIoIm5yj6h9P9HY4wUrbi7epoW_LnEo/s320/IMG_6669.JPG" width="320" /></a></div>
<br />
然後配上一點點綠,看到杯子變成橘色了嗎?<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6s_GmDR1ubeS5yPri_ioBReJrXe_Mgy45O1EuLde_umcbHJ5FYQy3yD-ZFIyNzUD4msQcWftr_h8o8pHA9P1Tn5-thxwu_-zRTZTm_DlA1QN2sS8tkbezaSsW3pvtgrgs4UNOboq-DGg/s1600/IMG_6670.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6s_GmDR1ubeS5yPri_ioBReJrXe_Mgy45O1EuLde_umcbHJ5FYQy3yD-ZFIyNzUD4msQcWftr_h8o8pHA9P1Tn5-thxwu_-zRTZTm_DlA1QN2sS8tkbezaSsW3pvtgrgs4UNOboq-DGg/s320/IMG_6670.JPG" width="320" /></a></div>
<br />
綠色再開強一點,被子就變成黃色了。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaJrySTMuCHra103O39jyQLEGjUR1RWer8zRVRIJr9Cspp2L6c6iuXU-D6J0vE8MrnW1T6X59OwppOP3EXk5Aa4Bj1VogiYLx27ZMM7C2fe79FNLm3pkcvvzAZMIYUM1M6cdym5Ncky7Q/s1600/IMG_6671.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaJrySTMuCHra103O39jyQLEGjUR1RWer8zRVRIJr9Cspp2L6c6iuXU-D6J0vE8MrnW1T6X59OwppOP3EXk5Aa4Bj1VogiYLx27ZMM7C2fe79FNLm3pkcvvzAZMIYUM1M6cdym5Ncky7Q/s320/IMG_6671.JPG" width="320" /></a></div>
<br />
綠色再強一點,看不太出紅色的感覺了。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYd-HOgKiJLWtTl5a8O3mTapBLq8gD-Iid7EV4tMON-OUxqoQ8ptmnW9cjz9aOdX23vRcVFHs-T-As6EzhkJu2GE76mYV5TWgF1JuHlX_o64gV2IIbUr4zJSjsdlOTaYC6ScDhH3Ak4o0/s1600/IMG_6672.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYd-HOgKiJLWtTl5a8O3mTapBLq8gD-Iid7EV4tMON-OUxqoQ8ptmnW9cjz9aOdX23vRcVFHs-T-As6EzhkJu2GE76mYV5TWgF1JuHlX_o64gV2IIbUr4zJSjsdlOTaYC6ScDhH3Ak4o0/s320/IMG_6672.JPG" width="320" /></a></div>
<br />
純綠色的顏色,和上面好像也沒有差太多。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjErKKg7Y3kIfBSz_NN282IBtUHAKEK49UKEP8ZZfIOm1scZHz9dnwdFlTZVT8ORzJtFyEvBC2frkYJrbstqAfHQMIzBOTnvyp-YifC4DOs4WO1cvbW62cLM55XlehNB72v8Oq9pbOOyzk/s1600/IMG_6673.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjErKKg7Y3kIfBSz_NN282IBtUHAKEK49UKEP8ZZfIOm1scZHz9dnwdFlTZVT8ORzJtFyEvBC2frkYJrbstqAfHQMIzBOTnvyp-YifC4DOs4WO1cvbW62cLM55XlehNB72v8Oq9pbOOyzk/s320/IMG_6673.JPG" width="320" /></a></div>
<br />
綠色家藍色,變成青色<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEillRIKVRdGEB21HcfO2JtnuD9y2bOGl-BsUWRcyKMh6opu-TVtssBqytwwCvulsJDPOLqiAvzDC1f57JXh8Z9jmY2IdFe8Of2-t_hfbfhUU78i0v05YyE3c83k4MQTKnfCXlyRFvVPB88/s1600/IMG_6674.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEillRIKVRdGEB21HcfO2JtnuD9y2bOGl-BsUWRcyKMh6opu-TVtssBqytwwCvulsJDPOLqiAvzDC1f57JXh8Z9jmY2IdFe8Of2-t_hfbfhUU78i0v05YyE3c83k4MQTKnfCXlyRFvVPB88/s320/IMG_6674.JPG" width="320" /></a></div>
<br />
<br />
紅色加藍色變成洋紅<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPGLDbyOf0Kf4XhmOsW_q-0BhmtR7Qlfk5Pe6h7MQUt4-Um33As6kU-2eLLO59OtoL1rYmlw2-4BFd1VhK5YcOO6f8SUZPGsGPT3YlHDcCJsoWuYZ2uVFwgeZzraOPtcZcJC_Ik659sJc/s1600/IMG_6675.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPGLDbyOf0Kf4XhmOsW_q-0BhmtR7Qlfk5Pe6h7MQUt4-Um33As6kU-2eLLO59OtoL1rYmlw2-4BFd1VhK5YcOO6f8SUZPGsGPT3YlHDcCJsoWuYZ2uVFwgeZzraOPtcZcJC_Ik659sJc/s320/IMG_6675.JPG" width="320" /></a></div>
<br />
<br />
紅綠藍色都開,會變成白色。不過看起來好像有點藍啊...<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_UJyOvgc2tcsGbTq3F54cg4P5HIVe_DgekqZnaCU4kLsFJRkLSuObKL0ouKF_hurSRgMgXiFjZu_yZ9zHVK0NAZFUhRGkTjLs_8CBxRyivx5AwSgG2ARm15iC4yi8Q9Lh9wQ_BWfZZ4c/s1600/IMG_6676.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_UJyOvgc2tcsGbTq3F54cg4P5HIVe_DgekqZnaCU4kLsFJRkLSuObKL0ouKF_hurSRgMgXiFjZu_yZ9zHVK0NAZFUhRGkTjLs_8CBxRyivx5AwSgG2ARm15iC4yi8Q9Lh9wQ_BWfZZ4c/s320/IMG_6676.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-12484010929143195382017-10-06T17:44:00.000+08:002017-10-06T17:44:04.465+08:00光學實驗雷射筆座之前跟林宣安老師團購了很超值的綠光雷射筆,亮度很不錯,上光學的時候拿來演示或實驗效果會很好。但是雷射筆是直線光源,比較難觀察光的路徑。光從雷射筆頭出發,是一直線的往前,眼睛是不容易觀察到路徑的。如果要觀察路徑,就要在雷射筆頭前面加一根玻璃棒或壓克力棒,讓光線變成一個「面」。這樣就可以把光的路徑呈現在平面的紙上,然後觀察光的直線前進、反射、折射等現象。<br />
<br />
另外如果是教師演示,也需要把雷射筆能固定在黑板或白板上。所以我就想說可以用3D印表機印一個底座給雷射筆,可以固定筆身,也可以架上玻璃棒。然後在底部能嵌入磁鐵,用以固定在黑白板上。<br />
<br />
以下看圖囉<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlRpqRW3MgAVXGHKTKBEorEMgRmb7OOvFHmtQqpR8cf1cVs09J3vZFpavlz3OW8ds1q9K49UAx56R5KBkjbZju8V5dJNnN2KQ124oL8UfL63kw7TSa9GjEJBSSoGKzAnvB06naMQksl0A/s1600/IMG_6656.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlRpqRW3MgAVXGHKTKBEorEMgRmb7OOvFHmtQqpR8cf1cVs09J3vZFpavlz3OW8ds1q9K49UAx56R5KBkjbZju8V5dJNnN2KQ124oL8UfL63kw7TSa9GjEJBSSoGKzAnvB06naMQksl0A/s400/IMG_6656.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
底座分前後,側面有個小孔可以用小螺絲固定筆身</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<a name='more'></a><br /><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_OTuKN-gOzX1ETrpSXTrKf-jyDYmkkptQWmbFJAMXQvYpFknPDsnYxq0SzjvjLk5WmaccEwzFIbAoRrCEDg1M8K6Drxu7bdfXSDf2rDRz65qNL-ZMOcx9dR6z5qtnGrIThfp3DcEWto/s1600/IMG_6658.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_OTuKN-gOzX1ETrpSXTrKf-jyDYmkkptQWmbFJAMXQvYpFknPDsnYxq0SzjvjLk5WmaccEwzFIbAoRrCEDg1M8K6Drxu7bdfXSDf2rDRz65qNL-ZMOcx9dR6z5qtnGrIThfp3DcEWto/s400/IMG_6658.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
底部嵌入小的強力磁鐵</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfULugFzlUHXJKtDQvI7cgsYEx5JvmN3KCKjJETfJB-rRXzIoD-XuAWFqu3M1Jc25oenQz93IBeLrjm9GFK_zao5o8v99fKRfbJy9XhUgsdbNd_xfxMjaOCGFbdxQwClg1LKd2zDzUnXc/s1600/IMG_6633.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfULugFzlUHXJKtDQvI7cgsYEx5JvmN3KCKjJETfJB-rRXzIoD-XuAWFqu3M1Jc25oenQz93IBeLrjm9GFK_zao5o8v99fKRfbJy9XhUgsdbNd_xfxMjaOCGFbdxQwClg1LKd2zDzUnXc/s400/IMG_6633.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwdVz8Ppa09dpnHkOWI7J6LwFhP-CkYWl0qtGL76v-zavxXvjHKMk4i6Fi9uc_BgsGSf53O_ePFYfCWhmlgQ1qlDzigGPDqS6RptTUSRdQRijHqT41gQRGfoYtJ2i6dfX_6_Af9zeAqKk/s1600/IMG_6632.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwdVz8Ppa09dpnHkOWI7J6LwFhP-CkYWl0qtGL76v-zavxXvjHKMk4i6Fi9uc_BgsGSf53O_ePFYfCWhmlgQ1qlDzigGPDqS6RptTUSRdQRijHqT41gQRGfoYtJ2i6dfX_6_Af9zeAqKk/s400/IMG_6632.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
前面的凹槽可以嵌入玻璃棒(8mm)</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVNQzlJ7bz_qgRzGKASMj8B5MAi9ROiT4cD59C90jhWyQKRvdUat3kkl42K2n7LvdicKR1Qvlss1bWfvhD0CR76diwDMaD3BE2brBMUVUJzzn9IoSO5cs_arljGzrxMMeF-WFbTJaV2aE/s1600/IMG_6631.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVNQzlJ7bz_qgRzGKASMj8B5MAi9ROiT4cD59C90jhWyQKRvdUat3kkl42K2n7LvdicKR1Qvlss1bWfvhD0CR76diwDMaD3BE2brBMUVUJzzn9IoSO5cs_arljGzrxMMeF-WFbTJaV2aE/s400/IMG_6631.JPG" width="400" /></a></div>
<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/AVvXsEj-Olwnf-FYBhw0PoZLxc6h6gfjVLD1OxdLPWS6bkjBnIiK9cUkYNjnAzXKstG_SOpq7nBeVeiCi643fiAt6qYFatmUrr3UKCC_UdxeLTqlGWMSg2u2Nodw5U9j3FxV4VUnVUPYkL9532c/s1600/IMG_6660.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-Olwnf-FYBhw0PoZLxc6h6gfjVLD1OxdLPWS6bkjBnIiK9cUkYNjnAzXKstG_SOpq7nBeVeiCi643fiAt6qYFatmUrr3UKCC_UdxeLTqlGWMSg2u2Nodw5U9j3FxV4VUnVUPYkL9532c/s400/IMG_6660.JPG" width="400" /></a></div>
<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/AVvXsEgF4MYncmXj_ZN360uLOHw9dt3w_BZOCLdnML7pxRNKmON06H4hs7JrSBrGhQkr7qa-HTFAOudPmOHpl3KsRRA4GZhA5tMfUetMIhm0TNyHO78CowInlMGga6qzKmr3Ojfp2sd5y3SakEM/s1600/IMG_6661.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF4MYncmXj_ZN360uLOHw9dt3w_BZOCLdnML7pxRNKmON06H4hs7JrSBrGhQkr7qa-HTFAOudPmOHpl3KsRRA4GZhA5tMfUetMIhm0TNyHO78CowInlMGga6qzKmr3Ojfp2sd5y3SakEM/s400/IMG_6661.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
反射</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqqKUYsblfAkrR1CGxjOB1qwiNg1mbasUXbqcGZiyh1KsqgY26LPF1nap1ghXy3iLugpNV8hNLMuwE8syR3dQMBBDXmJLaNv2wLdkEZybF9vVNJM-yEhh20b8n9SjezChSxcm0qCYYpSw/s1600/IMG_6663.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqqKUYsblfAkrR1CGxjOB1qwiNg1mbasUXbqcGZiyh1KsqgY26LPF1nap1ghXy3iLugpNV8hNLMuwE8syR3dQMBBDXmJLaNv2wLdkEZybF9vVNJM-yEhh20b8n9SjezChSxcm0qCYYpSw/s400/IMG_6663.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
兩隻一起(關燈)</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYj6O7I9W5qprsbo0lzsPCBoJcEygNfHxJ1oZyOGktRPjDt5gMWeeWEdjG4PSdOmQ81BCcadTQyzxQoCuQLjtHUYkeIPea1OqXsGqq5aDcRpWFyCtv9ThAlYPNNFvZmRvD01n3otA7gjw/s1600/IMG_6662.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYj6O7I9W5qprsbo0lzsPCBoJcEygNfHxJ1oZyOGktRPjDt5gMWeeWEdjG4PSdOmQ81BCcadTQyzxQoCuQLjtHUYkeIPea1OqXsGqq5aDcRpWFyCtv9ThAlYPNNFvZmRvD01n3otA7gjw/s400/IMG_6662.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
折射(關燈)</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-70974144675312371372017-08-30T13:50:00.000+08:002017-08-30T13:50:00.838+08:00Decibel 10th 分貝計Decibel 10th這套軟體我已經用了好多年,我覺得應該是iOS中人機介面寫得最好的一個分貝計軟體。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/FLFOWNfrctA/0.jpg" src="https://www.youtube.com/embed/FLFOWNfrctA?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<br />
身為一個分貝計軟體,當然可以測量音量,並且記錄音量變化。所以打開Decibel10th後,就可以看到開始記錄音量變化。橫軸是時間,縱軸則是分貝。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt6BEWu2BN8sF1PnUzyRzuw_fGvo0gKeN5zWask3sHyFKohCS4nKYVqRb1w0BV4Uxlo0Q4gvT5zecQS1fTHLdrr5c5t_olz-Re-IzivOyy49Vt6SRqI6wv80k-1LRMxddXOVX5wHfGTNY/s1600/IMG_0245.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt6BEWu2BN8sF1PnUzyRzuw_fGvo0gKeN5zWask3sHyFKohCS4nKYVqRb1w0BV4Uxlo0Q4gvT5zecQS1fTHLdrr5c5t_olz-Re-IzivOyy49Vt6SRqI6wv80k-1LRMxddXOVX5wHfGTNY/s400/IMG_0245.PNG" width="400" /></a></div>
<br />
<a name='more'></a>可以看到分貝數值顯示在左上角,上方還有一段描述是這個音量大約相當於【安靜的街道】用這種類比的方式讓大家了解目前音量的感受。<br />
<br />
左下角有四個按鈕,從左而右分別是<br />
1.清除資料<br />
<br />
2.上傳資料<br />
<br />
3.數據摘要<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvH6CznH5BgDY-NUQUdXJkdFXlUciIvn2sWTcZnXy-pwPXzMqhHIlux6q16tPiEK2kKwRF3uP53F_GL4d4VGDmlDdEKZFcrEG4Bj_mI-_9Dr8TJ3HamoGq1K6qR-29TQ8vOK8ZMhJgyQ/s1600/IMG_0246.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvH6CznH5BgDY-NUQUdXJkdFXlUciIvn2sWTcZnXy-pwPXzMqhHIlux6q16tPiEK2kKwRF3uP53F_GL4d4VGDmlDdEKZFcrEG4Bj_mI-_9Dr8TJ3HamoGq1K6qR-29TQ8vOK8ZMhJgyQ/s400/IMG_0246.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4.照相功能,這應該可以像是記錄這個環境下的音量值之類的功能吧</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_iYLQVUyOQwIzuuVykxWYBoY0sfUz0qQzPuO3nLFxb4_frYJkxMzxEulEVvo4TkQEKC6yVj1Szd_JKZXgDwG7bZY0WKDnahV73Jl_6eR6UeS34_FhLwOz46emZHubTv5HGWZrE_-QRPI/s1600/IMG_0247.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_iYLQVUyOQwIzuuVykxWYBoY0sfUz0qQzPuO3nLFxb4_frYJkxMzxEulEVvo4TkQEKC6yVj1Szd_JKZXgDwG7bZY0WKDnahV73Jl_6eR6UeS34_FhLwOz46emZHubTv5HGWZrE_-QRPI/s400/IMG_0247.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
接下來是右下角有ABCZ四種模式,不過我不清楚差別在哪裡。<br />
<br />
如果點選整個畫面的話,則可以改變取樣速率。有fast和slow兩種模式。<br />
<br />
將主畫面往左滑過,可以改變呈現數據的方式。首先是這個波形圖,下面這張圖,是敲擊音叉紀錄音叉震動的聲音波形。可以看到漂亮的正弦波。在主畫面點一下,則可以看到振幅和時間的關係圖(沒有附圖)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6F83-0b8ebFU1-VziNDn9bZ12-Dgh2NJEmFWl6jJn8_ITt5qGkQsxPM4Z53jFYCG1pIJ0HAcw_XQhaeby2FlM7-vBLp6IPSWOl4MaItGmC8PEfcOmqGhXFa2Z0a1_cV3xHwaoKM86a3Q/s1600/IMG_0248.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6F83-0b8ebFU1-VziNDn9bZ12-Dgh2NJEmFWl6jJn8_ITt5qGkQsxPM4Z53jFYCG1pIJ0HAcw_XQhaeby2FlM7-vBLp6IPSWOl4MaItGmC8PEfcOmqGhXFa2Z0a1_cV3xHwaoKM86a3Q/s400/IMG_0248.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
再往左滑,則可以看到經過傅立葉轉換之後的圖。可以看到音叉震動的頻率是357Hz左右。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPfo46IP1PedWXcgPeuPMBBDUITpbDZOw8cpF-pJhX7MkoJ20aAq7dcDTM6N6pQzq-X0ZoCcRTBxVmR8NcwTXbhLgMDOmd7lefVMMj9x5WcRe_y6PMtxCE7C_45-dsnBR6SIM-HuVL7sM/s1600/IMG_0249.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPfo46IP1PedWXcgPeuPMBBDUITpbDZOw8cpF-pJhX7MkoJ20aAq7dcDTM6N6pQzq-X0ZoCcRTBxVmR8NcwTXbhLgMDOmd7lefVMMj9x5WcRe_y6PMtxCE7C_45-dsnBR6SIM-HuVL7sM/s400/IMG_0249.PNG" width="400" /></a></div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-17012038097249930422017-08-05T14:51:00.002+08:002017-08-05T14:51:43.262+08:00Micro:bit 藍芽傳輸加速度、磁力與溫度資料<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/YlsQZPfHjZM?ecver=1" width="560"></iframe></div>
<br />
<br />
<a name='more'></a>自己弄完要拍影片做個筆記,以免自己忘記jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-79679033208947896762017-07-31T16:57:00.000+08:002017-07-31T16:57:05.488+08:00Ywrobot EMS多功能實驗+IR remote<div style="text-align: center;">
</div>
<div style="text-align: left;">
加上紅外線遙控功能,但是這功能會影響到tone這個指令(因為佔用了相同的arduino內計時器)還有D11 (佔用了相同腳位)。所以雖然用紅外線選擇模式ok,但是其實會犧牲掉一些功能的。</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
另外,還把紅外線遙控器學習功能寫上去了</div>
<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/KKHbhU0BmyI?ecver=1" width="560"></iframe></div>
<br />
<a name='more'></a>就當作寫程式練習吧jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-84735454113508944172017-04-23T21:05:00.000+08:002017-04-23T21:06:55.278+08:00Arduino + Ywrobot EMS 光閘門<div class="separator" style="clear: both; text-align: left;">
運用Arduino 加上Ywrobot EMS擴充板。用上面的光敏電阻當做感測器。用一個雷射筆頭當光源,以江宏仁老師設計的科學積木和光學桌板將雷射筆頭光源固定,加上反射鏡把光線反射到光敏電阻上。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
物體通過光路,就會遮斷光路。用程式判斷亮度變化,抓取亮度從亮變暗的時間點,就可以利用這個裝置做一些實驗囉。</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZq1YtUwIPW1UasaJMD6ZIkc8uj1d0MMo6DkFWbbPGm6mCxSO7DUkvgbiBm6Wbyq3qF4d9-1nkqi3IhzCqvLsPta8vS29GDZ5WUiCIbJJbyWHfjkqIugqWw120BemOTUHmDkNVQVvGn0/s1600/IMG_4863.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZq1YtUwIPW1UasaJMD6ZIkc8uj1d0MMo6DkFWbbPGm6mCxSO7DUkvgbiBm6Wbyq3qF4d9-1nkqi3IhzCqvLsPta8vS29GDZ5WUiCIbJJbyWHfjkqIugqWw120BemOTUHmDkNVQVvGn0/s400/IMG_4863.JPG" width="400" /></a></div>
<br />
<br />
<a name='more'></a><br />
<br />
<br />
影片介紹<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/kre1B_E8S3c/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/kre1B_E8S3c?feature=player_embedded" width="320"></iframe></div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-71423464962132811712017-04-10T11:24:00.003+08:002017-04-10T11:59:18.022+08:003DP 列印的 Arduino + 1602 LCD底座<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.thingiverse.com/thing:2238948" target="_blank">檔案放在Thingverse這裡</a> ,這是從 <a href="http://www.thingiverse.com/thing:1190968">http://www.thingiverse.com/thing:1190968</a> 改的</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
左邊是印好的底座,右邊是1602 LCD還有Arduino板</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHz1ZFH3OLSeeHaZ3NrjM8D1WB1dHZipUXpoS2ru7AZSClMahVOnUYfPYa8dyhb8d3hMybEjZmu3d3cKfY0oise8rl91FYEEp0_OcXt44XDxntruer0cdUnELjzPxPSVbtzohNX-8maHo/s1600/IMG_4692.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHz1ZFH3OLSeeHaZ3NrjM8D1WB1dHZipUXpoS2ru7AZSClMahVOnUYfPYa8dyhb8d3hMybEjZmu3d3cKfY0oise8rl91FYEEp0_OcXt44XDxntruer0cdUnELjzPxPSVbtzohNX-8maHo/s400/IMG_4692.JPG" width="400" /></a></div>
<a name='more'></a><br />
<br />
<br />
印好的底座,有幾個螺絲孔給arduino板,先攻一下牙(其實只是把洞稍微挖大一點啦)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikbgtIOyYXy71kMys_g2VfPyEQssLrHDc8_F9m50CDRIUsNJCWTt9pn-TruvR0dmPJJgFh5IyjJsb0DijZfilGj7H04bLpCdg1xHdEV7-yBumuKajP6mb4RN8IOUmJxfhID2fsnktCZN0/s1600/IMG_4693.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikbgtIOyYXy71kMys_g2VfPyEQssLrHDc8_F9m50CDRIUsNJCWTt9pn-TruvR0dmPJJgFh5IyjJsb0DijZfilGj7H04bLpCdg1xHdEV7-yBumuKajP6mb4RN8IOUmJxfhID2fsnktCZN0/s400/IMG_4693.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
把板子放上去,螺絲鎖上,就很穩定。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif4gZdcE7RHfRrMf1_bpe61mxSovVY1k5wOlKILtckgP0P-xTG8uMzNX3tk3yMt2LJ9kHEXuPn2r-nqJ34KxQ9-1SS_R2nPLXvMp3ktDQxZbQ8jw2v_XhevBQ25cv5rjYMyUG8TH7v-4U/s1600/IMG_4695.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif4gZdcE7RHfRrMf1_bpe61mxSovVY1k5wOlKILtckgP0P-xTG8uMzNX3tk3yMt2LJ9kHEXuPn2r-nqJ34KxQ9-1SS_R2nPLXvMp3ktDQxZbQ8jw2v_XhevBQ25cv5rjYMyUG8TH7v-4U/s400/IMG_4695.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
接下來看一下上方LCD 的腳座,這樣就不用鎖銅柱了。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyOPkdEJ5khZgN7gNAdBO9FWQ_F-Qp58i1JjCk1rcpJKTxDDf2onTX_kCiAqoZPZYb5Nd-EiTbr2nNvk0P9ZPK8zMtdkSs3PWLXVzt1U6lPC_qRBW6flKe-q0Qsh6MD2p6n8h2LVVfTqI/s1600/IMG_4694.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyOPkdEJ5khZgN7gNAdBO9FWQ_F-Qp58i1JjCk1rcpJKTxDDf2onTX_kCiAqoZPZYb5Nd-EiTbr2nNvk0P9ZPK8zMtdkSs3PWLXVzt1U6lPC_qRBW6flKe-q0Qsh6MD2p6n8h2LVVfTqI/s400/IMG_4694.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
1602 LCD孔可以插進去,這位置我調好久喔,測量技術太爛。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnVe8u8NydpGVjoI2p2kpoOuu19MoPoajYJuzCq_SZ46dOmQxVtdgdEMTnVWxCKwW_4DtIYoMnp6LfPTyw6gkGxpH6WN2y15z6AAqzrqtPlLSV9TWtyUxK5Y_u38tYaWRyN2DSqPgfC3I/s1600/IMG_4697.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnVe8u8NydpGVjoI2p2kpoOuu19MoPoajYJuzCq_SZ46dOmQxVtdgdEMTnVWxCKwW_4DtIYoMnp6LfPTyw6gkGxpH6WN2y15z6AAqzrqtPlLSV9TWtyUxK5Y_u38tYaWRyN2DSqPgfC3I/s400/IMG_4697.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
頂部有稍微加粗一點點,所以要稍微用力卡進去,這樣才不會太容易鬆脫</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiDnXOuNz423NSlEKUBV6824Fed4outc_GKL1zIJqU4lTrGvQNSGdOTJxLOWJ0ei-2mXtLOXbvUt6IGlk-i1ugwGnTkPM_L__QSv4l2XL19rOWaVnvwR5hJrZcp-pliBhNcQs_6_ih158/s1600/IMG_4698.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiDnXOuNz423NSlEKUBV6824Fed4outc_GKL1zIJqU4lTrGvQNSGdOTJxLOWJ0ei-2mXtLOXbvUt6IGlk-i1ugwGnTkPM_L__QSv4l2XL19rOWaVnvwR5hJrZcp-pliBhNcQs_6_ih158/s400/IMG_4698.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
側面這邊有留一個空間走線,不過1602自己的腳常常歪歪的</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTLEqTaEfjP-AuUWCaOEMXdJ68a27dCBUQEN7i0AexWpTdJ9Z8G787XbcH1EK8vonOkj01pXaf2bT9kVnC_em7QiUmBCIeh73fjyjuH_G8l0E8doWvMinb2qS57SBOHJrle3saql5gRrU/s1600/IMG_4699.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTLEqTaEfjP-AuUWCaOEMXdJ68a27dCBUQEN7i0AexWpTdJ9Z8G787XbcH1EK8vonOkj01pXaf2bT9kVnC_em7QiUmBCIeh73fjyjuH_G8l0E8doWvMinb2qS57SBOHJrle3saql5gRrU/s400/IMG_4699.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
底部留了一堆蜂窩孔,一方面省料,一方面留個空隙可以調LCD亮度</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8b4ll1qr4jDHuB3p3OFcF77US2SKayw-7x7rZJhiItTMBPSAUw7qCEQHHXP2f5NRc4Kv-9r_v7pdoW3xMmju5-mkgRcnI5spA0cfoIsTtu0LMxhxM4_UOkHtxqLh-alvyTAfBPMGjSPs/s1600/IMG_4700.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8b4ll1qr4jDHuB3p3OFcF77US2SKayw-7x7rZJhiItTMBPSAUw7qCEQHHXP2f5NRc4Kv-9r_v7pdoW3xMmju5-mkgRcnI5spA0cfoIsTtu0LMxhxM4_UOkHtxqLh-alvyTAfBPMGjSPs/s400/IMG_4700.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
組裝好就變這樣。喔,我上面插了Ywrobot EMS啦</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTN7MXHTGnOVQ6MzJ_JeaVBfig0Sy58jv9Dr0GUu3RPX1whqZHWvkBZjOaYfuyF9Z2lgQlAhCaHwckXHJ_FBaviO3y8WgBlJFS68MiuJqOSPHbWp7w6Y0_bYGN6YAzQNENdkJY9natf-c/s1600/IMG_4701.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTN7MXHTGnOVQ6MzJ_JeaVBfig0Sy58jv9Dr0GUu3RPX1whqZHWvkBZjOaYfuyF9Z2lgQlAhCaHwckXHJ_FBaviO3y8WgBlJFS68MiuJqOSPHbWp7w6Y0_bYGN6YAzQNENdkJY9natf-c/s400/IMG_4701.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
買了一些盒子,這樣收納就蠻方便的,要給學生做實驗也方便。接下來寫個說明,印個貼紙貼在盒子上,應該是不錯的主意!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyNc_EEdCQQgE9agenVvtMpV51qfti1PzETdGAE-KH1AmZilT7vhbC0gdQbKFwRENton0iOP0jPemVAVNDsCrnbkHDFe0-F6OHUgciMMIFACJFDYYsdK2z4ZvLGKUomHZrYK_53KM7ypE/s1600/IMG_4702.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyNc_EEdCQQgE9agenVvtMpV51qfti1PzETdGAE-KH1AmZilT7vhbC0gdQbKFwRENton0iOP0jPemVAVNDsCrnbkHDFe0-F6OHUgciMMIFACJFDYYsdK2z4ZvLGKUomHZrYK_53KM7ypE/s400/IMG_4702.JPG" width="400" /></a></div>
<br />
<div>
<br /></div>
<div>
<br /></div>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-40300323300786390282017-04-07T14:13:00.000+08:002017-04-12T19:14:09.078+08:003DP 羅技webcam 顯微鏡套筒之前用底片盒做的事情,現在用3DP,可以做出品質很好的套筒了。用10%填充,比較粗的解析度印出來就很好用啦。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i9.ytimg.com/vi/pftOiewd3YY/default.jpg?sqp=CIiWuMcF&rs=AOn4CLDGBOhHsds6p49oQQIMBLQUBOPlJw" src="https://www.youtube.com/embed/pftOiewd3YY?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<br />
這是原本的樣子<br />
<a href="http://jjpaid.blogspot.tw/2014/12/blog-post_24.html">http://jjpaid.blogspot.tw/2014/12/blog-post_24.html</a><br />
<br />
這是新版的,好用多了<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2t2_AFAR5GNMkaownCKrJxI_Yr6mXHuvJWF84q8flFrvN1V-LNqxPc9xdee-9cdHooT_F6de6R1dpnf-Efm3V80Rx_oCeYZFm8TN_KYiaT68LPJ1fykMUV32TmgD0D5HGxPCabVqNDFI/s1600/17760117_10211161032116124_1858347775265896309_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2t2_AFAR5GNMkaownCKrJxI_Yr6mXHuvJWF84q8flFrvN1V-LNqxPc9xdee-9cdHooT_F6de6R1dpnf-Efm3V80Rx_oCeYZFm8TN_KYiaT68LPJ1fykMUV32TmgD0D5HGxPCabVqNDFI/s400/17760117_10211161032116124_1858347775265896309_n.jpg" width="400" /></a></div>
<br />
底座剛好可以卡進顯微鏡的目鏡座,用螺絲輕輕鎖就緊了。<br />
<br />
<a name='more'></a><br /><br />
原本的顯微鏡長這樣<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH33xqU1agOLSPw_k4K8yU2gUiAmb2eaZfZY1x_48LNgOweE-BI38Tcndp00BND4AVMmrFlcHh5fu25-0RNXuetJrzoMF94sVr0f0_GnygdNo0B0KJRkuohW7AQ4vrfmcl7cmJkl8Wa-A/s1600/IMG_4731.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH33xqU1agOLSPw_k4K8yU2gUiAmb2eaZfZY1x_48LNgOweE-BI38Tcndp00BND4AVMmrFlcHh5fu25-0RNXuetJrzoMF94sVr0f0_GnygdNo0B0KJRkuohW7AQ4vrfmcl7cmJkl8Wa-A/s320/IMG_4731.JPG" width="240" /></a></div>
<br />
<br />
上面的部件可以拆下來,旁邊螺絲鬆開就行了<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLJntTxLc-TpPTtzghYLz2TOcF4ssmiahBGle4HXOpFsisGlLb_RyB2YU9xR2huPoNvtubABLGC854hHmqvhyphenhyphenO9z0xlLVkoCWvKt97cY7y9Ok3R-hW0znbCBlr34ByHjPW7XMP0uxgnxk/s1600/IMG_4732.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLJntTxLc-TpPTtzghYLz2TOcF4ssmiahBGle4HXOpFsisGlLb_RyB2YU9xR2huPoNvtubABLGC854hHmqvhyphenhyphenO9z0xlLVkoCWvKt97cY7y9Ok3R-hW0znbCBlr34ByHjPW7XMP0uxgnxk/s400/IMG_4732.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
列印的套筒就裝上去,旁邊螺絲輕輕鎖就很緊了</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSfs7bZSCZ92YZUl-t0NsthTrS7eOJvkvOB8w4tblAAaKcpdEYfdO83_556wnoOZ3h06t8yKAyDHXkci9n28T841JBFdo52FHy6-ewmaWxTtGDjyKOrXNprkq6GHkCm9eh7p5oKeZtiaM/s1600/IMG_4733.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSfs7bZSCZ92YZUl-t0NsthTrS7eOJvkvOB8w4tblAAaKcpdEYfdO83_556wnoOZ3h06t8yKAyDHXkci9n28T841JBFdo52FHy6-ewmaWxTtGDjyKOrXNprkq6GHkCm9eh7p5oKeZtiaM/s400/IMG_4733.JPG" width="300" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
原本的目鏡也可以裝上去<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_aYS3_CiLpwSzH-92RvHV7VtEm5woWCyXDorWhCx0uikaXhG64h0KGWO-W1JBHahOmAJLCWZ-6F4G1afePSP6t3jkRXnMI_aFrhhro8XioYvMhUTpL-ae9ZboCi5UtGRPuBmQq2yeCbI/s1600/IMG_4734.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_aYS3_CiLpwSzH-92RvHV7VtEm5woWCyXDorWhCx0uikaXhG64h0KGWO-W1JBHahOmAJLCWZ-6F4G1afePSP6t3jkRXnMI_aFrhhro8XioYvMhUTpL-ae9ZboCi5UtGRPuBmQq2yeCbI/s400/IMG_4734.JPG" width="300" /></a></div>
<br />
把webcam接上電腦,調好焦距,就可以看到漂亮的標本囉<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk6Jy4QoER_UkcnWrvXiUgfUmHH0vr9Meb08mEmYiExra8pWPbWaZ42SZcOpVB4I_CdADM695kBOE5VuC4kbJBmbxMHqSdi44nyLPHfZBHRWzHJslBD0T6itm06XRgg7O2Z_2QjN-pvK4/s1600/IMG_4735.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk6Jy4QoER_UkcnWrvXiUgfUmHH0vr9Meb08mEmYiExra8pWPbWaZ42SZcOpVB4I_CdADM695kBOE5VuC4kbJBmbxMHqSdi44nyLPHfZBHRWzHJslBD0T6itm06XRgg7O2Z_2QjN-pvK4/s400/IMG_4735.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
調整物鏡放大倍率也沒問題</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbxh9C4B5nGlFoFfR8L1BDbOmSPW5d16WRwpoIRnK9QX-RXkXo8I3FL83Ph_pp6x8joooGsUERQxVYPfxUBHE569yB9T4mW7xozx54sUMvnA7IqpyvYF52Y5dZMiZ-ZpWIofoKBD6H4pw/s1600/IMG_4736.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbxh9C4B5nGlFoFfR8L1BDbOmSPW5d16WRwpoIRnK9QX-RXkXo8I3FL83Ph_pp6x8joooGsUERQxVYPfxUBHE569yB9T4mW7xozx54sUMvnA7IqpyvYF52Y5dZMiZ-ZpWIofoKBD6H4pw/s400/IMG_4736.JPG" width="400" /></a></div>
<br />
<a href="http://www.thingiverse.com/thing:2233313" target="_blank">Thinkgiverse </a>jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-16982865367894401052017-04-07T08:17:00.001+08:002017-04-07T08:24:38.314+08:003D列印的大試管架國中做實驗,用大試管還蠻方便的,但是一直沒有適用的大試管架。最近學了3DP,那就自己印一個吧。<br />
<br />
<a href="https://drive.google.com/file/d/0B4VhWxTGxGzwOEJRU0tieU4zR3M/view?usp=sharing" target="_blank">STL檔案在這邊</a><br />
<br />
<a href="https://www.tinkercad.com/things/dOWCqhq83H5-testtuberack/editv2?sharecode=VP3-XdWjwx8e-tvvOGUw0w9cSXUhBDYP1Zo5wYMp_nM=" target="_blank">Tinkcad連結</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTVbSltf-ABaFKwfNW7VL0roxxLU3S9hkcU04e9UHDEcafXBL6nv8BvEXL3ZuoqiSo74BMck2Q7NsJI91I8rDJID3heF5vNFdzjDsUDCqClmSeuWKXc3TuxQTnhBCGGyqOBcDa0Zvyg80/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-04-07+%25E4%25B8%258A%25E5%258D%25888.13.55.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTVbSltf-ABaFKwfNW7VL0roxxLU3S9hkcU04e9UHDEcafXBL6nv8BvEXL3ZuoqiSo74BMck2Q7NsJI91I8rDJID3heF5vNFdzjDsUDCqClmSeuWKXc3TuxQTnhBCGGyqOBcDa0Zvyg80/s400/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-04-07+%25E4%25B8%258A%25E5%258D%25888.13.55.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipNkoNnrBqiy8z_T0U-bQ4wMkw5_EHgwhmemrfqDn-OlGhve8n250bWHieaxlAXD-bDtgkKCMCVd4sCvLLIrG-OIXvgRABBsE7IktHSsEpLuXTL4p8MMYlfRzWMn18-rJlQrsCPtSb8Rw/s1600/IMG_4592.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipNkoNnrBqiy8z_T0U-bQ4wMkw5_EHgwhmemrfqDn-OlGhve8n250bWHieaxlAXD-bDtgkKCMCVd4sCvLLIrG-OIXvgRABBsE7IktHSsEpLuXTL4p8MMYlfRzWMn18-rJlQrsCPtSb8Rw/s400/IMG_4592.JPG" width="400" /></a></div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-69465010888930791902017-02-14T22:40:00.002+08:002017-02-15T20:05:33.707+08:00YWROBOT EMS + PMS3003 pm2.5 sensor終於弄了一顆攀藤的PMS3003, pm2.5 sensor,可以玩pm2.5的偵測了。<a href="https://www.dfrobot.com/wiki/index.php/PM2.5_laser_dust_sensor_SKU:SEN0177" target="_blank">資料在這邊</a>。大致上的原理是,機器有一個風扇,可以將風引入機器內,機器裡面有雷射,利用雷射打到空氣中懸浮微粒的散射角度,去判斷懸浮微粒的顆粒大小和數量。說是這樣說啦,我覺得好難喔。<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh03quwt-H9FFUyaBxezBC1sadpuD22qJk6Fwx-SZrrk3xhE2Ih6WKSRb_smxjvPI2kOscbTTRAXAPcfVnm46RybLCZJ6XfCRJG-Js7bZD93dfV7IrlTBe2nzUt51CNM71biJhReiZF0B8/s1600/IMG_4121.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh03quwt-H9FFUyaBxezBC1sadpuD22qJk6Fwx-SZrrk3xhE2Ih6WKSRb_smxjvPI2kOscbTTRAXAPcfVnm46RybLCZJ6XfCRJG-Js7bZD93dfV7IrlTBe2nzUt51CNM71biJhReiZF0B8/s400/IMG_4121.JPG" width="300" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
實際運作的影片</div>
<div class="separator" style="clear: both; text-align: center;">
<br /><iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Vz5LVtbhPnU/0.jpg" src="https://www.youtube.com/embed/Vz5LVtbhPnU?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
*後來把顯示的方式做了修改。把PM1和10拿掉,只留下PM2.5和溫濕度</div>
<div>
<br /></div>
<div>
<a name='more'></a>PMS3003長這樣,上面就是風扇,然後接頭有八個pin,附的接線就是八條線。但實際上接在arduino上,如果只要讀數值的話,只要三條就夠了。從最右邊的藍色開始算第一條的話,就是1, 2, 5,三條線。</div>
<div>
<br /></div>
<div>
1是VCC, 2是GND, 5就是訊號了。我原本以為要四條,因為查到的資料都是1, 2, 4, 5分別要接VCC, GND, RX->TX和TX->RX,這可能有別的特殊功能吧,後來發現用不到(我還沒弄懂),最後其實只有用到三條接線。</div>
<div>
<br /></div>
<div>
本來要接到arduino的RX上的線,我最後決定接到D7上,不然每次上傳都要拔線,很麻煩。既然不需要特別用到arduino上的RX, TX,我就改接點了比較方便。最後就是把三個接點接到D7的VCC, GND和Signal。</div>
<div>
<br /></div>
<div>
程式碼如下:</div>
<blockquote class="tr_bq">
<div style="border: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; font-stretch: inherit; margin-bottom: 1em; padding: 0px; vertical-align: baseline; widows: 1;">
<blockquote class="tr_bq">
#include <LiquidCrystal_I2C.h><br />// Set the pins on the I2C chip used for LCD connections:<br />// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol<br />LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址<br />//以上是驅動LCD的部分<br />#include <Wire.h><br />#include <dht.h> //使用DHT11 LibraryLiquidCrystal_I2C lcd(0x27,16,2);<br />dht DHT; //定義DHT11 物件<br />#define dht_dpin 4 //定義讀取資料的 Pin腳<br />#include <SoftwareSerial.h><br />#define pinR 9<br />#define pinG 10<br />#define pinB 11<br />SoftwareSerial mySerial(7, 1); // RX, TX<br />long pmcf10=0;<br />long pmcf25=0;<br />long pmcf100=0;<br />long pmat10=0;<br />long pmat25=0;<br />long pmat100=0;<br />char buf[50];<br /> int r = 0;<br /> int g = 0;<br /> int b = 0;<br /><br />void setup() {<br /> lcd.begin(16,2);<br /> pinMode(pinR, OUTPUT);<br /> pinMode(pinG, OUTPUT);<br /> pinMode(pinB, OUTPUT);<br /> pinMode(Buzzer, OUTPUT);<br /> Serial.begin(9600);<br /> mySerial.begin(9600);<br /> delay(300); //Let system settle<br />}<br />void loop() {<br /> retrievepm25();<br />}<br />void retrievepm25(){<br />DHT.read11(dht_dpin); //去library裡面找DHT.read11 <br />Serial.print("Humidity = "); <br />Serial.print(DHT.humidity); <br />Serial.print("% "); <br />Serial.print("temperature = "); <br />Serial.print(DHT.temperature); <br />Serial.println("C "); <br />lcd.clear();<br />lcd.setCursor(0, 0);<br />lcd.print("H="); <br />lcd.print(DHT.humidity); <br />lcd.print("%"); <br />lcd.print("T="); <br />lcd.print(DHT.temperature); <br />lcd.println("C");<br /> <br /> int count = 0;<br /> unsigned char c;<br /> unsigned char high;<br /> while (mySerial.available()) {<br /> c = mySerial.read();<br /> if((count==0 && c!=0x42) || (count==1 && c!=0x4d)){<br /> Serial.println("check failed");<br /> break;<br /> }<br /> if(count > 15){<br /> Serial.println("complete");<br /> break;<br /> }<br /> else if(count == 4 || count == 6 || count == 8 || count == 10 || count == 12 || count == 14) {<br /> high = c;<br /> }<br /> else if(count == 5){<br /> pmcf10 = 256*high + c;<br /> Serial.print("PM1.0=");<br /> Serial.print(pmcf10);<br /> Serial.println(" ug/m3");<br /> }<br /> else if(count == 7){<br /> pmcf25 <br /> = 256*high + c;<br /> Serial.print("PM2.5=");<br /> Serial.print(pmcf25);<br /> Serial.println(" ug/m3");<br /> lcd.setCursor(0,1);<br /> lcd.print ("PM2.5=");<br /> lcd.print (pmcf25);<br /> lcd.print (" ug/m3");<br /> if (pmcf25 < 15.4) {<br /> r=0;<br /> g=40;<br /> b=0;<br /> noTone(5);<br /> }<br /> else if (pmcf25 < 35.4){<br /> r=40;<br /> g=40;<br /> b=0;<br /> noTone(5);<br /> }<br /> else if(pmcf25<55.4){<br /> r=50;<br /> g=30;<br /> b=0;<br /> noTone(5);<br /> }<br /> else if(pmcf25 <150.4){<br /> r=80;<br /> g=0;<br /> b=0;<br /> noTone(5);<br /> }<br /> else if(pmcf25 <251.4){<br /> r=40;<br /> g=0;<br /> b=40;<br /> noTone(5);<br /> }<br /> else if (pmcf25 >251.4){<br /> tone (5, 500, 1000);<br /> r=162;<br /> g=42;<br /> b=42;<br /> }<br /> analogWrite (9 ,r);<br /> analogWrite (10 ,g);<br /> analogWrite (11 ,b);<br /> }<br /> else if(count == 9){<br /> pmcf100 = 256*high + c;<br /> Serial.print("PM10 =");<br /> Serial.print(pmcf100);<br /> Serial.println(" ug/m3");<br /> }<br /> count++;<br /> }<br /> while(mySerial.available()) mySerial.read();// 將多餘的資料掠過<br /> Serial.println();<br /> delay(1000);<br />}<br /> </blockquote>
</div>
</blockquote>
<br />
光是這樣就可以從serial print上讀到數值囉。然後我想既然用了EMS, 不如就利用上面的DHT11溫濕度計,加上三色LED燈和蜂鳴器來做一些事情。<br />
<br />
首先就是加上LCD, 把訊息顯示在LCD上。然後顯示溫濕度。這樣幾個重要的環境偵測數值就都有了(改天再把大氣壓力加上去好了)然後發現LCD太小,所以訊息得要交替出現。<br />
<br />
接下來依據最新的空氣污染指標AQI,將PM2.5的數值轉成AQI對應的顏色,顯示在三色LED燈上面。<a href="http://taqm.epa.gov.tw/taqm/tw/b0201.aspx" target="_blank">定義在這邊</a><br />
<br />
所以pm2.5在 15.4 ug/m3以下,是綠色的; 15.4~35.4是黃色的這樣以此類推...,接下來只要抓取pm2.5的數值來設定條件對應輸出的顏色就行。最後再加上蜂鳴器,讓污染值太高的時候,會發生一些警告聲音,就完成了。<br />
<br />
一開始是綠色的<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja_ME-t2tZVcjZQpSjls_KK0OKlhwk0jYpDw9tKEH-twU7Z9JHnplIOcWSTMK8Yt66S4TAzrmLflsPWRzha-TO3wOV3HcV2pvP6MFj7Z7hOtPITJanhjCyeLyVEmgOmVNPXnMZ6wqvurk/s1600/IMG_4125.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja_ME-t2tZVcjZQpSjls_KK0OKlhwk0jYpDw9tKEH-twU7Z9JHnplIOcWSTMK8Yt66S4TAzrmLflsPWRzha-TO3wOV3HcV2pvP6MFj7Z7hOtPITJanhjCyeLyVEmgOmVNPXnMZ6wqvurk/s320/IMG_4125.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
點上蠟燭,還是綠的</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf19aBf9qhZkXwKNsVEATEhxGSjGt_yVWSExGtmPjCEWeq8ooh-avx-mEFai7wchxSM5GKGmAAWvlzt3hFZlfNbGur6pE1oBLcuG1fumD_LvK2oT_yE1GPXKSwxo143JS-kNgyjqKPres/s1600/IMG_4127.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf19aBf9qhZkXwKNsVEATEhxGSjGt_yVWSExGtmPjCEWeq8ooh-avx-mEFai7wchxSM5GKGmAAWvlzt3hFZlfNbGur6pE1oBLcuG1fumD_LvK2oT_yE1GPXKSwxo143JS-kNgyjqKPres/s320/IMG_4127.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
吹熄之後,冒一些煙出來,pm2.5瞬間破表,飆到2906 ug/m3,顯示亮橘色(原本的深褐色在LED上不太好表達,我就把亮度調高變成亮橘色)</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJUBtuoC8DrRAIIVsTKmwHgT4hkN7H9EQxx7DdP3NhH8zadLIQcH6HHiadZgLJIhvZNk8Y_-iklvu8GdWT1ZlBEqzKxAAc_El0ZxYVlwBAWTBPSK2LTcBvDd-iWllZUlPv1WBiX1nVLo/s1600/IMG_4128.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJUBtuoC8DrRAIIVsTKmwHgT4hkN7H9EQxx7DdP3NhH8zadLIQcH6HHiadZgLJIhvZNk8Y_-iklvu8GdWT1ZlBEqzKxAAc_El0ZxYVlwBAWTBPSK2LTcBvDd-iWllZUlPv1WBiX1nVLo/s320/IMG_4128.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
幾秒之後,降到228 ug/m3,但是超級怪異的是,紫色一直出不來,完全無法理解(結果只要在那個條件加上buzzer要發出聲音,LED的藍色就會消失,完全無法理解問題!後來只好把紫色的聲音警告關掉)</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMuHbFfmVenRZl2uShTdhhAcAF0DcD8Psob0vFBr35193RBpWGGmZ1IliI8F1NNF6e_r-GjMQU27g7D0dxMgaWou9UIeS9gyFiHooFdC3EtEixFt4KtBAaIUQfm82UcEIkH0zMUrALoB0/s1600/IMG_4130.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMuHbFfmVenRZl2uShTdhhAcAF0DcD8Psob0vFBr35193RBpWGGmZ1IliI8F1NNF6e_r-GjMQU27g7D0dxMgaWou9UIeS9gyFiHooFdC3EtEixFt4KtBAaIUQfm82UcEIkH0zMUrALoB0/s320/IMG_4130.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
幾秒鐘之後,下降到33ug/m3, 變成黃色</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGRvIW1pJKHfoHVFcz-pF40JX_HHc3uGZrLjidWV6OQgCav3bFMq7AF-d8zU8qiKe6qI6PQ1U4rxadQ_VrxHUuXxQmw6qrL6XajPx-Yt9KT95siCj30FUtNP5fEFcF9nZ7ToWu1FBt3oQ/s1600/IMG_4133.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGRvIW1pJKHfoHVFcz-pF40JX_HHc3uGZrLjidWV6OQgCav3bFMq7AF-d8zU8qiKe6qI6PQ1U4rxadQ_VrxHUuXxQmw6qrL6XajPx-Yt9KT95siCj30FUtNP5fEFcF9nZ7ToWu1FBt3oQ/s320/IMG_4133.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
code等我抓到bug再放上來囉</div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-81285349974492023832017-01-01T10:58:00.001+08:002017-01-01T10:58:32.979+08:00Ywrobot EMS + 宇宙機器人 + IR remote唱歌用宇宙機器人最新開發的for Ywrobot Easy Module Shield 積木,做了用遙控器控制板子上面蜂鳴器的裝置。<br />
<br />
啟用IR裝置後,讓變數IR去讀取紅外線的訊息。將遙控器對準板子上的紅外線接收器(D6),分別按下1, 2, 3, 4, 5, 6, 7 讀取了訊息後,就變成設定的條件。然後就可以判定當IR讀到某個訊息的時候,就讓蜂鳴器發出對應的聲音。<br />
<br />
但是IR訊息的讀取有個問題就是,當我按下遙控器送出訊息給板子讀到了。但當我放開遙控器按鈕的時候,訊息並沒有辦法更新為:「按鈕放開了」。於是除非我按了另外一個按鈕,把原本的訊息洗掉,否則變數會一直維持原來的,就會不斷發出聲音。<br />
<br />
就像我按下電子琴的C4, 放開之後,還是持續發出C4的聲音這樣。於是後面要加一個,聲音輸出固定時間後,就把IR關閉再打開。這樣訊息就會被洗掉了。<br />
<br />
積木大概長這樣<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwqnDs4cQE_Lk1tPoGfteuJ4qdl5c9ACQb2E4dIhCyLtfOxsvXytk_2_gFjh7tWM4EfYcInxySCpmJSHXJiijZ58XrGyc-bTtCNgBDi-Bc_HfrGAJZ_ppu7rGhCA2byOYo4uCuVatycQo/s1600/IMG_3400.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwqnDs4cQE_Lk1tPoGfteuJ4qdl5c9ACQb2E4dIhCyLtfOxsvXytk_2_gFjh7tWM4EfYcInxySCpmJSHXJiijZ58XrGyc-bTtCNgBDi-Bc_HfrGAJZ_ppu7rGhCA2byOYo4uCuVatycQo/s400/IMG_3400.jpg" width="400" /></a></div>
<br />
<br />
<br />
<a name='more'></a><br /><br />
實際運作的狀況<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/YLuV4XGCV3s/0.jpg" src="https://www.youtube.com/embed/YLuV4XGCV3s?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-73473493084029810062016-12-01T17:21:00.004+08:002016-12-01T17:21:48.348+08:00取Arduino數據給Excel用自動取得數據的PLX-DAQ不能用了,只好純手動。新的excel可以在貼上數據的時候,自動用逗號分隔欄位了,所以還算方便。請看VCR...<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/9C66QE-IIHg/0.jpg" src="https://www.youtube.com/embed/9C66QE-IIHg?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div>
<br /><br /></div>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-48347235203030201642016-11-04T10:23:00.001+08:002016-11-04T16:29:00.774+08:00Ywrobot easy shield module擴充版關於Ywrobot這塊擴充版easy shield module(以下簡稱ESM)的介紹,可以看這邊: <a href="http://www.instructables.com/id/EasyModuleShield%E7%9A%84S4A%E8%AA%B2%E7%A8%8B/">http://www.instructables.com/id/EasyModuleShield的S4A課程/</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJuyC3nyxxQgxFMVMrqK4deyt1mGULE6ze0w4QQ5B4F0ehXhFkZiq-jT1C_47Hdv1JTTN3c-Z4vkUk_jJhEdhbiScXJm5b4c2hLyfwTIf6O9ywzqywi9gZjMYjV5xKaw0tFMT9jV4eHk/s1600/IMG_2699.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJuyC3nyxxQgxFMVMrqK4deyt1mGULE6ze0w4QQ5B4F0ehXhFkZiq-jT1C_47Hdv1JTTN3c-Z4vkUk_jJhEdhbiScXJm5b4c2hLyfwTIf6O9ywzqywi9gZjMYjV5xKaw0tFMT9jV4eHk/s400/IMG_2699.JPG" width="400" /></a></div>
<br />
<a name='more'></a>這塊板子,上面有內建了可變電阻、光敏電阻、LM35溫度計、DHT11溫濕度感應、紅外線感應、按鈕等等。並且有一個類比和兩個數位腳位可以外接擴充的元件。還有兩個按鈕和一個三色RGB燈。由於這個架構和原本用SciCore發展的實驗裝置架構蠻像的,於是就試試看能不能把程式改成給Ywrobot ESM用的。<br />
<br />
<a href="http://jjpaid.blogspot.tw/2016/10/scicoresensor.html" target="_blank">SciCore</a>上面用了三個可變電阻可以做很多調控,一般擴充版倒不會這麼奢侈。一方面上面有一些內建的元件會吃掉類比接腳,一方面三個可變電阻佔用的體積不小。所以一般這些擴充版頂多只有一個可變電阻。所以一些程式設計就必須修改。但是板子上面兩個按鈕,加上一個可變電阻,仍然可以做出很多變化。<br />
<br />
<br />
大致上的想法,是利用D2按鈕切換主模式,D3切換主模式中的不同模式或狀態,可變電阻調控取樣時間或訊號強度等等。<br />
<br />
#1 Ywrobot ESM 簡介<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/0dnEra8Qxd4/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/0dnEra8Qxd4?feature=player_embedded" width="320"></iframe></div>
<br />
#2 環境溫濕度壓力偵測<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/-L72joHlylA/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/-L72joHlylA?feature=player_embedded" width="320"></iframe></div>
<br />
#3 溫度與壓力<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/BXlCLgQsi1s/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/BXlCLgQsi1s?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
#4超音波模組。這個蠻好玩,因為手機居然可以錄到超音波模組發出的pulseㄟ<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Zrex2VYgGzU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/Zrex2VYgGzU?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#5 RGB混光</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/LsQybR6tyDo/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/LsQybR6tyDo?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
#6 頻率產生器,用內建的buzzer發出聲音</div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/0cgx1PycS3E/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/0cgx1PycS3E?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#7 水波產生器(<a href="http://jjpaid.blogspot.tw/2016/10/blog-post.html" target="_blank">產生水波的樣子看這裡</a>)</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/xIin-OnUmh0/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/xIin-OnUmh0?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
#8 ph meter<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/BZW_0zMQ8Tg/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/BZW_0zMQ8Tg?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
<a href="https://drive.google.com/open?id=0B4VhWxTGxGzweXVVelFXMDFETlE" target="_blank">程式碼在這邊</a> 需要請自取<br />
<br />
to buy list<br />
<br />
1. arduino UNO<br />
<br />
2. YwRobot ESM : <a href="https://ywrobot.world.taobao.com/">https://ywrobot.world.taobao.com</a> 結果剛剛去看找不到這一片,怪怪<br />
<br />
3. LCD I2C 1602 : 蠻多地方都有<br />
<br />
4.<a href="https://world.taobao.com/item/521067211228.htm?fromSite=main&spm=a312a.7700824.w7915219-11866261691.41.HWctyK" target="_blank">溫度計 DS18B20</a><br />
<br />
5.壓力 <a href="https://world.taobao.com/item/15942729699.htm?fromSite=main&_u=428rubph285c" target="_blank">MPX4115AP</a><br />
<br />
6.SG90伺服馬達:<a href="https://www.eclife.com.tw/led/moreinfo_83738.htm" target="_blank">良興有賣</a> 價格我就沒研究過了<br />
<br />
7. pH meter :<a href="https://www.dfrobot.com/index.php?route=product/product&product_id=1025" target="_blank"> DFrobot</a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-43339018593570174452016-11-01T23:46:00.000+08:002016-11-01T23:46:01.879+08:00S2A練習(一)實體鍵控制LED最近進的貨都到手了,所以就開始可以做進一步的研發。最近開始要研發用Scratch搭配一些擴充版來設計科學實驗可以用的儀器。<div>
<br /></div>
<div>
當然是希望可以方便使用,也可以推廣。(<a href="http://edumakerlab.blogspot.tw/2016/11/s4a-sensor-boardscratch-20_35.html" target="_blank">scratch配合arduino的課程,黃輝聲老師已經寫的很詳盡了,就不再重複。</a>)我自己的偏好,是要做成科學儀器使用。</div>
<div>
<br /></div>
<div>
目前覺得很有希望的板子有兩套,一個是慧手科技的S4A sensor board V2,一個是YwRobot的easy module shield。今天就先從慧手的板子練習起。</div>
<div>
<br /></div>
<div>
至於Scratch要怎麼跟Arduino連結呢?目前唯一推薦就是奕學開發的宇宙機器人啦。<a href="https://www.facebook.com/kodorobot/" target="_blank">相關資訊一</a>、<a href="http://dshps.blogspot.tw/2016/03/scratch20transformer.html" target="_blank">相關資訊二</a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCLxTy4abETVFNWsLMa-1Wp4GxKgDm7_VZSzLyhx0iA7DFJ2vs4xrrhtvh-IavRTVlIUOKzct0B9zp7cAQpa-h8WYLRICPmP7uo6Ea1kNsCnf2Rpxdm9SXcNpLgjNPAiuIgYJzuQoiupw/s1600/IMG_2696.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCLxTy4abETVFNWsLMa-1Wp4GxKgDm7_VZSzLyhx0iA7DFJ2vs4xrrhtvh-IavRTVlIUOKzct0B9zp7cAQpa-h8WYLRICPmP7uo6Ea1kNsCnf2Rpxdm9SXcNpLgjNPAiuIgYJzuQoiupw/s400/IMG_2696.JPG" width="300" /></a></div>
<div>
<br /></div>
<div>
<a name='more'></a><br /></div>
<div>
因為執著實體鍵的關係,把原本幾行積木就可以搞定的RGB LED控制,硬是變成了一大串。不過這個程式設計的邏輯也剛好可以作為之後,要切換不同功能儀器時的練習。</div>
<div>
<br /></div>
<div>
大致的想法,就是用紅色按鈕控制可變電阻的數值要丟給誰。每按一次紅鈕,就切換給下一位,用可變電阻調好數值,再切換這樣,最後也再放了數位控制的選項。然後再按一次,就切到最開始。</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="520" height="366" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Hjqneqx47fY/0.jpg" src="https://www.youtube.com/embed/Hjqneqx47fY?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0tag:blogger.com,1999:blog-7766779934689365067.post-57434204587540449762016-10-25T18:23:00.002+08:002016-10-25T18:28:23.957+08:00用伺服馬達製作起波器只要一個底部透明的小水槽,加上古董的透明片投影機,就能將水波投影到螢幕上,進行很多的教學。<a href="http://lsjhgifted.blogspot.tw/2011/10/blog-post_21.html">http://lsjhgifted.blogspot.tw/2011/10/blog-post_21.html</a><br />
(這東西快絕種了,有人要丟掉的請丟到我這裡謝謝!)<br />
<br />
以往會在資優班這邊想辦法做出水波干涉條紋給學生看,但是都只能使用以前小時候打電動按鈕連發的技能,手動製作,有時候成功有時候失敗。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKqI-Se4jAk008VnNmxZmi_-bKZVF2whaN2d43AC5MapCuJS-1ZCi-5PTL0WfJoUMJKXY-tbVFFwM85Q08mj0O0uAO89izu-h7XI_Uv_z6gbUA9D53KPiwSvuq_kzTF2h10vzSZt2wByk/s1600/IMG_2660.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKqI-Se4jAk008VnNmxZmi_-bKZVF2whaN2d43AC5MapCuJS-1ZCi-5PTL0WfJoUMJKXY-tbVFFwM85Q08mj0O0uAO89izu-h7XI_Uv_z6gbUA9D53KPiwSvuq_kzTF2h10vzSZt2wByk/s400/IMG_2660.JPG" width="300" /></a></div>
<br />
<br />
最近玩arduino,就有了想法-我能不能控制伺服馬達(SG90)讓他依照某個頻率來回震盪製造水波呢?結果就在影片中。<br />
<br />
讓伺服馬達一開始先定位到90度的位置,然後用可變電阻調控每次加減的角度,就可以控制振幅;用另一個可變電阻控制每次動作的delay時間,就可以控制頻率。<br />
<br />
東西做好之後,接下來困擾的事情,就是要怎麼樣才能固定在水波槽旁邊。想了好幾個版本,最後一想:江老師設計的SciBrick,不就是為了這個目的設計的工具嗎?於是再加上江老師設計的科學積木將馬達固定好,就變成很好的兩點波源囉。<br />
<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/a4oyR6f9ppY?rel=0" width="560"></iframe>
</div>
jjponghttp://www.blogger.com/profile/00102461059910408914noreply@blogger.com0