あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

はじめての基板

前回のつづき。

akkiesoft.hatenablog.jp

先程注文していた基板が到着しました。親指サイズの板5枚にこの箱は…w

f:id:Akkiesoft:20210910122215j:plain

さておき、初めて作った基板とご対面。うおーーーん!

f:id:Akkiesoft:20210910122245j:plain

表面のミクの絵も裏の文字もちゃんと見えるし、ちゃんと基板。最高やん。

f:id:Akkiesoft:20210910122310j:plain

早速組み立てます。今回は無難にピンソケットを付ける感じでやっていきました。ちなみにキースイッチはKailhの緑軸。ミク色づくし。

f:id:Akkiesoft:20210910122549j:plain

f:id:Akkiesoft:20210910122610j:plain

CircuitPythonでちゃっちゃとコードを書いて、動作テストです。LEDの光がキースイッチに射し込むように一応穴を開けてみたのですが、雑に開けたので言うほど射し込まずと言った具合でした。透明な棒とかで誘導したらいい感じかも?です。

f:id:Akkiesoft:20210910122644j:plain

f:id:Akkiesoft:20210910122650j:plain

真横から見るとこんな感じ。ピンソケットとピンヘッダーの高さが抑えられると良かったんですが、手持ちの部材でいい感じのがなかったので、2つめを作るときはこの辺をこだわりたいところです。ボタンが押せなくなるのは避けたいので着脱可は譲れないですし、あるんかなー。Tiny2040はもう一個用意してあるぞ。

f:id:Akkiesoft:20210910123117j:plain

あと、基板の厚み(1.6mm)が思ってたよりあったなという印象だったので、価格に影響しなければ次は薄くしたいなと思いました。どうせ回路的にも2本しか線引いてませんし。それとストラップ穴だな。ジッサイにキーボードとして使えるストラップになったらかわいいかなって。ピンの足とかであちこち傷つけそうですけど(☝ ՞ਊ ՞)☝

というわけではじめての基板はおおむね成功となりました。うれしいーー。残りの基板どうしよ。

ワクチン接種(前)後の報告をランダム生成で省力化するmikutterプラグイン

8/23から解禁された横浜市のワクチン予約から10日ほど予約できねえ予約できねえと嘆いていましたが、9/2にかかりつけの整形外科がようやく30代にも開放していて、ようやく予約ができました。ゆーて1回目は月末なのでだいぶ先なんですけど。あと横浜市のWeb予約システムは本当にクソだった。あああと自衛隊も見てたけど全然だったね。そんなこんなで家族内ではぶっちぎりの大トリとなりました。根室市すげえわ、妹ですらもう2回目終わってるし。

さて、ワクチン接種(前)後の経過報告をランダム生成するmikutterプラグインを作成しました。

ワクチンの副反応報告をランダムに生成するmikutterプラグイン。接種日からの経過時間だけリアルにできる設定機能付き。 · GitHub

設定に自分の接種日時をつっこめば、その日時ベースにした経過報告が可能ですが、基本的には悪ふざけ系プラグインなので設定の必要はありません。

以下は出力のサンプルです。

social.mikutter.hachune.net

世間的にはワクチン接種が始まってからだいぶ経ち、副反応例についてはだいぶSNSで見せられてきたので、知見というか「もうわかった」感があります(個人の感想です)が、副反応例と揶揄される程に誰もがSNSに接種後の経過を細やかに報告したくなるようです。この副反応は予約が取れない・まだ予約できないフェーズ・そもそも接種券がまだ届かない人たちから見るともはや鬱陶しく見えてしまう(個人の感想です)ので、これからの人はぐっとこらえる必要があるのではないかと思っています(個人の感想です)。すくなくとも私は「ああはなるまい」と思っているので、この副反応にあらがいつつ、プラグインでうそ報告でもしていこうと思っているところです。

ところで、このプラグインはデタラメとはいえ自動生成で省力化できるという特徴があります。ワクチンの予診票をWebフォーム化したとかいうニュースがネットニュース記事になるなら私のもワンチャンあるんじゃないでしょうか(ない)。

www.itmedia.co.jp

Raspberry Pi PicoとPico Wireless PackとBME280でZabbixにデータを送ってみる

タイトルが長いのですが、PicoとWireless PackでZabbixにデータを送ってみたかったのでやってみましたという話。

Raspberry Pi PicoとPico Wireless PackとBME280を組み合わせるには、Picoに複数のボードが接続できる必要があります。そういうボードはもちろんPimoroniなどから発売されているので、今回もPimoroniのPico Omnibusを購入しました。今回は珍しく直接ではなくスイッチサイエンスさんから購入しました。思いついたあとすぐ早く遊びたかったので。

Pico Omnibus (Dual Expander) – Pimoroni

f:id:Akkiesoft:20210901211150j:plain

裏面が可愛い。Omnibusとバスが掛かっていてバスが描かれています。Pimoroniのこう言うところほんとすき。

f:id:Akkiesoft:20210901211159j:plain

で、こいつにPicoとPico Wireless PackとBME280を載せていきます。

f:id:Akkiesoft:20210901211141j:plain

BME280はPico Breakout Gardenを使って接続しました。これブログに書き忘れてたのですが、こないだPimoroni9周年でセールだったときに購入していました。

f:id:Akkiesoft:20210901211529j:plain

