Arduino と LCD  の AE-ATOM0130B3

Arduino R4 Minima を追加で1つ買ってしまった(*´ェ`)

今日は先日買った3つのLCDのAE-ATM0130B3を繋いでみる(*゚ェ゚*)

解像度が240pixel × 240pixel なので図が表示できそうだなと触っているとGNSSロガーで取得したNMEAセンテンスのうちGSVのビューアーに使えるのでは思ったので作ってみることにした(*´ェ`)

なんだかいい感じに作れそう(*゚ェ゚*)

なんだかいい感じに作れそう(*゚ェ゚*)

NMEAセンテンス(GSV)に含まれる1番目の要素 $xxGSV のxx部分で色分けをしたり、衛星番号と組み合わせて辞書のキーにしてみたりした(*´ェ`)

シリアル通信でGSVデータが送られてくる度にデータと表示を更新しているのでデータだけは更新して表示は5秒に1回再描画するくらいがいいのかもしれない(*゚ェ゚*)

SONY SPRESENSE で作成したGNSSロガーからシリアル通信でNMEAセンテンスを垂れ流しにして各センテンスごとのビューアにデータを表示させることができそう(*´ェ`)

Arduino と LCD の M96-16-SSD1306

昨日は Arduino と LCD(AE-AQM1602A) の接続&文字表示が思っていたより簡単に出来ることがわかったので今日は別のLCD(M96-16-SSD1306)を使って文字を表示させてみた(*´ェ`)

昨日のLCDは16文字の2行を表示できたけれど今日のLCDは16文字4行表示できる(*゚ェ゚*)

読みやすさは置いておいて、文字が小さくて文字間が詰まっていてカッコいい(*´ェ`)白文字も良い(*´ェ`)

サンプルのスケッチでビットマップ画像や線や図形などを表示させることもできた(*゚ェ゚*)ドットの描画も出来ていたので文字以外で何か描画させてみたいな(*´ェ`)

Arduino 買ったーの

SONY SPRESENSE で作ったGNSSロガーで取得したデータをLCDで表示させたいと思い、どう実現させようか調べていたところ Arduino で色んなLCDに文字や図表示させて試してから考えることにした(*´ェ`)

そこで Arduino UNO R4 Minima と Arduino UNO R4 WiFi を一個ずつと3種類のLCD(AE-AQM1602A、AE-ATM0130B3、M96-16-SSD1306)を買ったみた(*゚ェ゚*)

まずは Arduino UNO R4 Minima と AE-AQM1602A の組み合わせで文字を表示させてみた(*゚ェ゚*)

 

SONY SPRESENSE の拡張ボードに付いているSDカードの書き込み速度

SONY SPRESENSE の拡張ボードに付いているSDカードにGNSSアドオンで取得可能(ライブラリを使用)なデータ(NMEAフォーマット)を漏れなく書き込めるのかどうか試してみた(*´ェ`)

なぜなら最初にSDカードの書き込みを試していた時(1秒に1回データ取得して書き込みを行うと)1分もしないうちにデータが書き込めていなかったので先日は書き込むNMEAセンテンスを絞っていたのだ..(*゚ェ゚*)本当は残せるものは全部残したい気持ち(*´ェ`)

まず毎秒1回データの取得からSDに書き込み完了するまで何秒かかるか調べてみた(*´ェ`)

測定に使用する衛星は GPS+QZSS_L1CA+QZSS_L1S で取得するデータは

  • GGA
  • GLL
  • GSA
  • GSV
  • GNS
  • RMC
  • VTG
  • ZDA
にした(*´ェ`)
 
衛星を捉えてから1分間(60回)の平均データ取得からSDカードへの書き込み時間は平均約0.33秒、最大約0.37秒
平均 335166.213114754 μs
  335.166213114754 ms
  0.335166213114754 S
最大 377636 μs

あら大丈夫そう∑(*゚ェ゚*)

1回分のデータでそれぞれのNMEAセンテンスを書き込み完了するまでの時間も調べてみた(*´ェ`)

NMEAセンテンス SDに書き込みに掛かる時間(μs)
$GPGGA 13153
$GNGLL 14068
$GNGSA 14221
$GNGSA 14374
$GNGSA 17059
$GPGSV 10742
$GPGSV 10345
$GPGSV 10437
$GPGSV 13946
$GLGSV 12908
$GQGSV 12939
$GQGSV 13091
$GQGSV 13611
$GBGSV 14190
$GBGSV 14221
$GBGSV 14374
$GBGSV 15045
$GBGSV 9827
$GBGSV 10315
$GBGSV 10468
$GBGSV 11535
$GBGSV 12786
$GBGSV 12817
$GAGSV 13001
$GAGSV 17596
$GIGSV 14282
$GNGNS 14282
$GNRMC 17486
$GNVTG 10650
$GNZDA 10345

捉えた衛星で上下はあるけれども約0.4秒..(*´ェ`)

合計 394114 μs
平均 13137.1333333333  
最大 17596  
最小 9827  
合計 394.114 ms
  0.394114 S

やはりNMEAセンテンスごとに書き込む(fileのopen,closeする)よりいくつかまとめて書き込むようにするともっと速くなるのかな(*´ェ`)

最初に試したSDカードが今回調べている途中で認識しなくなってしまったのでもしかしたら壊れかけていたのかもしれない、それで書き込みができなくてデータが保存されていなかったのかもしれない..(*´ェ`)

SONY SPRESENSE でGNSSロガーを作ってみた

SONY SPRESENSE の GNSSアドオンボードと外部アンテナを使用して動作確認が出来たので、これをPCに接続しないで使えるようにしたい(*´ェ`)

