kazutakoLAB -かずタコの電子工作部屋-

電子工作や趣味のあれこれ

STmicro純正のSTMマイコンIDE ”Cube IDE” を導入したら補完が使えなかった話

皆さんお久しぶりです。

夏休みに入り、遊びすぎて研究が滞っているかずタコです。

やる気スイッチは大学4年間で壊れてしまったようです(他人事)。

しかしそのおかげ(?)でひと夏の思い出もたくさんでき、青春も今だけだなんだからと自分を納得させている次第です。うんうん。

 

 

倒立振子に関しては現在やる気が沸き上がってこない状態なので、ちょっと放置しています。しかし何か作業はしなければなぁと思っていた矢先、研究室の後輩から

「Cube IDE試してみましょうよ」

とお誘いを受けました。

 

Cube IDEというのは、STM系のマイコン開発のためのいわゆる統合開発環境です。

ArduinoでいうArduinoIDEの事ですね(まんま)。

↓ 公式ページです

https://www.st.com/ja/development-tools/stm32cubeide.html

 

当初、自分のSTMマイコン開発環境は

CubeMX+SW4STM32

でした。前者でセットアップのコードを吐いて、後者でプログラミング、ビルド、書き込み、デバッグといった使い方です。

この辺のソフトに関する情報は検索すればいくらでも出てくるので、私が再度書く必要もないでしょう。

 

んで、CubeIDEは上の二つのソフトを一つにまとめた素敵ソフトになります。しかも公式ということで安心です(SW4STM32は公式ではありませんでした)

 

このソフト、今年の4月末辺りにはリリースされていたようなんですが、恥ずかしながら全く知りませんでした。

ざっと調べた感じかなり使いやすそうだったので、(というか使用感がほとんど変わらないようだったので)後輩君に流されるまま導入してみました。

 

Cube IDEの導入

導入は非常に簡単で、先のリンクに飛んで[ソフトウェア入手]押したら、

自分の環境にあったインストーラをダウンロード、実行するだけです。

一つ難点を上げるとしたら、ページがやけに重いことでしょうか。家でも研究室でも、自分のPCでも後輩君のでも遅かったので、これはサイト側の問題でしょう。

この辺は特に詰まることもないと思うので流します。

 

Cube IDE初回起動と使用感

初回起動時はワークスペースを聞かれます(毎回聞いてもらうこともできます)。

この時、ディレクトリのパスに2バイト文字が入ってると後悔する、はずです。

というのも、CubeMXでは2バイト文字がパスにいるとエラーを吐いていましたので、たぶんこいつも同じ仕様だと思ったからです(未検証)。

 

ここで、以前SW4STM32で使っていたワークスペースを指定すると、以下のように聞かれます。

f:id:kazutako_lab:20190815113434p:plain

古いバージョンのソフト用だからアップデートするよ、古いソフトでは使えなくなるよ。とのことです。

万が一CubeIDEに欠陥があったときに戻せるように、ワークスペースごとバックアップを取っておいた方がいいかもしれません。

 

起動時間は結構早いです(SW4STM32比べ)。どちらも同じECLIPSEベースのはずなんですがなんでこんなに違うのか。

 

起動するとホーム画面が表示されます。一度作業したワークスペースだといきなり編集画面に行くみたいです。

f:id:kazutako_lab:20190815113810p:plain

ECLIPSEベースなだけあって、SW4STM32と見た目に大差はなさそうです。

 

新しいプロジェクトを作りたかったら二つある大きなボタンの左を押すと、CubeMXで見たようなボードセレクタが起動します。

その後ボードか石を選択すると、これまたCubeMXで見たようなピンアサイン設定画面が起動します。使用感は以前のものとほとんど変わりません。

一つのソフトで初期化コード生成から書き込みまでできてしまうのはやっぱり素晴らしいですね。

 

そして遭遇した補完できないバグ

