trykmkmの備忘録

自称組み込みエンジニアのブログ

このブログについて

このブログは、エンジニアtrykmkmが調査したことを、記録として残していくものです。

 

思うがままに追記していくので、見づらいと思いますが、ご了承ください。

 

超音波・レーザ測距センササンプルプログラム(2)

 今回は、超音波・レーザ測距センササンプルプログラムを実行させるハードについて検討していきます。

 

 mbedの電源はUSBから供給し、各センサはmbed経由でUSBから電源を受電します。

 

 超音波測距センサとレーザ測距センサは、それぞれインターフェースにi2cがあるので、i2cバス接続をします。なお、各センサは内部プルアップ抵抗があるので、プルアップ抵抗を実装しません。

 

 レーザ測距センサは、リセット(SHDN)ピンがあるので、mbedの任意のピンをDigital outとして使用し、センサのON/OFF制御を実施します。

 ただし、レーザ測距センサのリセットピンは、2.8Vでプルアップされているため、mbedの信号レベル5Vと異なります。mbedのピンをハイインピーダンス出力できれば問題ないのですが、できるかわからないため、N-ch MOS FETをかませます。

 なお、このセンサは、I2Cは5Vに対応しているので、I2Cのレベルシフタ回路は実装しません。

 

 超音波センサは、インターフェースにI2CとUARTを選択できるMODEピンがあります。ノンコネでI2C、GND接続でUARTになります。今回はI2Cを使用するので、ノンコネになります。

 

 以上より、検討した回路図は下記の通りになります。

f:id:trykmkm:20170917013947p:plain

図 超音波・レーザ測距センササンプルプログラム用回路図

 

 次回は、各センサを個別に動かしていきたいと思います。

 

 

 

 

超音波・レーザ測距センササンプルプログラム(1)

 私の手元には、とある事情で入手した未使用のままの超音波測距センサ(SRF02)とレーザ測距センサ(VL53L0Xモジュール)があります。

 放置したままだともったいないので、測定精度比較サンプルプログラムを作成することにしました。

 

 今回一番のハードルになるのは、レーザ測距センサになります。
 実はこのレーザ測距センサ、インターフェースがI2Cになりますが、I2Cのアドレスマップがデータシート上に公開されていません。
 どうやって制御するかといえば、Linux、mbed、arduino向けのAPIが公開されており、それを利用するしかありません。
 APIソースコードを解析すれば、他のプラットフォームでも利用できそうですが、この記事では簡単に動かすことを目的としているので、STmicroがAPIを提供してるプラットフォームで動かそうと思います。

 よって今回は、mbedを使用することにしました。

 使用するセンサ・ボードを下記に示します。

 

mbed NXP LPC1768評価キット: マイコン関連 秋月電子通商 電子部品 ネット通販

超音波センサー SRF02: マイコン関連 秋月電子通商 電子部品 ネット通販

VL53L0X TOFレーザー測距センサモジュール - VL53L0X - ネット販売

 

 次回以降、回路図、部品制御、プログラムについて記載していこうと思います。

12V・24V入力切替回路(2)

 前回の記事の続きになります。

 

 検討した回路を下記に示します。

 

f:id:trykmkm:20170910003705p:plain

図 12V・24V入力切替回路

 

 ちなみに、部品は秋月電子で購入できるものから、選定しました。

 

 上記回路の動作概要を説明します。

 青枠回路は、Vinが19以上のとき、Q1がONになり、3端子レギュレータで降圧し、12Vを出力します。

 緑枠回路は、Vinが19V未満のとき、Q3がOFF、Q2がONになり、Vinをそのまま出力します。

※19Vは、ツェナーダイオードのVz=15Vと、Pch-FETのVgs=4Vの和になります。

 

 この回路を適用すれば、Vinが12Vのとき、入力をそのまま出力します。そして、Vinが24Vのときは、12Vを出力します。

 

12V・24V入力切替回路(1)

自動車から電源を取得し、耐圧20V負に電源を供給する場合を考えます。


自動車の電源は、12V出力の車両と24V出力の車両があります。

12V出力の場合、直接負荷に入力できますが、24V出力の場合、降圧が必要になります。

上記内容を実現する回路を検討します。

回路の名称は「12V・24V入力切替回路」とします。

 

下記は、電源入力から負荷までのブロック図です。

 

f:id:trykmkm:20170902194138p:plain

図 12V・24V切替回路ブロック図

 

詳細は次回に記載します。

 

 

DI(依存性注入)参考サイト

私、諸事情で畑違いのJAVAプログラミングをすることになり、DI(依存性注入)について勉強することになりました。

 

参考になりそうなページをメモします。

Spring Frameworkで理解するDI(1):DI:依存性の注入とは何か? (1/3) - @IT

springの再入門 - DI(依存性注入) - Qiita

「なぜDI(依存性注入)が必要なのか?」についてGoogleが解説しているページを翻訳した - Qiita

Android開発:Dagger2でDI(Dependency Injection)する備忘録 - Li::Feel

Dagger: Android向けの依存性注入フレームワーク

AndroidでDI(依存性注入)やってみた - 名前はまだない。

回路CAD DesignSparkPCB

 今後、Blog記事で回路図を掲載することがあるかも知れないので、回路CADをインストールすることにしました。

 回路CADと言えば、orCADが有名ですが、シェアウェアのため、個人でなかなか手を出せません。

 そこで、フリーのCADを探すことにしました。

 

 ググってみると、P板.comが回路CAD一覧(※1)を公開していました。

  ※1 P板.com推奨CADのご紹介 | プリント基板ネット通販P板.com

 

 一覧の中で、フリーかつ部品ライブラリが多いのは、DesignSparkPCB(※2)をインストールすることにしました。

 

 ※2 DesignSpark ( Our Software ⇒  PCB software)

 

 インストーラをダウンロードして、起動し、表示画面の通り進めていくと、簡単にインストールできます。

 インストール完了後、DesignSparkを起動すると、初回起動時はユーザ登録画面が表示されます。既定の項目を入力して、レジストボタンをクリックするとユーザ登録は終了で、CAD機能が使用できるようになります。

 

 さっそく使用してみました。感想ですが、私はorCADを使用していたので、DesignCADは多少違和感があるのですが、十分使えると思います。

 

 さっそく簡単な回路を入力しました。

 

f:id:trykmkm:20170727001225p:plain