生きている化石 — MacVim

AtomS3 用のコードをゴリゴリ書いているんですが、自分、実はエディタは vi しか使えないのです。
なもんでターミナルの小さな窓で syntax on とかしてたんですが、かったるい。

調べたら、なんと MacVim はまだ生きていました!
というわけで、サクッとインストール。
なんといういんでしょうか、この安心感。
インターネッツ老人会の皆皆様、そして、vi よ、私は帰ってきた!

それはそうと、なんでこんな羽目になったかというとサーボのコントロールがうまくいかなくて、カクカクしてしまうんです。
AtomS3 は初めてなんだけど、どうもパルス生成のタイミングがずれているのか、ノイズなのか、ハッキリしないのです。

なもんで、VxWorks の TaskSpawn() に相当する機能はないのかしらと思ったら、ありました。
が、これがまた、適当にやっているもんだし、そもそも VxWorks で開発していたのなんで、25 年は前なので、何もかもほとんど忘れてしまっています。

ノイズの影響か USB の接続もよく切れるし、これは

;upload_port = /dev/cu.usbmodem1101
;monitor_port = /dev/cu.usbmodem1101
upload_port = /dev/cu.usbmodem*
monitor_port = /dev/cu.usbmodem*

という風に platformio.ini を書き換えればいいとわかったので、そうしたんですが、MacVim を入れたことだし、.zshrc も整理しました。

# --- エディタ設定 ---
export EDITOR='/Applications/MacVim.app/Contents/bin/mvim'
alias vi='$EDITOR'
alias vim='$EDITOR'
alias gvim='$EDITOR'

ターミナル内で閉じたい時(GUIを起動したくない時)用の Alias

alias viv='$EDITOR -v'

--- PlatformIO (AtomS3) 開発用 ---

alias pu='pio run -t upload' # 書き込み
alias pm='pio device monitor' # シリアルモニタ
alias pum='pu && pm' # 書き込み後、即モニタ起動
alias pc='pio run' # コンパイルのみ(チェック用)

--- 便利ツール ---

現在のポートをサッと確認する用

alias lsp='ls /dev/cu.usbmodem*'

さて、昨日でようやく新年の行事が一段落したので、今日から配達です。
ボチボチ頑張ります。

OpenSCAD のインストール

Bamboo Lab の A1 mini も買ったんです。
なぜか直販だと 29,800 円(ただし、届くのがひと月後)で、Amazon だと翌日届く代わりに 39,800 円。
当然、29,800 円をチョイスしたわけです。

それで、昨日判明したタッチパネルのネジが M2 っぽいという件と、それ以前に全然寸法も違うので、プレートをアクリル板から切り出してなんとかしようと思うわけです。

今までだと Adobe Illustrator で作図して、svg で保存して、Laser Pecker 2 で切るところなんですが、思い立って OpenSCAD をインストールすることにしました。
A1 mini が届いたら、ケースを出力しないといけないので、データが使いまわせるようにしたいのです。

というわけで、それまでの準備の一環として、OpenSCAD をインストールすることにしました。

まず、Homebrew で OpenSCAD をインストールしました。

brew install --cask openscad

起動しようとすると、macOSのセキュリティ機能(Gatekeeper)によって、未確認の開発元としてブロックされている状態になります。

  1. 一旦、そのアラートの「Done」を押して閉じる。
  2. Macの 「システム設定」(System Settings)を開く。
  3. 「プライバシーとセキュリティ」(Privacy & Security)を選択。
  4. 右側の画面を下へスクロールしていくと、「セキュリティ」 の項目に “OpenSCAD” がブロックされているので、その横にある 「このまま開く」(Open Anyway)ボタンをクリック。
  5. パスワード入力を求められたら入力し、再度確認ダイアログが出たら 「開く」 を押す。

これで起動できます。

適当な .scad ファイルを作って開いてみると、うまくいったようです。

これでテキストファイル(.scad)を書いて、それを 2D や 3D で造形することができることになったんだろうと思います。

ボチボチ、がんばります。

Raspberry Pi 5 のタッチパネル周りの修正

薪の選別機の開発の続きです。

今まではジャンパー線で繋いでいたのですが、部品が届いたので、配線を綺麗にまとめてみました。
かなりスッキリです。

HDMI ですが、見ての通り、キットで買ったケーブルを依然使っています。
航空ドローン用のものを買ったんですが、HDMI 端子には、標準(A),mini(C)、micro(D)の 3 種類あって、C と D の組み合わせのものを買ってしまったので、全く繋がらないのです。
さらにケーブルも 50cm で長すぎました。
おまけに端子の向きも逆。
どれ一つ使えないので買い直すことにしました。
あ、ケーブルですが、端子が接続できる面が両端で同じなのと、裏表になっているものがあるので、これも要注意ですね。

それと、ジャンパー線で繋ぐ時なんですが、タッチパネルの側が 2 x 13 ピン, Raspbery Pi 5 の側が 2 x 20 ピンと全然ピン数が違うことに気づかず、逆向きで数えていたのもあって、ピンの割り当てを変えてしまっていたので、そも元に戻しました。

