スマホ変更2021

もう3週間ほど過ぎてしまいましたが、先日スマホを変更しました。

今まで使っていたのはSONYのXPERIA SO-02Gでこの時購入したもの。2015年の3月だったので6年半近く使っていた事になります。
周囲に同時期の物を使用している人はおらず、同じ頃購入した知人はその後2回ぐらい機種変更しているので、私はかなり長期間使用した部類だと思います。

このSO-02G、RAMは2GB、内臓FLASHは16GBしか無いのでどちらも全く余裕はなく、よく数秒固まるしアプリはもう何も入れられないという状態。
もっと早く買い替えるべきなのは分かっていたのですが、最近のスマホは殆どの機種がサイズが大きくて嫌だったのです。

そして最近目についたのが同じくXPERIAのACEⅡという機種。特にXPERIAにこだわっている訳ではないのですが今までより少し大きくなる程度のサイズで、何よりも値段が2万円を切っています。
ただ中身は全く強力ではなく、口コミを見ても遅い、古いとあまり良いことは書かれていません。といってもゲームをする訳でもないし6年前の機種と比べりゃ十分性能が上がっている筈。またRAM/内蔵FLASHも4GB/64GBなので当面は十分でしょう。

という事でAmazonでポチりました。
数日後に届いたのがこれ。

表側
左が新しいACEⅡ、右が今までのSO-02G
新しい方が一回り大きくなっていますが一般的な機種よりはコンパクトなのです。
裏側

使った感じは全く問題なく、アプリの起動待ちが格段に短くなっています。
まあ今までが遅すぎただけなんですけど。

フライトコントローラーを自作してみる。~その13~ Rev2基板動作確認

いよいよ電源を入れて動作を確認します。
まずは実験用電源からUSBコネクタへ、電流制限しながら5Vを印可・・・問題なし。

ではBOOTボタンを押しながらUSBケーブルでPCと接続・・・BetaflightConfiguratorを立ち上げておくとDFUモードに入る筈ですが反応ありません。
調べていくとR1とC7が入替わって取り付けていることに気づきました。
パターン上の近い場所にあったので間違った様です。リセットかかりっぱなしだしクロックも発振しないし、こりゃ動作しませんよね。

R1とC7が入替っていた。動く訳ないっす。

R1とC7を正しく取り付けなおすとDFUモードに入る様になったのでBetaflightのファームウェアを書き込んでリブート。すると今度はBOOTボタンを押していなくてもDFUモードに入る様になってしまいました。
原因はBOOT0端子のプルダウン抵抗R11のはんだ付け不良で、クリームハンダの乗りが少なかった様です。

ここまでで安定に動作モードに入る様になり、BetaflightConfiguratorからも認識されましたが、今度はジャイロ(加速度機能も)が認識されません。基板を傾けても画面上の機体は静止したままなのです。
ここは色々悩んだのですが結局はこれもジャイロの接続不良でMPU-6000を取り付け直したら正常動作となりました。

どうも今回ははんだ付け不良が多いなぁ。Rev1基板の時はもっとリードが細かいジャイロIC(MPU-6500)でも接続不良は無かったのに。。。
やっぱり固まったクリームハンダを溶かして使ったのが原因でしょうか?

まあナンダカンダで正常動作する様になりました。OSDも正常です。
また手持ち数が少ないので取り付けていなかったフラッシュメモリ(BlackBOX用)も取付けてログが取れる様にもなりました。

では5インチ機に積んでホバーリングテスト

特に問題なく飛びます。この後FPVでも問題ありませんでした。

という事でFC完成とします。
この後は処理能力の高いSTM32F405やSTM32F722を試そうと思ったのですが、昨今の半導体不足の為か入手できません。Aliexpressでは何度もキャンセル食らうし、RSやチップワンストップも入荷未定になっています。

STM32F411ならあと数個持っているのですが出来れば早いマイコンで試したいですよね。

