tag:crieit.net,2005:https://crieit.net/tags/Arduino/feed 「Arduino」の記事 - Crieit Crieitでタグ「Arduino」に投稿された最近の記事 2018-10-07T11:32:44+09:00 https://crieit.net/tags/Arduino/feed tag:crieit.net,2005:PublicArticle/14384 2014-05-05T09:00:00+09:00 2018-10-07T11:32:44+09:00 https://crieit.net/posts/arduino 自作arduino互換機完成 <p>ついに自作arduino互換機が完成した。<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0237.jpg"><img class="alignnone size-medium wp-image-341" title="DSC_0237" src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0237-225x300.jpg" alt="" width="225" height="300" /></a><a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0238.jpg"><img class="alignnone size-medium wp-image-342" title="DSC_0238" src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0238-225x300.jpg" alt="" width="225" height="300" /></a></p> <p>USBコネクタがかなり危なげだが…。<br /> arduino400を見るとBコネクタを使ってるみたいだけど<br /> Aコネクタのようにユニバーサル基板に無理やり挿せるんだろうか?</p> <p>ちなみにarduino400の作者の方によると、<br /> PICを挟んでいるのでそっちを変更すれば<br /> arduinoのファームウェアを変更しなくても<br /> USB機器に変更できてしまう構成らしい。<br /> たしかにそれは便利だ。</p> <p>しかし何にしろこれでもうarduinoを購入することはないだろう…。<br /> arduinoから始めた電子工作も一区切りまで進んだ気がする。<br /> あとは何を作るかなんだよなぁ…。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14387 2014-04-30T18:04:27+09:00 2014-04-30T18:04:27+09:00 https://crieit.net/posts/ATTINY-arduino-ISP ATTINY用arduino ISPシールド <p>ATTINY13, 45, 85用のarduino ISPシールドを作成した。</p> <p><a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0232.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0232-225x300.jpg" alt="" title="DSC_0232" width="225" height="300" class="alignnone size-medium wp-image-327" /></a></p> <p>ちっちゃくてかわいらしんだが作るのに神経を使い時間がかかった…。<br /> どうもこのサイズで必要なピンだけarduinoと接続していると<br /> 普通のユニバーサル基板の穴にそのままピンヘッダつけるだけで<br /> arduinoにささるみたい。<br /> 全部のピンを使うときのように位置をずらしたりしなくてもいける。</p> <p>DIPスイッチは11〜13ソケットに回路の一部が刺さってて<br /> 書き込みに失敗してしまう時とかに使う用。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14390 2014-04-28T09:00:00+09:00 2014-04-28T09:00:00+09:00 https://crieit.net/posts/4f5e860161d4be621579bcee87fa0f1d モーターの遠隔操作 <p>モーターの遠隔操作が特に問題なく出来た。<br /> 以前の<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/?p=161" target="_blank">androidでarduinoを操作</a><br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/?p=164" target="_blank">androidにbluetooth接続</a><br /> を組み合わせて、PCからのシリアル通信の内容を<br /> そのままandroid経由でarduinoに渡しているだけ。</p> <p>DCモーターとサーボモータを遠隔操作したので<br /> これでラジコンが作れる。</p> <p>が、ラジコンに関しては実際はbluetoothドングルでandroidからの操作を考えているので<br /> これはテストというか遊び。<br /> もちろんandroidとか簡単にセットできるような仕様にしておけば<br /> こういう方法でも良さそうだけど。<br /> でもまあどっちにしろこの仕組は何かの時に使えそうだ。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14393 2014-04-25T09:00:00+09:00 2014-04-25T09:00:00+09:00 https://crieit.net/posts/arduino-ISP arduino ISPの制限 <p>色々無理なことあると思っていたのだが、<br /> 勝手な勘違いだったみたいで特にそういうことはないみたい。<br /> 書き込んだ後FT232RLとつないだら普通にシリアル通信もできた。<br /> 多分クロック数が問題になる事以外はできるっぽい。</p> <p>あとPICが必要になってしまう場面ってなんだろ。<br /> USBホストとかかな。<br /> arduinoのUSBホストの情報調べてもシールドのことしか出てこないし、<br /> これができれば遊びなら本当にPIC要らなくなるんだけどな…。<br /> USBホストシールドが必要なら高すぎる。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14394 2014-04-19T09:00:00+09:00 2018-10-31T14:10:56+09:00 https://crieit.net/posts/arduino-wav arduinoでwavファイルを再生 <p>arduinoでwavファイルを再生した。<br /> スピーカーは秋月の8Wの。</p> <p><a target="_blank" rel="nofollow noopener" href="http://goji2100.com/blog/?p=210" target="_blank">Arduino UNO/Mega 2560 .WAVファイルの再生</a><br /> のサイトのをそのまま。<br /> 変に改変したりせず、とにかく忠実にやればいける。<br /> タイマーやPWMの設定をしているので<br /> AVRの仕様とか理解してないとsound outとかも変えると動かないかも。<br /> 自分もデバッグをシリアルに変更したくらいしかしてない。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14397 2014-04-15T13:04:02+09:00 2018-10-30T14:09:17+09:00 https://crieit.net/posts/arduino-SD arduinoでSDカード操作 <p>arduinoでSDカードの操作を行ってみた。</p> <p>・せっかくなのでarduino単体でできたら、<br /> 出来たばっかのarduino ISPシールドでも可能かどうか試す</p> <p>・秋月の<a target="_blank" rel="nofollow noopener" href="http://akizukidenshi.com/catalog/g/gK-05818/" target="_blank">SDカードスロットDIP化モジュール</a>を使用<br /> 繋ぎ方は<br /> 3.3VとGND…arduinoの3.3VとGND<br /> SDI(=CMD/SDI)…D11<br /> SD0(=DAT0/SD0)…D12<br /> CLK…D13<br /> CS…D4<br /> CDはCard Detect。<br /> よくわからないのでLEDとつないでみたら<br /> SDカードが入っていない時だけ点灯している。</p> <p>・同じく秋月の<a target="_blank" rel="nofollow noopener" href="http://akizukidenshi.com/catalog/g/gK-05488/" target="_blank">マイクロSDカードスロットDIP化キット</a>も試した。<br /> CD/DAT3…D4<br /> CMD…D11<br /> CLK…D13<br /> DAT0…D12</p> <p>とりあえずarduino IDEの適当なSDカードサンプルを幾つか実行してみたら<br /> 問題なく上手く行った。<br /> 最終的に下記プログラムをarduino ISPで試したら上手く行った。<br /> プログラムがはじまったらLEDが5回光り、<br /> SDカードの認識に成功したら5回光り、<br /> 最後にtest.txtに記述されている数値の数だけ光る。<br /> 今回は3とだけ入力して保存しておいた。</p> <blockquote> <p>|c|</p> </blockquote> <h1 id="include &lt;SD.h>"><a href="#include+%26lt%3BSD.h%3E">include <SD.h></a></h1> <p>const int LED = 9;</p> <p>File myFile;</p> <p>void ledCount(int count) {<br /> for (int i = 0; i < count; i++) {<br /> digitalWrite(LED, HIGH);<br /> delay(200);<br /> digitalWrite(LED, LOW);<br /> delay(200);<br /> }<br /> }</p> <p>void setup()<br /> {<br /> int number;<br /> pinMode(LED, OUTPUT);<br /> ledCount(5);</p> <p>if (!SD.begin(4)) {<br /> return;<br /> }<br /> ledCount(5);</p> <p>myFile = SD.open("test.txt");<br /> if (myFile) {<br /> if (myFile.available()) {</p> <pre><code> char c = myFile.read(); number = c - '0'; } // close the file: myFile.close(); delay(1000); ledCount(number); </code></pre> <p>} else {<br /> digitalWrite(LED, LOW);<br /> }<br /> }</p> <p>void loop()<br /> {<br /> // nothing happens after setup<br /> }<br /> ||</p> <p>ただ、最初試した時は書き込み時に妙なエラーが発生し、<br /> 最初の5回の点滅しかしなかった。<br /> 原因は未だにわからない。<br /> avrdude: verification error, first mismatch at byte 0x0249<br /> 0xc0 != 0x24<br /> avrdude: verification error; content mismatch<br /> こんなの。<br /> 線を挿し直したりなんだかんだやってたらいつの間にか出来るようになった。<br /> 線が外れかけていたか、逆に指しているせいで電力の関係でうまくいかないのか、<br /> 詳しくはわからない。</p> <p>microSDでもやってみたので<br /> 再度いろいろ試してみると、下記みたいな感じ。<br /> ・回路つないだままでやるとエラー発生<br /> ・全部線を外すか、SDカードモジュール外すと書き込み可能。<br /> (ここでdelayしておいてその間にSDカードモジュールを指すと上手く動く)<br /> ・上記で書き込んだ後、線を全部さしたままでも上手く行くときといかない時がある。</p> <p>という感じなので、回路があるせいで信号が別で消化されてしまうか<br /> ぐちゃぐちゃになってしまうか、というような原因ぽい。<br /> シールドにソケットつけて回路つなげたまま簡単開発、<br /> という最初のアイデア自体がそもそも間違っているのかもしれない。<br /> なるべく10〜13ピンは使用をさけるか、4セットのDIPスイッチがあると便利かもしれない。</p> <p>ちなみにPICで読む方法もざっと見てみたが大変すぎる…。<br /> MLAも見てみたがPIC24しか対応してないし…。<br /> というか、仕様的に512バイトより多くメモリが必要なので<br /> それを満たしているICを持ってないとダメだ。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14399 2014-04-14T09:00:00+09:00 2014-04-14T09:00:00+09:00 https://crieit.net/posts/arduino-ISP-5b0d18bd5e2f3 arduino ISPシールド作成 <p><a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/?p=264" target="_blank">前回の記事</a>で作成していたシールドをある程度完成させた。<br /> 大体のピンをソケットでそのまま使用できるようになっているのでかなり便利なはず。<br /> しかし前回も書いたように、ICの向きを逆にした方が<br /> 写真のようなグチャグチャ配線にならずにすむはず。<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/04/DSC_0223-1.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/04/DSC_0223-1-225x300.jpg" alt="" title="DSC_0223 (1)" width="225" height="300" class="alignright size-medium wp-image-273" /></a></p> <p>逆にしようと思ったが半田をはずすのが無理っぽかったので<br /> やむなく配線を積み重ねることにした。<br /> 紫のとこは適当にやりすぎたらUSBとかにぶつかってしまったので<br /> 空いたスペースにギュウギュウに入れている。</p> <p>あと、なんか<br /> avrdude: stk500_getsync(): not in sync: resp=0x00<br /> のエラーが出て書き込みに失敗するなぁと思って調べたら、<br /> 0, 1ピンはRX, TXで使うのでつなが無い方がいいらしい。<br /> 何もつないでないのになぁとおもったらよくよく考えたら全部ICにつながっている。<br /> まあ元々0, 1は使わないようにしてたので配線を捨てた。</p> <p>何しろ今後の遊びが非常に楽になりそうだ。<br /> 次はATTINY用のものを作りたい。<br /> しかし秋月では2種類くらいしか売られてないんだよな…。<br /> 他の店は高すぎて買う気にならないし。</p> <p>追記</p> <p>別で試していたところ書き込みの失敗が多発。<br /> 回路があるせいで信号が別で消化されてしまうか<br /> ぐちゃぐちゃになってしまうか、というような原因ぽい。<br /> シールドにソケットつけて回路つなげたまま簡単開発、<br /> という最初のアイデア自体がそもそも間違っているのかもしれない。<br /> なるべく10〜13ピンは使用をさけるか、4セットのDIPスイッチがあると便利かもしれない。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14404 2014-04-06T09:00:00+09:00 2014-04-06T09:00:00+09:00 https://crieit.net/posts/arduino-5b0d18bd806d9 arduino互換機ちびでぃ〜の2を使ってみた <p><a target="_blank" rel="nofollow noopener" href="http://tiisai.dip.jp/" target="_blank">ちっちゃいものくらぶ</a>さんで販売している<br /> arduino互換機ちびでぃ〜の2が届いたので早速組み立ててみた。<br /> 最初基板を見た時結構ちっちゃいのでびっくりした。</p> <p>慣れないながらも何とか完成。<br /> 2時間位かかった。<br /> ていうかどうでもいいけどこれではんだづけにかなり慣れた気がする。<br /> 途中から全部富士山型になった。<br /> うまいことやると全部穴に吸い込まれていくんだな。<br /> 慣れた頃にUSBのちっちゃいランドへのハンダ付けだったので助かった。<br /> LEDだけでも表面実装のもので試してみたかった。<br /> ただLEDの光が弱いので、どっかうまく行ってないところとかありそうだ。</p> <p>で、完成して接続してみるがうまくいかない。<br /> よくよく作り方を見ると古いドライバを使わないといけないらしいので<br /> 試してみたところ正しく認識されるようになった。<br /> blinkも問題なく動作した。</p> <p>送料込みで1000円でこんなちっちゃいのが手に入るなんてすごすぎ…。<br /> そのうち自分でもユニバーサル基板で作ってみたい。<br /> 問題はUSBシリアルのICなんだよな…。</p> <p>他にも色々と販売されているようなのでぜひ見てみて下さい。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14412 2014-03-28T09:00:01+09:00 2014-03-28T09:00:01+09:00 https://crieit.net/posts/arduino-5b0d18bd9c749 arduinoで赤外線受信 <p>今日は面白い記事。<br /> 最終的にはPICでやりたいのだが、<br /> PICだとLCDとかないとデバッグが出来ないのだが<br /> 今8ピンのICしかなくそもそもLCDもないので<br /> とりあえずarduinoでコマンド取得だけやっとこうかなと思い立った。</p> <p>環境は下記の通り。<br /> ・SONYのテレビリモコン(<a target="_blank" rel="nofollow noopener" href="http://elm-chan.org/docs/ir_format.html" target="_blank">仕様</a>)<br /> ・赤外線受信は秋月のPL-IRM2161-XD1<br /> ・回路はGNDに47Ω抵抗さしただけ<br /> ・arduinoのシリアルモニターで結果確認。</p> <p>ネットで色々検索してスケッチを書いてみたがやはりうまくいかない。</p> <p>まずひとつの問題だが、シリアルモニタに全然データが出てこない。<br /> しかしプログラムの途中に変数のデバッグを入れると値はちゃんと変わっている。<br /> で、いろいろ試したところ、Serial.printlnの後ろに勝手に改行をつけると<br /> シリアルモニタに出てこないということがわかった。<br /> これが分かるまでにすごく時間がかかった…。</p> <p>次の問題は、リモコンから赤外線を送信してないのに<br /> 大量にデータが表示されてしまう。<br /> うちの中に大量に赤外線が飛んでいるのか、<br /> 回路がシンプル過ぎてこの受信モジュールじゃノイズが乗ってしまうのか、<br /> 色々調べてみたが全然分からなかった。</p> <p>最後に部屋を移動してみたらどうなんだろうと思い、<br /> ノートPCから配線を外した。</p> <p>…すると突然シリアルモニタの動きが止まった。<br /> まさかと思いリモコンを操作すると、今度はシリアルモニタに<br /> 規則的な値が出力されるようになった。</p> <p>なんとノイズの原因はPC自体だったという…。<br /> USBマウスは問題ないが、どうも電源コードを差し込むとおかしくなるようだ。<br /> ディスプライの明るさの問題なのかPCのどっかが光っているのかは分からないが<br /> まじで困る…。</p> <p>同じ症状が出た方は色々電化製品を調整してお試しを。</p> <p>スケッチは<a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/?p=211">別記事</a>に掲載しました。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14413 2014-03-28T09:00:00+09:00 2018-10-25T10:54:09+09:00 https://crieit.net/posts/arduino-5b0d18bd9d40b arduinoでスケッチ書き込みに失敗 <p>arduinoでスケッチの書き込みに失敗した。<br /> stk500v2_ReceiveMessage(): timeout<br /> のようなエラーが出る。<br /> USBを抜き差しとかしてみてもダメ。</p> <p>なぜかと思って調べたら<br /> マイコンボードの設定がarduino megaになっていた。<br /> そんなとこ変更してないのになぜ…。</p> <p>arduino unoに戻したら無事書き込めるようになった。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14417 2014-03-21T09:00:00+09:00 2014-03-21T09:00:00+09:00 https://crieit.net/posts/android-bluetooth androidにbluetooth接続 <p>androidにbluetoothで接続して<br /> teratermで信号を送ることができるようになった。<br /> 詳しいやり方は、まず<br /> <a target="_blank" rel="nofollow noopener" href="http://www.bright-sys.co.jp/blog/android-using-bluetooth-spp/" target="_blank">Androidアプリ開発 〜Bluetooth SPP による無線通信〜</a><br /> を参考に、bluetooth接続の有効化までを行う。</p> <p>あとは<br /> <a target="_blank" rel="nofollow noopener" href="http://d.hatena.ne.jp/propella/20120403/p1" target="_blank">Android で Bluetooth プログラミング。SPP は 21 世紀のシリアル端子。</a><br /> を参考にしてサーバーとして接続する。<br /> つまりandroid側で待ち受けして、PCから検索して接続する。<br /> なのでandroid側から接続可能な一覧取得したりとかの面倒な処理は要らない。</p> <p>あとはこれでandroid側で受けた信号をそのまま<br /> USB経由でarduinoに送信して操作できればOKだ。<br /> USBとbluetooth両方の時だけ変な障害とかが出なければ良いが。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14418 2014-03-20T09:00:00+09:00 2018-09-17T17:44:51+09:00 https://crieit.net/posts/android-arduino androidでarduinoを操作 <p><a target="_blank" rel="nofollow noopener" href="http://shokai.org/blog/archives/6962" target="_blank">AndroidのUSBホスト機能でArduinoとシリアル通信する</a><br /> という記事を見たのが全ての始まりで、<br /> androidからarduinoが操作できるのなら<br /> PCとandroidをbluetoothで接続することによって<br /> お金をかけてarduinoにwifiシールド着けなくても<br /> arduinoを遠隔操作できるのではないか、<br /> というところから実際に試してみようと思った。</p> <p>今回はarduinoにつけたサーボモータの角度を<br /> 色々いじれるように試してみた。</p> <p>まあ、なんだかんだで色々とハマった。</p> <p>まずはandroidアプリの作成。<br /> ボタンにsetOnClickListenerを実行すると強制終了。<br /> NullPointerExceptionが発生する。<br /> 最近のアプリの作り方はよくわからないのだが、<br /> なんかfragmentだかというのを使うように変わっていた。<br /> fragmentの上にボタンやテキスト等を貼っていたのだが、<br /> どうもそのせいでリソースが上手く取得できておらず<br /> エラーになっていたっぽい。</p> <p>そういう仕様で動作するようになってるんじゃないのかと思いながら<br /> わけわからないので結局メインフレームの方に全部記述を移して<br /> fragmentの方は使用しないようにしたら上手く行った。<br /> これで数時間ほど費やしたと思う…。</p> <p>しかしいざ実行してみるとサーボモータは動かない。<br /> まずひとつの原因。それは電力不足…。<br /> arduino上のLEDも光が弱い。<br /> 仕方がないので電池を使ってみたが<br /> このへんは自分の知識不足で上手く動かせなかったので<br /> サーボモーターはやめて13のLEDを光らせることに変更した。</p> <p>もう一つの原因が、最初のURLで紹介していたやり方で<br /> マニフェストに追記したりxmlを追加したり<br /> なんかよくわからないことをやっているな、と思っていたのだが<br /> これをよく理解していないためだった。<br /> これが全ての肝で、単にアプリを起動してもUSBには接続できない。<br /> なんとUSB接続時にこのアプリを開くかどうかandroidが聞いてくるので、<br /> そこでOKして起動することでUSBとアプリが関連付けられ、<br /> 接続ができるようになる、というものだった。<br /> USBホストはそういう機能だもんな…。</p> <p>ちなみに購入したケーブルはケーズデンキの下記。650円くらいで安い。<br /> USBホスト変換アダプタケーブル サンワサプライ AD-USB18<br /> マウスをandroidにつけるとマウスポインタが出てきてびびった。</p> <p>最終的にA(65)で点灯、B(66)で消灯、を試したところ<br /> 上手く行った。</p> <p>ちなみに記事を書いてから気づいたが<br /> <a target="_blank" rel="nofollow noopener" href="http://shokai.org/blog/archives/6996">Android版ArduinoFirmataを作った</a><br /> というのがあった。<br /> arduino.digitalReadとかってそのままじゃないか。なんと便利そうな。</p> だら@Crieit開発者