今日の作業の記録は以下の通り。

Raspberry Pi 5 × タッチパネル調整の記録

Raspberry Pi 5 にタッチパネルを SPI 直結(変換基板なし)した際、座標ズレとチャタリング(連打現象)が発生したため、解決までのプロセスを記録します。

1. ハードウェア配線(GPIO 直結)

メンテナンスコストを最小限にするため、以下のピンに直接配線しています。

信号名 役割 (Function) GPIO 物理ピン 備考
CS Chip Select GPIO 7 26番ピン SPI0 CE1 を使用
IRQ Interrupt Request GPIO 25 22番ピン タッチ検知用の割り込み信号
SCK SPI Clock GPIO 11 23番ピン SPI通信のクロック
MO Master Out (MOSI) GPIO 10 19番ピン RPiから液晶へのデータ送信
MI Master In (MISO) GPIO 9 21番ピン 液晶からRPiへのデータ受信

2. 座標補正(キャリブレーション)

Wayland(Wayfire)環境下でのフルスクリーン起動エラーを回避するため、ウィンドウモードで動作する Pythonスクリプト(Tkinter)を作成。
3回タッチを繰り返して平均値を出すことで、5インチのUIでも正確に操作できる精度を確保。

3. チャタリング(連打現象)の解決

RPi5 の GPIO 感度が鋭いため、1 回のタッチで数回クリックされる現象が発生。以下の 2 段階で対策。

A. ドライバレベルの対策 (/boot/firmware/config.txt)

pendown_pressure_threshold を設定し、ノイズと思われる微弱な電圧変化を無視するように変更。

dtoverlay=ads7846,cs=1,penirq=25,pndn=25,pendown_pressure_threshold=20

B. OSレベルの対策 (udev ルール)

OS の入力管理レイヤー(libinput)側でも、タッチの安定性を高める設定を投入しました。
/etc/udev/rules.d/98-touchscreen-cal.rules に以下の属性を追記することで、ソフトウェア的に信号の「跳ね返り」を抑制しています。

ATTRS{name}=="ads7846", ENV{LIBINPUT_CALIBRATION_MATRIX}="1 0 0 0 1 0 0 0 1", ENV{LIBINPUT_ATTR_PRESSURE_THRESHOLD}="0.1", ENV{LIBINPUT_ATTR_TAP_AND_DRAG_GESTURE}="0"

4. 実装フェーズで判明した物理的課題

筐体への組み込み過程で、以下の設計変更が必要となりました。

  1. 配線干渉: HDMIケーブルのコネクタおよび取り回しの制約により、画面上部への物理ボタン配置が不可能と判明。ボタン配置をサイドまたは下部へ再設計。
  2. マウント規格の不一致: 5インチ液晶側の固定ネジが M2.5(Raspberry Pi標準)より細い M2 規格であることが判明。また、ラズパイ5とのネジ穴ピッチも異なるため、両者を連結する「変換マウントプレート」の製作が必須。
  3. バックライトが点灯したままになる問題: GPIO 経由でタッチパネルに電源を供給すると、RPi5 をシャットダウンしたのちもバックライトが点灯し続ける問題が発生する。モニターに電源を USB 経由で送れば解決するが、USB ポートを一つ占有してしまう。

薪割りスペースの屋根工事

いきなり完成図ですが、薪割りスペースの屋根の基礎の墨出しをしてもらいました。
PP ロープも持っていってはいるんで、張ればよかったんですけど。
このあと、杭を外に打ち直して、貫板を取り付けて、レベルを出してから、写したいと思います。

屋根の鉄骨ですが、仮組して置いておいたら、埋もれてしまっていたので、5 号にラジコンで草刈りをしてもらったんですが。。。

電線が絡まったり、刃が折れたりと、恐ろしく捗りません。
真っ平で、草だけが生えているところなら、スイスイ刈れるんですけどね。
3 歩進んで 2 歩下がる、というような感じで、本当は一気に進めたいところではあるんですが、なかなかまとまった時間が取れない感じです。
とはいえ、こんな調子ではいつまで経っても完成しないので、今年中には完成させたいと思います。

薪用のフレコンバッグ NB1 の生産を開始しました

共同での購入者さんを募集していた薪用のフレコンバッグですが、コンテナへの積み込みのタイミングがあり、今日、支払いをして生産を開始しました。
今回の価格ですが、為替手数料などを含み本体 1 枚あたり 735 円です。
この後国際輸送の経費、輸入時に関税と消費税、利益を載せない商品ではありますが、うちは簡易課税のため、入金額に対して一律消費税が課税されるので、そういう諸経費を含めて、なんとか 1,000 円に収まればと思うところではありますが、厳しそうです。

国内の法人向けの運賃は、以下のとおりです。(税込、保険料は含まない)
※ AI による自動作成のため、実際の運賃は多少異なる可能性があります。