フライトコントローラーを自作してみる。~その9~ 動作確認

前回基板に部品を実装したので、いよいよ動作させてみます。

まずはUSBコネクタから5Vを入れて電流が振り切れない事を確認しました・・・これは問題なし。
その後、BOOTボタンを押しながらPCとUSBケーブルで接続するとDFUモードに入る筈ですが・・・入りません。(T_T)

回路を見直していくと基本的な間違いに気づきました。USBのD+とD-が逆になっています!!そりゃダメだわ。


完全に見落としですねー。

とにかく修正します。
D+とD-には後からダンピング抵抗を入れられる様0Ωの抵抗を付けているのでこのパターンを使って配線をクロスさせます。

モーターのコイル巻き直しに使ったエナメル線で配線をクロスさせました。

改めてケーブルをつなぎなおすと、今度はDFUモードに入りました。
そこでBetaflightConfiguratorのUpdateFirmware画面から以前作ったファームを書き込みました。
ここまで何とか問題なし(いや問題はあったけどとりあえず修正済)。

そして改めてケーブルを挿し直してBetaflightConfiguratorで接続すると、ちゃんと認識されています。この状態で基板を手で動かすと傾きが表示されるので、ジャイロセンサーも正常に接続できている事になります。実はここのパターンが細かくて一番心配でしたが正常にリフローできた様です。

あとはフライトコントローラーとしての諸々の設定をしていきます。
ここまで正常。

次に受信機を接続し、送信機の操作が伝わっている事も問題なし。

ではESCを接続してモーターを回してみます。安定化電源から2セル分の7.4Vを供給してBetaflightConfiguratorモーターつまみを上げていくと・・・ちゃんと回ります。

ならばバッテリー(3セル)を接続して送信機から制御してみると・・・なぜかArmingできません。安定化電源に戻して色々試したところ、どうやら2セル電圧だとArmingできるのに3セル電圧だとダメみたいです。
となるとBEC回路ですかね。電源電圧によって違いがあるのはBEC回路より手前だけの筈・・・。

そこでBEC回路の出力をテスターであたるとちゃんと5Vになっています。
しかしオシロで見るとBECのスイッチングノイズが電源が高いと大きく載る様です(波形取り忘れた)。

原因はどうやら図のところ、スイッチング電源のダイオードのループが長すぎた様です。
2層基板に無理やり載せたので電源周りが厳しい気がしていたのですがやっぱり。 GNDの取り回しが遠回りな感じ。

そこでGND側を最短になる様に配線を追加しました。これでもOKだったのですが念のため5Vラインに47uFを追加しています。でもまだちょっとノイズっぽいけど先に進めていきます。

これで3セル電圧でもArmingできる様になったので例の「えー加減な機体」にペラを付け、Angleモードでホバーリングさせてみます。

すると斜めに振動しながら浮き上がりました。でもこれは想定内。試作回路で飛ばした時もファームがBetaflight4.2だと同様の現象が起こり、市販のFCでも同じでBetaflight3.xに下げると安定したのです。今回もファームのバージョンは4.2を書き込んでます。
4.2で揺れる原因は調べていませんが何か機体の特性みたいです。でもバージョンで変わるのでPIDかフィルターかそのあたりを調整すれば4.2でも納まりそうな気がします。

とりあえず今回はBetaflight3.xを書き込んでみます。
・・・すると、あれ?またDFUモードに入らないぞ?

どうもDFUに入る時と入らないときがあります。
DFUモードに入れる方法には二通りあって、BOOTボタンを押しながら電源を投入する方法とBetaflightConfiguratorの「ブートローダー/DFUを有効化」ボタンを押す方法があります。このどちらの方法も不安定で、ダメなときはずっとダメなのに入る時は繰り返してもうまく入るのです。成功率30%くらいでしょうか。

