抵抗分圧

抵抗分圧(抵抗器による分圧回路)は、直列につないだ2つの抵抗器の両端にかかる電圧を、2つの抵抗器の全体と片方の抵抗値の比率により分割する回路の事です。

下の回路図のようにVinにかけた電圧がR1, R2の抵抗器によって分圧されてVoutに出てくるというものです。

抵抗分圧の回路図

次にR1, R2によってどのようにVoutが決まる計算式は次のようになります。

計算式

応用編

抵抗分圧の応用として、抵抗値の変化を電圧の変化へ変換するというものがあります。

これはセンサーの一部には抵抗値が変化するものがあり、そのセンサーの値をマイコンで扱う場合、マイコンには電圧を読み取る機能があるので、この抵抗分圧回路に組み込んで使います。

今回はR2にボリューム(可変抵抗器)を使います。

R2を可変抵抗器にした回路図

考察

Google スプレッドシートでR1とR2の比率を1:10, 1:5, 1:2, 1:1の4つのパターンのR2の変化によるVoutをグラフにしてみました。

R1:R2のグラフ

1:10はVoutのレンジが広いですが、最初の部分での変化が大きいです。

1:5, 1:2はVoutのレンジもまあまあ確保できて、変化が穏やか。

1:1はVoutのレンジが半分しか無いですが、変化が直線に近いです。

どのくらいのレンジでVoutが欲しいか、またセンサーの取りうる値の範囲、またどの部分の変化を重視するかでR1:R2を決めるといいと思います。

動画

動画はこちらです。

カテゴリー: 基礎知識 | タグ: | コメントする

PIC16F1508+4PWM(LED)のICSP回路

PIC16F1508の4つのPWMにLEDをつないだ状態のICSP回路図をKiCadで描いた。

PIC16F1508+4PWM(LED)のICSP回路図

カテゴリー: PIC | タグ: , , , | コメントする

PICで複数のPWMを使う(どのチップを使う?)

複数のLEDの光量を制御したいと思って、プロトタイプとしてはArduinoを使うけど、最終的にはPICで実装したいと思って、PWMを4つくらい使えるPICを探していたらPWMが4つあるPIC16F1508を見つけたのでメモ。

カテゴリー: PIC | タグ: , , | コメントする

超安いUSB接続のロジアナ

Amazonで見つけた超安いUSB接続のロジアナを買ってみた。

パッケージ表側
パッケージ裏側

sigrokとPulseViewで使えるとの事(どちらも使った事が無いです)。

追記(2021/06/09)

sigrokのWikiページDownloadsからMac OS XのPulseViewとsigrok-cliの両方をダウンロードしてApplicationsフォルダーにコピーした。
sigrokはcliと書いてあったので、PulseViewを起動した。

カテゴリー: 工具 | タグ: | コメントする

熱収縮はんだスリーブ

以前からAmazonでちょいちょい出てた熱収縮はんだスリーブを買ってみました。
最近、ちょっとケーブルの端子を変換するためにケーブル内部のケーブルをつなぐような事が多かったので。しかし、これを買ってからはそういう事案がなくてまだ試せてません。

カテゴリー: 工具 | タグ: | コメントする

ALU(74HC181)を購入

以前、探していて見つからず諦めていたALUがちょっと前からヤフオクに出ていたので、「どうしようかなぁ?」と迷っていて様子を見ていました。今更入手しても使わないし。

一時期は8個セットも出ていたので、「あるところにはあるもんだ」と気楽に構えてました。

しかし、いつの間にか8個セットが無くなっていたので、とりあえず売っていた4個セットを入札して無事に落札できました。

まぁ、すぐに使うわけじゃないけど、持っているのと持っていないのとでは大違いなので、まぁ、無事に入手できて良かったなと。

ALU(TC74HC181P x 4)
ALU(TC74HC181P x 4)
カテゴリー: 部品 | タグ: , , , | コメントする

模型用チップLEDの比較

