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 なので、フォントサイズを実測した。


2020年6月17日水曜日

Zoom 用便利キーボードの制作

 新型コロナの影響で色々なところで外出自粛となり、zoom を使うことが増えた。話さないときは雑音を流さないようにミュートにしていることが多いのだが、とっさに話そうと思ったときにミュートを解除するのが面倒なので、専用キーボードを作ってみた。

 情報はこちら

 ちなみにこちらのケースも作ってみた。

メモ:FLSUN QQ-S 購入時のメモ

 2台目の 3D プリンタ FLSUN QQ-S 購入時のメモ
 発注:2020/03/05 16:54
 到着:2020/04/16
 発注先:Aliexpress flsun 3d-printer Store (オフィシャルショップが二つある感じだった)
 価格:$209.35 - \22,830
 送料:$84.21 - \9,184
 ドル円:107.737 - 107.2

簡単なレポートはこちら

2020年6月15日月曜日

ZED-F9P:SBAS を disable する方法

 ZED-F9P FW 1.00 HPG 1.13 で追加された SBAS を disable する方法は無いかと考えたら、あった。

 UBX-CFG-GNSS で 'SBAS' の 'enable' のチェックを外すこと。

2020年6月13日土曜日

ZED-F9P:FW 1.00 HPG 1.13 を試してみた

 ZED-F9P の F/W 1.00 HPG 1.13 がリリースされた。

 SBAS (いわゆる DGPS) 対応が売りで、QZSS の L1S (いわゆるサブメーター補強:SLAS)にも対応ということなので試してみた。

  • UBX-CFG-GNSS

    QZSS の L1S のチェックボックスが空欄なのでチェックを入れて Send
  • UBX-CFG-VALUESET:CFG-NMEA-SVNUMBERRING

    Value に 1をセットしないと、u-center で QZSS が表示されない(こちらより)
  • UBX-CFG-SLAS

    SLAS settings、どんな値を設定しても、他の項目を表示させてから戻ってくるとクリアされている(Send 直後 Poll では設定値のまま)。SLAS 、本当に動いているの??と、思ったら、UBX-CFG-VALUESET:CFG-QZSS にそれらしい項目があって、こっちの設定が有効。
  • UBX-CFG-VALUESET:CFG-QZSS_USE_SLAS_DGNSS

    SLAS enable/disable はこちらが有効っぽい。あまり条件の良くないアンテナでテストした感じでは、ここを true (SLAS) から false (SBAS) にすると、座標が南に 5m 程ずれた。u-center 上で見た google map からだと SLAS の方がアンテナ位置に近い。
  •  UBX-CFG-VALUSET:CFG-SIGNAL-QZSS_L1S_ENA

    上記 UBX-CFG-VALUESET:CFG-QZSS_USE_SLAS_DGNSS に加えて、CFG-SIGNAL-QZSS_L1S_ENA を true にする必要がある。CFG-SINGAL-SBAS_L1CA_ENA というのもあり、これは SBAS の制御。同時に有効にできるが、SBAS/SLAS 同時に使えるのだろうか?
     (2022/05/02 追加)

結局

  • SLAS は効いてるようだ
  • ただし、UBX-CFG-SLAS からの設定は効かない
  • SBAS/SLAS 両方 off にすることはできない?
  


2020年5月18日月曜日

Alpine Linux:Package Manager の情報のありか

起動パーティションの cache/APKINDEX.adfa7ceb.tar.gz にあるっぽい。

gcc コンパイル環境を作るために apk del でパッケージをアンインストールした後、このファイルを復元しただけで、元の状態に戻った。

Raspberry Pi ZERO 上の Alipine Linux で RTKLIB をコンパイルする方法

 一年ぶりぐらい Raspberry Pi ZERO 上の Alipine Linux で RTKLIB をコンパイルしようとしたら、ちょっと手間取ったのでメモ。

  • 'rc-service <util> stop' で使っていないサービスを止める
  • 'df'で '/' の使用量を確認。Use% が 50 以上なら、以下の方法で 50 を切るまで減らす
    • 最初に SD カードのバックアップを取る
    • 'apk info' で、インストールされているパッケージのリストを表示し、コンパイルに必要なさそうなパッケージをアンインストールする
  • 'apk add gcc'、'apk add strlib', 'apk add libc-dev' でコンパイルするのに必要なパッケージをインストール
  • ftp で開けるディレクトリに sd card 上の drive を mount
  • mount したドライブ上に rtklib のソースを展開
  • カレントディレクトリを 'app/<program>/gcc' に移動して 'make'
  • エラーが出たら、'apk add xxxx' で必要そうなパッケージを追加'