BOOTボタンを押すとSTM32F411のBoot0端子がHレベルになる筈で、実際オシロで見てもHになっていて、この部分は大丈夫だと思います。
ここでひとつ気になるのはBoot1端子です。 Boot1はPB2と共通の端子で、マニュアルによるとDFUモードに入れるためにはこれをLレベルにすることになっています。
しかしDIOと共有なんですよね。この端子を本当にLに落とす必要があるのか、回路図を書くとき疑問に思いました。そこでSTマイクロエレクトロニクス社の純正開発ボードSTM32F411Nucleoを調べたらこの端子はオープンで、これを使った試作機は問題なかったので、安心してフライトコントローラーもオープンにしていたのです。
しかし改めてマニュアルを読むとやはりLにしろと書いてあります。
という事で0.5mmピッチQFPのリードに無理やり電線をハンダ付けしてプルダウン抵抗をつないでみました。

これで成功率が上がりました。でもまだ時々ミスるのでまだ何か他に原因がありそうですが、やっぱりBoot1はLにするのが正しいのですかね。まあマニュアルに書いてあるから当然そうすべきで、最低でもパターンを引き出しておけば良かったんですが。でもNucleoはなんで大丈夫なんだろう?(端子オープンなのでたまたま上手くいっているだけなのかもしれません)

時々失敗する理由は判りませんが、とにかくBetaflight3.5のファーム書き込む事ができたので再びホバーリングにチャレンジ。
初飛行の動画です。

ちょっとふらついていて調整の余地が(私の操縦技術の問題も)ありますが一応ホバーリングしています。

あとOSDとBLACKBOXへのロギングも大丈夫でした。
ここまでの問題点をまとめると次の通りです。基板の第二弾を作る時(やるのか?)修正したいと思います。

  • USBのD+とD-の入替り。
  • 5Vスイッチングレギュレータ周りのGNDの取り回し
  • Boot1端子のプルダウン

という事で何とかホバーリングするところまでたどり着いたのでレーサー機に載せてどうなるかを試していきたいと思います。

ブログの「←古い投稿」ボタンのリンク切れ修正

このブログの下の方に「←古い投稿」というボタンがあります。

赤で囲んだボタンの事です。

本来このボタンを押すと名前の通り古い投稿のページに移り、どんどん押していくと時期をどんどん遡って古い投稿が表示されていくずなのですが、最近までリンクが切れておりサーバのエラーメッセージを表示していました。

だいぶ前から気づいてはいたのですが修正方法が分からず放置していましたが、今日やっと修正ができました。

多分大丈夫です。

2020年台風10号

9月6日から7日にかけて台風10号が熊本に接近しました。
風速70m/Sとか80m/Sとかの予報で、本当に80mも吹いたら一溜りもなさそうです。
とにかく雨戸がある窓は全部閉めて、雨戸がない窓はテープを貼ります。
そして足しになるかはわかりませんが霧吹きで濡らしたガラスに梱包用ラップを 貼っておきました。

テープを貼っていると中心に星マークができます。どうでもいいんですけど、これを綺麗な形に貼ろうとしますがどっちかにずれます。

テレビで「段ボールを隙間なく貼ると良い」と言っていたので面積の広い窓に貼りました。

一昨年MakerFaireに荷物を輸送した段ボールにも頑張ってもらいましょう・・・

モバイルバッテリーに加えドローン用リポバッテリーも2本ほど充電しておきます。
リポはTiny用充電器を通すとスマホの充電にも使えるのです。

これだけやって避難します。
しかし地元の避難所はコロナ対策の為、受け入れ人数を制限すると言っており、もしかすると入れない心配も出てきました。
一時は暴風圏外の広島に宿をとって避難しようと真剣に考えましたが、道中の危険性も考えて止めました。
とにかく地元の避難所に行ってダメなら家で耐える事にします。
・・・そして避難所に行ったらあっさり入れました。

