verylowfreqのアイコン画像
verylowfreq 2021年12月27日作成 (2021年12月27日更新) © CC BY-SA 4+
製作品 製作品 閲覧数 3036
verylowfreq 2021年12月27日作成 (2021年12月27日更新) © CC BY-SA 4+ 製作品 製作品 閲覧数 3036

自分の2021年の電子工作を振り返る

自分の2021年の電子工作を振り返る

今年の自分の電子工作系の活動を振り返りました。以下、時系列にて製作物を列挙していきます。

M5Atom Matrix Walking Robot (2月)

個別記事:
M5Atom Matrix Walking Robot on ProtoPedia

M5Atom Matrix + M5TailBatによる歩行ロボットです。ファームウェアはMicroPython。BLEでスマホと通信し、MIT App Inventor2によるアプリで操作します。

ロボットアーム (2月)

個別記事:
https://elchika.com/article/4d0a74ba-5368-43c0-b2ed-bed2f44c2594/

このころのロボットアーム系のトピックとしては、2020年の後半にmyCobotがリリースされていて、自作記事も公開されていました。それに触発されて、ロボットアームの製作に初チャレンジしたものです。
私のこの製作については、サーボモーターのパワー不足は当初から心配していたもののやはり足りず、さらに可動域も不足していて、部品選定のミスがかなり痛い結果となりました。(SG-90とMG-90Dを使用したが、これらには適さない構造であった。)
記事中で「やってみたい」と言及したIK制御も実装しましたが、ざっくりとは動かせるものの、精度をまったく詰められませんでした。

キッチンタイマー (4月)

放置している手持ち部品の消化をテーマに、ありあわせの部品でキッチンタイマーを作りました。作りがテキトーなわりには常用しています。
ボタン操作は個人的な好みを反映しました。

部品構成:

  • ATtiny2313
  • 7セグメントLED 赤 アノードコモン
  • SS8050系トランジスタ (NPN)
  • 単4形 ニッケル水素充電池 3本
  • ボタンは、3分加算、1分加算、一時停止/リセット、の3つ

内蔵RC発振器の利用のためか1時間で数分はズレますが、そんなに厳格な時間計測は要らないので。積極的にスリープに入るように組んだおかげか、充電池は数か月はもつ感覚値。

RPN電卓 (5月)

いまはTOKYO FLIP-FLOPによるRPN電卓キットが販売されていますが、このキットの初出のDaily Portal Zの記事を見かけたときに、自分でも作りたくなったので独自に設計して作りました。

参考: 「君は逆ポーランド電卓を知っているか? ~そして自作へ」- Daily Portal Z (2021-01-05) https://dailyportalz.jp/kiji/RPN-calculator

参考: 「ホビーRPN電卓」- TOKYO FLIP-FLOP https://www.hobby-rpn.com/

キャラクタ液晶は5V動作品しか手元になかったため、AVRで負電圧のチャージポンプを組み、3Vなボタン電池で駆動しています。

参考: 「3VでLCDモジュールを使う」 elm-chan.org http://elm-chan.org/docs/lcd/lcd3v_j.html

ボタンのパーツは、光造形3Dプリンターで文字の掘り込みをした形状で印刷したのち、手作業で掘り込み部分に黒い塗料を流し込んでいます。見栄えはアリなのですが面倒なので、ここぞという時だけ使う感じかと思います。

ハードウェア的にはそこそこにできたのですが、私のファームウェアの詰めが甘くて使い勝手がイマイチになってしまったので、ほぼ使用していません。ATmega328Pに差し替えてファームウェアをきちんと整備すれば常用できる可能性はあるので、いずれやりたいところです。

部品構成:

  • ATmega8 (手持ちの余剰品。プログラムROM足りない)
  • 16x1 キャラクタ液晶(手持ちの余剰品。5V動作品を3.3V動作させている)
  • タクトスイッチ 19個

銅張基板加工用CNC (5月)