2020年5月16日土曜日

LPC810 ディスコンか...

苦労して LPC812 が使えるようになった。そういえば、LPC 81x には dip 8pin があったなぁ、あれ、自由に使えると便利なんだよなぁ... と思っていたら 8Pin バージョンの LPC810 は ディスコンだって... orz

LPC812:固定機能 PIN に別な機能を割り当てる方法

 タイトルの日本語が少しおかしいが、半日ほど試行錯誤してやっとやり方を見つけたので。

 SWM_SetFixedPinSelect() を使えば OK

2020年5月14日木曜日

3Dプリンター:Me Creator 2 メモ

エクストルーダーのステッピングモーターの軸についているギアを固定するビスを回す六角レンチのサイズ 1.5mm ※穴が小さめで入りにくいことがあり、この場合は強めに押し込まないと入らない。

2020年5月13日水曜日

LPC812:LPC-Link と SWD で接続

今動いている状況は、

Pin15 VDD 3.3V
Pin16 VSS  GND
Pin3   PIO0_12 - 3.3V
Pin4   nRESET - 10KΩでプルアップ
Pin6   SWCLK - JTAG_TCLK_SWCLKX
Pin7   SWDIO - JTAG_TMS_SWDIOX

VDD と VSS の間は、0.1μF x 2

2020年5月10日日曜日

LPC812:シリアル通信を115200bps でする方法

 結論から書くとメインクロックが 12MHz ではダメ。24MHz にすれば OK。

 LPCXpressoBoard OM13053 + MCUXpresso IDE の組み合わせで、MCUXpresso
SDK のサンプルプログラム lpcxpresso812max_usart_transfer_ring_buffer をベースに開発を行っているのだが、オリジナルのボーレート 9600bps を 115200bps に変更すると動かない。具体的には fsl_usart.c の USART_SetBaudRate() 内の

assert((((srcClock_Hz >> 4U) / brgval) - baudrate_Bps) < ((baudrate_Bps / 100) * 3));
 が例外を吐いてプログラムを止める(JTAG デバッガ万歳!!)

2020年5月3日日曜日

LPC812:秋月の LPCXpressoBoard OM13053 は MCUXpresso IDE で使えそう

 結論から書くと、MCUXpresso IDE を普通にインストールして、Instaled SDKs で LPCXpresso812MAX を指定して、Quickstart Panel -> Create or Import a project -> Import SDK examples(s)... でも LPCXpresso812MAX を指定。Project Explorer でサンプルプログラムの lpcxpresso812max_led_blinky を選択して Quickstart Panel の Debug Your project -> Debug をクリックすると、普通にビルドできて LPCXpressoBoard OM13053 にインストールされ LED が赤で点滅した。
 
 ただし、Eclipse の経験がそれなりにないと相当苦労するかも。

3Dプリント:縦に長いモノの出力

 画像のような、底面が対角距離13mm の六角形、高さ 130mm のナットを出力した。

プリンタ FLSUN QQ-S
フィラメント  SUNLU PAL+ 茶箱
データ   https://www.thingiverse.com/thing:4181423
スライサー Slic3r
フィラメント温度   210
ベッド温度   75(first) -> 70
Layer Height 0.4mm(first) -> 0.2mm
brim  15mm
speed
 Perimeters  30mm/s
 Infill 80mm/s
 Travel 60mm/s
 First 15mm/s
----
 最初ベッドを 65->50 、brim を 5mm で出力したら、途中でベッドから外れてしまって失敗。4回目でようやく成功。ベッド温度 70 は、プリンタ付属のテストデータの値。

 ちなみにベッドの温度を 65->50 としたのは、ベッドとの接地面積が多い造形物の場合、70℃だと反りがきつくなるため温度を下げていた。

         

2020年4月5日日曜日

KiCAD:ラベルとテキストは違う

 KiCADで基板を作成中に、LED をドライブするトランジスタアレイの入力と出力に、わかりやすいように、ネットラベルで色(RED,BLUE etc...)を入れた。するとエレクトリカル ルール チェックで入力と出力が接続されていることなってしまってエラーが発生。どんなに調べても接続されていないので、ネットリストを作成して Pcbnew で開いてみると、確かに入力と出力が接続されている。

 なぜ...。

 そこだけパターンをひかなければ良いだけなのだが、チェックで原因不明のエラーが残るのはどうにも気持ちが悪い。いろいろと調べたり試したりしているうちに、ハタと気が付いた。

 「ラベル」って、単に回路図上にテキストを配置するだけじゃなくて、「ラベル」のある端子を接続するのでは?

 入力側のラベル名を出力と変えてやると、ルールチェックでエラーが出なくなった。なるほど、ラベルは文字を置くだけではないのか。では、文字だけを置きたいときは?

 右端のアイコンの並びに「テキストを配置」がありました。

 何か月後かに同じミスをしないように、メモを残す。

 