Pimoroniの製品用のいろいろが入ったMicroPythonバイナリがPimoroniのリポジトリにあるので、これでMicroPython環境を作ります。

github.com

あとはリポジトリのPico Wireless PackとBME280のサンプルを組み合わせて、Zabbix Sender形式のデータをZabbixサーバーに送りつけるスクリプトを作成しました。

github.com

文字数のデータ作成はpy-zabbixのコードも参考にしています。

py-zabbix/sender.py at master · adubkov/py-zabbix · GitHub

Zabbixでデータを受け取った結果はこんな感じです。ふつう。

f:id:Akkiesoft:20210901212440j:plain

感想

現状はふつうのRaspberry Piを使ってセンサーでデータを取りZabbixに送っていますが、Picoなら省電力に実現できるのでありかなあと思いました。

が、多分ですが、Pico Wireless Packに使われているESP32とセンサーだけでも実現できるので、そっちのほうが省電力で済み、Picoでやる意味は薄そうです。Pico Wireless Packの使いどころの難しさは「それESP32単体でよくね?」とならないネタづくりにあるような気がしています、はい……。

最初から無線を積んだRP2040搭載ボードだったらそうはなりにくいような気はしますが、そういうのは日本ではいつものアレの問題があって、日本ではいつ使えるやらになりがちですし、悩ましいものですね。たとえばArduino Nano RP2040とかがもうあるにはあって、無線モジュール単体は認証取得済みのようですが、確実に国内で使えるとなればもう国内のショップがバンバン売ってるかと思うので、そうじゃないところを見るに多分まだだめな要素があるんだろうなあと今さっきググって知りつつ思いました。しらんけど。

はじめての基板設計

どうも、Picoで謎キーボードっぽいデバイスを乱造太郎です。

PimoroniのTiny2040でなんかキーボード作りたいなあとらくがきをしていたんですが、1キーモノならなんとか作れるんじゃないかという気がしてきて、週末にKicadをグリグリいじった結果、多分それっぽいものができたのでJPCPCBに発注してみました。

f:id:Akkiesoft:20210831140023j:plain

Tiny2040のポートの上に乗っけるイメージで、なんかこう、できねーかなあと思いまして。

参考にしたページ

私も持ってるRomlyさんのこのボードの制作過程のページをめちゃくちゃ参考にしました。

romly.com

KiCadで雑に基板を作る チュートリアル

ミク絵を載せるのはこのあたりの記事が参考になりました

asukiaaa.blogspot.com

基板の角丸加工はこの動画を参考にしました。

KiCad 5.0 - Rounding PCB Corners - YouTube

やっていき

回路図はこんなかんじになりました。キー1つで特にダイオードとかもいらないので、すでに焼石掘りキーでやっているのと同じように直結しました。ダメそうなら次回以降改善で行きましょう。

f:id:Akkiesoft:20210831141334p:plain

回路図を作るにはTiny2040のシンボルが必要になりますが、当然存在しないので先に自分で作る必要がありました。ピン配置は基板の表記に合わせてつけて、ピンの属性(入出力どうこう)はライブラリにあったArduinoのボードを参考になんとなくで付けました

f:id:Akkiesoft:20210831141556p:plain

回路図ができたらチェッカーでエラーが無いかどうか調べます。PWR_FLAGの扱いの理解にやや苦戦した以外は問題なくできたっぽいです。

次はPCBレイアウト。なのでPCBエディター……かと思いきや、PCBエディターは回路図のシンボルとフットプリントを紐付けたあとでフットプリントを組み合わせる場っぽく、ここでもTiny2040のフットプリント作成からスタートとなりました。

こんなかんじ。デバッグポートは自分の板にはいらないので略します。できあがったらフットプリントのライブラリに登録。

f:id:Akkiesoft:20210831142157p:plain

基板にイラストとかロゴを載せたいときはイメージコンバーターに画像を食わせて変換したあとで、フットプリントのライブラリに登録する感じでした。

f:id:Akkiesoft:20210831142234p:plain

CherryMXのフットプリントはライブラリに入っているので作成不要でしたが、Tiny2040のLEDを通す穴を開けるためのカスタムをしました。

素材が揃ったらPCBエディターで組み合わせて、パーツ同士の配線を引いたりなんだりします。基板の角を丸くしたかったので、円弧と直線ツールを使ってエッジカットレイヤーを作成しました。

f:id:Akkiesoft:20210831142359p:plain

発注!

基板の発注は前に4-Packの基板製作で注文をしたJLCPCBに出しました。5枚で3.5ドル。送料の1.74ドルを足して5.24なので、5枚でざっくり600円になりました。安すぎる。

ガーバーデータをまとめたZIPファイルをアップロードすると、すぐにプレビュー画像が出てきて確認ができます。コレが出てくるとすごいワクワクしますね。

f:id:Akkiesoft:20210831143553p:plain

Tiny2040に合わせて黒色にしたので緑色の2.5ドルよりも1ドル増し、製作も通常2日のところ+1日の3日となりましたが、注文のステータスを見ると24時間もせずに製作は終わっており、あとは発送待ちのようです。工程と発送までの案内がていねいすぎてビビる。各工程がどういうものか動画で紹介されるあたりはすごいですね。

というわけで到着待ち

到着してからブログ書こうかなと思ったけれど、楽しみすぎたのでまずは設計編を書きました。Tiny2040もこれ用に追加で購入したので、色々と到着待ちとなりました。