2023年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

カテゴリー

ブログパーツ

無料ブログはココログ

« 2022年3月 | トップページ | 2022年5月 »

2022年4月

2022年4月28日 (木)

【昔語り10】電子工作の「伝道師」泉弘志さんのこと

アキバ昔語り:

1960年代中頃、当時小学生だった僕は「子供の科学」を毎月買ってもらってました。月1回、父親が仕事帰りに買ってきてくれるのが待ち遠しかったのを覚えています。読み始めたのは小学3年生の時、思えば、これがラジオ工作との出会いでした。

製作記事の中で特に気に入ったのが、軽妙な文体とわかりやすいイラストの1〜2石程度の簡単なラジオ製作記事でした。著者名には「泉弘志」とありましたが、なんと読むかはわかりませんでした。下の誠文堂新光社の「図解1−2石ラジオ製作集」の巻頭記事のスキャンデータをご覧になれば、これか、と思い出す人もいるのではないかと思います。

ダウンロード - izumihirosh.pdf

この記事は巻頭記事ということで特別に丁寧に書き下ろされたものだと思います。実際の部品を配線図と対比する形に並べたり、注釈にイラストを入れたりと初心者にわかりやすい内容になっているでしょう。また、記事の文体も柔らかく読みやすいですね。泉弘志さんの製作記事は、「子供の科学」「初歩のラジオ」「模型とラジオ(版元は科学教材社)」といった誠文堂新光社系の雑誌に載ってました。

当時は、文章を書いてるのが泉弘志さんで、イラストは別の人が描いてると思ってましたが、60年代末くらいから下記のようにクレジットされるようになり、イラストも泉さんということがハッキリしました。写真は1970年の「模型とラジオ」5月号からです。

Img_3631 Img_3630

手持ちの古本を確認したところ、この3冊が泉弘志さんの製作集でした。いずれも「初歩のラジオ」「子供の科学」に掲載された記事をまとめた本で、60年代末から70年代中頃に出版されたものです。

Img_3632

このように数多くの入門者向け記事を書かなければならないとすると、どうしても同じようなコンテンツが多くなってしまうのはやむを得ないでしょう。マンネリを打開するためか、泉弘志さんはいろいろな変わり種セットを考案しています。例えばラジオなら、マッチ箱に組む超小型もの、60年代に流行っていた様々な形のお菓子のプラケース(現在も「チョコベビー」は現役のようです)に組むもの、さらには上の写真にも写ってますがプロペラを選曲つまみにしたヒコーキ型までありました。いずれも少年の工作ゴコロをくすぐるものだったと思います。

その中でこれは、というのが「サンダーバード型 電子おやすみ器」です。これは1968年の「子供の科学」8月号に掲載されました。

Img_3643 Img_3644

当時人気だったイマイのミニ・サンダーバード2号のプラモデルの中にセットを組み込んでしまうというのは、僕にとっては、いろんな意味で衝撃的なアイデアでした。なんといっても当時はプラモデルだけで立派な遊び道具だったわけで、それを惜しげもなくキャビネットとして使うわけですから、大人の人の考え方はすごいなと変なところで感心したりしました。ちなみに「おやすみ器」というのはポツンポツンという雨垂れのような音を発生する機械で、寝付けないときにそれを聴いているうちに眠ってしまうというものです。実際に効くのかどうかは分かりません。

調べたところによると、泉弘志さんは終戦間もない1948年(昭和23年)、創刊したばかりの「初歩のラジオ」に執筆を始め、1999年の「子供の科学」をもって引退、その後2003年末に76歳で鬼籍に入られたとあります。まさにエレクトロニクス時代と共に生き、そして数多くの子供たちをエレクトロニクスの世界へ導いた「伝道師」といえるでしょう。

最後に、また古本の中から、1949年の「初歩のラジオ」8月号の記事(泉弘志さん19歳!)を紹介しましょう。当時の初ラは、写真の通り、小さく、紙質もよくありません。季節感あふれる表紙絵は、海洋船舶画の名手、飯塚羚児画伯です。

Img_3633

記事は入門者向け再生検波短波ラジオの作り方です。記事の最後にもありますが、この頃はまだ民放ラジオはなく、短波で聴く外国の放送を楽しんでいた人も多かったようです。面白いのはUY-76という三極管を2本使っているうち、1本をわざわざ二極接続としてB電源の整流用にしていることです。普通なれば12Fなどの整流管を使うところで、同号の他の製作記事ではみんな12Fです。これは、入手しやすいUY-76だけでセットを構成するためだったのではないでしょうか。UY-76は、旧日本軍の無線機に多用されていたので、戦後の一時期、新品も中古も安く流通していたという話をどこかで読んだことがあります。こういうところにも、泉弘志さんのラジオ初心者への配慮を感じます。(前年の10月号にも泉さんの記事はあったのですが、真空管回路の解説で、製作記事ではなかったので、こちらを紹介しておきます。)