先のホーム画面が表示され、私は初めに右のボタンを押してプロジェクトのインポートをしようと思いました。すると、

f:id:kazutako_lab:20190815114845p:plain

もうインポートされているよという表示が。

 

なるほど、起動時に聞いたんだからそうだよなと思いそのままプログラム編集画面に行きました。ぱっと見使い方はSW4STM32と変わらなさそうだったのでいきなりコード書き始めようと思ったんですが

f:id:kazutako_lab:20190819183757p:plain



あれ、補完が使えない。

 

一度プログラムをビルドしてもダメでした。

あれれ?と思い、新しいプロジェクトを作ってLチカプログラムを書こうとしても同様に補完が出ない症状。

 

なんだ補完ないのか?と思ったんですが同じように作業していた後輩君にはきちんと補完の候補が出ていました。なぜだ…

 

解決と原因

調べてみると、ECLIPSE側の設定で補完機能での候補が選択できるということが分かりました。

上のリンクはJavaのものですが、たぶんC++でも一緒だろうと思い試してみました

 

手順としては、メニューバーの[Window]→[Preference]→[C/C++]→[Editer]→[Content Assist]→[Advanced]で以下の画面にたどり着きます。

f:id:kazutako_lab:20190819155348p:plain

なんかチェック外れてる…

[Restore Defaults]を押すと赤線部チェックが入ったので、どうもデフォルト設定ではここのチェックは入ってるはずなんです。

首をかしげながら適用して編集画面に戻ると…

 

f:id:kazutako_lab:20190819183654p:plain

お~補完できてる!
やはり先ほどのチェックボックスが原因でした。

 

とりあえず以上の方法で補完は使えるようになりましたが、なんでこんなことになったのかが謎でした。

いろいろテストしてみましたが、どうも

「古いソフトで作ったコード」をインポートする際の手順

が原因っぽいです。

具体的には、初回起動時に聞かれた古いワークスペースのアップデート。

あれを経てインポートするとなぜか先のように補完のチェックが外れるようです。

初見は焦りましたが、一度設定を変更してしまえば二回目以降は普通に補完ができるようです。

 

どうしてこうなるのかという根本の原因は謎ですが、問題が起こる手順と解決策が分かったのでとりあえずよしとすることにしました。

IDE自体はすごく使いやすそうなので、また何か分かったら記事にしようと思います。

それでは今日はこの辺で。

雑記:センサ(MPU6050)の通信で詰まってる

こんにちは、かずタコです。

いよいよセミの声が聞こえるようになってきました。

 

さて、最近趣味の電子工作の更新ができていませんが、実はセンサのところで詰まっています。

資料の指示を無視して独自路線で行ったくせに何やってんだという感じですが、詰まってしまったことは仕方ないのでその辺のトラブルシューティングを記事にして市今いましょう。

こういう記事が、もしかしたら誰かの役に立つかもしれないのでね。

 

問題点とエラー箇所の特定

まずは起こっている問題なんですが、

一言でいうと

