tag:crieit.net,2005:https://crieit.net/tags/PIC24FJ/feed 「PIC24FJ」の記事 - Crieit Crieitでタグ「PIC24FJ」に投稿された最近の記事 2014-05-13T09:00:00+09:00 https://crieit.net/tags/PIC24FJ/feed tag:crieit.net,2005:PublicArticle/14375 2014-05-13T09:00:00+09:00 2014-05-13T09:00:00+09:00 https://crieit.net/posts/84f93328518d1653e0b730b459ee9771 ラジコン完成! <p>昨日のラジコンをユニバーサル基板で作りなおして完成!<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0240.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0240-300x225.jpg" alt="DSC_0240" width="300" height="225" class="alignnone size-medium wp-image-384" /></a></p> <p>動作的には普通に売られてるラジコンと大差ない感じで<br /> かなり楽しい。結構速い。</p> <p>まとめ<br /> ・PIC24FJ64GB002<br /> ・組み立て方は<a target="_blank" rel="nofollow noopener" href="http://www.hiramine.com/physicalcomputing/rccar_arduino_bluetooth_android/index.html" target="_blank">RCカー を作る</a>を参考に。<br /> ・bluetoothドングルはBSHSBD04BK</p> <p>・<a target="_blank" rel="nofollow noopener" href="https://github.com/hrdakinori/BT_DROID" target="_blank">BT_DROID</a>使用<br /> 大した変更ではないがbt_spp.cにモーター用の処理を追加<br /> (go, back, stop)</p> <blockquote> <p>|c|<br /> } else if (<em>data == 'g') {<br /> mPORTAWrite(0);<br /> for (i = 0; i < 100; i++)<br /> mPORTAWrite(1);<br /> } else if (</em>data == 'b') {<br /> mPORTAWrite(0);<br /> for (i = 0; i < 100; i++);<br /> mPORTAWrite(2);<br /> } else if (*data == 'p') {<br /> mPORTAWrite(0);<br /> ||</p> </blockquote> <p>・Androidアプリの<a target="_blank" rel="nofollow noopener" href="https://play.google.com/store/apps/details?id=mBluetoothSerialController.nomal&hl=ja" target="_blank">Bluetooth Serial Controller</a>を使用。<br /> サーボモーターの操作はそのまま使用しているので<br /> 左右はs4, s6ボタンを離すとs5</p> <p>・単三電池4本使用。<br /> サーボモーター、モータードライバ(TA7291P)、ドングルは6V<br /> PIC側は3端子レギュレータで3.3Vにしている。<br /> 昔良くわからないで買ったTA7267BP(6V)で試したらすごくトロくなる。</p> <p>・サーボモーター、電池はピンヘッダ、ピンソケットで繋いでいるので<br /> 基板も取り外し簡単。全体的に色々別で使いまわせる感じになっている。<br /> (電源スイッチ付けるの忘れたがとりあえず問題ない)</p> <p>・サーボモーターは100円ショップの両面テープでガッツリくっついた。</p> <p>・ユニバーサル基板を買い忘れていたのでビバホームで買ってきた。<br /> なんか高いし臭い…。はんだもつきづらい。プロの人仕様???</p> <p>ようやくひとつ大きなもの作ったな〜という感じで達成感がある。</p> <p>関係ないが壁とかにぶつかると、<br /> この電池ソケットなんか緩いらしくすぐに通電しなくなって止まって残念…。<br /> (秋月のだと思うんだけどプラスかマイナスどっちかが常時浮いてる状態なので<br /> 事前にプラス側を押さええておかないといけない…。<br /> フタ付きのヤツのほうがいいのかも。)</p> <p>あと電源入れるだけでbluetoothドングル起動してくれるようにならないのかな…。<br /> わざわざリセットボタンを押すのが面倒。</p> <p>5/28回路図を追加。<br /> Eagleに多少慣れてきたので追記します。<br /> 書いてみたらあまりにシンプル過ぎてアップする必要もなかったかもしれませんが…。<br /> パパっと思い出して書いたので間違っているかもしれません。<br /> 参考にする場合は各ICのマニュアルを見て下さい。<br /> PICのピン名はGAのものを使っているので違ってるかもしれません。<br /> ピン数を参考にして下さい。<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/bluetoothcar.png"><img src="http://program.alphabrend.com/wp-content/uploads/2014/05/bluetoothcar-300x170.png" alt="bluetoothcar" width="300" height="170" class="alignnone size-medium wp-image-416" /></a></p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14376 2014-05-12T09:00:00+09:00 2018-10-29T20:41:15+09:00 https://crieit.net/posts/bluetooth bluetoothラジコンの試作! <p>bluetoothドングルを使ったラジコンカーの試作ができた!<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_02391.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_02391-225x300.jpg" alt="DSC_0239" width="225" height="300" class="alignnone size-medium wp-image-378" /></a></p> <p>テストで作っていたテスト基板とブレッドボードと電池を<br /> 試しに勢いでのせただけのもの…。<br /> ラスボスのような姿。</p> <p>ちゃんとユニバーサル基板で作るのが楽しみだ。<br /> ちなみに元ネタは下記。<br /> <a target="_blank" rel="nofollow noopener" href="http://www.hiramine.com/physicalcomputing/rccar_arduino_bluetooth_android/index.html" target="_blank">RCカー を作る</a></p> <p>上記ではbluetoothモジュールとarduinoを使用しているので<br /> それだけで8千円くらいいってしまうくらいだが、<br /> 今回のものはPIC24FJ64GB002とbluetoothドングルを使っているので<br /> そこは合計1500円くらい。かなりお手軽だ。</p> <p>操作は、Androidアプリの<a target="_blank" rel="nofollow noopener" href="https://play.google.com/store/apps/details?id=mBluetoothSerialController.nomal&hl=ja" target="_blank">Bluetooth Serial Controller</a>というのを使っている。<br /> ボタンの配置とかを簡単に設定でき、<br /> 押した時だけでなく離した時にシリアルで送るコマンドも指定できるので<br /> 押したらモーター駆動、離したらストップ、等のようにすれば<br /> 簡単なラジコンならボタン4つでコントローラが設定できてしまう。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14383 2014-05-08T09:00:00+09:00 2018-10-30T14:09:25+09:00 https://crieit.net/posts/PIC-bluetooth-Android PIC+bluetoothドングルでAndroidと通信 <p>前から気になっていたPIC24FJ64GB002にbluetoothドングルを繋げて<br /> 遠隔でシリアル通信をする、ということを試してみた。<br /> 使用したbluetoothドングルは価格.comで一番安かったBSHSBD04BKというやつ。<br /> 1000円くらい。</p> <p><a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0239.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0239-225x300.jpg" alt="" title="DSC_0239" width="225" height="300" class="alignnone size-medium wp-image-348" /></a></p> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/hrdakinori/BT_DROID" target="_blank">BT_DROID</a>というのがちまたで有名なので試してみたが<br /> あっさり上手くいった。</p> <p>ハマった点。</p> <p>どうもちょっと昔に作られたプログラムらしく、<br /> MPLAB X IDE + XC16ではなく、古い方の<br /> MPLAB IDEとC30を使うらしい。<br /> 旧バージョンもダウンロードできる。</p> <p>プログラムのビルド、書き込みは特に問題なく行えた。<br /> 早速PC上でteratermで試してみたのだが、上手くいかない。<br /> どうもそのままのプログラムはLED点灯の場合<br /> 3文字くらい一気に処理してるので、<br /> 1文字ずつ手入力するteratermだと遅すぎるみたい。</p> <p>Androidのアプリでいくつか試したところ上手く行った。<br /> PCでも同様に一気に文字が送れる物があれば大丈夫だと思う。</p> <p>Androidで事前にペアリングする場合、<br /> 検出された機器のアイコンがヘッドホンだったので<br /> 他の人の家のものが丁度検出されたのかな、と思ったが<br /> 特に関係無いようでそれでよかった。</p> <p>これでPIC24FJ64GB002とbluetoothドングルいっぱい買いだめしておけば<br /> いくらでも無線工作ができる!!<br /> とも思うが、PIC24FJ64GB002は最安値でも500円くらいして高いので<br /> PIC32MX250でもできないか試してみたいところ。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14389 2014-04-29T09:00:00+09:00 2018-10-24T22:53:20+09:00 https://crieit.net/posts/PIC24FJ64GB002-LED PIC24FJ64GB002でLED点灯 <p>PIC24FJ64GB002でLED点灯。<br /> 初の16bit。<br /> USBホストのために買ったのだが折角なので試しておく。</p> <p>しかしこれがなかなかうまく行かなかった。<br /> まずひとつの原因が、8ビットのものとは違って、<br /> データシートを見ると最小限の回路の指定があり、<br /> この通りに組む必要があるらしい。<br /> 適当にpickitやledと接続するだけだとダメみたい。<br /> 面倒だから専用のテスト用基板を作った方が良さげ。</p> <p>上記は理解できたのだが、どうしてもLEDが点灯しない。<br /> 色々試してたら点灯した。<br /> どうもまだ回路図を正しく読む力が無いようで、余分な線を外したら動いた。</p> <p>同じく回路図読めない人のために見難いけど画像を貼っときます。<br /> 回路図はネットにいっぱいあるのでそっちを参考にして下さい。<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/04/DSC_0228.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/04/DSC_0228-225x300.jpg" alt="" title="DSC_0228" width="225" height="300" class="alignnone size-medium wp-image-314" /></a><br /> コンデンサが一個なくて電解になっちゃってて違うんだけど…。</p> <p>プログラムはほとんどサンプルのまま。<br /> (サンプルあったんだな…初めて気づいた)<br /> 色々試してるうちに、プライマリオシレータとインターナルオシレータの<br /> 違いが分からなかったので念のため内部のものにしてある。</p> <blockquote> <p>|c|</p> </blockquote> <h1 id="include &lt;xc.h>"><a href="#include+%26lt%3Bxc.h%3E">include <xc.h></a></h1> <p>_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & FWDTEN_OFF & ICS_PGx2)<br /> _CONFIG2( FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMOD_NONE & FNOSC_FRCPLL)</p> <p>/*<br /> *<br /> */<br /> void delay(void) {<br /> long i = 65535;<br /> while(i--)<br /> ;<br /> }</p> <p>int main(void) {<br /> CLKDIV = 0;<br /> TRISA = 0;<br /> TRISB = 0;</p> <pre><code>// Setup PortA IOs as digital AD1PCFG = 0xffff; LATA = 0xFFFF; LATB = 0xFFFF; while(1) { LATA = 0x0000; LATB = 0x0000; delay(); LATA = 0xFFFF; LATB = 0xFFFF; delay(); } return 0; </code></pre> <p>}<br /> ||</p> <p>LATというのは調べると分かるが<br /> ポートの出力のためのレジスタ書き込みの際の不具合を抑えるためのもの。<br /> 入力はPORT、出力はLATを使うといいとどっかに書いてあった。</p> だら@Crieit開発者