<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
>
<channel rdf:about="http://blog.livedoor.jp/hardyboy/">
<title>まごころせいじつ堂 - Grove</title>
<link>http://blog.livedoor.jp/hardyboy/</link>
<description>浜町庄金　研究開発
　マイコンで遊んでばっかりで

</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="http://blog.livedoor.com/?v=2.0" />
<items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://blog.livedoor.jp/hardyboy/archives/7410891.html" />
  <rdf:li rdf:resource="http://blog.livedoor.jp/hardyboy/archives/7117178.html" />
  <rdf:li rdf:resource="http://blog.livedoor.jp/hardyboy/archives/7114638.html" />
  <rdf:li rdf:resource="http://blog.livedoor.jp/hardyboy/archives/7043767.html" />
 </rdf:Seq>
</items>
</channel>

<item rdf:about="http://blog.livedoor.jp/hardyboy/archives/7410891.html">
<title>I2C接続のジョイパッド</title>
<link>http://blog.livedoor.jp/hardyboy/archives/7410891.html</link>
<description>　MICROCHIPのI/OエキスパンダMCP23008を使って簡単なジョイパッドをC基板で作ってみた。MCP23008は8本のGPIOをI2C経由で制御できる。上位のMCP23017は16本制御できるが、ジョイパッドに必要なスイッチは上左下右ABなのでMCP23008を選択した。　C基板のちょうど収まりのよい...</description>
<dc:creator>hardyboy</dc:creator>
<dc:date>2014-07-21T00:31:36+09:00</dc:date>
<dc:subject>Grove</dc:subject>
<content:encoded><![CDATA[　MICROCHIPのI/Oエキスパンダ<a  target="_blank" href="http://ww1.microchip.com/downloads/cn/DeviceDoc/cn026496.pdf">MCP23008</a>を使って簡単なジョイパッドをC基板で作ってみた。<br />MCP23008は8本のGPIOをI2C経由で制御できる。上位のMCP23017は16本制御できるが、ジョイパッドに必要なスイッチは上左下右ABなのでMCP23008を選択した。<br />　C基板のちょうど収まりのよい位置にタクトスイッチを配置してメッキ線でぜんぶ配線。上の方にI2C端子を出す。Groveの並び(SCL/SDA/Vcc/GND)に合わせる。<br /><a  target="_blank" title="2014joypad1" href="http://livedoor.blogimg.jp/hardyboy/imgs/e/f/ef1a5e5b.jpg"><img  align="left" class="pict" hspace="5" alt="2014joypad1" border="0" height="360" width="480" src="http://livedoor.blogimg.jp/hardyboy/imgs/e/f/ef1a5e5b-s.jpg"></a>
<br  clear="all">

<br />&nbsp; &nbsp; 　回路図はあとで整理するけどもほぼ見たまんま。<br /><br /><span  style="font-size: 13px;">MCP23008</span><br />
<span  style="font-size: 13px;">1 SCL Groveコネクタ1 SCLへ 3.3KΩプルアップ</span><br />
<span  style="font-size: 13px;">2 SDA Groveコネクタ2 SDAへ&nbsp;3.3KΩプルアップ</span><br />
<span  style="font-size: 13px;">3 A2 Vdd</span><br />
<span  style="font-size: 13px;">4 A1 Vdd</span><br />
<span  style="font-size: 13px;">5 A0 Vdd</span><br />
<span  style="font-size: 13px;">6 *RESET 10KΩプルアップ</span><br />
<span  style="font-size: 13px;">7 NC</span><br />
<span  style="font-size: 13px;">8 *INT NC</span><br />
<span  style="font-size: 13px;">9 Vss</span><br />
<span  style="font-size: 13px;">10 GP0 ジョイパッドUp</span><br />
<span  style="font-size: 13px;">11 GP1 ジョイパッドLeft</span><br />
<span  style="font-size: 13px;">12 GP2 ジョイパッド Down</span><br />
<span  style="font-size: 13px;">13 GP3 ジョイパッド Right</span><br />
<span  style="font-size: 13px;">14 GP4 ジョイパッド Trigger A</span><br />
<span  style="font-size: 13px;">15 GP5 ジョイパッド Trigger B</span><br />
<span  style="font-size: 13px;">16 GP6 NC</span><br />
<span  style="font-size: 13px;">17 GP7 NC</span><br />
<span  style="font-size: 13px;">18 Vdd</span><br />
<span  style="font-size: 13px;"></span><br />
<span  style="font-size: 13px;">Groveコネクタ3 Vdd</span><br />
<span  style="font-size: 13px;">Groveコネクタ4 Vss</span>&nbsp;<br /><br />　マイコンボードはArduino Leonardoと互換の<a  href="http://www.switch-science.com/catalog/1561/" target="_blank">Seeeduino Lite</a>を使用した。これはボード上にGrove端子(I2C,Serial)が付いていてそのまま接続できる。今回Seeeduino Lite用のドライバや定義ファイル(board.txt)は使わずにArduino Leonardoとして使っている。&nbsp;<br /><br /><a  href="http://livedoor.blogimg.jp/hardyboy/imgs/7/7/777de0f0.jpg" title="2014joypad2" target="_blank"><img  src="http://livedoor.blogimg.jp/hardyboy/imgs/7/7/777de0f0-s.jpg" width="480" height="360" border="0" alt="2014joypad2" hspace="5" class="pict" align="left"></a>
<br  clear="all">

<br />&nbsp; 　さて、I2Cの制御はどうしようかなと探していたらMCP23008用のライブラリがあった。これをArduino IDEにインストールしておく。<br /><a  target="_blank" href="https://github.com/adafruit/Adafruit-MCP23008-library">https://github.com/adafruit/Adafruit-MCP23008-library</a>&nbsp;<br /><br />　動作テスト用のスケッチはこちら。<br /><a  target="_blank" href="https://gist.github.com/houmei/4c5c3db0579f5b12a71e">https://gist.github.com/houmei/4c5c3db0579f5b12a71e</a><br /><br />　押したスイッチに対応してU L D R A B の記号が表示される。これでハードの動作確認ができた。<br /><br />続きの予定：<br />・回路図描く<br />・コネクタを追加し、ATARI(MSX)仕様のジョイスティックをつないでみる。<br /><br /><br /><br /><br /><br />&nbsp;]]>
</content:encoded>
</item>
<item rdf:about="http://blog.livedoor.jp/hardyboy/archives/7117178.html">
<title>Grove 4-Digit DisplayをCrowduinoで使うためのパッチ</title>
<link>http://blog.livedoor.jp/hardyboy/archives/7117178.html</link>
<description>　Groveの4-Digit Displayを使ってみたが、Arduino互換のCrowduinoではライブラリに修正が必要だった。これについてはモヤモヤするものがあるがメモ。Grove - 4-Digit Display ライブラリは以下より。File:DigitalTube.zip　サンプルスケッチのClockDisplayはArduino Leonar...</description>
<dc:creator>hardyboy</dc:creator>
<dc:date>2014-02-24T06:34:35+09:00</dc:date>
<dc:subject>Grove</dc:subject>
<content:encoded><![CDATA[　Groveの4-Digit Displayを使ってみたが、Arduino互換のCrowduinoではライブラリに修正が必要だった。これについてはモヤモヤするものがあるがメモ。<br /><br /><a  href="http://www.seeedstudio.com/wiki/Grove_-_4-Digit_Display" target="_blank">Grove - 4-Digit Display</a>&nbsp;<br /><br />ライブラリは以下より。<br /><a  href="http://www.seeedstudio.com/wiki/File:DigitalTube.zip" target="_blank">File:DigitalTube.zip</a><br /><br />　サンプルスケッチのClockDisplayはArduino LeonardoとArduino UNO(SMD)では問題なく動作したのだが、互換品の<a  href="http://www.elecrow.com/arduino-compatiable-c-109/micro-controller-c-109_117/crowduino-with-atmega-328-v11-p-338.html" target="_blank">Crowduino</a>では5Vモードで最初数回コロンが点滅して停止、3V3モードでは動作するという状態だったので調べた。<br />　スケッチ側から停止している部分を探すとtm1637.display()〜の箇所で止まっている。この部分に対応するライブラリがなんらかの原因で止まっている。動作電圧を切り替えると動いたり止まったりするのでタイミングの問題だろうか。LEDドライバはTM1637という石で最大6桁まで制御ができるらしいのだが、データシートを見つけることができなかった。仕方がないのでライブラリ TM1637.cpp 内のCLKとDATAをピンの信号を上げ下げしている部分に適当にdelay(10);をかませてみたら5Vでも動作するようになった。<br />　次はこのdelay(10);を少しづつ削っていく。最終的に<br /><br />void TM1637:writeByte(int8_t wr_data) 以下にある<br /><br />digitalWrite(Clkpin,LOW); //wait for the ACK の次の行に<br /><br />delay(1);<br /><br />が必須となった。これがないとCrowduinoの5Vではハングする。確認のためまる１日走らせて止まらないことを確認。<br /><br />　さて、なにがモヤモヤしているかというとこれは<br />// なぜか動く<br />行になってしまっているからだ。本来どうすべきか。<br />・データシートを見て該当するタイミングの箇所を確認する<br />・波形を観測。5Vと3V3でどのような差があるか、タイミング違反はどの箇所か<br />・ソース修正によりタイミング違反が解消されていることを観測<br />・連続ラン確認<br />・さらに温度を振ってより厳しい条件で確認<br /><br />　なぜか動くものはなぜか止まることもあり得るのよ。<br /><br />　やはりリファレンスとして純正品のボードは必要。Arduino互換品はピンが直接マイコンから接続されているので問題ないように思えるのだが、違いはあるみたいだ。<br /><br /><a  target="_blank" title="2014ledtube" href="http://livedoor.blogimg.jp/hardyboy/imgs/3/c/3c547a20.jpg"><img  align="left" class="pict" hspace="5" alt="2014ledtube" border="0" height="360" width="480" src="http://livedoor.blogimg.jp/hardyboy/imgs/3/c/3c547a20-s.jpg"></a><br />]]>
</content:encoded>
</item>
<item rdf:about="http://blog.livedoor.jp/hardyboy/archives/7114638.html">
<title>Grove LEDbarを使う</title>
<link>http://blog.livedoor.jp/hardyboy/archives/7114638.html</link>
<description>　GroveのLEDbarを使ってみた。10個のLEDがレベルメータのように並んでいるモジュール。Grove - LED Barライブラリは以下から。zipでまとめてダウンロードし、展開後できるフォルダ名の末尾-masterを削除し、Arduino IDEのライブラリフォルダにコピーする。https://github.co...</description>
<dc:creator>hardyboy</dc:creator>
<dc:date>2014-02-22T00:04:15+09:00</dc:date>
<dc:subject>Grove</dc:subject>
<content:encoded><![CDATA[　GroveのLEDbarを使ってみた。10個のLEDがレベルメータのように並んでいるモジュール。<br /><br /><a  href="http://www.seeedstudio.com/wiki/Grove_-_LED_Bar" target="_blank">Grove - LED Bar</a><br /><br />ライブラリは以下から。zipでまとめてダウンロードし、展開後できるフォルダ名の末尾-masterを削除し、Arduino IDEのライブラリフォルダにコピーする。<br /><br /><a  href="https://github.com/Seeed-Studio/Grove_LED_Bar" target="_blank">https://github.com/Seeed-Studio/Grove_LED_Bar</a><br /><br /><br /><a  href="http://livedoor.blogimg.jp/hardyboy/imgs/c/d/cdc07096.jpg" title="2014LEDbar1" target="_blank"><img  src="http://livedoor.blogimg.jp/hardyboy/imgs/c/d/cdc07096-s.jpg" width="480" height="360" border="0" alt="2014LEDbar1" hspace="5" class="pict" align="left"></a>
<br  clear="all"><br />　動作確認はArduino Leonardo、Crowduino(5V)で問題なし。<br />　仕様上3.3Vで動くようなことが書いてあったが、Crowduinoの3.3V設定では止まってしまった。<br />　おまけとしてIntel Galileoでもやってみたがまったく動かなかった。<br /><br />Crowduinoはこれね。<a  target="_blank" href="http://www.elecrow.com/arduino-compatiable-c-109/micro-controller-c-109_117/crowduino-with-atmega-328-v11-p-338.html">Crowduino With ATMega 328 V1.1</a><br /><br />　なお、このLEDbarは0〜9の番号がそれぞれに振ってあるが、0が赤、1が橙、あとは緑になっている。オーディオのレベルメータとは直感的には反対なので注意。<br /><br /><br />]]>
</content:encoded>
</item>
<item rdf:about="http://blog.livedoor.jp/hardyboy/archives/7043767.html">
<title>超音波距離センサ HC-SR04を1ピンで使う</title>
<link>http://blog.livedoor.jp/hardyboy/archives/7043767.html</link>
<description>　超音波距離センサモジュール HC-SR04というのがある。なぜかAmazonで安かった。HC-SR04 Demo For Arduino HC-SR04 User Guide[PDF] 　TRIG端子にパルスを与えると距離に応じた時間の後ECHO端子に信号がでる。電源を除くと2端子必要。が、Groveの超音波距離センサモジュー...</description>
<dc:creator>hardyboy</dc:creator>
<dc:date>2014-01-13T22:23:24+09:00</dc:date>
<dc:subject>Grove</dc:subject>
<content:encoded><![CDATA[　超音波距離センサモジュール HC-SR04というのがある。なぜかAmazonで安かった。<br /><a  href="http://www.elecfreaks.com/244.html" target="_blank">HC-SR04 Demo For Arduino</a>&nbsp;<br /><a  href="http://www.elecfreaks.com/store/download/product/Sensor/HC-SR04/HC-SR04_Ultrasonic_Module_User_Guide.pdf" target="_blank">HC-SR04 User Guide</a>[PDF]&nbsp;<br /><br />　TRIG端子にパルスを与えると距離に応じた時間の後ECHO端子に信号がでる。電源を除くと2端子必要。が、Groveの超音波距離センサモジュールのライブラリが使えないかと眺めていたら1端子しか使っていない。同じものに見えるのに？<br /><a  href="http://www.switch-science.com/catalog/1383/" target="_blank">GROVE - 超音波距離センサモジュール</a>&nbsp;<br /><br />　TRIG端子とECHO端子をショートさせたらどうだろうかと考えたが発振してしまうように思える。調べてみたら抵抗で繋げてしまえばいいらしい。<br /><a  href="http://letsmakerobots.com/node/36885" target="_blank">Hack your HC-SR04 into one pin mode</a>&nbsp;<br /><a  href="http://www.picaxeforum.co.uk/showthread.php?22639-HC-SR04&amp;p=223675&amp;viewfull=1#post223675" target="_blank">ForumMain PICAXE ForumActive PICAXE Forum HC-SR04</a>&nbsp;<br />これらによると 1.8KΩの抵抗で TRIGと ECHOを接続し、TRIG端子を使えば良いとのこと。手持ちの2.2KΩで試してみた。<br /><br /><a  href="http://livedoor.blogimg.jp/hardyboy/imgs/8/a/8a60dcba.jpg" title="2014grove1" target="_blank"><img  src="http://livedoor.blogimg.jp/hardyboy/imgs/8/a/8a60dcba-s.jpg" width="480" height="360" border="0" alt="2014grove1" hspace="5" class="pict" align="left"></a><br  clear="all">
<br /><br /><a  target="_blank" title="2014grove2" href="http://livedoor.blogimg.jp/hardyboy/imgs/4/e/4e18f3df.jpg"><img  align="left" class="pict" hspace="5" alt="2014grove2" border="0" height="360" width="480" src="http://livedoor.blogimg.jp/hardyboy/imgs/4/e/4e18f3df-s.jpg"></a><br  clear="all">

<br />これをGroveのケーブルで接続する。<br /><br /><a  href="http://livedoor.blogimg.jp/hardyboy/imgs/f/0/f06f7414.jpg" title="2014grove3" target="_blank"><img  src="http://livedoor.blogimg.jp/hardyboy/imgs/f/0/f06f7414-s.jpg" width="480" height="360" border="0" alt="2014grove3" hspace="5" class="pict" align="left"></a><br  clear="all">&nbsp;<br /><br />　ライブラリは Grove用のものをそのまま使った。<br /><a  target="_blank" href="https://github.com/Seeed-Studio/Grove_Ultrasonic_Ranger">Seeed-Studio / Grove_Ultrasonic_Ranger</a>&nbsp;[Github]<br /><br />注意：Githubからzipでまとめてダウンロードすると後ろに-masterが付くがArduino IDEのライブラリ名はハイフンを許さないので削除<br /><br />　ライブラリインストール後、UltraSonicDisplayOnTermスケッチを使って確認。<br />ソース中、距離をインチで取得する部分とセンチメートルで取得する部分があるが、この間にディレイを適当に入れてやらないと後に書いたほうが0を返す。ひょっとしたらGroveのセンサと非互換の箇所かもしれない。<br /><br /><div><span  style="white-space:pre">	</span>RangeInInches = ultrasonic.MeasureInInches();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; delay(100);　←これ</div><div><span  style="white-space:pre">	</span>RangeInCentimeters = ultrasonic.MeasureInCentimeters();</div><div><br />ということで2ピン必要なところを1ピンにケチることができた。</div><br /><br /><br />
<table  border="0" cellpadding="5"><tbody><tr><td  valign="top"><a  href="http://www.amazon.co.jp/exec/obidos/ASIN/B004U8TOE6/keisanki-22/" target="_top"><img  src="http://ecx.images-amazon.com/images/I/51tbSvuOcAL._SL160_.jpg" border="0" alt="HC-SR04 超音波距離センサーモジュール For Arduino"></a></td><td  valign="top"><span><a  href="http://www.amazon.co.jp/exec/obidos/ASIN/B004U8TOE6/keisanki-22/" target="_top">HC-SR04 超音波距離センサーモジュール For Arduino</a><br /><br />サインスマート（SainSmart）  <br />売り上げランキング : 4897<br /><br /><a  href="http://www.amazon.co.jp/exec/obidos/ASIN/B004U8TOE6/keisanki-22/" target="_top">Amazonで詳しく見る</a></span><span> by <a  href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a></span></td></tr></tbody></table>

<br />&nbsp;]]>
</content:encoded>
</item>

</rdf:RDF>