何が必要になるか考えると、まず電源とデータを保存するSDカード(これは拡張ボードを買ったので手元にある)、そしてよーく考えるとボタンが必要(SDカードに書き込み途中で電源を落とすとファイルが破損する可能性があるのでは)ということに気がついた∑(*゚ェ゚*)

電源に接続してから即座に位置情報を取得しないでボタンを押したら取得開始するようにする(*´ェ`)

ボタンが押されたら位置情報を取得開始する

もう一度ボタンが押されたら位置情報を取得停止する → 待機状態へ

という仕様にした(*゚ェ゚*)

ということで電源やボタンを買って取り付けてみた(*´ェ`)

電源は敢えて自動パワーOFF機能が付いていないと謳っているサンワサプライの700-BTL049を買ってまずはこのモバイルバッテリーで動作するのかを確認(*´ェ`)OK

拡張ボードを取り付けSDカードの書き込み確認(*´ェ`)OK


SDカードが認識しないこともあったので待機状態に入る前にSDカードの認識(挿入)待ちをする処理を追加することにした(*´ェ`)

ボタンをこんな感じ(Spresense 拡張ボードは、1kΩのプルアップ抵抗がマウントされています。と書かれていたのでこれを利用する)で繋げてボタンを押すたびに状態が切り替わるようにした(*´ェ`)

これをそのまま外で持ち歩くのは恥ずかしいので会社近くのメイホクバーガーさんでハンバーガーをテイクアウトした際にセットで頼んだ辛口ジンジャーエールの容器に入れることにした(*´ェ`)すごくチョウドイイ、でも透明でまだちょっと恥ずかしいのでスタバのスリーブを付けてカモフラージュする(*゚ェ゚*)

これを持って白川公園を歩いてみよう(*´ェ`)

一人で持ち歩くと難易度が高い(見た目)ので同僚に付いてきてもらいました…(*´ェ`)
NMEAフォーマットで記録されているのでgeoJsonに変換してQGIS上でOpenStreetMapに重ねてプロットしたのがこちら∑(*゚ェ゚*)

Aの箇所がジグザクに歩いてみようとしたところでBが木の周りをぐるっと回ってみたところ(*´ェ`)

Bを拡大するとしっかり確認できる∑(*゚ェ゚*)

設定は1秒に1回GPS+QZSS_L1CA+QZSS_L1Sから位置情報を取得してGNSとRMCの2つに絞りSDカードに逐次書き込みするようにした(*´ェ`)

最終的にはこんなシーケンスになった(*゚ェ゚*)

電源ON
↓ LED全部点灯
SDカードチェック
↓ LED1→2→3という順に点灯を繰り返す
待機状態
↓ ボタンを押す(クリック)
指定時間毎に位置情報取得SDカードに書き込み これがloopする
↓ ボタンを押す(クリック)
待機状態

電源OFF   

こんなに簡単にGNSSロガーが作れるなんて思ってもみなかった(*゚ェ゚*)とても楽しい₍₍ (ง ˘ω˘ )ว ⁾⁾

 

おまけメイホクバーガーさんのテリヤキバーガー(エッグトッピング)+サラダ+辛口ジンジャーエール(*´ェ`)とてもオイシイ(*゚ェ゚*)

Soyuz キーボード

自分で作るキーボード4つ目はテンキー用の Soyuz (*゚ェ゚*)

ハンダ付けが慣れてきた(*´ェ`)

2Uのスタビライザーを取り付けて

軸は Cherry MX のピンク(*´ェ`)

キーキャップは GMK Mint Chocolate を取りけて完成(*´ェ`)ペロリ

Num Lock のキーを Backspace に割りて キーキャップ は Delete にしてみた(*゚ェ゚*)
今回もあっという間にできた(*´ェ`)
とはならず…

あっという間にできなかった
問題点その1
Pro Micro を後からでも取り替えられるようにコンスルーピンにつけてPCBのスルーホールにはめてもスルスルはまらない∑(*゚ェ゚*)
ま、いいかと思いコンスルーピンをハンダ付け(*´ェ`)

問題点その2
Pro Micro にファームウェアを書き込んでからキースイッチをハンダ付けして、はいできたーと思ったら左1列(1,4,7,Num Lock)が認識しない∑(*゚ェ゚*)
抵抗とキースイッチのハンダ付けは失敗してなさそうだし…
Pro Microのハンダ付けに失敗したかなと思って見てみると、あ、これキースイッチを外さないといけないやつだと気が付いてハンダ吸い取り機を注文、ついでにテスターも注文(*´ェ`)どちらも使ったことないけど(*゚ェ゚*)
キースイッチを取り付けてから1週間たち、ハンダ吸い取り機も届いたので使ってみる(*´ェ`)
おをを、本当にハンダがしゅぽっと吸い取られる∑(*゚ェ゚*)
1列だけ認識しない理由はピンの接触不良だということが以下に書いてあったのでキースイッチを4つだけ外して接触不良と思われる箇所を修正してしてみる(*´ェ`)

あ、やったー全てのキーが反応した∑(*゚ェ゚*)

接触不良だった箇所

いい経験になった(*´ェ`)

ErgoDash mini キーボード

キーボード沼に足を取られそうになりつつ2台目(*゚ェ゚*)

ErgoDash mini を作る(*´ェ`)

Underglow用に抵抗とLEDを付けた(*゚ェ゚*)

キースイッチを付けて、キーキャップ付けて(*´ェ`)

はい完成(*゚ェ゚*)

今回は Pro micro のもげ対策にエポキシ系接着剤を使ったり、LEDを付けるランドが剥がれてリード線でジャンパーさせたりした(*´ェ`)

もう一台自宅用に欲しくなった(*´ェ`)