2016年9月11日日曜日

SATA電源用ACアダプタ的なものを作ってみた。

SATA→USB変換アダプタを使うときに使っていたHDD用のACアダプタが壊れてしまったので12VのACアダプタを使って作ってみた。

カッコンカッコン言うから最初HDDが壊れたのかと思ってしまったよ…
PCに内蔵したら動いたので多分ACアダプタが悪い。

SATA電源コネクタには12Vと5Vと3.3Vが流れてるんだけど、3.3Vを使ってるデバイスは今のところ見たこと無いので今回は12Vと5Vのみの変換ボックスを作ってみた。

12VのACアダプタを使って、DC12Vを作ったら、DC-DCコンバータで5Vを作ることにした。三端子レギュレータだと結構発熱しそうだし。
DC-DCコンバータはeBayで購入した3Aまで流せるやつ。80円ぐらいだった。
SATAの電源ケーブルは廃棄するATX電源からカットしてきた。
ACアダプタは梅澤で500円で売ってたやつ。今回は有ったのを使ってみたから1Aなんだけど、HDDによっては2Aほしいかも。
ACアダプタ以外の部品代は400円ぐらい。

とりあえずケースにコネクタとケーブルを通す穴を適当に開けて、まずは基板だけを装着。リップル対策に電解コンつけたけど220uFぐらい有ったほうが良かったかな…
このDC-DCコンバータは可変なので、この状態で5Vに調整する。
調整が終わったらDC-DCコンバータの出力に赤(5V)、ACアダプタ直(12V)に黄(今回はなぜか青)をはんだ付けして、黒はグラウンドにハンダ。オレンジの3.3Vは今回使わないので末端にビニテを巻いて置いた。

こういったACアダプタはHDD交換のときとか、データ吸い出しのときとか意外と便利なのよねぇ。
ACアダプタによっては電圧微妙なやつがあるかもしれないので注意かも。

2016年8月28日日曜日

Naze32をiOSから設定してみた。

MuitiWiiのときはWinタブ使って現地で設定していたけど、Winタブを手放してしまったので今回はiPadやiPhoneで使えるようにしてみた。

使用するアプリはMobile Flightで、このアプリはBluetoothとWifiに対応してるみたい。
今回は先日購入したBluetooth 4.0モジュール(BLE-CC41-A)を使ってみた。

まずはBLE-CC41-AをPCにつなぎ、ボーレートのセットアップ。
AT+BAUD=8でCleanflightデフォルトの115200bpsに変更。
ついでにBluetoothで検索をかけた時の名前を変更してみた。

あとはNaze32に接続するだけ。ブレークアウト基板付きのモジュールなので5Vから電源をとってみた。

通信距離がながければこの画面は面白いかも。

ただ今回はBluetoothなので設定メインということで。
主にPIDの設定とかモータの確認とかなんだけど、これで手軽に設定できそうだなぁ

2016年8月22日月曜日

Naze32のBlackBoxの容量アップをしてみた。

Naze32 rev6 10DOFにはフライトレコーダのBlackBoxとして2MBのSPI Flashが搭載されているんだけど、16MBのSPI Flashが余っていたので交換してみることに。

