カテゴリー : Ardunio

USB Host Shield 2.0 for ArduinoでのSPP通信実験

せっかくなのでワイヤレスでの機体状態の確認とか遠隔制御とかに使えるのでSPPプロトコルでの通信ができるかを確認しました。 「MultiWiiConf_2_0」から接続して機体状態を表示出来ればいいかなと思っていたのですが、なんだかんだで問題出まくりだったのです。

前回同様の構成で、検証に使ったのは「USB Host Shield 2.0 for Arduino」+「USB Host Library for Arduino」を使用。そして、接続先のMultiWii相当としたArdunioNanoをあててテストをしました。

  • PC⇔Arduino間のSPP接続に関しては接続は接続可能
  • ただし、Windows標準のBluetoothスタックを使った場合にのみ。 ※:iba、Motorolaスタックを使用した場合にはサービス検索に失敗して接続できません。Broadcomスタックは未確認)

■PCとのSPP接続の流れ

注意:プロトコルスタックはMicrosoft製の純正スタック

  1. Arduino側でスケッチ「SPP.ino」をアップロードしてドンブルをセット
  2. PC側よりBluetoothデバイスを検索⇒PINコードを入力して接続  ※:XP/7で接続確認を行いました。

★接続完了画面

クリップボード

 

まあ、ここまででもなんだかんだで結構かかっていますけれども…。スタック周りのトラブルでなかなか接続できなかったりとか、ドライバが2重に入ってしまって正常に動かかなくなってしまったりとか大変でした。 ようやく接続できた後ですが、そこからはこれまで以上に茨の道だったりしました。

続きを読む

Crazyflie Nano Quadcopterが日本で飛ばせないなら

Crazyflie Nano Quadcopterが日本で飛ばせないなら、飛ばせる物を作ればいいじゃないか…。チョット考えてみるから、真面目に考えて作ってみるに昇格させまして予備実験をして可能性を探っていきたいと思います。

SONY DSC

まずは、一番簡単なコントローラを使った無線操作が出来るかを検証してみます。何を使って実験するかですが、使い慣れたArdunioでBTのコントローラーを接続してみます。

■今回の構成はこちら
受信側:ArdunioMega(1280)+USB Host Shield 2.0 for Arduino
送信側:ワイヤレスコントローラ(DUALSHOCK 3)

USB Host Shield 2.0」は「USB Host Library for Arduinoのライブラリをがあるので簡単にできるはず。

▲PS3コントローラーの接続の流れ

1.)Bluetoothドングルのアドレス確認
スケッチ「PS3BT.ino」をアップロードしてドングルをセットした状態でシリアルモニタを表示表示されているBluetoothアドレスを控えておく
2.)コントローラーへのドングルアドレスの登録
スケッチ「PS3USB.ino」を以下のように修正してアップロード
//PS3USB PS3(&Usb); // This will just create the instance ← コメントアウト
PS3USB PS(&Usb,0x00,0x15,0x83,0x3D,0x0A,0x57); ← ここに表示されたBluetoothアドレスを設定
■正常に設定されるとこのような表示
PS3_Setup-Address
3.)ソフト側アドレス設定(ドングルアドレス登録)
Bluetoothアドレスをスケッチに設定
//PS3BT PS3(&Btd); // This will just create the instance ← コメントアウト
PS3BT PS3(&Btd,0x00,0x15,0x83,0x3D,0x0A,0x57); ← ここに表示されたBluetoothアドレスを設定
4.)PSボタンを押すことでコントローラーを接続
■接続終了画面
PS3_Connect

比較的簡単に接続できてしまいました。
続きを読む

Crazyflie Nano Quadcopter(つづき)

日本で飛ばせないなら、飛ばせる物を作ればいいじゃないか!!

なんて事を考えて、いろいろと調べてみたところ、「Crazyflie Nano Quadcopter」は完全オリジナルでは無いような気がしてきました。「MultiWii」の派生系の1つである「AfroFlight32」のコアを使った派生型(発展系)と言ったところではないかと思われます。ソースはまだ見れないので、あくまで想像の範囲ですけれどもね。

飛行制御とかがネックになってくるから完全自作は無理だと思ってたのですけれども、飛行制御は別体とすればいけるかもしれない。ソースは読めばイイ!!

そこで、想像たくましく考えますと…。 やっぱり、室内で飛ばせるサイズでそこそこの機動性がないと…。さらに、自律飛行させたいのでその辺りも考えて…。最終目標は複数機で音楽に合わせて飛行するですね。YouTubeにアップできる品質を目指します!!

というまえおきで、サイズとコンポーネントをどの程度ぐらいまでにすればよいかを考えてみました。

◾サイズ
・QCX構成
TypeX.)Size:120mm motor to motor(roter size 55 mm)
=>MAX_Size:137mm/MainBoard:40x40mm

目標重量25g

★簡単にモデルで比較MQCX

左側が「Crazyflie Nano Quadcopter」で右側が作ろうとしているサイズです。

ローター直径が55mmで計算しているのですが本体サイズが大きくなる原因となっています。やっぱり、ローターも自作するしかないのかな?3Dプリンタあるけれども、ねじれた感じでの積層とかかなり苦手なのですよね…。既製品でよい物があればそれを流用したい。

