2021年3月16日火曜日

LPC11U35 を使うには?

 自社製 LoRa 対応 GNSS モジュール、LoRa のアンテナを本体から分離したいという要望を受け、LoRa モジュールを本体から分離し、RS-232C でデータをやり取りすることにした。接続に4極のミニプラグ/ジャック(3.5mmΦ)を使って動く物は出来上がったのだが、どうにもすっきりしない。

 RS-232C のかわりに USB が使えないかと調べると、秋月で手に入る LPC11U35 が使えそうなことが分かった。はんだ付けの難易度は高そうだがちょっと試してみようと、マイコンボードを買ったのだが、プログラミングで躓いた ><。

 Web サイトにある mbed では開発できず(選択すべき Platform「EA LPC11U35 QuickStart Board」が存在しない)、それではと MCUXpresso で試すとデバッグビルドはできたが、全く動く気配が無い。どうもスタートアップルーチンをリンクできないようだ。

 「うごかねー」と twitter に愚痴を投げた「PlatformIOならいける」と情報をいただいた。試してみたら、なんとか動いて USB の CDC になって、ループバックできるところまで確認できた。細かい設定方法は忘れたが、MCUXpresso で環境を構築するよりは楽だった。

 ライブラリのサンプルコードは、ヘッダファイルに記述されている。ライブラリのヘッダファイルは、 #include "mbed.h" の行にカーソルを置いて F12 を押すと、mbed.h が開くので、1行目のさらに上にあるパンくずリスト mbed.h をクリックするとプルダウンリストが出てくるので、そこで > drivers を選択、さらに開いたプルダウンリストから、例えば Timeout.h を選択すると、指定時間経過すると指定された関数をコールバックする関数のヘッダファイルが開かれ、その中にサンプルソースがある。

 ビルドされたバイナリーを USB 経由で書き込む場合は、チェックサムを付加する必要があるのだが、これは手作業で行う必要がある。いろいろやり方はあるようだが、今回は MCUXpresso と一緒にインストールされた checksum.exe を使って、checksum -p LPC11U35 -d <バイナリファイル名> というやりかたでやった(元ネタはこちら)。



 

2021年1月2日土曜日

ZED-F9P:開発中に突然ソフトが動かなくなったら

ZED-F9P の FW の確認をしよう

----

 数か月ぶりに ZED-F9P を使った装置の開発をしていたら、突然、ソフトが起動しなくなった。あれこれ調べていくうちに、いくつかのソフトのバージョンが一致していなことが分かった。古いHWを使ったので、最新版へのアップデートが中途半端になってしまっていたのが原因。

それで動くかと思ったら、まだ動かない。さらに調べていくとSBAS/SLAS制御のところで止まっていた。 ZED-F9P のバージョンが HPG 1.11 だったので、ACK を返さなかったのだ。

嗚呼、私の2時間を返してほしい...

2020年11月2日月曜日

QGIS:WMS/WMTS に地理院地図を設定すると時間がかかる

 GPS 受信機を作っているので、その性能評価のために地図上に座標をプロットしなくてはならないことがある。そんな時に使うのがオープンソースの GIS ソフトの QGIS。それを使っていて引っかかったことのメモ。

 国土交通省のこちらの PDF を使ってQGIS に地理院地図を表示させようと思って操作していくと18ページ(20枚目)の地理院地図のプルダウンメニューが表示されない。具体的には、ロード中のグルグル表示が延々と続いて終わらない。

 結局数分(計っていないが10分まではかかってないと思う)で読み取り終了でプルダウンメニューが表示できるようになった。

 ただただ待つべし!

2020年9月12日土曜日

PC:PC が突然動かなくなって...

  今年の初めに苦労して使えるようにした PC、一週間ぶりぐらいに使おうと思ったら、突然動かなくなった。電源を入れたら Windows が立ち上がりパスワードを入力しようとすると画面が消えた。はて?と思いつつ、何度か電源を入れなおすと Windows が立ち上がる途中で画面が消える。なんどか繰り返すうちに電源 ON で BIOS 画面すら表示されなくなってしまった。ケースをあけてドライブを外したりメモリの抜き差しをしたりしたが症状は変わらず。とりあえず、テスターで電源電圧を調べてみると、それらしい値は出ている。

 以前にも久しぶりに起動した PC が立ち上がらなくなったことがあって、その時はマザーボード上のバックアップ用コイン電池を交換したら動くようになったので、今回も電池を点検。外した状態でテスターで測って2.88Vしかなかった。電池を外した状態で PC の電源を入れたが、やはりBIOSが立ち上がらず。手許に CR2032 が無かったので続きは翌日に。

 翌日、電池を入手して新しい電池をマザーボードに取り付けたが、症状は変わらず。それではと、次に電源を交換したらBIOSが起動。時刻がバックアップされていないというエラーに。それではとBIOSを再設定するとWindows が立ち上がった。電源か?でも昨日は電圧出てたようなぁ...と戻し見ると問題なく動いた。もともとついていた電源は、買ってから一年程度しか経っていず、通電時間もそれほどないのでそのまま様子見することにした。

 ということで、結果的にバックアップ電池だけ交換して様子見。

2020年7月29日水曜日

u-blox NEO-D9S series

 何気なく u-blox の Web サイトを見ていたら、NEO-D9S というのを発見。みちびきのセンチメートル補強のための補正データ(QZSS CLAS)を受信できるモジュールらしい。

 これが1万円ぐらいで出荷されて、RTKLIB が対応してくれるとちょっと面白いことになるんだけどなぁ...

https://www.u-blox.com/en/product/neo-d9s-series

2020年7月18日土曜日

M5Stack:黒の塗りつぶしはできない?

文字を上書きするために、ドットで塗りつぶして元の内容を消そうと
M5.Lcd.fillRect(204, 20, 24, 20, 0x0000);
と黒で塗りつぶしたのだが、画面が変化しない。仕方ないので RGB とも 1 (0x0821) を書き込んで消し込んだ。

2020年7月17日金曜日

M5Stack:フォントサイズ

M5Stack を Arduino IDE から使ったときの 'M5.Lcd.setTextSize(2)' の時のフォントサイズ

行間    20dot
文字幅 12dot

ちなみに M5.Lcd.setCursor() で位置指定してから M5.Lcd.print() で文字を表示すると、dot を or 書きするので、上書きするときは M5.Lcd.fillRect() で背景色で塗りつぶしてやらないと読めなくなる。

M5.Lcd.fillRect() は座標指定が dot なので、フォントサイズを実測した。