もともと搭載されているのはMicronの25P16VPっていう品番のSPI Flashなんだけど、余っていたのはWT3020用に買ったWinbondのW25Q128。WT3020の時の感覚でとりあえずメーカ有ってなくても(ryというアレで…

早速2MBのSPI Flashをはがすと、Please donateという文字が…
安い基板にはSPI Flashが乗ってないからなのか、安い10DOFを買ってこんなことをする奴を想定しているのか…

今回交換するSPI Flashは200milサイズなので結構でかい。
なのでパターン的にはこんな感じで結構ぎりぎり乗る感じ。

このフライトコントローラはCleanflightに書き換えていたのでCleanflightを開くとBlackBoxの容量が確認できる。
交換後は何もしなくても16MBとして認識されてる!
これでバッテリ1本の飛行時間でも余裕でフライトログが取れるようになったはず。
まだNaze32にしてから飛ばしてないけど…
いろいろ更新しないといけないしなぁ。

2016年8月21日日曜日

Naze32 rev6を買ってみた

クアッドコプタのフライトコントローラがMultiWiiというのも古くなってきた感じがしたのでNaze32 rev6をポチってみた。
ケース付きで17ドルぐらいだった。

ピンヘッダも自前でハンダしないといけないけどL字とストレート選べるので便利かも。

よーくシルクを見るとなんか偽物っぽい…

ケースにはCleanflightって書いてあるのでCleanflightで接続してみると

なんか違うじゃん…

とりあえずCleanflightに書き換えて見ようかな。
ちなみに今回購入したのは10DOFなので、6軸の加速度センサと、3軸の電子コンパスと、高度計用の気圧計が搭載されていた。そしてBlackBoxは2MBのSPI NAND Flashが搭載されているという構成。
2MBだと1バッテリ分記録できるか微妙なところらしいしなぁ。

2016年8月12日金曜日

Bluetooth 4.0 BLEモジュールをiOSで使ってみた。

iOSでSPPを使うには結構高級なモジュールが必要で前にMultiWiiの設定するのもWinタブを使ってたんだけど、Bluetooth 4.0のモジュールだと安いモジュールでもiOSとシリアル通信できるようなので試しにポチってみた。

TIのCC2540、CC2541を積んだモジュールが500円以下とかで出回っているので試しにポチってみた。HM-10とHM-11ってのが有ったけどHM-11の方は小さいけど高いのでとりあえずお試しということでHM-10にしてみた。

5Vでも使いたかったので、レギュレータ付きのブレークアウト基板に実装済みのものを買ってみた。

とりあえずUSBシリアル変換アダプタでPCに繋いでみた。

PCにつなぐとモジュールのLEDが点滅して接続待機状態に。
接続待機状態のときはPCからシリアル通信経由でATコマンドが使える。
デフォルトのボーレートは9600だった。
このATコマンドでモジュールの設定変更が可能みたい。

ATコマンドでAT+HELPでコマンド一覧が出せる。
とりあえず今必要なのはボーレートの設定ぐらいだったんだけど、AT+BAUDを見てみるとBAUD4になってるんだけど、HM-10の説明書ではボーレート9600はBAUD0のはずなんだけど…

そんでもってAT+HELPに出てきたURLにアクセスしてみたところこのモジュールはHM-10ではなくてBLE-CC41-Aって言うモジュールだということが判明。HM-10にはクローンが何種類か有るみたいだけどファームウェアも違うのね…
BLE-CC41-Aの説明書をみてみるとボーレートの設定番号が違うのでクローンのモジュールの場合は注意が必要かも。

続いてはiOSからの接続。
設定のBluetoothからは全く見えないので調べてみるとアプリ側で直接接続しないといけないっぽい?
LightBlueっていうアプリで検索してみたらうまく発見できた。

BT05って言うのがこのモジュールみたい。この名前は先程のATコマンドで変更可能。
タップするとうまく接続できた。モジュールのLEDが点灯に変わるっぽい。

ちなみにこのモジュール、ATコマンドで設定するとiBeaconにもできるっぽい。
MultiWiiに積んでたモジュールより低消費電力みたいだし、値段も余り変わらないし…
Bluetooth 4.0で便利になったなぁ

2016年7月24日日曜日

I2C接続のDCモータドライバ

3年ぐらい前にRaspberry Piを自走式にして遊んでいた時のシャーシにつけてたモータドライバが煙を吹いてお亡くなりになられたのでI2C接続のモータドライバでも作ってみようかと。
モータドライバを作ると言ってもL298Nを使ったモジュールはeBayでお安く買ったのが在庫有ったのでこれこいつをPWMで制御できる程度のものでいいかなぁと
多分こいつも3年ぐらい前に買ったやつで、壊れたモータドライバのがだいぶ熱を持つし、パワーが無かったので買ってたやつかも。

Attiny85がたくさんあったのでとりあえずI2Cスレーブのライブラリと格闘してPWMが2ch分動かせたんだけど、結局L298で2ch分動かすにはロジックICを使うしかな差そうなんだけど残りの2chのデジタル出力がうまく行かなくて断念…
Arduino Pro microも在庫有ったんだけどi2cの関係で調べていたらオープンソースなモータドライバを見つけてしまったのでパクらせてもらった…

Grove I2Cモータドライバとして普通に売られてるものなんだけど、回路図もプログラムも公開されてるっぽい。
Atmega8はESC修理用のやつが有ったのでそいつを使用してみた。
ただしTQFPなのだ…

まずはおもむろにユニバーサル基板の上にカプトンテープを貼ってとりあえずプログラムを書き込んだ。
最初に書き込んだのはこの後配線が大変なことになりそうだから…
DIPスイッチはI2Cのアドレス変更に使うみたい。

端子を付けて完成。
スズメッキ線で結構裏面を使ってしまった。

3年前に作ってホコリをかぶっていたシャーシに再びモータドライバが!
このモータって3Vじゃなかったっけと言いつつこのモータドライバだと4.8V以上だったはずなのでエネループ4本で駆動してみた。
ちなみにL298Nモジュールにレギュレータ載ってるけど、今回のように低い電圧で動かす場合はジャンパで外電源に切り替えて別なところから供給しないとうまく動かなかった。
多分レギュレータが悪い…(本来このモジュールは12V駆動を想定してるらしい)

モータドライバがI2Cになったことにより上に何載せても良さそう。
Raspberry Piでもいいし、ESP-WROOM-02でもいいし。


2016年7月17日日曜日

USBでDigisparkと通信してみた。

Arduinoは基本的にシリアルポートを持っていてSerial.printなどを使ってデバッグが進められたりPCから制御したりできるんだけど、DigisparkはV-USBでUSBに対応しているのでハードウェアなシリアルポートは持っていない。
一応DigiCDCを使えばUSBでの仮想シリアルポートも使えるようだけど安定性の問題からDigiUSBに取って代わられてるみたい。

DigiUSBはlibusbからDigisparkを通信できるようにしてるようなので、PC側は専用にツールを作らないといけなかったりハードルが高いかも。
一応PythonベースでArduinoのシリアルモニタのように使えるツールも公開されてるけど…

DigiUSBからDigisparkを制御する方法はC++やVC#での例も有ったので今回はVC#でDigisparkと通信してみた。

とりあえずGithubからサンプルをゲット。
こちらのセットの関数をフォームからゴニョゴニョするだけで簡単にGUIアプリからDigisparkを制御できそう。
ただしシリアルと違って受信イベントがないので定期的に読みに行くかしないと行けないかなぁ
とりあえずLEDのオンオフぐらい。

DigisparkもクローンがeBayでだいぶ安かったのでAttiny85取り用に何個か買って基板だけ放置されてたんだけど、最近Attiny85をお安くそこそこ手にれたので元に戻してみた。
クローンだとReset端子を入出力に使えないので今回の復活でちゃんとResetも使えるようにしたのでUSB接続でもIOが4ポート使える。

I2CもSPIもUSBのピンと被ってないし、センサのデータとか読み出せたりするかなぁ