銅貼基板に回路を構成するためのCNCが欲しいなぁと思い、CNCの製作に挑戦しました。機械的なところがまったく足らず、中断しています(再開見込みはあんまりない)。そもそも必要な機械的要件をまったく把握していなかったので、成功する見込みはほぼなかったのですが。作りもグラツキが酷く、なかなか危険なブツとなってしまいました。

  • ドリルは Dremel FINO
  • モーターは 28BYJ-48
  • 制御基板はArduino UNOで、ファームウェアはGRBLの28BYJ-48対応のフォーク。

FPV RC Crawler with M5Camera (5月)

個別記事:
https://protopedia.net/prototype/2501

履帯も3Dプリンターで印刷したキャタピララジコンです。M5Cameraで制御しています。
M5CameraはWiFiでスマホと通信して、モーター制御信号をスマホから受信と、カメラの映像をスマホへ送信します。また、モーター(無限回転サーボ)へのPWM信号出力も行います。

スマホではUnity製の操作アプリを用いて、FPV映像を見ながら操作ができます。

QMKファームウェアなマクロパッド (7月)

個別記事:
https://elchika.com/article/42134fb2-ceb6-451b-ad29-e1e6aab26df6/

USB通信機能を内蔵しないATmega328PでQMKファームウェアを利用したマクロパッドを製作しました。私の初の自作キーボードです。

自作キーボード試験基板(マクロパッド基板) (7月末)

基板製造費も送料も無料だったALLPCBのFree Prototypingサービス(いまは実質廃止)を7月に知って、7月末に急いで初PCB発注に挑戦しました。回路が単純にできてオリジナルなPCBであることが活きるものとして、自作キーボードを選びました。
基板上の回路としては、ソケット式の10キーと、ダイオードと、キーマトリクスの配線が引き出されているピンヘッダと、残りの空間はユニバーサル基板状態です。
即席で作ったわりには、ここから以下に2作品が派生しているので、そこそこ成功だったかなぁと思います。

有線・無線に両対応のマクロパッド (8月)

7月のマクロパッド基板を利用して、USB有線接続とBluetooth(BLE)接続の両方に対応したマクロパッドを製作しました。おもにYouTube視聴用です。
機能としては、キーボードのキー押下、マウスポインタとボタンの操作、音量調整等ができます。YouTubeの再生速度調整や10秒飛ばしなどを割り当てていて、パソコンでもタブレットでも動画視聴を快適にできることを目指しました。
コントローラとしてSwitch ScienceのISP1807 Microボードを採用しています。これはArduino系Pro Microと同じ形状にISP1807 (nRF52840) を搭載したもので、USBデバイスとBLEペリフェラルを搭載してバッテリ駆動時間の不安がなくかつ国内向け流通品という点で、わりと希少なボードだと思います。あまり使われている形跡がないので、情報がさっぱりないですが。
ファームウェアは独自開発で、Arduino環境で書きました。

部品構成:

  • ISP1807 Micro
    • nRF52840 (Cortex-M4 64MHz, BLE)
  • MX互換キースイッチ(ソケット式) 10個
  • キーキャップ 10個(写真ではRelegendable ブランクキーキャップを使用)
  • 単4形 ニッケル水素電池2本

16連装Lチカデバイス (8月)

個別記事:
https://elchika.com/article/0599b4bf-5016-4ebd-96c2-ad1ec2bde49c/

ブレッドボード上での試作です。USB通信機能のないAVRでUSBデバイスを実現するV-USBというライブラリを使ってパソコンと通信してみるための試作品でした。

LEDマトリクス表示器 (9月)

1枚あたり64個のLEDを搭載したLEDマトリクス基板を設計して発注しました。スルーホールの5mm砲丸LEDを想定した設計でしたが、表面実装LEDも実装可能なフットプリントであったため、表面実装品を実装しています。
当初の設計では、1枚ごとにATtiny44Aを搭載して、SPI通信でマスターから表示データを受信し、LEDを継続的に制御する構成でしたが、半導体不足によるマイコン入手性の悪化が怖くなり、各基板へのAVR搭載はやめました。個別のLEDは74HC595で行と列を選びつつダイナミック点灯させています。
1MHzくらいのシリアル信号を流していますが、私の回路設計の知見が圧倒的に不足してたために信号線同士で干渉したりして動作がさっぱり安定しなかったものの、なんとか4枚までは動作するようになっています。