熊本最接近が夜中の3時頃との事ですが、避難所の中ではそんなに強い風には感じられず、むしろ夜が明けてからの方が風が強い気がしました。

結局朝8時に自宅に戻ったところ全く問題ありません。
段ボールも貼った時のまま。

工作室の窓も問題なし。

何事もなくて幸いでした。
予報よりも勢力が落ちたのか、たまたま何かが良い方に働いたのか・・・
でもこれに安心して今後の台風の時に対策を怠る事がない様、肝に銘じておきます。

2020年6月21日の日食

先週の日食、梅雨時なのに熊本は晴れたので日食グラスを使うとよく見えました。そこでグラス越しにスマホで撮影したけどうまく撮れませんでした。

日食グラスでみたらもっとそれっぽい形でしたが撮影するとこんなのです。

なので次の策、木洩れ日を探して撮影・・・。
明るい部分が三日月形に撮れています。夕方近かったので地面よりも壁に映る影の方が角度的にはっきり分かりました。

HONDA EM300発電機

知人から発電機を頂きました。ドローン練習の時にバッテリー充電に使いたいと思います(因みに知人とは’この時’登場したO氏です)。

HONDA EM300

40年近く前のものらしいですがエンジンはかかるし発電もします。でもそこは古い機械なのでいくつか調子の悪いところもあります。

まずリコイルスターター(エンジンをかける時のヒモ)を引っ張っても大抵は空回りしてしまいます。本来はこちらのサイトの写真の様に爪がかみ合って回転をエンジンに伝える筈なのですが、どうやら爪の動き悪い様です 。

頂いた知人は本体ごと地面に叩きつけて無理やり噛み合わせていました。
そこでこの爪の摺動部を掃除したいのですが、それにはこのフライホイールを外さねばなりません。しかし中心のボルトまでは外れたもののそれ以上が外れないのです。


右上のフライホイールが外れない。

しかたないので隙間からCRCを吹き込むと、とりあえずは噛み合う様になりました。当面はこれで様子を見る事にします。

次の問題はエンジン始動後にチョークを戻したらエンストする現象です。
十分温めた後にゆっくり戻していっても、回転が下がる→ガバナーが働いて回転が上がる→回転が下がる を繰り返し、その内停止します。

チョークレバー。始動時は上げ通常運転時は下げる筈なのです。

ネットの情報によると原因として一番怪しいのはキャブレターのジェットの詰まり。あとはタンクからキャブレター迄の燃料経路。稀にはガバナーの不調もあり得る様です。
という事でキャブのジェットを掃除するとあっけなく正常になりました。

キャブレター

一応タンクを外してストレーナやホースもチェックしておきます。


特にサビが詰まっている事もなさそう。

最後の問題は周波数のインジケーターが壊れている事。
この古い発電機はインバーター式ではないので回転数で周波数が決まり、電圧もほぼこれで決まるのでスロットルを調整して周波数を合わせる様になっています。

青と白の振動子交互に並んでいるのが周波数のインジケータ。
修理前は中で振動子が外れていました。

青色と白色が交互に並んでいるのが振動子で固有振動数があったものだけが振れるしくみです。
どうやって振動子を揺らすのかと配線をみると、イグニッションコードをくぐらせた配線で検出している様です。

インジケータを取り外すと中はこんな感じ。電気的には電磁石らしいものだけ。そして固有振動数を少しずつ変える為に長さを変えた振動子。本当は振動子が電磁石の前に固定されてるべきだと思うのですが外れています。

振動子がどの様についていたのか判らない。

元々どうやって振動子が付いていたのかわからないんですよね。外れてからかなり時間が経っているらしく、錆びてて痕跡を見ても良くわかりません。
とりあえずそれっぽい場所に両面テープで貼り付けてみます。あまり期待できませんが。

上手く振動するかな?

これで元の様に組み立てたのが先程の写真です。
で、エンジンをかけてスロットルを色々回してみるのですが、やはり振動子が振れません。取付け方が違うのかも。