Nゲージ用の駅のホームの模型の電灯を点けようとAmazonで見つけた模型用にリード線の付いたチップLEDを2種類買ってみました。

白昼色で揃えたかったけど、注文時に0603の方に白昼色が無かったので、0603の方は黄色です。

パッケージ(向かって左が0603。右が0402)
パッケージ(向かって左が0603。右が0402)
LED部分(向かって左が0603。右が0402)
LED部分(向かって左が0603。右が0402)
LED部分を正面から(向かって左が0603。右が0402)
LED部分を正面から(向かって左が0603。右が0402)

それぞれのLEDには1kΩの抵抗器が付属しています。

0402の方が500円高いけど、アノード(+)側のリード線が赤くて、先の方が被膜がついてないので使いやすいです。

以下、点灯させた動画には1kΩの抵抗器を使っています。また、電源は前半は単3乾電池2本とCR2031を使っています。

カテゴリー: 部品 | タグ: , , | コメントする

M5Stick V (その2:V-Training)

V-Trainingでファームウェアの先にClassification modeという項目にFor M5StickVという項目があって、boot-M5StickV zipファイル(私がダウンロードした時のファイル名はVTraining-Client-VerA02B01.zipでした)をダウンロードしてマイクロSDカードに解凍&コピーしてM5Stick Vを起動すると物体の学習データのための撮影モード(?)で起動しました。

使ったマイクロSDカード

マイクロSDカードに相性があるという記述が多いですが、最新のファームウェアでは改善されているという記事もあったので、家にあったTranscend 32GBのマイクロSDカードを使いました。
無事に認識されて使えてます。

使ったマイクロSDカード

いろいろ試していて面倒なので別件で買っておいた5枚組のやつを試したら使えました。
Gigastoneの16GBです。

5枚組のマイクロSDカード

学習

この4体+スティーブがブタに乗った計5体を学習

上記の5体を撮影してファイルをアップロードしてみました。
撮影は人形を立てた状態で、いろんな角度から撮影しました。アップにしたり離れたところから撮ったり。最初は各39枚。最終的に各41枚撮りました。

http://v-training.m5stack.com/

2回失敗した後、3回目で成功しました。
エラーの内容はここにも紹介されています。
http://setsubi.no-mania.com/m5stickv/v-training%E3%81%A7m%EF%BC%95stickv%E7%94%A8%E5%AD%A6%E7%BF%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E8%A9%B1

2回の失敗の際、メールに「CONTENT: Lake of Enough Train Dataset, Only 170 pictures found, but you need 180 in total.」と書いてありましたので、最終的に180枚になるように各41枚撮りました。各モデルに5枚の「正解」となる判定用の画像が取られるので、(41-5)=36枚 x 5で180枚になります。
しかし、ほとんど「村人(茶色の人)」に判定されて、しかもフリーズしました。

結果のモデルデータが悪いのかと思って、もっと単純になるように人形を寝かせて種類も減らしました。

3体学習

この状態であまり角度とか変化させずに各40枚撮りました。
そしたら、「CONTENT: Lake of Enough Train Dataset, Only 64 pictures found, but you need 120 in total.」と書かれていて、その下に「どの画像がどの画像と似過ぎている」という情報がずらーっと書かれていました。

再度、多少変化させて各40枚撮ってアップロードしたら、成功しました。

しかし、今回もほとんど「村人」でしかもフリーズ。

「何か根本的に間違っているのか?」とboot.pyに画面にコメント出させたりして、どこでフリーズしているのか探ってみましたが、そもそもMaixPyの事もよく知らないのでわかりませんでした。

「何か既存の学習データを動かせるものは無いか?」と探したところ、BrownieというのがGithubにあるようです。

Brownieを試す

このサイトを見ながらBrownie(brownie_v1.0.1.zip)を試してみました。動くには動くけど、あまり認識しない感じでした。画面も緑色の細かいグリッドが表示されて見にくいし…

