electronics

スイッチマトリクスを使ってマイコンの入力ポートを節約する話

目的単純なスイッチ(ON/OFF)を判定する際に、できるだけマイコンのIOポートを節約するための方法を考えるなぜ単純なスイッチでは駄目なのか単純なON/OFFであれば下記の様な単純なスイッチでも問題ないです。※GPIO23は入力ポートとする単純なスイッチ(1スイッチ/1ポート) GPIO23はプルアップされていて、常にHIGHとなっている状態です。ここでスイッチが押されるとGNDに接続されてLOWになる感じですね。個人的にこの設計はシンプルで好きです。迷うこともないし。しかしこれで例えばキーボードなんて実装しようとしたらIOポートの数の壁にぶち当たるのは想像できますね。同時押しを考えないでいいのならアナログ入力少し複雑になりますが、原理はわかりやすい。アナログ入力で判定する(nスイッチ/1ポート)GPIO23をアナログ入力とすると、プルアップされているので常に3.3V付近です。SW1が押されるとGNDに落ちて0V, SW2が押されると分圧回路が成立して半分の1.65V付近になります。(誤差や熱による変化が考えられるため)なのでアナログ入力で電圧値を読み取ってやれば1ポートで複数のスイッチの状態が得られるというわけです。ただし、この方法だと同時押しに対応できません。対応できないというか、上記の場合は同時押しなのかSW1なのかを区別できません。

  • zienchan
    zienchan
3 min read
linux

Ubuntu 18.04.2 LTS (Bionic Beaver)がある日突然、真っ暗になって起動しない件

現象深く考えずにアップデート適用して再起動したら突然、画面が真っ暗になってログイン画面が表示されなくなって詰んだ環境VMWarePlayer上にUbuntu 18.04.2 LTSをインストール済解決策セーフモードで起動して下記のファイルを編集してWaylandを無効化するvi /etc/gdm3/custom.conf #WaylandEnable=false これのコメントを外して、 WaylandEnable=false こうする 結果再びログイン画面が表示されるようになる参考Ubuntu 18.04 LTSが起動しない?Waylandを無効にすれば起動するかも!

  • zienchan
    zienchan
1 min read
electronics

AliExpressで格安ヒートガン(ホットガン)買った話

事の始まり普段から海外の修理系の動画(ex. https://www.youtube.com/user/mymatevince)をYoutubeで見ているわけですが、よくこのヒートガン(ホットガン?)と呼ばれるツールが登場します。この道具は主に熱風を当ててソルダリング(リ・ソルダリング?)するものです。半田ごてとは違って、小手先を対象物に物理的に接触してなくてもはんだを溶解することができるので表面実装部品(SMD)などを剥がしたり、接着することができます。なので主に修理などで用いられるのですが、私は表面実装ICを取り付けたいことが結構あるのでICの裏面に全面GNDとかあるIC(ESP32)を使う場合に欲しくなりました。なお、こういった表面実装ICのリフローには、はんだでなくて、はんだクリームを使うはずなのですが、どうも修理動画を見ている限りでは再接着とかであれば溶解したはんだでもいけるっぽいですね。目的AliExpressで下記を満たす良さげなヒートガンを買う温度調節可能なことスタンド式で安全に手を離したりできること細かい作業もできるようにノズルの経を調節可能なこと持ちやすく、作業中の手元が見やすい形状であることAmazonでも下記のような製品は見つかりますが、上の修理動画にあるような細かな作業に向いたヘッド&

  • zienchan
    zienchan
5 min read
fusion360

秋月のユニバーサル基板(ブレッドボード)のケースを作った

目的 下記のユニバーサル基板がぴったり収まるケースが欲しい ※クリックすると商品ページへ 背景 ESP32とカラーセンサを使ったLED発光検知&通知のおもちゃを作成する際に、 きっちり収まる汎用のケースが欲しくなったため 解決策 3Dプリンタで作成する STLも配布するので必要な方は下記からどうぞ ケースモデル一式(STL) header.stl -> 上部(蓋) body.stl -> 下部(本体) 基板の寸法に互換性があれば、他のものでも使えると思います 仕様 梱包可能サイズ 名前 mm 長辺 800

  • zienchan
    zienchan
2 min read
electronics

rosbagファイルからjpegを抽出する方法

目的 分割されたrosbagファイルから、対象のセンサノード(ここでは受光センサ)の全フレームをjpegとして出力する なおファイル名はフレーム番号の他、受信時間(ナノ秒)も付与する 環境 Ubuntu 18.04.2 LTS https://www.ubuntulinux.jp/download/ja-remix ROS Melodic http://wiki.ros.org/melodic/Installation/Ubuntu 方法 UbuntuにROS Medlodicをインストールする

  • zienchan
    zienchan
1 min read
electronics

格安ロジックアナライザをLinux版のPulseViewで使ってみた話

前回に引き続き、怪しい格安ロジックアナライザを試していきます こいつが1150円で購入できる怪しいロジックアナライザです HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品] ※画像クリックで商品ページが開きます とりあえずこいつはSaleae Logicデバイスのクローンだということまでは前回までで判明しました 安定しているかはさておき、色んな意味でお勧めできません とりあえず普通に使う(使えるようにする)ために今回はオープンソースなsigrokを使ってテストしていきます 環境 Linux Mint 17.3 Rosa sigrokの導入 やり方はいくつかありますが、まずは簡単にパッケージから導入してみます

  • zienchan
    zienchan