結局周波数インジケーターだけは上手く動いていない状態です。
当面は電圧を測りながら使ってみる事にします。

緑のカーテン

梅雨も明けて九州は夏本番です。

少しでも工作室の気温を下げるため、今年は窓の前にヘチマを植えてみました。

レーザーカッターの前が窓でその向こうにヘチマが見えるのです。

実は昨年も植えたのですが失敗しました。プランター植えがダメだったのか、または軒下に置いたので水不足だったのか・・・。そこで今年は地植えにしたところすくすく育って実もたくさんできています。

その内ヘチマタワシを作ってみたいと思います。

しゃべるペットボトル回収箱 その後

神戸の姉から、ペットボトル回収箱が到着したのでしゃべる機構を設置したとの連絡がありました。
回収箱はペットボトル投入穴が二つ空いているタイプかと思っていたら実際は写真の様に大きな口が一つのタイプでした。

1号機

養生テープで貼り付けてあります。

2号機

こちらは机の上。

マイクロスイッチはこんな感じで取り付けて・・・

その上からクリアファイルの垂れ幕を取り付け、この垂れ幕がスイッチを押す構造にしたそうです。

横から見たところ

動画も届きました。

とりあえずは無事動作した様です。

TWE-Liteプロポ化計画

久々にMONOワイヤレスのページを見たらTWE-Liteの電波強力版である”RED”というのが出ていました。最大3Kmぐらい届くとの事。これなら空ものラジコンでも全く問題なく飛ばせそうです(実際は私が飛ばすものなんて100m程しか離れないんですけどね)。
そこでTWE-Liteを使ってラジコンプロポの代りにならないか試してみたくなりました。

なおTWE-Liteとは、当初は東京コスモス電機でしたが今はそこから分離したMONOワイヤレスが出している無線モジュールです。

こんなの・・・

TWEpropo_1

TWE-Lite(下) とTWE-Lite DIP(上)

TWE-Liteは内蔵マイコンのプログラムを書き換える事ができるので、MONOワイヤレス社からは色々な用途のプログラムをダウンロードできる様になっています。この中にはラジコン用のアプリもあるのですが、ラジコンカーを前提にされたもので、そのままで飛行機やマルチコプターを制御するのには向きません。

これを何とかして受信側TWE-LiteからS-BUS信号を出せれば小さなマルチコプターぐらい飛ばせるんじゃないかと考えています。するとフタバとかの立派なプロポを使わなくても済むし、またフライトヨークやラダーペダルで操縦したり、ちょっと夢が広がるじゃないですか

で、試してみる事にします。でもいきなり高出力版のREDを買うのもなんなので、まずは手持ちの通常出力版(こちらはBLUEという名前になったらしい)で試します。
まず送信側のTWE-Liteにはボリューム4個+スイッチ4個を付けて状態を発信します。この部分は「OpenStick無線化実験」の時のプログラムをほぼ流用です。
これを受けて受信側TWE-LiteがS-BUS信号を生成してフライトコントローラ(F3EVO)に入れるという計画です。

という事で早速プログラムを書いてデバッグです。受信側TWE-Liteが出すS-BUS信号を先日作成したS-BUS信号解読機(ArduinoMEGA256)に入力してデバッグを開始したのですが・・・受信機のデバッグ以前にS-BUS解読機側のスケッチがミスっていたのを発見。修正しました。

~~修正版S-BUS解読スケッチ(11bitデータに並び替える部分のミス修正)~~

int count;
long interval;
void setup() {
 Serial.begin(115200); // Terminal
 Serial1.begin(100000,SERIAL_8E2); // S-BUS
 count=0;
}