Img_3634 Img_3635 Img_3638

タイトル左のイラストは、タッチが異なるので泉さんの筆になるものではないと思います。編集部が用意したカットでしょう。2枚目の写真の実体配線図を拡大すると、すでに泉さんのお茶目なセンスが発揮されていることがわかると思います。アンテナ線の先っぽに風船がついているのは、この投稿の最初に載せたpdfの4ページにもありますね。

Img_3639

2022年4月14日 (木)

PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)

花岡ちゃんのウィークエンド:

VL53L0Xを使う際の注意点です。

 

1:実用測距性能は1mちょっと

VL53L0Xを使ったモジュールの謳い文句に「最大測定距離 2m」とよくありますが、これはあくまでも最大です。設定毎に下記のような制限があります。スペックでよくある控えめな数値というわけではなく、実際やってみるとほんとにこんな感じです。long rangeでは使ったことがないのでどの程度明るさ(日中の窓際など)の影響を受けるかはわかりません。

Range

 

2:レーザー光は円錐状に放射されてる

使う前は、レーザーというくらいだから、レーザーポインターのようにピンポイントで測定しているのかなと思ってましたが大違い。実際は次の図のように円錐形に広がっているそうです。

Rad

そのため、成形品の内側に置いて測定用の窓を開ける場合は注意が必要です。下の写真はこれを使ったある商品のセンサ部分です。白い部分が成形品で、そこから5mmくらい奥まったところにセンサを設置してます。これは試作段階なので測定窓がだいぶ大きいですが、量産版では色々工夫してこれより小さくできたとはいえ、結構大きな開口部が必要で、見た目が悪くなってしまいました。大きくしないと成形品にレーザーが当たって反射してしまうからです。設計段階では開口部がこれほど必要とは思わずに、生産上の都合からかなり奥まった位置にセンサ基板を置いてしまったのが敗因。センサはなるべく成形品ギリギリにしたほうが良いです。

Sensor

これはまた移動ロボットのセンサに使うときにも重要で、次の写真のように床面からかなり高い位置にセンサをつけないと、放射状に広がったレーザーが床面に反射し、前方に障害物があるように反応してしまいます。この試作機では150mmも持ち上げないと、畳の上で安定に使えませんでした。この点はPSDに分があるようです。これほどシビアではありません。

Img_3580

 

 

この辺りに気をつければ、このセンサは大変に使い良く、安定です。いろいろなモードがありますが、実際に使うには、コンテニュアスモードでなるべく早い周期でデータを取得し、マイコン側で移動平均を取るなどして安定化させるのがよいと思います。

最後に重要な注意を。センサの表面の薄黄色の保護シートの剥がし忘れに注意してください。一応動作してしまうけど、本来の性能は出ていないので、なんだこりゃということになります。特に量産時には注意が必要です。

今回のウィークエンドはこれでおしまいです。複数のVL53L0Xを使う方法については、実際にやっているので、近いうちに別の投稿で解説したいと思います。

2022年4月13日 (水)

【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う

花岡ちゃんのウィークエンド:

動作には問題ないですが、ソースコードに間違いがありました。投稿に訂正を入れましたので、こちらを確認してください。

PIC24Fでレーザー距離センサVL53L0Xを使う(その3)

花岡ちゃんのウィークエンド:

 

まずVL53L0Xの測定モードの説明です。次の二つのモードがあります。

1:コンテニュアス

デバイスは連続的に測定を繰り返し、読み出しコマンドを実行するとレジスタにある直近の測定値を返します。使いやすいモードで、僕はもっぱらこれを使っています。デフォルトでは30msごとに測定をおこなっているようです。このモードでは、デバイスは常に20mA程度(実測値)の電流を消費しています。

プロジェクトではCONTINUOUSモードを選択(デフォルト)すると、50msごとに直近の測定結果を表示します。

2:シングル

読み出しコマンドを実行すると、測定プロセスをスタートさせ、レジスタにある前回の測定結果を返します。注意すべきなのは、コマンド発行時点の測定値を知りたい場合は、測定時間経過後にもう1度読み出しコマンドを発行しなければならないことです。最初のコマンドの時読み出されるのは「前回の」測定結果だからです。このモードはたとえば3秒毎の測定で十分な場合など、測定時以外はデバイスを低消費状態(実測で350uA程度)に置けるので、消費電力を倹約することができます。

プロジェクトではSINGLEモードを選択すると、3秒おきにセンサを起動し、測定時間を空けて2回読み込むことでそのときの測定結果を表示します。

 

次にプロジェクトでモードを切り替える方法です。

モードの切り替えはmain.cの35行からの「プログラムスイッチ」で#defineを有効にしたりコメントアウトして無効にしたりして行います。ソースコードを読んでもらえばやり方はわかると思います。