2020年3月26日木曜日

ZED-F9P + RTKCONV(b33) だと raw DATA の L2 を処理できない

 結論から行くと、RTKLIB(b33)ではなく、Demo5 を使うべし。

----

 MG1 を使っているお客さんから、「ubx raw データを RKTLIB で処理したが、L2 が表示されない」と連絡を受けた。

 お客さんにもらったデータを自分のところで RTKLIB で処理してみると、確かに L2 が出てこない。ZED-F9P の USB から直接出力されたものを TeraTerm でログに落として RTKLIB で処理しても L2 が出てこない。これは MG1 のプログラムの問題ではなく ZED-F9P の設定の問題か?と思って調べてみてもそれらしいものが見つからない。

 もしやと思って u-blox の Support Community で「F9P raw rtklib」で検索すると、こんな書き込みが。

Multi-frequency RINEX from F9T with RTKLIB

 ここにある返信の「Tim over at RTK Explorer would have an appropriate and functional fork」から探すと Demo5 なる改造版を見つけた。これの RTKCONV を使うと L2 が出てきた。

 RTKCONV だけでなく、RTKPLOT も表示が違う。お客さんからの情報によると RTKPOST もだいぶ修正されているらしい。

2020年3月19日木曜日

CPU が STM32 の Arduino で SerialEvent を使う方法

 adafruit Trinket M0 を Arduino IDE から使って SerialEvent を使おうとしたらなかった。サンプルソースに

  NOTE: The serialEvent() feature is not available on the Leonardo, Micro, or other ATmega32U4 based boards.

ってあるけど、STM32 based board も追加希望。

 嘆いていてもしようがないのでやる方法を見つけた。

C:\Users\<ユーザー名>\ドキュメント\ArduinoData\packages\adafruit\hardware\samd\1.5.11\variants\trinket_m0\variant.cpp

の最後の方にある

void SERCOM0_Handler() {
  Serial1.IrqHandler();
}

void SERCOM0_HandlerX() {
  Serial1.IrqHandler();
}

に変更。そのあとに自前のスケッチに
 
void SERCOM0_Handler() {
/* 元の割り込みハンドラの実行前にさせる処理 */
 Serial1.IrqHandlerX();
/* 元の割り込みハンドラの実行後にさせる処理 */
 }

を追加。

adafruit Trinket M0 に serial port を追加する方法

 商品説明ページの説明を読むと(Native hardware SPI, I2C and Serial available on two pads so you can connect to any I2C or Serial device with true hardware support (no annoying bit-banging). You can have either one SPI device or both I2C and Serial.)、簡単にできそうに思えたのに、やってみたら 4-5 時間かかったのでメモ。

#include <Arduino.h>   // required before wiring_private.h
#include "wiring_private.h" // pinPeripheral() function

#define PIN_SERIAL2_RX       (2ul) // PA09
#define PAD_SERIAL2_RX       (SERCOM_RX_PAD_1)
#define PIN_SERIAL2_TX       (0ul) // PA08
#define PAD_SERIAL2_TX       (UART_TX_PAD_0)

Uart Serial2( &sercom2, PIN_SERIAL2_RX, PIN_SERIAL2_TX, PAD_SERIAL2_RX, PAD_SERIAL2_TX ) ;

void setup() {
    Serial2.begin(9600);
    pinPeripheral(0, PIO_SERCOM_ALT);
    pinPeripheral(2, PIO_SERCOM_ALT);

}

void SERCOM2_Handler() {
    Serial2.IrqHandler();
    }

パラメータの変更ができるところはほぼ無し。転送速度と、多分 TX/RX ピンの入れ替えぐらい。

・大元(Arduino ZERO, MKRZero, MKR1000)の説明はこちら

・Arafruit xxx Mx 向けの追加資料はこちら

・PA08, PA09 を使っている理由
 こちらの図にある通り、Trinket M0 で外部に引き出されているポートは PA02, PA06, PA07, PA08, PA09, PA18。このうち PA06, PA07 はオリジナルの Serial で使用。
 こちらの図(説明はこちら)にある通り、PA02 に SERCOM のピンを割り当てることは不可。

