2023年オーストラリア・インドネシア    金環皆既日食のたくらみ

Seeeduino XIAOでGo!-①
2021.12.19:Open 2021.12.26Update

Seeeduino XIAOとこれを使った実験

 Arm系のマイクロコントローラ(マイコン)を積んだ極小型Arduino完全互換ハードウェア
 5V, 3.3V, GNDの3ピンと11本のGPIOピンを持っています。UART、SPI、IICと通信規格に対応しています。そのため、GPS(UART)、TFカード(SPI)、リアルタイムクロック(RTC)やOLEDディスプレイ(共にIIC)と、打刻機に必要となる外部機器が接続できます。

 これら全部入りのデモは無い様なので、つぎはぎしながら打刻機の要素を持たせることを実験してみたいです。コンテンツとしては、
  1. IIC通信の1.OLEDディスプレイの接続と制御
  2. IIC通信の2.RTCの時刻をOLEDディスプレイに表示する
  3. RTCの時刻をTFカード(micro SDカード)に記録する
  4. GPSセンサーで時刻を得て、OLEDディスプレイに表示する
  5. GPSセンサーで得た時刻でRTCを修正しOLEDディスプレイに表示する
  6. GPSセンサーの1秒毎の信号を使って100分の1秒を求めて表示する
  7. 外部スイッチ或いはシャッターを切った時刻100分の1秒精度でTFカードに記録する
 と実験と要素を作ってインテグレーションして行くことになります。

 実は、Arduino互換機で1, 2, 4は、これまでにやったことがあるのですが、色々あって止めていたのでした。というのもArduinoの互換機・その小型版とも作りが結構大きく、箱の納めると結構な大きさになるので止めたのでした。が、今回Seeeduino XIAOという結構小さい物として出ていたのを知り、また、扱いが楽そうなので、再度手を出すことにしました。

Seeeduino XIAOに書き込むプログラム 2021.12.26Up

GPSで時刻を得たらRTCを補正するところまでは普通に流すが、その後はマルチタスクで時分秒の時刻と1/100秒の時間を得つつ、シャッター信号が入ったら割り込みで時刻をTFカードに書き込む、という事をして行きます。
  1. GPSでUTCを得る
  2. GPSで得た時刻でRTCを修正し、終わったらOLEDディスプレイに表示を行う
  3. RTCで時・分・秒を計測し時刻を得つつOLEDディスプレイに表示する:マルチタスクにて
  4. 別途1/100秒を発振して時間を得つつ、RTCからの1秒毎のパルスでリセットする:マルチタスクにて
  5. シャッター信号が入ったら3と4の時刻をTFカードに書き込む:割り込みにて
 こんな構成になると思います。
 OLEDディスプレイの扱いについてはこちらの解説を利用する。
 RTCの扱いについては、RTCを使った時計らしきものの製作例があるので、これを応用する。
 1/100秒を発信することとTFカードへの書き込みは、ストップウォッチの製作例があるので、これを応用する。
 マルチタスクに関しては、FreeRTOSを使った例があるので、これを応用する。

PIC 10F222に書き込むプログラム 2021.12.26Up

 こちらは簡単に入力ピンの状態変化があったら2秒位10HzでLEDを点滅させるプログラムとする。
 「Lチカ」の応用版というところか?
inserted by FC2 system