続きを読む

Crazyflie Nano Quadcopter

FoldaRapはパーツ待ちでチョット制作を休止しているのですが、その間に次回作というかと考えていたりしたのです。

前々から、クアドロコプターなんて物を作ってみたいと思っていたのですが飛行制御の問題をどうするかとかどうしても大きくなってしまう本体サイズとかであきらめていたのですが面白い物が登場しました。CrazyflieNano%20Quadcopter10dof

まさに手のひらサイズ、ローター直径が40mmでモーター間距離は90mmなので最大サイズは130mm程度です。重さは19gとなっています。(おそらくバッテリを搭載しない状態での重さ)

非常に欲しい!のですが、この無線モジュールはどう見ても日本の技適を通っていない…。Orz

何とか作れないかなといろいろと思案していたりします。サイズは少し大きくなってもいいのですが、プロペラがネックかな…。どなたかプロペラ作るすべを知っている人いませんか??

■参考情報

Crazyflie Nano Quadcopter Kit 10-DOF with Crazyradio

arduinoから温度センサー情報で12Vファンを制御する

最近、3Dプリンタにかまけてarduino関係全然なのです。
ネタに出来そうな感じの回路があったので、組み合わせてちょっとばかり実験して見る事にしたいと思います。
実際のところは、注文していたMOSFETが来ないのでDualExtruderへの換装が途中で止まっています。

内容的には単純で、「温度センサの入力をアナログピンで受け取って計算した温度を元にPWMでファンをコントロールする」です。(ファンの駆動にはarduinoからの電源供給では間に合いませんので外付けでMOSFETの回路を作って12Vを供給しています。)

この回路が3Dプリンタで使うために作ったものの流用なのですけれどもね…。
せっかくなので回転数も見れるようにした方がいいのだろうかと思いちょっと改良してみます。

ちょっと調べると、回転数は1回転につき2パルスで出力されているようですので簡単な計算で求められそうです。

続きを読む

1.8inchのディスプレイモジュール用基板が届きました。

1.8インチの7セグメントLEDを使う基板が到着しましたです。
開封して、手にとって見るとデカイです!実物こんなに大きいとはねぇ~。


※:比較用に1inch基板とフリスク入れてみました。

まずはテスト用に組んでからちゃんとした実物を作る予定ですけど、予定未定ですけど。
せめて、RGB-LEDの点灯部分だけでもテストしておきたいけど、どうしようかな…。 まあ、テストした結果とか回路図とかはおいおいアップしていきます。
ちょっとやる気が起きないからもう少ししてから組もうと思う。

続きを読む

1.8inchのディスプレイモジュール用基板を発注しました。

ようやく形になりましたので、PCBCARTに発注しました。
月末ぐらいには届くと思うので、作ったらNTP時計は一旦休憩しますかね。

友人用に何台か組むことになったので、部品を大量に買いました。10台分位のストックが…。
気分的にはニキシー管の基板も勢いで作りたいところですが、肝心のニキシー管をどれにするかで悩み中です。
IN-18で組みたいところなんですが最近100本単位での出物がなかなかないんですよね、そうするとIN-12あたりで妥協して組むか…。
それに、数が手に入らなそうな雰囲気があるのでどうしようかと…。

とりあえず、3Dプリンタを形にするべく頑張ってみます。
でも、Tiny2313を使ったI2Cに関しては時間があれば手をつけておきたいですね。

■ガーバーデータの確認に使っているソフトは「gerbv」を使っています。

Arduino(sanguino)を使ったNTP時計(1.8インチ表示用基板)

とりあえず、1inch版が完成したのでちょっと休憩中といいますか…。 やる気が起きないので休止中だったのですが、ちょっとずつ設計を継続中です。

なんといいますか、フルカラーのLEDを18個も載せたまでは良かったのですが、問題は駆動回路です。
メインボード側からPWMで駆動することは決定していて、スケッチの方もテストしているのですが、どうやって18個も駆動するかです。

続きを読む

Arduino(sanguino)を使ったNTP時計2

ようやくある程度まとまってきたので情報を整理して「7セグメントNTP時計」に移動させました。

いい加減半田付けも飽きてきた気がしますよ、ちょっと休憩ですね~。

1.8inchの表示部分も作りたいのですが、少しゆっくり目でいいかなと思い始める今日この頃です。

続きを読む

Arduino(sanguino)を使ったNTP時計制作中4…

なんだかんだでようやく形になってきたのですが、ここに来て問題が一点…。

RTCからの時間取得時に変な時間を取得する時があります、というか変な日時が取得されます。

最後のビットは合っているっぽいのでどこかからノイズを拾っているとしか思えないのですが原因わからず。

1世代目の失敗した基板では問題が出ていないのでRTCバックアップ用の電源周りでの問題だと思うので調査中。 (回路的に大幅に変更したのはそのあたりなのですけど、ただのバックアップ回路ですよ…。)

電源容量は足りているはずだし、配線の取り回しも特に変えていないし。Orz

続きを読む