また、RS485通信によるパソコンとの通信中継ボードも作りましたが、通信が安定しないのか頻繁に表示が崩れます。原因を追究しきれず放置中。
(そもそもRS485にする必要はないのですが、RS485という通信形式に興味があったので。)

なお作りたくなった動機は、Lチカの物量押しをやってみたくなったのと、ただひたすら単調なはんだづけ作業をやりたくなったためです。

ローコストなType-Cコネクタのマクロパッド (9月)

7月の基板を利用して、Type-Cなマクロパッドを製作しました。V-USBなファームウェアを書き込んだATtiny44Aをコアとすることで、部品コストを下げつつType-Cコネクタを実装したものとなります。
Type-CコネクタとはいえUSB1.1デバイスなので、この場合はCC1とCC2をプルダウンするだけでそんなに面倒はないです。

自作基板による簡易な有線マクロパッド (10月)

V-USBとATtiny44AでType-Cコネクタ、という構成を、専用基板を起こして製作しました。

  • ATtiny44A
  • V-USBベースのファームウェア
  • MX互換スイッチ 5個 (ソケット・直付け両対応)
  • ロータリーエンコーダー 1個(回転と押込み)
  • USBキーボード、マウス、コンシューマ制御デバイスとして動作可能

USB-HIDの通信によるキーマッピングの切り替え機能があります。マクロパッド本体には5パターンのレイアウトが記録でき、さらに揮発性の一時記憶域が1パターン分あります。このレイアウトの書き込みと、有効にするレイアウトの選択が、パソコンから指示できるようになっています。
これを利用して「現在パソコンでアクティブなウィンドウのタイトルをもとに、レイアウトを自動で切り替える」というプログラムをPythonで作りました。実質キーアサインは無制限と言えなくもない。

さらに、I2C通信の送信機能を追加して、OLEDディスプレイなどを接続できるようにしました。ディスプレイの初期化シーケンスをパソコン側からひとつひとつコマンド送信するようなレベルのもので、通信速度(送信速度)も3fpsがせいぜいのものですが、あれば使うかもみたいな感じで追加した機能です。Pythonスクリプトから、とりあえずパソコンのCPU利用率とメモリ利用率と日付時間を表示しています。

PCB発注のガーバーファイルとしては、1枚に2つ分の基板を押込み、切れ目として穴を並べたものを提出しました。リジェクトされずに製造されたので、これは面付け扱いにされないらしい。

電車の在線表示基板 (11月)

ただの思いつきをうっかり発注してしまったものです。フルカラーLEDをピカピカ光らせて楽しいものということで、東京メトロ副都心線の電車在線状況を表すボードを設計しました。(緩急の追い抜きがある、直通先が数種類ある、路線長が長くない、というのが選定ポイント。)
LEDは、WS2812B (5mm角) を駅と直通先に、WS2812C-2020 (2mm角) を駅間に配置しています。手ハンダで実装。
むき出しLEDの視認性がいまいちだったり、良い表示のさせ方が案外難しかったりと、どう見せるのかがけっこう課題となりました。
うまくいけば、東京メトロのAPIに申請してリアルタイムの在線状況を表示したかったのですが、いまのところ見込みなし。

ヘッドフォンアンプ (11月)

Chumoyという1つのオペアンプでヘッドフォン・イヤホンを駆動する回路を基板にしました。

ユニバーサル基板で試作したときは増幅率5倍でしたが音量調整の範囲が足りないと感じたため、増幅率10倍で組み立てています。
オペアンプの差し替えは正直よくわかりませんが、増幅率5倍の場合はNJM4556ADD、増幅率10倍の場合はNJM4580DDがなんとなく好み。