加速度、角速度センサとして乗っけているMPU6050と通信ができない(´・ω・`)

といったトラブルです。

 

具体的なプログラムは、加速度と角速度のデータをセンサからもらって、それをtera termで表示しようっていう超シンプルなものです。

 

初めは表示される値が0から変わらない症状だったので、

「あれ、表示ミスったかな?」

と思ってSW4STM32のデバッグモードで変数を直接覗いてみました。

しかしそちらでも値は0のままで、そもそも通信ができていない疑いが出てきました。

 

センサはI2Cでマイコンと通信していますが、今まで別の加速度/角速度センサと同じような通信をしたことがあったので、通信部分の書き方はおかしくないはず…

 

そう思って、過去に使ったセンサとソースの一部(デバイスのアドレスとかレジスタのアドレスとか、センサの初期化部分とか)を、今回使う予定のマイコンで通信を試してみました。

 

つ、通信できない…

 

うん…?

怖くなって、過去に通信できていたマイコン・センサ・ソースで試しましたがこちらは通信できました。よかったよかった。

 

ここまでを整理すると、現マイコンで通信ができない原因として

  1. 作った回路がおかしい
  2. マイコンの通信用ピンが死んでる
  3. CubeMXで吐いた設定用コードがおかしい
  4. センサ(MPU6050)が壊れてる

以上の4つを考え、一個ずつ潰していきました。

 

まず1、2に関しては一度にまとめてチェックしました。

やり方としては、通信が確認できた過去のセンサ、ソース(ピン設定も全部込み)を、今回使う予定のマイコンにぶち込んで動かどうかチェックします。

結論を言うと普通に通信できました。これで1、2の可能性はなくなりました。

 

次に3。主にピンアサインが怪しいとにらみました。

というのも、今回は最終的な倒立振子で必要になる部品すべてを基板に実装したので、使う予定のペリフェラルを全部設定しておきました。変な信号が入ってICが壊れるかもしれないので。

 

というわけで、エンコーダの読み取りで使うタイマだったり、DACで使ってるタイマだったりがI2C用のタイマと競合したりGPIOの設定がまずかったりでエラー起こしてるのかなぁと睨んだわけです。

 

確かめ方としては、マイコンのデフォルト設定状態から少しずつ倒立振子用のペリフェラルを追加していき、先のセンサと通信ができなくなるタイミングを

 

エンコーダのタイマ…OK

DAC…OK

 

となるとGPIO...?

LED用のGPIOはOK,

センサ電源用のGPIOもOK

となるとモータドライバの信号用…?

 

あ、通信できなくなった

 

どうも、たった一つGPIOをOUTPUTにするかしないかで通信できるかどうか変わってしまいました。なんでなん。

 

具体的にどこのピンなのかとか、コードどんなんよ、みたいな意見はあると思うんですが、とりあえず今はメモ書きレベルで一旦公開します。

う~んGPIOごときで…なぜ…

まあピンの場所変えれば済む話なので、そこまで致命的な修正はなさそうで良かったです。

 

 

4番はまだ試せてないですが、Amazonで2個入りを買っていたので片割れを試してみることにします。

 

 

ほとんど文章で分かりにくいかと思いますが、最近また忙しくなってきてあまり時間が取れないのでこれくらいで勘弁願います。

トラ技発売から一月以上経ってしまいましたが、自分のペースでゆるゆる進めていきたいです。

というわけで今回はここまで。

倒立振子を作ろう part2:回路を作る

こんにちは。リアル脱出ゲームにハマりそうなかずタコです。

謎解き楽しいですよね。IQサプリは毎週必ず見てました。モヤっと。

 

ちょっとリアルのほうが忙し目だったので、趣味の電子工作にあまり時間がさけずに遅くなってしまいました。辛い。

少しでも時間を見つけて自分のやりたい作業を自分のペースでやらないと、電子工作の楽しい部分を忘れてしまいそうでしんどい。

無理してでも時間を作って進めていきたいと思います。

 

 

さて、本題に入りましょう。

相変わらずトラ技を参考に作業を続けていきます。

リンク先はもう定価じゃないんで、最寄りの書店で探して買うのがいいと思います。

でももう8月号出てるか…

 

 

前回記事はこちら(部品表に少しだけ変更があります)  

 

パーツはそろえてあるので、初めに回路を作っていきたいと思います。

資料の順番的には、まずIMUとの通信ができる最低限の回路を作ってから傾斜計なるものを作るみたいです。

少しずつ作っていけばエラーの切り分けもしやすいですしね、理にかなっているかと。

 

 

…が、私はんだ付けしていると心が安らぐタイプの人種でして

 

 

最近の研究報告ラッシュで荒んだ心を癒すべく、ひたすらにはんだ付け作業がしたい…無心ではんだを溶かしたい…

ということで、最終的に必要なパーツも全部乗っけた回路をこのタイミングで作ってしましました。

 

 

こんな感じ。

f:id:kazutako_lab:20190716193845j:plain
f:id:kazutako_lab:20190716193852j:plain

 

裏面は配線ぎっしりです。やっぱり基板は密度が大事だと思います(面実装マニア並感)

ジャンパは使いたくなかったんですが、電源ラインでどうしても必要になってしまったので断腸の思いで空中配線しました。

 

 

エンコーダ用のピンヘッダがマイコン下にいるという限界配線。

f:id:kazutako_lab:20190716193902j:plain

 

本当は以前紹介した線対基板コネクタを使いたかったんですが、地味に大きかったので入りませんでした。残念。

 

 

ちなみに回路図はこんな感じです。

f:id:kazutako_lab:20190716213114p:plain



 

やってることは資料と同じですが、パーツが違うので細かいピンアサインが違います。

 

また、資料ではエンコーダの信号を分圧していましたが、マイコンのリファレンスを見るとだいたいのピンが5V耐圧になってるんですよね。

f:id:kazutako_lab:20190716210240p:plain

stm32f303k8のデータシートより

なんで、特に分圧しなくてもいきなり壊れたりはしないと思います。寿命とかは知らない。

 

IMUの電源はGPIOからとってます。あまり良い配線とは言えないですが、ICが引っ張るのはせいぜい4mAくらいらしいので(データシートより)問題ないでしょう。

 

他に細かい違いとしては、基板が狭すぎたのでドライバ用のパスコンが端折られていることくらいでしょうか。

多分問題ないでしょう。

 

 

テスタでざっくりデバッグしたのち、マイコン版Hello World、Lチカをしました。

f:id:kazutako_lab:20190716230926j:plain


 

 

ちなみに私が使っているSTM32の開発環境は、

CubeMX + SW4STM32

です。ここも資料とは違います。

 

サンプルコードの事を考えたらmbed使ってもよかった気がするんですが、柔軟性は上の組み合わせのほうが高いと思うので今回はこちらで強行します。

まあGPIOとか通信関係の関数が違うくらいで、基本的なアルゴリズムの書き方は変わらんでしょう。

その辺は大いに参考にしたい所存です。というかその勉強のために買ったからね。

 

 

 

 

IMUとの通信まで記事にしたかったのですが、少し長くなりそうなので今回はここまで。

それでは、次回もよろしくお願いします。

雑記:ゼロプレッシャーピンソケットを見つけた

こんばんは、お久しぶりです。7月12日公開のポケモン映画が楽しみすぎるかずタコです。

週頭に大きめの発表を終えて、少し心と時間に余裕ができました。いうてもスケジュール絶賛炎上中なんでまだまだ忙しいですが。

たまには息抜きで脳死タイピングしながら記事書くのも大事だと思うのです(現実逃避

 

 

 

今日は電子工作絡みの小ネタ記事です。

この前ネットの海をさまよっていたら、こんなものを見つけました。

210-2599-50-0602 | ピンヘッダ ピンソケット 1列 3M ストレート 2.54mm, 10極 スルーホール | RS Components

f:id:kazutako_lab:20190707221305p:plain

サイトから引用

 

いわゆるゼロプレッシャーソケットってやつです。

今までは300milとか600milのIC用ソケットでしかゼロプレッシャータイプを見たことがなかったのですが、今回は一列ピンソケットタイプを見つけました。めずらし。

二列のIC用はこれ:

28-6554-11 | Aries Electronics ゼロプレッシャーソケット,ZIFソケット 28極 2.54mm ピッチ | RS Components

 

見つけたときは、「お!便利そう!」とか思いましたが、

記事書いてる今は「いつ使うんだ…?」と、そのメリットを見出せずにいます。

 

そもそもゼロプレッシャーソケットの存在意義として、

ICの抜き差しがしょっちゅう起こるマイコンの書き込み機とかICテスタ?とかでの利用が主だと思うんです。

というのも、一般的なICソケットだとめちゃくちゃ固くて簡単には抜けないんですよ。

なんで、ICの足がひん曲がったり折れたりということがしょっちゅう起こります。

 

しょっちゅう抜き差ししてしかも足が折れやすいとなると、いわゆるDIPタイプのICくらいなんじゃないかなぁと、私の少ない経験と知識では思ってしまうところであります。

ちなみに今までちゃんと調べずに使ってましたが、DIPってDual In-line Packageの略なんですね。じゃあシングルあるんじゃねと思ったらやっぱりありました。
Single In-line PackageでSIPだそうです。

というかこの前選定したモータードライバとかそうか…

ん~でもSIPでしょっちゅう抜き差しするものもわからん…

 

そしてこいつ地味に高い。べりーえくすぺんしぶ。

用途も定まらないピンソケットに5000円はだせんなぁ…

 

もし、こういうのに使えるんじゃね?というものがありましたら是非教えていただけると幸いです。

 

短いですが今日はこの辺で。

 

倒立振子を作ろう part1:部品の選定と購入

 

こんにちは、この前後輩がカブトムシを捕まえてきました。もういるんだなぁと思ったかずタコです。

 

さて、今回から資料を頼りにガシガシ作業していきたいと思います。

さっと読んだだけでもかなりしっかりしたつくりになってる本で、相当勉強になります。付属のDVDに解説動画やソースコードなども入っていて至れり尽くせりです。

 

流れも自然で、初めにアポロ11号の例をとりながらカルマンフィルタ誕生の背景と特徴、これからやることの説明をしています。

そこから、簡単な工作を挟んで最終的な倒立振子を設計・製作していく中でカルマンフィルタや基盤となっている現代制御理論の強力さを肌で感じてね。といった流れになっています。う~む分かりやすい。

 

理論の解説や設計・実装のノウハウをしっかりレクチャーしてくれています。一つのロボットを作るまでにここまでの解説をしてくれる本はなかなかありませんので、うちのボスの言う通り確かに貴重だなぁと感じました。

 

 

露骨な宣伝はこれくらいにして作業記録を書いていきたいと思います。

第一章では本の全体の流れを説明するとともに、今後必要になる部品の紹介もあります。

途中で投げ出さないためにもまずは部品だけそろえてしまおうという算段の元、部品表とにらめっこしながら必要なものをそろえましたので以下にまとめます。

 

部品表

各部品に関してつらつら書いてみたら読むのかったるいレベルで長くなったので、初めに表として部品をまとめておきたいと思います。

1 マイコン NUCLEO-F303 1
2 IMU MPU-6050 1
3 モータ+ギヤボックス ハイパワーギヤボックスHE 2
4 ロータリーエンコーダ REL18-100BP 1
5 タイヤ スポーツタイヤ56mm径 1
6 フレーム ユニバーサルプレートL 1
7 モータードライバ TA7291SG(リンクはP) 2
8 基板 適度なサイズのユニバーサル 1
9 電池ボックス 単三4本入るもの 1
10 LED お好み 3
11 トグルスイッチ 電源投入用  1
12 セラコン 0.1μ 1
13 電解コン 220μ 2
15 抵抗 220 3
18 ピンソケット   適量
19 ネジ、スペーサ   適量
21 カップリング 自作 1

 

各部品に関する詳細な説明はとりあえず割愛して、組み立ての時にでも書こうと思います。まあほとんどが文献で紹介されていたものと変わりませんのでそこまで深い説明もいらないかと思いますが。

 

ただ、現段階で触れておきたい内容だけは書いておきます。

1.マイコン:NUCLEO-F303

ロボットの頭脳に当たるCPUには上のものを使用しました。

STM32シリーズのマイコンは最近よく使っていて開発環境等一通りあるので、余計なセットアップの手間が省けてうれしい限りです。

ただ、文献で紹介されている型番とは違います。

文献ではF401というF4シリーズのものを使っています。基本的にF4のほうが性能が高いんですが、F401にはDACがありません。それなのにアナログ入力が必要なモータードライバを使っているので、文献ではローパスフィルタを組んで無理やりパルス波を平滑化しています。

面白いですがDACがあるならそれを使った方がいいので、DACが積んであり他のスペックもそこまで大きく変わらないF303をチョイスしました。

2.IMU:MPU-6050

IMUとはInertial Measurement Unitの略で、簡単に言えばロボットの姿勢や位置を知るために用いるセンサーです。

文献では秋月電子で販売されている9軸センサ(これ)を使用しているのですが、地磁気は今回のロボットで使わないんですよね。

9軸になるとちょっと値も張るので、加速度と角速度だけの6軸がないかなぁと探していたらAmazonでこいつが売っていたので採用しました。結構有名なセンサっぽくて、マイクロマウスでもよく乗っけてる人を見かけます。

I2C通信で情報をとれるところは文献で利用しているものと一緒です。レジスタのアドレスに気を付ければ問題なく代用できるでしょう。たぶん。

 4.ロータリーエンコーダ:REL18 -100BP

タイヤがどれくらい回ったのかを計測するセンサです。

これは結構頭を抱えました。これに関しても文献で紹介されているのとは違うものです(文献はこっち)。

というのも、リンクに飛んでいただければ分かるんですが、

 

f:id:kazutako_lab:20190629012544j:plain

欠品中

絶対この本で紹介したからですよ。間違いない。

まあないものは仕方ないですし、これはもともとボリュームというか、ユーザーインターフェース的な使い方がメインっぽい構造しているので、モータの回転とるような用途は向いてなさそうだな~と思い別のものを検討した次第です。

んで、代替案として選ばれたのがREL18 君です。実はこれ以前使ったことがありまして、 

こいつで使ったエンコーダです。

モータのような高速回転するものの回転数を読むロータリーエンコーダで、個人が購入できるようなお店&価格帯のものって実はあんまりないんですよね。しかもこれはかなり小さいです(直径18mm)。なんで、これを見つけたときはまるで砂漠でオアシスを見つけたような感動を覚えた記憶があります。砂漠行ったことないですが。

一つだけ難点を上げるとしたら、回転軸の径が2.5mmと中途半端なことです。どうせなら2か3mmにしてくれた方が、千石で売ってるカップリングが使えて車軸との締結が簡単だったのに…

7.モータードライバ:TA7291SG

先の部品表ではこっちよりもよく見るTA7291Pという型番のリンクになってます。そのページにあるデータシートにこいつの事は書いてあるので問題ないでしょう。

このモータードライバは超有名で、電子工作でモーター回したことある人なら一度は使ったことがあるのではないかというほど。

キットでの採用率やブログでの紹介数もえげつないですね。モーター回してそうな工作は大体使われてました。

ただ、この超ヒットICも時代の波には逆らえず…

f:id:kazutako_lab:20190629135506j:plain

D(ディスコン)

とどのつまり生産中止です。秋月のページから消えるのも時間の問題でしょう。

確かに今どきあまり見ないアナログ指令方式ですし、内部電圧降下が大きめ(1Vくらい落ちる)ので電源電圧ピッタリを負荷にかけられなかったりと、使ってみると分かるデメリットもありましたからねぇ。入手性や使いやすさはピカイチだったんですが…

今回使うのはたまたま家に転がっていたやつでしたが、二周目で作る(予定の)倒立振子にはこいつは使わないかもしれないです。どうせ代替品も探さないとなんでちょうどいいタイミングでしょうか。

 

まとめ

今回の工作での目的は制御理論とその実装を勉強することでしたので、機構面で何か面白い工夫とか資料と大きく変えるとか、そういうことはあまりせずに行きます。

まあすでに代替品が多い状態ですが…フレームやモータ、ギヤボックスなど、ロボットの仕組みの本質に関わる部分は全く一緒にしているのでそこまで大差はないと思います。

 

もしロータリーエンコーダやモータードライバで、

「こんな便利なのあるよ!」

というおすすめ商品があればコメントとかで教えてもらえると嬉しいです。

 

資料の順番通りだと、次回は傾斜計という傾きを計測する装置を作ることになりそうです。

それでは、今回はこの辺で。

 

・2019-07-15追記 

セラコンの個数変更(5→1)

基板狭くて入らんかった()

倒立振子を作ろう part0:はじめに

こんにちは、最近は蒸し暑い日が続いていて家から出たくないかずタコです。

 

突然ですが最近こんなものを買いました。

電子工作界隈では有名な雑誌、トランジスタ技術の2019年7月号です。

普段は研究室が買ってるのをパラパラ見るくらいだったんですが、今月号の内容についてうちのボスが「これは良い内容」と絶賛していたのを聞いて、どれどれと中身をよく読んでみたら、なるほどこれは勉強になりそうだと思って自分用に一冊買った次第です。

どんな内容かというと、

あのアポロ11号でも使われた理論を使って倒立振子を作ってみよう!

というものです。アポロ11号と聞くとほへ~難しそうってなりますが、同様の理論は現在でも広く用いられている身近なものです。

例えばGPSやカーナビ、天気予報や建築など用途は幅広いです。

その名もカルマンフィルタ、大学で制御工学を勉強した人なら必ず聞いたことがあると思います。

すごく雑にこの理論を説明するなら、ノイズがのっかってるセンサの値から、正しい値(真値)を推定するための理論です。

この本は倒立振子の製作を通して、カルマンフィルタやそれの基礎となる現代制御理論の理解と実装ノウハウの習得が目的なようです。

実装に関しては恥ずかしながら今まで経験がないため非常にありがたいです。これはぜひ作って勉強したい!

あ、ちなみに倒立振子ってのがなんだかわからない方は、小学校の頃に掃除がだるくて箒を手の上に立たせてバランスとった遊びとかしませんでした?あれが倒立振子です。

 

んで、せっかくブログも書いてることだしこのことを記事にしてまとめて紹介したいなぁなんて思いまして、筆を執った次第です。

流行りの本に関する記事ならアクセスも増えるでしょう

 

そういえば書き始めて大事なことに気が付きました。それは、

どういう人に読んでいただく想定で書けばいいんだ…?

ということ。

同じ畑の人たち向けに書くのであれば、専門用語とか解説もなくバンバン使って問題ないでしょうし、何か作業するうえで必要な工具なんかも、「え、どこの家にもあるでしょ?」くらいのテンションで使っていくと思うんですよね。

ですが、まだまだ駆け出しのブログでして、なかなかgoogleの検索で引っ掛かりません。このブログに足を運んでくださる方の多くはゲーム用に作ったアカウントのフォロワーさんたちです。電子工作関係ねぇ!

 

そういった背景もあって、内容に関しては結構頭を抱えました。説明がない記事とかきっと読んでも理解できなくて面白くないだろうし、かといって解説マシマシの記事は読みにくくなりそうですし何より筆が遅くなってしまいます。

 

悩んだ結果、とりあえず倒立振子の完成まで(自分が一通り理解するまで)は、私と同じように電子工作趣味な方々に向けたような記事にしようかと思います。細かい解説とかは端折ったりします。フォロワーさんたちごめんね。

しかし、それだけでは内容のほとんどがおっさんがただおもちゃ作った報告になってしまいます。誰が楽しいんだそれ。

というわけで、一段落した後になってしまうと思いますが

初心者の方々に向けた紹介(あわよくば作れちゃうような解説)

をしたいと考えています。

 

簡単にまとめると、

最初はほとんど自分の日記として書く(自分、自分と同じ畑の人向け)

一周したら解説マシマシで役に立つ記事を書く(電子工作入門、初心者向け)

という予定にします。これなら書きやすそうかな?

 

 

というわけで、今回は書籍の紹介とこれから書いていく内容に関して少し触れました。

実際に製作過程を書いていくのは次回以降になります。果たしてちゃんと完成までもっていけるでしょうか…

それでは、また次回。 

 

コネクタの話

こんにちは、かずタコです。

最近また暑くなってきました。体調を崩さないようにしたいですね。

 

今日はロボ絡みの話です。

 

電子工作をしていると、往々にしてコネクタが必要になるケースがあります。モータやLED,センサの配線と基板を繋げたり(線対基板)、配線同士を繋げたり(線対線)、基板同士(基板対基板)と、それぞれの場面で適切なコネクタが必要になります。

今回のお話は自分のメモ的な意味合いが強いですが、今まで使ってみて便利だった・使いやすかったコネクタを紹介しようと思います。

 

線対基板コネクタ

線対基板コネクタは一番よく使うコネクタです。

というのも、例えばモータやセンサとモータードライバ、マイコンなんかを繋げるとき、ほとんどの場合前者には配線がついてて、後者がのっかっている基板にその線をつなぐ必要があります。

ロボットの場合、一枚の基板上ですべてが完結することはまずないので、線対基板コネクタは絶対必要ですね。

んで、そんな良く使う線対基板コネクタですが、これだ!と思うものに出会ったのはだいぶ最近の事でした。

 

まず紹介したいのがこれ

Molex 5051(ハウジング)/5045(垂直ウエハ)/5046(直角ウエハ)/5159(ターミナル)シリーズ

f:id:kazutako_lab:20190527215530j:plain

図1 左からターミナル、ハウジング、ウエハー


センサ用の信号線だとか、小さめのモータ用出力線だとか、かなり幅広く使えそうなコネクタです。最大定格電流は4.0A、結構流せます。適合する線の太さは22-30AWGです。 

これのいいところは

  • 極性がある(ハウジングをウエハに挿す向きを間違えることがなくなる)
  • 緩めのロックがかかるので簡単に抜けない
  • 2.5㎜ピッチなのでユニバーサル基板で使える

の三点です。これらの特徴それぞれだと別に珍しいものではないですが、三つを同時に満たしているのは意外と少なく、入手性も考えると(秋葉原の千石で買えます)今までで一番使いやすいなぁと思いました。とても使いやすい。

 

次に、初めて使ったときに感動したコネクタがこれ

MIL規格準拠コネクタ

f:id:kazutako_lab:20190618132755j:plain

図2 左からストレインリリーフ、カバー+ハウジング、ボックスヘッダ

これはフラットケーブル(被膜線がくっついてリボンのようになってるケーブル)に対して使うコネクタです。下の図3みたいになります。

 

f:id:kazutako_lab:20190618154840j:plain

図3 フラットケーブルとコネクタ

これの何がいいって、まずコネクタを圧着するのが楽なんです。図2の真ん中の部品にケーブルを挟んで、ぎゅっと挟むだけでおしまいです。

対して図1のようにターミナルがあるコネクタは、配線一本一本の被膜を剥いて、圧着して、ハウジングに差し込んで…という非常に煩雑な作業が必要です。

それに比べたらとてもとても楽チンなんですね。

しかも極性付き、挿す向きを間違えることはありません。

信号線をまとめて配線したいときにとても重宝します。

 

線対線コネクタで今後も使いたいのはこれくらいでしょうか。

どちらも2.5㎜ピッチであることが重要ですね。変なピッチだと、自分で専用の基板を設計する必要があるので。

 

次のページでは線対線コネクタの紹介をします。

 

続きを読む