5 min read
electronics

Amazonの格安ロジックアナライザを購入してみたお話

ちょっと前に偶然、amazonで1150円(送料込)程度で販売しているロジックアナライザを見つけたので購入して試したお話です 購入したロジックアナライザ 今回購入したロジアナはこいつ HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品] ※画像クリックで商品ページが開きます 24MHz、8チャンネルのUSBロジックアナライザで、UART/IIC/SPI、MCU/FPGA/ARMに対応しているとのこと ...なんかうーん...まぁいかにも中国の雰囲気な製品って感じですね まぁいいです こいつがどこまで出来るのかやってやるです 検品

  • zienchan
    zienchan
4 min read
esp32

Linux上でESP32とESP-IDFでhelloworld&Lチカする

Linux上にESP-IDFを構築する方法はこちらの記事を参照してください。 サンプルプロジェクトを複製する まずはデモプロジェクトを複製します。 ここではドキュメント通り、~/esp/hello_world/にコピーします。 cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world . ちなみにIDF_PATHが設定されてない場合は、設定するかesp-idfを置いた場所に置き換えてください。 ちなみにhelloworldはLチカしません。 Lチカをやりたい場合はこちらなので、hello_worldの変わりにblinkプロジェクトをコピーしてください。 回路上のピンアサインの確認と設定(必要であれば)以外は多分同じです。 またLチカのためにESP32の駆動力ついて少し調べました。 データシートのバージョンでころころ変化してるので正しいかどうか自信はないです... ESP32のドライブ能力 公式ESP32のデータシートを見る限りは、シンク電流(

  • zienchan
    zienchan
2 min read
electronics

I2CのRE-START CONDITIONとかいうやつ

I2Cデバイスのデータシートの中には"Re-Start Condition"という表現をしたデバイスがあります。 これでハマりました。 嵌ったので忘れないようにまとめます。 Re-Start ConditionはRepeated Start Conditionである 実はRe-Start Conditionなんていうのはなく、"Repeated Start Condition"が正解です。 参考: https://www.i2c-bus.org/repeated-start-condition/ 意訳 Repeated Start ConditionとはSTART中にSTART Conditionを発行するということ。 つまりSTART中にSTARTすることで一連の操作が完了するまでI2Cバスを開放しなくなるから割り込みが発生しないってこと...だと思う。

  • zienchan
    zienchan
1 min read