HIGH_SPEEDやHIGH_ACCURACY、LONG_RANGEなどのセンサの感度調整はSINGLEモードでのみ使えるようになっていますが、実際はコンテニュアスでも使えます。643行のstartContinuous(0);の前にsetHighAccracyVL53();などを挿入すると、その設定で測定を繰り返します。ただし、測定時間もそれに応じて変わるので、setHighAccracyVL53();ならば200ms周期での結果更新になります。50ms毎に読み出しても、4回は同じ値が入ってくる勘定になります。その際は読み出し周期を設定に合わせて調整する必要があります。

 

最後にプロジェクトの構成です。

VL53L0X.cがドライバのソースコードです。そのヘッダファイルがVL53L0X.hです。main.cではこれをインクルードしています。main.cはプログラムの本体でI2Cや液晶用のドライバなどもこれに記述されてます。I2C関係の関数と、呼ばれると起動後からの時間をmsで返す関数millis();を定義したmain.hがあり、VL53L0X.cはこれをインクルードしている構成になっています。

簡単なプロジェクトなら、main.cを改造して作ることができると思います。


次回はセンサを使う上での注意点などを解説します。

2022年4月12日 (火)

PIC24Fでレーザー距離センサVL53L0Xを使う(その2)

花岡ちゃんのウィークエンド:

MPLAB Xのプロジェクトファイルを公開します。開発環境はMacOS12.2.1、MPLAB X IDE V5.50、XC16(V1.61)、PicKit3です。

まずは実験機の回路図です。マイコンはPIC24FJ64GA002です。

ダウンロード - hanaoka_vl53l0x.pdf

VL53L0Xのモジュールは他のものでも使えます。ただしXSHUTがモジュール内部でプルアップされている必要があります。ほとんどのモジュールはそうなっていると思います。

LCDモジュールは秋月電子のAE-AQM0802です。これがなくとも動作はしますが何をやってるかわかりません。

電源電圧は3.3Vです。もっともあまりシビアではないので乾電池2本直結で十分動作します。

 

プロジェクトファイルです。

ダウンロード - pic24f_vl53l0x.x.zip

マックで開発してますので文字コードなどWindowsと異なる可能性もあります。文字化けしたらプロパティを確認してください。

訂正です。1ms単位での経過時間関数 millis();が100ms単位になっていました。使っていないTimeOutがらみなのでそれでも問題ないですが、正しくないので修正しました。こちらのプロジェクトを使ってください。

ダウンロード - pic24f_vl53l0x_1.x.zip

 

 

そのままビルドして動作させた時の動画です。

小さいブレットボードにセンサが上向けに固定されており、手のひらをかざして動かすと液晶の数字が変わります。これはセンサから手のひらまでの距離をmmで表示しています。センサを「コンテニュアスモード」で動作させており、距離データを50ms毎に読み出しています。センサからデータを読みだすときLEDが点灯するようになっています。

 

次回はプログラムの中身を説明します。

2022年4月11日 (月)

PIC24Fでレーザー距離センサVL53L0Xを使う(その1)

花岡ちゃんのウィークエンド:

以前、このカテゴリーでマイクロチップの16bitマイコン、PIC24Fシリーズにいろいろなデバイスを接続してみました。その続編です。今回はレーザー測距センサVL53L0XをI2Cで接続します。実はかなり前に(2017年)に製作したのですが、ブログを休止していたため、公開していませんでした。

STマイクロのVL53L0Xは、測距センサの定番PSDと比較して非常に小型で消費電力も少ないです。PSDが三角測量なのに対し、レーザーの飛行時間を計測するタイプで精度も高く、何も考えずに使っても、cm単位でなら安定な計測ができます。また、直接mmで測距結果を読み出せるのも、手抜き派の僕にとってはありがたいですね。

足のない面実装の部品なので試作用に実装するのは大変ですが、モジュールがたくさん出ているのでそれを使えば簡単です。僕がよく使っているのはAmazonで購入できる写真のものです。

Img_3568

このモジュールは小さいので試作品に載せやすく、また値段が安いのもフリーランスの開発者としてはありがたいです。もっとも最近は「半導体の逼迫」のせいかだいぶ高くなってるようですが。

ただ、I2Cで指定のレジスタを読めば距離データが取得できる、という簡単な構造ではなく、専用のドライバソフトからアクセスしないといけません。本来はSTマイクロから提供されているCのライブラリを利用するのですが、今回のものは当時(2017年)のArduino用のcppライブラリをベースに作成しています。センサについてあまり知識がなかったので、とにかく実際に動いているものをお手本にしたわけです。その後、幾つものプロジェクトで使い、特に問題はありませんでしたが、そういう素性のコードなので、センサの性能が100%発揮できてるかどうかは保証できません。

次回は、mplabXのプロジェクトを公開します。

« 2022年3月 | トップページ | 2022年5月 »