PLAMAX 1/20 VF-1 ファイター37 I2C

でっかいバルキリー色々な方面に逃げながらも微妙にすすめてますww

あれから全部のマイコンの基本プログラミングが一段落してI2Cの動作確認にはいりました┐(´д`)┌ヤレヤレ

まずはプログラミングですが、

今回アホみたいに機能を追加したためbluetoothとI2Cのコマンドの数が多すぎるwww
それぞれのマイコンのコマンドを見ながらマスターのESP32のプログラムを書くとか、いろいろなマイコンのプログラムを行ったり来たりしながらのプログラミングでPCのモニター画面もう2つほど欲しいくらいww

全体の流れとしては
ESP32でbluetoothの信号を受け取り(デュアルコアの機能使用)

ESP32でI2Cの信号に変換し送信(デュアルコアの機能使用)

arduino,XAIOでI2C信号を受け取り

arduino,XAIOでそれぞれの処理(AVRのスイッチング等)

AVRでモーターやサーボを動かす

てな感じです。

ハッキリ言って初めて使う機能ばかりww
とりあえずarduinoIDEでのプログラミングですので何とか書きまくりましたww
なんだかんだでこれだけで1週間近くやってましたww
それでもまだサウンド関係は組み立ててからのプログラミングとなりそうです^^;

とりあえず全体のチェックが出来る位のプログラム出来ましたので、実際に動かしてみましょう~!

と思うのですが、絶対一発で動かないのはわかっているので、全然テンションが上がらないwww
ヤル気0ww

それでも、重い腰を上げてまずは電源チェックから行きますか~。
電源に使うのはこちらのドローン用リチウムポリマー電池

これをマイコン、LED用として1つ、動力系用として1つ。
合計2つを使って動かそうと思います。
あっ、動くかどうかはやってみないとわかりませんw

リポ電池なので3.7Vのため昇圧して使います。
まずはマイコン用の電源

良し安定しています。

次、動力系の電源

これも良し。

超音波振動子用の電源

よし3つとも既定の電圧出ています^^

電圧の確認は出来ましたが、いきなりつなげるとショートとか怖いので電源の配線をすべて外してひとつづつ繋げて確認していきます。

で、ここでアル事を忘れているのを思い出しました!
そういえばXIAOのI2Cは3.3V。レベルシフタ入れないとwアブね~やっちゃうところだった^^;

でスイッチサイエンスさんでこのレベルシフタ購入~!
で、組み込んでおきました^^。

とりあえず電源の確認できましたので、AVR達にそれぞれプログラム書き込みを行いました。
(AVRの書き込みには5V電源が別途必要です。この辺PICよりちょっと面倒ですw)

次にarduino,XIAOに書き込み

よ~し
ESP32が動くことも確認

ちゃんとBluetoothでモニターも可動しています。

よ~しw意外と順調じゃん^^

I2Cのチェックしていくか!
まずはチェックがLEDの点灯だけの簡単なスラスターの部分からかな

配線を接続してI2Cコマンドを送るためのbluetoothコマンド送るのですが反応なしw

まっ、そんなもんだよね~。一発で動くことなんてそうそうないもんw

うむ・・・・・・・ロジアナさんの出番か・・・・・・出すの面倒だなw


使い方忘れちゃったもんw
てなことでロジアナでI2Cの使い方をネットで調べましたww
本体有ると引っかけたりしてなんかの拍子に壊す可能性有りますので、とりあえず発信元の機首部分のみ取り出して

確認

あれ????スレイブ呼び出しの信号は出ているのにデーターの信号がない何故だ???????
もしかしてモニター表示とかのプログラムが邪魔しているのかなと思い、I2Cのスケッチ例を試しても同じく呼び出しの信号のみ・・・・・わからんww何故だ!!!
これでかれこれ3時間くらい悩みましたかねwww

これ、バカですよね~wwすでに一番最初の段階からお気づきだと思いますが、I2Cのスレイブに配線がつながっていないので、マスターがスレイブ呼んで、相手が居ないのでデーターを送っていないだけなんですよねwww

なんちゅうバカらしい時間の無駄w

てなことでようやく気付き、先ほどのスラスターを試すためにXIAOに接続しロジアナで観察。
うむ・・・・・同じくスレイブが反応していない状態。
プログラムの方には問題ないと思うんだけどね・・・・・・
ただ、XIAOはまだ慣れていないから何か特別なことあるのかも?と思いarduinoにI2Cで接続してみました。

おっwちゃんとデーターの送信も確認も出来た~!

やっぱXIAOはなんか特別なのか???と思いネットを見てみますが特に問題らしきものは無し・・・・
そういえば・・・・・・レベルシフタの接続よく調べることなく適当に入れちゃったよな・・・・・・
早速ネットでレベルシフタの接続方法を見ると全然違うじゃないww

私はてっきり写真右のレベルシフタの5Vに配線を繋げると3.3V端子から3.3Vの電圧が出てきて、それをXIAOにつなげるのかと思っていましたw

でも本当はレベルシフタの5Vと3.3V端子にはそれぞれ電圧を入力してやらないといけないのねw

このように配線すると通信出来るようになりましたww

もうこれだけの為に相当時間のロスww

よしこれでつながった~!と思い稼働させるのですがそれでも思い通りの点灯が起こりません

再度ロジアナで送っているデーターの確認をするのですが、プログラム中のデーターと違う数字が送られている・・・・なんだこれ???

あっ、そうかこれ1バイトづつだったw実は601とかのデーターを送ろうとしてましたwww
ちゃんと255以下の数字にプログラムを修正してやるとデーターの受け渡しに問題はなくなりました^^

それにしても、ロジアナ有ったからミスに気づけましたが、これロジアナなかったら相当深い沼になっていただろうな~wwやっぱロジアナ持っててよかった^^

色々有りましたが、なんとか動きました~~~!

これで少しプログラムを修正して全体の動きを調整していきます^^

動いてくれたのでちょっとテンションアップw

 

関連すると思われる記事:

6 comments

  1. こんばんは
    ウム~ !! なかなか濃密なる一週間を過ごされていたのですね!
    マルチCPUシステムで、i2cコマンド制御もなかなかどうして、素晴らしいシステムですね。
    これだけの大きなシステムで、ほとんどミスが無いのは更に素晴らしいです。
    i2cって、電源電圧が異なるCPU間の接続って面倒ですよね。何か良い方法はないもんでしょうか?
    3.3Vに統一するとか?
    あっ!BlueTooth

  2. うむ。色々スゴイww

    何度見てもごっちゃりな配線とマイコン。
    今までの失敗を踏まえての慎重な立ち上げと周到なチェック。
    それなのにポカミスで大いなる足踏み。
    からの華麗なリカバリー。

    感動の6jiro劇場。

    これ、いずれきっちり完成させてくるであろうところがうっかり師匠のすごいところなんだけど、
    来年どこか展示会持ち込んで、んで、当然のようにどこか不調になっても絶対全部忘れてて直せない気がするw

  3. Vividさん こんばんは!
    実はプログラムは2月の中頃にはすでに終わっていて、絶対一発で動かない自信あったのでどうにもテンション上がらずに色々と他の事に逃げていましたww
    マルチCPUでの動きは慣れてくると、ホントありがたいですね^^
    タイミングとか深く考えなくていいのでプログラムが楽ですw
    ミスが少ないのはライブラリーのおかげですね~。ホント私のような初心者でもBluetoothやI2Cが扱えるなんて思いもしませんでした^^
    I2Cの電圧はちょっとレベルシフタの接続方法が分からずにミスりましたww
    まっ、これに繋ぐだけでプルアップもしてくれるみたいですので便利ですね。

    そうそうw以前なおさんが同じ機体内でもbluetoothでの接続で配線無くす案を言っておられましたが、ESP32同士ならそれもアリですよね~!
    今回のバルキーでESP32を扱えるようになってホント良かったです!!

  4. gyoさん こんばんは!
    これだけの配線とシステムになるとさすがに立ち上げは慎重になります。
    その分、テンションも上がらずになかなか始めませんでしたけどねww

    I2Cの信号問題はホント悩みましたwどれもアホみたいな事が原因ですがねww
    これ、ロジアナ持っていなかったら、なんの指標もなく何時まで経っても問題解決でき無かったろうなと思います^^;マジで持っていて良かった!

    確かにコレ何か月かしたら絶対に配線分からなくなってますねww
    原因探すことさえも困難になりそうなので、出来るだけ引っかかったことはブログに書いておこうと思いますw唯一の手掛かりになる可能性がww

  5. こんばんは
    6jiroさんてばもうなんでもありですな、パワフルこの上なしw
    わたしゃレベルシフトなしのI2Cだけでもアップアップしてますよ、いつも。
    I2CはSPIと違ってスレーブが増えても信号線が増えないのが組み込みには都合がよいんですよね。昔から延々使われてるだけのことはあります。
    そうそう、6jiroさんはやらないと思いますけど私がザクのI2Cで少しハマった事。電源電圧が瞬間的に下がってる(サーボの動作タイミングとか)ときに、たまたま通信中だとデータ化けしてました。波形で見ても、時々しか発生しないから厄介なことこの上なし。結局電源を強化したら通信も安定したというオチでした。時々誤動作するから、絶対プログラム要因(割り込みかタイマの関連)で通信ミスってるんだと延々とプログラムを見直してました(^^;
    それにしても、この規模のシステムでこの程度のトラブルだけで動いちゃうなんて最初から完成度高すぎ。

  6. なおさん こんばんは!
    なんか今回のバルキリーは初めての事ばかりで、トライしまくりですw
    コロナのせいで時間は有りまくりでしたか、色々と実験できてます。
    そうなんですよね~模型を動かす範囲での速度はI2Cでも十分ですから、配線が少ないというのは大きなアドバンテージですよね。
    なるほど~電圧の低下がかかわってくるんですね・・・・今回は電源は動力系は完全に分けているから大丈夫とは思いますが、注意しますね。

    いやいやww
    LEDが点灯しただけです。
    私が作ったシステムがそう簡単に動くわけないじゃないですかwwいやだなw
    うっかり教を見くびらないでくださいよwww!
    この後ごまんと不具合出てきますよwwてかすべてが不具合ですwww

Leave a Reply

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

wp-puzzle.com logo