void loop() {
 int data[26];
 int val[19];
 int i;
 if (Serial1.available() > 0) {
 data[count]=Serial1.read();
 interval=millis();
 count++;
 }
 if ((interval+4 < millis()) && (0 < count) ) {
  count=0;

  val[0] =((data[1] & 0xff)<<0) + ((data[2] & 0x07)<<8);
  val[1] =((data[2] & 0xf8)>>3) + ((data[3] & 0x3f)<<5);
  val[2] =((data[3] & 0xc0)>>6) + ((data[4] & 0xff)<<2) + ((data[5] & 0x01)<<10);
  val[3] =((data[5] & 0xfe)>>1) + ((data[6] & 0x0f)<<7);
  val[4] =((data[6] & 0xf0)>>4) + ((data[7] & 0x7f)<<4);
  val[5] =((data[7] & 0x80)>>7) + ((data[8] & 0xff)<<1) + ((data[9] & 0x03) <<9);
  val[6] =((data[9] & 0xfc)>>2) + ((data[10] & 0x1f)<<6);
  val[7] =((data[10] & 0xe0)>>5) + ((data[11] & 0xff)<<3);
  val[8] =((data[12] & 0xff)<<0) + ((data[13] & 0x07)<<8);
  val[9] =((data[13] & 0xf8)>>3) + ((data[14] & 0x3f)<<5);
  val[10]=((data[14] & 0xc0)>>6) + ((data[15] & 0xff)<<2) + ((data[16] & 0x01)<<10);
  val[11]=((data[16] & 0xfe)>>1) + ((data[17] & 0x0f)<<7);
  val[12]=((data[17] & 0xf0)>>4) + ((data[18] & 0x7f)<<4);
  val[13]=((data[18] & 0x80)>>7) + ((data[19] & 0xff)<<1) + ((data[20] & 0x03) <<9);
  val[14]=((data[20] & 0xfc)>>2) + ((data[21] & 0x1f)<<6);
  val[15]=((data[21] & 0xe0)>>5) + ((data[22] & 0xff)<<3);
  val[16] = (data[23] & 0x1) ? 0x7ff : 0 ;
  val[17] = (data[23] & 0x2) ? 0x7ff : 0 ;
  val[18] = (data[23] & 0x8) ? 0x7ff : 0 ; // Failsafe
  for (i=0 ; i<19; i++ ) {
   Serial.print(val[i],DEC);
   Serial.print(F(" "));
  }
  Serial.print(F("\n"));
 }
}

 

大体動作がOKになったところでフライトコントローラ’F3EVO’に接続してみます。
フライトコントローラはUSBでPCに接続しておき、設定ソフト ’CleanFlight’ の ’Receiver‘ タブ使うと送信機の操作に合わせて信号が変化するのが確認できました。

CleanFlight

CleanFlightで受信機の信号をモニター中。

 

ここまではTWE-LiteのDIPタイプをブレッドボードに載せて試していました。
大体イケてるっぽいので次は表面実装版のTWE-Liteモジュールを使い、実際に機体に載せる基板を作ります。

いつもの様にKicadでパターンを書いてガーバーデータを出力して・・・

TWEpropo-Rxガーバー

Kicadで出力したパターン

 

でもウチのCNCの精度でこのパターンそのままでは削れる気がしません。そこでガーバーデータの座標値をテキストエディタで抜き出してJw-cadに読み込ませ、これを下書きにしてカットする部分を手書きしていきました。
こうしてカットラインの間隔を極力広いパターンに作り変えます。

TWEpropo-Rx Cutpattern

ピンク色がガーバーから抜き出した下書き。
黒線が手書きのカットライン。

そして切削。

TWEropo-Rx

切削完了。

と、軽く書きましたが何だかんだで失敗しながら3回切削しました。
チップ抵抗、チップコンデンサを1608サイズにしたのも失敗で、ルーペを見て汗をかきながらハンダ付けを行いました。
そして実装したのがこれ。

TWEpropo

クワッドコプターと接続したところ。
まだ受信機は固定していません。

次は送信機を作っていきたいと思います。