雑多な趣味の記録帳

tom01h.exblog.jp

タグ:micro:bit ( 16 ) タグの人気記事

micro:bit でオペアンプの実験をしたい3

今日は非反転増幅回路の実験をしてみます。バイアスなしの増幅回路と、バイアスありの増幅回路です。
f0054075_22593349.png
R1=R2 として、2倍の増幅にしています。昨日と同じ計測をすると結果はこんな感じになりました。
f0054075_23010325.png
オフセットを付けると 0V 側も使えなくなりました。どうしてこうなるのかは理解できません。
f0054075_23051936.jpg
こうなると、フルスイングのオペアンプが欲しくなりますねぇ。ただ、何が目的でこんなこと始めたのか良く分からなくなってきていますが…

[PR]
by tom01h | 2018-05-29 22:54 | Trackback | Comments(0)

micro:bit でオペアンプの実験をしたい2

micro:bit のアナログ出力と思っていた端子が PWM 出力だったので、ローパスフィルタとつないでアナログ電圧に変換したいと思います。
f0054075_21020166.png
図の左がローパスフィルタ単独で、右はローパスフィルタ出力に電圧フォロワを追加した回路です。ここのページ で確かめてみると、ローパスフィルタの特性はこんな感じになっているはずです。PWM を 1kHz にして Duty 50% の場合です。4~50ms も待てば、電圧は到達しますかね。
f0054075_21040332.png
先の2つ回路を組んで、P0 に PWM 出力を接続して 45ms 後の P1 の電圧を測ってみました。P0 には 0 から 1020 まで、20 刻みの値を設定して計測を繰り返します。グラフにするとこんな感じになりました。0V 側は出るんですね。VDD 側は 60% くらいで止まっちゃっています。1.3V くらいロスするのかな?充電池で駆動すると 2.4V くらいしか出ないはずなので、半分も使えない感じですかねぇ。
f0054075_21394805.png
こんな感じで実験しています。
f0054075_21424434.jpg

[PR]
by tom01h | 2018-05-28 22:39 | Trackback | Comments(0)

micro:bit でオペアンプの実験をしたい

micro:bit の setAnalogValue と getAnalogValue を使ってオペアンプの実験をしたいと思い、いろいろと買い集めてみました。
f0054075_19480836.jpg
まずはオペアンプを使う前に、アナログ出力とアナログ入力を直結して実験します。
が、いきなり思ったように動きません。アナログ出力って PWM で出力できるっていうだけで、電圧がアナログになるんじゃないんですね。
ローパスフィルターなるものでアナログ電圧に変換できるのかな?
CRローパスフィルタPWM計算ツール っていう便利なページで計算できるようです。
とりあえず、setAnalogPeriod とか使って PWM の周期を短くしないといけなそうですね。
それと、コンデンサ買うか…

[PR]
by tom01h | 2018-05-17 22:56 | Trackback | Comments(0)

micro:bit でセンサーデータを SD カードに保存する

2つの micro:bit でセンサーデータを取得して、無線を使って別の 1つの micro:bit にデータを集めて、そのデータを SD カードに保存するプログラムが完成しました。
github に公開しています。
今は内蔵の 3軸加速度センサーを使っていますが、今後は外付けセンサーを追加していきたいと思います。
そういえば、ファイルアクセスに最初の1回目だけ失敗する現象がありました。
2回目にはうまくいくので今まで無視してきましたが、MISO ピンをプルアップしたら直りました。[追記 ソフトで設定しただけで、物理的に抵抗を追加したわけではないです]

[PR]
by tom01h | 2018-05-03 22:10 | Trackback | Comments(0)

micro:bit の制御変更

今回 micro:bit を導入したのは、センサ用の micro:bit と、ロガー用の micro:bit を無線でつないでデータを集めてログを取る事が目的です。
最初に試しに作ったものはプッシュ型(センサ側が1秒に1回、データを取って送信する)でした。
実際に使うときにはセンサ用 micro:bit を2つに増やしたいと思うので、ロガーからのプル型に変えようと思います。
  1. ロガーはセンサデータ用のグローバル変数を持つ。
  2. ロガーはメインループでリクエスト送信、500ms待つ、センサデータをログに残す、500ms待つ、の繰り返し。
  3. センサ1はリクエストを受けるとデータ取得、10ms待つ、データ送信。センサ2は待つ時間が20msになる違いだけ。
  4. ロガーはデータを受け取るとセンサ1,2の区別をして、グローバル変数のセンサデータを更新する。
これで、だいたい同じ時刻のデータが1秒に1回とれるはず。
github に追加しました。
とりあえずログは UART に出力していますが、本当は SD カードに残したいです。