重量 → 地域 ↓ 100kg 200kg 300kg 400kg 500kg
南九州 ¥6,430 ¥10,310 ¥14,910 ¥19,300 ¥23,690
北九州 ¥6,000 ¥8,640 ¥13,750 ¥17,720 ¥21,620
中国 ¥4,210 ¥7,380 ¥11,330 ¥13,400 ¥16,460
四国 ¥4,850 ¥8,410 ¥12,080 ¥13,740 ¥17,830
関西 ¥5,580 ¥8,530 ¥15,010 ¥19,930 ¥18,440
北陸 ¥6,450 ¥11,720 ¥17,090 ¥22,550 ¥28,020
東海 ¥6,450 ¥11,720 ¥17,090 ¥22,550 ¥28,020
信越・南関東 ¥7,000 ¥12,690 ¥18,140 ¥23,700 ¥29,070
北関東 ¥7,340 ¥13,980 ¥23,310 ¥28,950 ¥38,670
南東北 ¥7,990 ¥14,810 ¥23,310 ¥31,020 ¥38,760
北東北 ¥8,460 ¥16,160 ¥25,080 ¥32,290 ¥49,230
北海道 ¥9,970 ¥18,720 ¥30,860 ¥41,430 ¥58,170

200 枚で概ね、1.1 x 1.1 x 0.9m = 1.1m3、実重量 320kg, 容積重量換算 308kg といったところです。
パレットを含む数字かわかりませんが、最も高い北海道で 400kg の数字を採用すると、41,430 円となります。
この数字には、うちのターミナル持ち込み手数料(1,000 円)、クレジットカードで支払われる際の手数料などが含まれるので、支払い条件により多少安くなりますが、最悪を想定しても 1 枚あたり 200 円程度、近距離だと 100 円以下です。

輸入時の経費ですが、今回は FCL ですが、過去の LCL のケースから、大体 1m3 あたり $200 以上、かかっています。
つまり、1 枚あたりは大体 $1 ということです。
運賃に関しては正確に計算することが極めて困難なので、この金額で計算させてもらおうと思います。
この金額には、通関や検査、CFS からの輸送(あるいは、ドレーやデバン)、検品・保管・発送の費用は一切含んでいませんが、そこはついでにやることですから、請求する気はないのですが。

というわけで、どんぶり勘定をすると、

本体 735 円 + 国際送料 150 円 = 885 円
関税 4% + 輸入消費税 10%, 14.4% = 1012.44 円

というところです。
これに、簡易課税のための消費税を載せさせてもらうと、小売の 3 割(=3%)なら、1042.8132 円の見込みです。
運賃自体の実レート、税関さんの課税レートが確定しないので、運賃を正確に計算できませんが、といっても 150 円が 100 円になることもなければ、200 円になることも考えにくいので、ざっくり 1,050 円/枚、くらいになるかなと思います。

くどいですが、これ、原価(以下)であって、通常であれば、通関を業者に依頼するだけでも 2 — 3 万は簡単にかかりますし、ドレーも、デバンも、一切の費用を請求していない金額です。
自分で言うのもアレですが、とっても誠実にやっている価格だと思うし、1 枚からの対応なので、予想金額との誤差についてはご容赦いただければと思います。

今日は 5 月最後の神社の祭日でした。
おまいりはそこそこ?でした。
あまりに暇だと、時間が経つのが遅く、忙しすぎても、お待ちいただくことになるので、ちょうどいいと言えばちょうどいいペースではありますが。

新しく始めた取り組みの木野山神社ぷちですが、とても好評で、多くのご家庭にぷちをおまつりいただいています。
定期的な里帰り(神社にプチを持ってきてお祓いを受けていただく)用の木箱も完成しました。
木野山神社のオオカミさまは、邪悪なものに対して高い神徳があり、邪気・怨敵退散のご利益があると伝えられます。
各ご家庭に木野山神社ぷちをおまつりいただき、オオカミさまのご神徳に浴されることは、衣食住の安全、即ち生活の保証を得ることにつながると信じます。
みなさまも是非、木野山神社ぷちをおまつりください。

明日は、M くんがきてくれるので、境内のインターロッキング舗装の手入れをしたいと思います。

配達に出発

薪と薪割り機、チッパーを積んで 配達に出発です。

久しぶりのラーショです。
車が大きいので、どこでも止まれない。。。
あまり選択肢がありません。
ここ、営業終了が早いので、滅多に寄れません。
駐車場は見ての通り広くていいんですが。

今日は、東浦で泊まります。

それと、ここに書いたか忘れましたが、チェンソーダスト等を保管するのに使っているトン袋の在庫がなくなりそうなので、作ることにしました。
製造機のお客さんが見学に来られた際、たまたま興味を持たれて、共同で生産・輸入するのですが、久しぶりなので、材質等が変わっているといけないのでサンプル生産することにして、それが仕上がった写真が届きました。
この後、航空輸送して、品質を確認してもらい OK ならば生産に移りたいと思います。