・sercom2 を使っている理由
 この pdf の Available SERCOM & Pins の項目にあるが、PA08, PA09 を使えるのは sercom2 だけ。

追記
 サンプルプログラムを gihub に置いた
追記2
 ちょっと整理して qiita にも投げた



2020年3月7日土曜日

購買:ネジはホームセンターには無い

 お客さんから「3Dプリンターで、こんなのができたらいいなぁ」という要望をいただいて、ちょっとしたモノを作ってみた。ネジ止めが必要なので皿小ねじ M3 12mm,16mm、M3 4mm のスペーサー、M3 8mm の両ネジスペーサーが必要になった。

 近所の、ちょっと大きなホームセンターに、2-30m はある通路の両側にネジがびっしり並んでいるのを思い出して買いに行った。

 結果、無かった。一つもなかった。車を出して片道 10分ほど、探した時間は 30分ほど。小一時間無駄にした。

 結局モノタロウに発注。

 次からは最初からモノタロウにしよう...

 

2020年1月16日木曜日

PC:Windows10 + A10-7860K + ASRock FM2A88M Extreme4+ R2.0 で苦労した話

 年が明けて少し時間が出来たので、余っていたパーツでサブの PC を組もうとおもったらものすごく苦労した。構成は Windows10 + A10-7860K + ASRock FM2A88M Extreme4+ R2.0。症状は、使っていると突然フリーズしてしまう。リブートとかブルースクリーンになるのではなく、突然ピタリと止まってしまう。

 あれこれやって結局使えるようになったのだが、なぜか詳細を本家ブログに書いてしまったので、こちらにはリンクだけを残す。

2020年1月13日月曜日

PCトラブル:SSD がお亡くなりに...

トラブル続きのメインPC、今度はSSDがお亡くなりになった ><

電源を入れてOSが立ち上がる途中で画面がいつまでも変わらなくなり、マウスカーソルは表示されているがマウスを動かすとカクカクと動く感じ。再起動すると全くOSを読み込まない。

BIOS を開いて調べてみると、SSDを認識していない。抜き差ししたり、設定を変えたり、あれこれ試したが、結局にどうにもならなかった。

教訓:SSDは突然全く動かなくなる

HDDはだんだん調子が悪くなったりデータが少しずつ壊れていくパターンが多いので、それなりデータのバックアップができるのだが、今回のSSDの場合はそれらしい予兆がほとんどなかった。シャットダウンに異様に時間がかかったことがあったが、これもそんなに珍しいことではない。

画像データはや音楽データはHDDに保管していたので被害はなかったが、五日ほどかけてDelphiで作ったWinodwsアプリのソースが影も形もなく消えてしまったorz。あと、確定申告に必要な、クレジットカードの支払い明細データも。税務調査がきたらどうしよう...

2020年1月6日月曜日

PCトラブル:HDD を正しく認識しなくなった

PCにHDDを増設する際、もともとついていたHDDのSATAケーブルの接続先(マザーボード上のコネクタ)を別の場所に移したら、HDDを正常に認識しなくなった。Windowsの「ディスクの管理」でも CrystalDiskInfo でも、ドライブとして認識はするが容量やパーティションなどがでたらめな値を返す。

よくよく調べていくと、BIOS に、HDD のパラメータを起動時に毎回読みだすか、最初にHDDを認識した時だけ読みだして、それ以降はずっと同じものを使うかの切り替え設定があった。一回だけ読みだすだったのを毎回読みだすにしてトラブル解決。

PC の起動時間が少し伸びたが、良いことにしよう。

PCトラブル:HDD アクセス不調

メインPCにHDD増設後、しばらくは快調に動いていたのだが、次第にHDDへのアクセスが異様に時間がかかるようになる。最初は増設した HDD だけかと思ったのだが、最終的にはすべての HDD と SDD にまともにアクセスできなくなる。

増設時にリトライを何度もかけたせいで HDD にトラブルか?と思ったが、以前同様のトラブルの経験を思い出して SATA ケーブル交換。トラブルは無事直った。

PCトラブル:HDD が何度もリトライする

開発マシンに HDD を増設したら、もともとあった HDD にアクセスできなくなった。ディスクを回転させようとして、何度もリトライする音がする。

あれこれ試していくと、HDD に接続する電源コネクタを差し替えたら動くようになった。コネクタの接触不良だったようだ。

使えないコネクタにテープを張ってわかるようにして、一件落着。