発注したプリント基板は使用したフットプリントの確認が不十分で、イヤホンジャックの部品の足が微妙にはまらないものを発注してしまいました。ピンバイスでむりやり穴を広げて押し込んでいます。

(製作中)漢字変換のできるワープロ的なポケコン風な自作キーボード風なハンドヘルドコンピューター (12月)

私自身は触ったことはないのですがTRS-100 model 100とかEPSON HC-20みたいなハンドヘルドコンピューターや、古い日本語ワープロに長年興味がありました。そんな中たまたまハードオフでジャンクの古いワープロを見つけてうっかり買ってしまい、とうとう我慢しきれず製作するに至りました。
リッチなCPUで製作するのも良いですが今回は8ビットAVRで作ることにしました。

ハードウェア構成:

  • ATmega4809-PF DIP-40
    • プログラムROM 48KB
    • SRAM 6KB
    • 動作速度 最大20MHz (内蔵RC発振器による)
    • UART x4, SPI x1, I2C x1
  • モノクロ液晶グラフィックディスプレイ 122x32 (SG12232C)
  • microSD (ストレージ用)
  • 独自配列キーボード 43キー
  • キーマトリクス管理用にATmega328P。メインのATmega4809とはI2C通信

ソフトウェアの構成:

  • 内部の文字コードはShiftJIS
  • フォントは東雲フォント14pxのbdfを独自バイナリ形式へ変換したものをmicroSDにファイルとして配置
  • 日本語変換はSKK方式で、オリジナルの辞書ファイルに独自のインデックス情報を付加したものをファイルとして配置

現状は、

  • キーボードのスキャンができ、I2C経由でメインプロセッサに押下状況を引き渡せる
  • ディスプレイへ日本語表示ができる
  • SKK辞書を用いて漢字変換ができる

今後の発展としては、

  • テキストを保存できるようにする
  • カーソル移動、複数行の取り扱いなど、テキストエディタらしい挙動を入れる
  • (プログラムROMに余裕があれば)シリアル通信の機能を実装する
  • (プログラムROMに余裕があれば)BASICやforthなどのプログラミング言語を実行できるようにする

2021年の総論

PCBの設計と発注ができるようになったことがとても大きかったです。3Dプリンターとあわせて、パソコン上での設計がそのまま物理的なハードウェア構築へとつながり、これは私のスタイルにとても適しています。まだ表面実装部品を用いた設計には取り組んでいませんが、そこはのちのちの課題ということで。

自作キーボードにとうとう入り込んでしまいました。回路自体は複雑でない、たいてい誰でも常になんらか製作ネタ(困りごと)がある、小キーでも多キーでも用途があり簡単なものでもすぐ実用できる、、パソコンと連携するガジェットである、作りこむ余地がいくらでもある、人によって正解が異なるので多様な製作物が存在しうる、という点で、モダンな電子工作ネタとしてはかなり強いのではないかと感じています。パーツの入手性も良いですし。

私はいままで製作物はほとんど公開していませんでしたが、製作物(過程)をSNSにアップロードしたり記事化するのを意識しました。途中途中でのチェックポイントや、「いちおうの完成」みたいなものを意識するようになったような気がします。
また、elchikaの投稿キャンペーンやProtoPediaでのM5Stackコンテストなど、外的なインセンティブによりようやく記事化するケースがちらほらあったので、そういうチャンスを逃さないようにするのも記事化してまとめるという点では重要な気がしました。

2020年より続く半導体不足がマイコンの入手性にも影響し、値上げで踏みとどまっていればまだマシなほうで入荷見込み無しも散見されるのがなかなか動揺しました。あとコネクタ類も欠品が目立ち、これも近いうち私のところにまで影響が出てきそうです。

来年もお金と時間と収納スペースが許す範囲で、なんらか作っていきたいものです。

3
verylowfreqのアイコン画像
"verylowfreq" あるいは 「三峰スズ」(VTuber 2023年2月より) です。趣味で電子工作や3Dプリンターを楽しんでいます!
ログインしてコメントを投稿する