BrownieのGithubを見ていたらboot.pyにFirmware v5.1.2対応という変更があったので、「もしかしてファームウェア v5.1.2が問題?」とFirmware 5.1.2で検索したら、次のページが見つかった。

https://community.m5stack.com/topic/1918/m5stickv-firmware_v5-1-2

この中で何やら問題があって、その回答に次のURLが書かれていた。

https://forum.m5stack.com/topic/1403/m5stickv-firmware_1017-upgrade

で、このページのFirmware Download linksからM5StickV_Firmware_1017.kfpkgをダウンロードしました。
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/M5StickV_Firmware_1017.kfpkg

Firmware 1017

M5StickV_Firmware_1017.kfpkg をダウンロードし、書き込んだら上記の3体学習がちゃんと動くようになりました。

5体学習のデータでも動くかどうか確認しました。ちゃんと動きました。ただ、認識率がちょっと低い。特にスティーブがスティーブ+ブタに認識されちゃう。

Official Updates

https://forum.m5stack.com/category/34/official-updates

カテゴリー: M5Stick V | タグ: , | コメントする

M5Stick V(その1:ファームウェアのアップデート)

AIカメラとして出ていたM5Stick Vを買ってみました。

パッケージ
箱から出した

とりあえず、起動してみたら顔検出のようで、いつものマイクラフィグのスティーブとブタの顔が検出されました。

M5Stick Vの出荷時点での機能。
顔検出?

Macでセットアップ(macOS Big Sur 11.2.2)

たいていのM5Stick Vのセットアップの記事ではファームウェアのアップデートが書いてありましたが、そもそもサイトが改定されていて、どこにあるのかちょっと探しました。

製品一覧
製品一覧
Quick Start
V-Training
V-Trainingのページ
V-Trainingのファームウェアとkflash_gui.appのダウンロードリンク
(kflash_gui.appは別からダウンロードすべき)

V-Training内にファームウェアとkflash_gui.appのリンクを発見しダウンロードしました。しかし、ダウンロードしたkflash_gui_v1.5.2_macOS.dmgからインストールしたkflash_gui.appが普通に起動しませんでした。
ターミナルから次のコマンドで起動させられるとの記事を見つけました。

open /Applications/kflash_gui.app

これで起動しました。起動したら、次のサイトが表示されました。

https://github.com/Sipeed/kflash_gui/releases

現在の最新版v1.6.7からkflash_gui_v1.6.7_macOS.dmgをダウンロードしました。
kflash_gui.appをインストールし直したら起動しました。

早速、ダウンロードしたファームウェア(M5StickV_Firmware_v5.1.2.kfpkg)を指定してDownloadボタンをクリック。ちょいちょい中国語が見えるのが気になりますが、無事にDownload成功。
(現在インストールされているファームウェアのバージョンはどうやって確認できるんだろう?)

最初と同じ画面(機能?)になりました。

追記
次のV-Trainingでファームウェアを次のものに変えました。
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/M5StickV_Firmware_1017.kfpkg

顔検出

電源を切る

電源切るのに苦労しました。
6秒の長押しなんですけど、画面が黒くなってすぐにボタンを離すと再起動してしまいます。
画面が黒くなって2秒くらい押し続けてからボタンを離すと無事に切れました。

カテゴリー: M5Stick V | タグ: , | コメントする

PSXコントローラー

PS用のコントローラーを使いたくて、とりあえずPS2互換のコントローラー(と延長ケーブル)を購入してArduinoでデータを見てみた。

PSXコントローラー情報

SONY PLAYSTATION®
CONTROLLER INFORMATION
https://gamesx.com/controldata/psxcont/psxcont.htm

PSX Library
https://playground.arduino.cc/Main/PSXLibrary/

回路図

スケッチはこのコントローラーでは動きましたが、別のコントローラーだとうまく動かないので、公開は控えます。うまく動くことが確認できたら公開します。
上のPSX Libraryは動いているので、ディスプレイとかつながなければ大丈夫です。

ピンと色の情報

カテゴリー: Arduino, 部品 | タグ: | コメントする