2015年2月20日金曜日

小型クアッドコプタを作ろうかなと

まえからHobbyKing Pocket Quadが欲しくて在庫をたまーにチェックしてたんだけど復活する様子がない…
というかもうないのかなぁ…

中身がMultiWiiっぽいので付属の受信機使わずに別な受信機つけて遊べそうだったので狙っていたのだが。

そんでもってeBayとか巡っていたら
Micro Quadcopter Flight Driver Controller 9DOF 9-Axis Al Sensor STM32F103
ってな具合でなんか面白そうなフライトコントローラを発見。しかしファームウェアもよくわからんし詳細もよくわからん…
中身的にはマイコンがSTM32F103、6軸ジャイロがMPU6050、磁気センサとしてHMC5883Lが搭載されている模様。
品番がないから探しにくいんだけどCJMCUってところの基板らしい?

CJMCUっていうキーワードがわかったところでMultiWiiベースのオープンソフトファームウェアのbaseflightをこのボードで動かしてる人がいてさらにbaseflightの派生のcleanflightがこのボードをサポートしてるらしい!

しかしこのボード、もともと何用だったんだろ…
一応ブートローダは入ってるようなのでシリアル接続でファームウェアを転送できる模様。

モータはφ7mmのDCモータ対応。バッテリは1S対応らしい。レシーバはファームウェアによるところがあるけど。

とりあえずCleanflightで飛ばせそうなので部品をポチってみることに。このボードはGoodluckbuyでも売ってるようだけどeBayでポチった。
モータは7mm Hollow Cup Motor For Hubsan H107L Upgraded Versionにしてみた。なんか強そうだし…
バッテリはV930用のアップグレードバッテリで520mAh。ペイロードがどのぐらいあるのかよくわからないからとりあえずこれにしておいた。もしかしたらもっと小さいほうがいいのかも?
ファームウェアを書き込むためのUSBシリアル変換アダプタは持っているのでとりあえずこれだけで作れそう。

とりあえずまずは飛ぶかどうかをみてからレシーバ選定しようっと。
しかしいま中国休みなのでいつ届くのだろうか…

2015年2月12日木曜日

DeathAdderのスイッチを交換してみた。

家でも仕事でもDeathAdderを愛用しているんだけど仕事用の左クリックがチャタリングするようになってきたのでスイッチを交換してみた。CADでチャタリングはひどいお…
とりあえず分解するとこんな感じ。
左と右ボタンはオムロン製のスイッチが搭載されている模様。でも思えば左ボタンはもともともう片方より硬かったような気はしていた…
外れ引いたのかな…
交換用のスイッチは同じものを購入。オムロン製のD2FC-F-7Nってやつ。選定用に5個購入。はんだ吸い取りきで壊れたスイッチを外して試しに仮組みして取り付けてみるとやはり個体差がある模様。
仮組みした時にストロークが深いのが気になっていたので良さそうな奴にビニテを2枚重ねて貼り付けた。
これがなかなかストロークが短くなっていい感じ。もうちょいストローク短くしても良かったかなぁ
ついでに緑色化してみました。緑色化したら結構目立つようでデバイス好きに補足されたw

2015年2月11日水曜日

ArduinoとESP8266で温度と湿度をつぶやいてみた。

最近ESP8266モジュールを使ってArduinoからTwitterでつぶやいたりXiveryでグラフを作ってみたりしてきた。
いままでRaspberry PiでやってたことがArduinoでできるだなんて…

ということで前に作った素数BotをArduino Pro mini +ESP8266+DHT22に移植してみた。
このBot、地味に2年以上動いてたんだな…(時々止まってるのに気が付かなかったが。

とりあえず素数BotはXiveryにも同時にデータを送っていたが、今回はTwitter部分だけ実装した。
まぁ前回のコードほぼそのままなんだけど。
ESP8266のライブラリも今のところこれだ!と言うのは見当たらなかったので…
とりあえずブレッドボードで様子を見ようかなと。
調子が良さそうだったらXiveryにデータログする部分も書き足そうかな。
あとちゃんとSerial.find()使ってエラー処理するようにしないと鯖側に何かあった時やばそう。
汎用性が全くないソースコードになってるので綺麗に描き直さないとな…

Raspberry Piより低消費電力に!
これを応用するとスマートメーターとか作れそうだな

2015年2月7日土曜日

ArduinoとESP8266でTwitterに投稿してみた。

Raspberry Pi鯖から室温とかをTwitterでつぶやきつつ素数なんて数えていたけど、Arduinoでもできるんじゃね?
ということでまずは、ArduinoからESP8266モジュールを使ってWifi経由でTweetできるか試してみた。
ESP8266は例によってシリアルポートで通信しないといけないのでArduino Leonardo互換基板でやってみることに。やはりシリアルポート2ポート有るのは便利ー。
Leonardoじゃない場合はSoft serialを使うという手も。

次にどうやってTwitterからつぶやくかだけど、ArduinoでTwitterのAPIを直接叩いて認証したりするのは結構大変なんじゃないかな…
というわけでStewGate Uを経由してみることに。StewGate UのAPIならPOSTが使えれば一発だし。

登録はTwitterアカウントでログオンして承認するだけなので簡単!
登録するとトークンがもらえます。

試しにシリアルモニタで送信した文字列をつぶやくプログラムを書いてみた。
日本語は非対応だけどこのプログラムの文字数のカウント部分の問題で、ちゃんとカウントできればつぶやけることは確認済み。結局素数Botは数字しか変化しないので問題なさそう。

とりあえずのテストなのでエラー処理とか全くしてないし一応ソースコード貼っときます。(めっちゃ汚いけど…
あらかじめESP8266をルータやアクセスポイントに接続して置く必要あり。
シリアル通信部分はhiramine.comさんから拝借しました。