[PR]
by tom01h | 2018-04-29 00:06 | Trackback | Comments(0)

micro:bit で SD カードに書き込みたい

少し間が空きましたが、続いて SD カードへの書き込みを試してみたいと思います。
が、その前に、今までは USB 給電での動作しか試していませんでしたが、ニッ水電池2本での動作を試していみたいと思います。
2.4V で SD カードってアクセスできるのか?まずは、読み出しから。
シリアル機能が使えないので、display モジュールで試します。
あれ?これは任意の文字列は表示できないのか?仕方ないので、4桁の数字限定としました。4桁の数字を書いたファイルを準備して試してください。
で結果は… ちゃんと動きました。
では、書き込み。disk_write 関数を準備して試してみると、書き込みも動きました。
電圧低くっても動くのですね。
ここ に公開しました。

[PR]
by tom01h | 2018-04-28 00:23 | Trackback | Comments(0)

MicroPython の憶測

micro:bit を買ってから MicroPython の情報を目にする機会が増えました。
サンプルプログラムをいくつか見ていて気になったのが、MicroPython は割り込み処理が出来ないかもしれないってこと。
どのサンプルもメインループの中で「ボタン押したか?」とか「無線受信したか?」とかのポーリングをしています。
なんかちょっと残念な感じです。

[PR]
by tom01h | 2018-04-24 21:49 | Trackback | Comments(0)

micro:bit に SDカードアダプタと電池Boxを付ける

micro:bit 側は左の写真のように接続して 2 番の穴にケーブルを通して裏側に出し、SD カードアダプタ側は右の写真のように接続します。ちょっと太めのケーブルは電源なので、電池 BOX の中に引き込みます。そして、SD カードアダプタを電池 BOX に接着剤で固定します。
f0054075_08473436.jpgf0054075_07480090.jpg

そのあと、絶縁と保護を兼ねてグルーガンでべたべたに固めて、前回 と同様のやり方で電池 BOX にねじ止めします。写真ないけど SD カード側も固めます。
f0054075_20365336.jpgf0054075_20365303.jpg

今回は SD カードアダプタ分の厚さがあるので、スペーサ代わりのポリのワッシャは 4 枚重ねです。ちょっと当たっているような気もしますが…
ねじは 10㎜ では届かなくなったので、15㎜ を買い足しました。
また、5 か所も固定する必要はないので 3 箇所だけ止めました。

[PR]
by tom01h | 2018-04-23 22:49 | Trackback | Comments(0)

micro:bit で SD カードにアクセスしたい FAT 編

先日、SD カードのセクタ 0 が読めたのでその先はすぐだと思っていました。
でも、今回は micro:bit のメモリの少なさにかなり悩まされました。
FatFs を使ってプログラムを作ると、f_open したところでハングアップします。
最初は disk_XXX を間違ったのかと思って、全部 Fail を返すだけの関数にしてみてもやっぱり駄目でした。
仕方なく Petit FatFs にしてみたら動いたのですが、よくマニュアルを読んでみると…

The write function has some restrictions listed below:

  • Cannot create file. Only existing file can be written.
ダメじゃん。
ついでに言うと、 Petit FatFs にはファイル名は大文字じゃないと駄目(これはもともとのFATの制限?)ってところにも、結構悩まされました。
気を取り直してもう一度、FatFs を試してみます。
今度は FF_FS_TINY を 1 にして挑戦です。
あと、yotta_modules/microbit-dal/inc/core/MicroBitConfig.h の MICROBIT_BLE_ENABLED も 0 にします。
こっちの設定は、micro:bit の radio を使うためにはどうせ必要なんですけどね。
これでとりあえず、f_read は出来るようになったみたいです。
接続はこれで良いみたいなので、write を試す前に配線をやり直したいと思います。

[PR]
by tom01h | 2018-04-22 23:37 | Trackback | Comments(0)

micro:bit で SD カードにアクセスしたい 2

昨日の実験でははんだ付けに失敗していたことが判明したので、今日ははんだ付けをやり直して実験続行です。
が、今回は SD カードアダプタの方のはんだ付けがうまくいかなくて苦労しました。
最初はショートしてるところがあって動かなくて、結局こんなにボロボロになってしまいました。
f0054075_23461908.jpg
今回は CMD0,CMD8,CMD58,ACMD41,CMD58 で初期化して、CMD17 でセクタ0を読み出しました。
基本的には、このプログラム からのコピペです。もう少し進んだら公開するつもりです。
FPGA で試した時 と比較すると、今回はちゃんと動いているように見えますね。
f0054075_23401318.png

[PR]
by tom01h | 2018-04-19 23:48 | Trackback | Comments(0)