2026年6月15日月曜日

Raspberry Pi 5でSSDを使えるようにする

これまでにも記事にしている通り、歴代のRaspberry Piを使いながら、様々な活用方法を考えて実際に使ってみているところです。初代のRPiから使いはじめて、段々と高性能になっていくのを実感しながら、Raspberry Pi 5まで買い揃えています。一方、さまざまなスペックが向上し値段も上がっていく中で、SDカードから起動するという簡便さの反面、動作速度の遅さが足を引っ張ってしまうという問題から、高性能になったRPi 5の購入を躊躇する状況も実感しています。そもそも、RPi 5だと冷却や電源にも気(お金)を使わなければなりませんし、いろいろと買い揃えた結果として使えないのでは話になりません。
#まぁ今回の話は、さらに課金をするのですけどね。(^^;;;

初期の頃のRPiでは、そもそもマシンスペックが非力なため、SDカード起動でも速度的に釣り合っている気がしていましたが、RPi 5だとやはりSDカードレベルでは実力が発揮できない感じがするので、もっと速いストレージを使いたくなります。幸い、さまざまなメーカーがRPi 5にSSDを載せる拡張ボードを製造販売していて、値段的にもこなれた状況になってきたので、使用感を確認するためにも実際にやってみることにしました。
#歴代Raspberry piについては、「Raspberry Pi computer hardware」を参照してください。

今回使ったSSDは、Amazonで購入したfanxiangというメーカーのもので、128GB(PCIe Gen3.0×4 M.2 Type2280 NVMe)のSSDです。これを、GeekwormのRPi 5ケース(P579)と、セットで販売されていたSSDを載せる拡張ボード(X1001)に載せることにしました。公式ActiveCoolerも同梱されていたので、お得感があって衝動買いしてしまいました。最近は、PCパーツが高騰していて、特にメモリやSSDは購入するのを躊躇するレベルになっていますが、そんな中でも少々安価なものを選んで購入してみました。SATA接続のSSDならもう少し安いのですが、今回購入した拡張ボードはNVMeにしか対応していないので注意が必要です。
#使い方は、「NVMe SSD boot with the Raspberry Pi 5」で説明されています。この他に「Raspberry Pi 5をNVMe SSD起動でデスクトップPC化」や「Raspberry Pi 5をNVMe SSDで起動する」も参考にしました。

組み立てが完了したらRPi 5を起動して、「LXTerminal」を開きます。コマンドで「$ sudo vi /boot/firmware/config.txt」と入力して「Enter」キーを押すと、ストレージ関連の設定ファイルが開きます。空いているところにカーソルを移動してから、「i」コマンドで編集モードにして以下の設定を書き込みます。

dtparam=pciex1
dtparam=nvme

書き込みが完了したら、「esc」キーで編集モードから出て「:wq」で保存・終了します。この状態で、「reboot」コマンドでRPi 5を再起動します。起動したら、Raspbianメニューから「アクセサリ」→「SD Card Copier」を起動して、SSDにSDカードのbootイメージをコピーします。その際、「SD Card Copier」の「New Partition UUIDs」にチェックを入れておくことを忘れないようにします。

「Copy From Device:」にSDカードを選択し、「Copy To Device:」にSSDを選択して「Start」ボタンをクリックします。しばらく待つとコピーが完了するので、RPiをシャットダウンしてSDカードを抜き取ります。再び電源を入れると、無事にSSDから起動するようになりました。起動があまりにも速いので驚きましたが、その後の操作ももたつきがなく、PCとして申し分がないほどの快速さになりました。これを体験してしまうと、SDカードで起動する他のRPiを使うのが嫌になってしまう可能性も…。(^^;;;
#起動ストレージの優先順位は、変更していません。SSDに支障が出た場合には、SDカードからの起動を優先した方が良いと考えたためです。

調子に乗って、「GIMP」や「Rosegarden」などのアプリも追加でインストールしてしまいました。メインで使用している自作PCLinux Mintで動かしている)に近い快適さになりそうで、しばらくは楽しめそうな予感がしています。
#少なくとも、職場で使っているPCよりは何倍も快…(以下自粛)

2026年6月7日日曜日

音声合成LSI(ATP3011とATP3012)を使ってみる〜Arduino(互換機を含む)用のシールドを試作する

前回の続きです。これまで、株式会社アクエストが開発している「音声合成LSI(「ATP3011(←データシートPDF)」と「ATP3012(←データシートPDF)」)」を試用してきました。前回は、ATP3011からも音声を出すことができて、仮称「ATP301x音声ボード」まで作ることができました。(ATP3012系で音声が出ない問題は解決していませんが…)この勢いの乗って、今回は「Arduino ATP301x音声シールド」を作っていきたいと思います。
#この音声合成LSIの詳細は、公式Webサイトの「音声合成LSI「AquesTalk pico LSI」」をご覧ください。

前回までに、Arduino互換機の「Seeeduino XIAOSeeed Studio)」を使ってATP3011で音声を出して、一つの基板にSeeeduino XIAOとATP3011を載せた音声ボードを作るところまでできました。この知見を活かして、せっかくなら各種Arduinoに載せられるようなシールドを作ってしまおうと考えました。

Arduinoのシールドについては、フィジカル・コンピューティングを始めた初期の頃からいろいろとやっていたのですが、このところすっかりご無沙汰状態でした。シールドを載せるArduinoは、Arduino UNO R3(互換機)を選びました。そもそも、前回から参考にしているmisawa @ELIXIRさんの「1000円で作る日本語音声合成装置」には、Arudino UNOでの使用例が示されています。この回路をシールドにするだけなので、それほど難しいことはないと思って作業を始めました。

自宅に在庫があったArduino用ユニバーサルシールド基板は、サンハヤトの「UB-ARD03」でした。Arduinoの独特なピン配置を一般的な2.54mmピッチに変換しながら、ユニバーサル基板部分には様々な電子部品を載せられるようになっています。ただし、ピンの変換をした内側の1列は、それぞれVCCとGNDになっているので、純粋にユニバーサル基板として使えるところは少し狭くなっています。しかも、ゼロプレッシャーICソケットを載せるので、使えるところは限られてしまいます。表裏を何度も確認しながら、狭いところに配線を取り回してどうにか回路を組むことができました。

できあがった自作シールドをArduino UNOに載せて動作確認をしてみましたが、うまく動いてくれません。はじめは、RX/TXの配線あたりに原因があるのではないかと考えて、被覆付きのケーブルを使って最短距離でつないでみましたが、出力されているはずの「音声」を聞き取れるようにはなりませんでした。テスターをあてて導通を確認したり、デジタル顕微鏡ではんだブリッジやハンダ不良がないか確認をしてみました。ところどころで導通が不安定に感じるところはありましたが、概ね導通に問題はなく、原因を特定することができませんでした。

半分ヤケ○ソになりながら、かつてブレッドボードを載せたArduinoシールドがあったことを思い出して、ユニバーサルシールド基板に小さなブレッドボードを載せてやってみることにしました。先に作った自作シールドのときと同じように、Arduino UNOとATP3011との間で通信が行われているであろう雰囲気(定期的にパルスのようなノイズが出る)は感じられるのですが、残念ながら音声を出すことができませんでした。

ATP3011のデータシートには、もう少し複雑な回路例が示されているので、こちらを参考にしてチャレンジしてみるのもよいかもしれません。そもそも今回の動作確認では、本家版のArduino UNO R3ではなくその互換機を使っていますが、本家版のArduino UNO R3だったらどうなるのか、Arduino UNO R4でやってみたら…と試行錯誤は続きそうです。

「音声合成LSI(ATP3011とATP3012)を使ってみる」

2026年6月1日月曜日

音声合成LSI(ATP3011とATP3012)を使ってみる〜Seeeduino XIAO(Arduino互換機)でコントロールしてみる

以前の続きです。株式会社アクエストが開発している「音声合成LSI(「ATP3011(←データシートPDF)」と「ATP3012」(←データシートPDF)」)」を試用しているのですが、ATP3011からは音声を出すことができていませんでした。今回は、「ATP3011を使って音声を出す」ことを目標にして、動作実験を進めていきたいと思います。
#この音声合成LSIの詳細は、公式Webサイトの「音声合成LSI「AquesTalk pico LSI」」をご覧ください。

これまでは、Arduino IDEなどを使ったシリアル通信で音声を出す方法で動作実験をしてきましたが、Arduinoの互換機や自作互換マイコンボードなどにATP3011やATP3012を載せ替えて動作実験をすると、ATP3012系のLSIでは音声が出せるものの、ATP3011系のLSIでは音声が出せていませんでした。別の方法として、Arduino(互換機含む)にプログラムして、これらの音声合成LSIをつないでコントロールする方法があるので、今回はそちらで試してみることにします。
#Arduinoのプログラム方法は、misawa @ELIXIRさんの「1000円で作る日本語音声合成装置」を参考にしました。

今回選んだArudino互換機は、Seeed Studioの「Seeeduino XIAO」です。自宅に在庫があったのと、小さいので回路設計が簡単にできて動作実験環境が楽に構築できると思ったからでした。Seeeduino XIAOの設定等については、公式サイトにガイドがありましたので参考にしてください。

Arduino IDE(2.3.8)を起動して、「ファイル」メニューから「基本設定…」をクリックします。すると、基本設定の窓が開くので、「設定」タグの「追加のボードマネージャのURL:」以下に、

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

と入力します。既に入力されているURLがある場合には、URLを入力するテキストフィールドの右にあるボタン(複数のURLを入力する窓を開くためのボタン)をクリックすると、2つ以上のURL(1行に1つ)を入力することができるようになります。入力が終わって「OK」ボタンをクリックすると、ボードマネージャで「Seeed SAMD Boards」を検索してインストールすることができました。(作業時のバージョンは、1.8.5でした)インストールが終わったら、「ツール」メニューから「ボード:」→「Seeeduino SAMD Board」→「Seeeduino XIAO」を選択します。
#Arduino IDEの動作環境は、いつものMacBook Proを使用しています。

ここでSeeeduino XIAOをUSB-CケーブルでMacBook Proにつなぎます。すると、「ツール」メニューの「ポート:」から、「/dev.cu.usbmodem******(Seeeduino XIAO)」を選ぶことができるようになるので、これを選んで準備完了です。動作確認のため、「ファイル」メニューから「スケッチ例」→「01.Basics」→「Blink」を開いて「→(コンパイル&書き込み)」ボタンをクリックすると、問題なくコンパイルと書き込みが完了してLチカ動作確認ができました。

次に、先程紹介した、「1000円で…」のWebページで紹介されていたサンプルスケッチを参考にして、Arduino IDEでプログラムをしていきます。変更したところは、RXとTXのピンを「2」と「3」に設定しました。そもそもSeeeduino XIAOのRX/TXの入出力ピンは、「6」と「7」に割り振られています。Arduino UNOの場合は、「0」と「1」に割り振られていて、サンプルスケッチでは、「12」と「13」にRXとTXを設定していました。サンプルスケッチでRX/TXの入出力ピンを避けていることを考慮して、Seeeduino XIAOで他の役割をあまり与えられていない「2」と「3」に設定しました。(「6」と「7」に設定しても、問題はありませんでした)プログラムを書き終えたら「→(コンパイル&書き込み)」ボタンをクリックしてプログラムを書き込むと、アンプ内蔵スピーカーから音声が出ました。

今回は、一連の動作実験をブレッドボード上で行っていましたが、この環境を残しておきたいと考えて、ユニバーサル基板とピンソケット、ゼロプレッシャーICソケットなどを使って、仮称「ATP301x音声ボード」を作ってみました。

切り替えスイッチを付けてATP3011とATP3012の両方に対応できるようにしようと思いましたが、今度はATP3012の方が動いてくれませんでした。orz(しばらくは、試行錯誤が続くかも…)今回作った自作ボードは、スピーカーの中に組み込んでも使える大きさだし、教材としても使えてしまうのではないかと妄想がふくらみます。(PCB設計にも興味が向いてしまうところですが…)

「音声合成LSI(ATP3011とATP3012)を使ってみる」

2026年5月23日土曜日

エレキベースで”小さなエフェクター”を試してみる

DELAYの自作(「DELAY2399」を作ってみた)をやったときに少しだけ紹介しましたが、Amazonで”小さなエフェクター”を見つけて急に興味が湧いてしまい、勢いでいくつか購入しています。見た目も可愛いので飾っておくだけでもよいのですが、それだけではやはりもったいないので、愛用のエレキベースにつないで1つ1つ音を出して遊んでみました。音の変化を楽しみながらエフェクターをいじってみましたが、エフェクターを使う醍醐味は、並べてつなげたときの音の変化を楽しむことではないかと考えてやってみることにしました。自室にあるエレキベースとギター&ベースアンプを使って試聴してみることにして、必要なものを買い揃えてみました。

今回購入したのは、エフェクター同士をつないでいくパッチケーブルとエフェクターに電源を供給するための分岐ケーブル(デイジーチェーンケーブル)、ACアダプターのDC出力極性変換ケーブルです。DC9V出力のACアダプターは手元にあったのですが、センター+のものだったため、DC出力の極性を逆にする変換ケーブルを使ってセンター-にしてエフェクターにも使えるようにしました。
#エフェクターを含む楽器系のACアダプターは、センター-のものが多いですが、「エフェクター電源はなぜセンターマイナス仕様なのか」に詳しい解説がありました。根本的で決定的な理由があるわけではなさそうですが、最終的には「業界標準に従う」ということなのではないかと思います。

準備が整ったところでエフェクターをついでいきます。つないだエフェクターとつないだ順番は以下のとおりです。
#エレキベースは、2025年に破産したらしいFERNANDES社(←アーカイブのため重いです)のもので、中古で購入した詳細不明のものです。ギター&ベースアンプは、キョーリツの「Photogenic PG-10」を使っています。

  1. エレキベース=FERNANDES社
  2. Dynamic Wah=DONNER(Donnermusic社)
  3. FC13 Analog Phaser=FLAMMA(Shenzhen Flamma Innovation社)
  4. LEF-304 Analog Chorus=Rowin(Rowin Music社)
    ※ラベルには「LEF-300」と印刷されている
  5. Analog Delay(Echo)=iSET(ISET Audio社)←YouTubeのチャンネル
  6. LN-319 Noise Gate=Rowin(Rowin Music社)
  7. ギター&ベースアンプ「Photogenic PG-10]」=キョーリツコーポレーション

エフェクターをつなぐ順番については、SOUND HOUSEさんの「エフェクターのつなぎ方と順番 | 空間系~補正系まで」やFFECTORPRESSさんの「【エフェクター入門】エフェクターの繋ぎ方編」を参考にしました。つないだことで面白い音の変化も感じましたが、効果が実感できないつなぎ方や設定もあって、なかなか思ったように簡単には行かないものだということがわかりました。シンセサイザーも自作してみたいという気持ちはあるのですが、まだまだ知識や技能が足りなくて躊躇しています。しばらくは、エフェクターの仕組みを勉強しながら、応用範囲を広げていければと思っています。

2026年5月16日土曜日

Raspberry Piの古いOS(Raspbian)のアップデートを試みる〜Raspbian 10(buster)でのリポジトリ設定など

前回の続きです。初代Raspberry Piのアップデート作業が終わったので、残り12個の歴代Raspberry piのアップデート作業をしていきます。2年前のアップデート作業のときは、10個のRaspberry Piを紹介していましたが、数え忘れていたものと新たに買ったものとを併せて13個のRPiがあります。これを順番にアップデートしていくのですが、ちょっとずつ用途を変えているので微妙に使用環境やOSなどの状態が違うため、アップデート作業にはかなり時間がかかります。心が折れないように、気持ちを奮い立たせて作業を進めていきます。(^^;;;

アップデートを進めていくと、前回の作業でリポジトリの設定を変更した「Raspbian GNU/Linux 9.13 (stretch)」だけでなく、「Raspbian GNU/Linux 10(buster)」をインストールしていたRPiでも、「sources.list」の設定を変更しないとアップデートできないことがわかりました。早速心が折れそうになりましたが、”stretch”のときと同じように、「sources.list」と「raspi.list」内の設定を変更すればよいのではないかと考えて、作業を進めていくことにしました。「LXTerminal(←GitHubのページ)」を起動して、「/etc/apt/sources.list」を「sudo vi 」コマンドを使って開き、(「sudo vi /etc/apt/sources.list」)viの「i」コマンドで文字入力モードにしてから、「deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi」をコメントアウトします。(「#deb …」のようにする)viでの作業が終わったらESCキーを押してから「:wq」コマンドで保存&終了します。

次に「/etc/apt/sources.list.d/」ディレクトリ内の「raspi.list」を「sudo vi 」コマンドで開いて、(「sudo vi  /etc/apt/sources.list.d/raspi.list」)viの「i」コマンドで文字入力モードにしてから、「deb http://legacy.raspbian.org/raspbian/ buster main contrib non-free rpi」と追加します。viでの作業が終わったら、ESCキーを押してから「:wq」コマンドで保存&終了します。

リポジトリの設定変更を終えたところで「reboot」コマンドで再起動して、再び「LXTerminal」で「sudo apt update」コマンドを実行すると、エラーは出なくなりました。アップデートが確実に行われているか確認するために「アップデート」アプリも動かしてみましたが、タイミングの問題かもしれませんがアップデートが残っている感じがしました。少し時間をおいて「sudo apt update」をしてみたところ、アップデートが行われている感じになったので大丈夫ではないかと判断しました。(^^;;;

作業をした時点で、「Raspbian  GNU/Linux 11(bullseye)」や「Debian GNU/Linux 12(bookworm)」で動かしているRPiは、タスクバー内の「アップデート」アイコン(アップデートが可能なときだけ表示される)からのアップデートが可能でした。また、「パッケージアップデーター」からのアップデートも可能です。Raspbianメニューから「設定」→「Main Menu Editor」を開いて、「システムツール」内の「パッケージアップデーター」にチェックを入れておくと、Raspbianメニューからも「パッケージアップデーター」を起動することができます。「LXTerminal」を使って、ターミナル上で「$ sudo apt …」で作業した場合は、コマンドの履歴が残って2回目以降はターミナルでやる方が簡単かつ確実になるので、私はターミナルでやることが多いです。(^^;;;
#OSのバージョンは、ターミナルで「lsb_release -a」コマンドで確認します。RPiのモデル名は、同じく「pinout」コマンドでPRiのGPIOピンアサインとともに確認することができます。「$ cat /proc/cpuinfo(「 | grep Model」をつけるとリビジョンのところだけが表示される)」でもモデル名を確認することができます。

今回の作業をしていく中で、RPi B+に入れていたmicroSDカードが破損してしまったため、「Raspberry Pi Imager」を使って起動microSDカードを作り直しました。破損してしまったmicroSDカードは、フォーマットすらできないくらい壊れていました。非力なB+でも、最新の「Raspbian GNU/Linux 13 (trixie)」の32-bitバージョンが使えることがわかりました。

ついでに、「sudo rpi-update」コマンドですべてのRPiのファームウェアをアップデートしておきました。実用としては、反応速度なども考えるとRPi 3以上は必要かなと思うところですが、コンパクトさを活かした使い方を考えるのも楽しいので、面白い使い方を考えていきたいと思います。

「Raspberry Piの古いOS(Raspbian)のアップデートを試みる」

2026年5月8日金曜日

Raspberry Piの古いOS(Raspbian)のアップデートを試みる〜Raspbian 9.13(stretch)でのリポジトリ設定変更

このBlogでもたびたび紹介しているRaspberry Piの話です。久しぶりにRaspberry Piを使う用事ができてしまったため、しまい込んであった歴代のRaspberry Piたちを出して、ついでにOSのアップデートをしておこうと思い立ちました。中でも、初代Raspberry PiにインストールしていたRaspbianがアップデートできなかったことを思い出しました。古いRaspbianでも、リポジトリの設定を変更すればアップデートできるのではないかと考えて、やり方を調べてアップデートしてみることにしました。

作業を始めた時点での状況は、初代Raspberry PiにインストールされているRaspbianでは、「sudo apt update」コマンドが通りません。「404 Not Found」のエラーが出て、アップデートができませんでした。Google先生を頼ってネットで情報を探すと、ビューローみかみさんの「古いRaspbian Stretchでパッケージがインストールできない時の対処方法」 というページを見つけました。私がアップデートしようと思っている初代Raspberry Piで「LXTerminal(←GitHubのページ)」を起動して、「lsb_release -a」コマンドを使ってインストールされているOSを確認すると「Raspbian GNU/Linux 9.13 (stretch)」となっていたので、まさにこのページに書かれたとおりにやっていけばよいだろうと考えて、リポジトリの設定変更に取りかかりました。
#歴代のRPiについては、「Raspberry Pi computer hardware」に情報があります。

以下の作業は、「LXTerminal」でのコマンドを打ち込んで行う作業になります。難しくはないですが、コマンドでの作業に慣れていない場合は、手順などをよく確認して、それぞれのコマンドによって何が行われるのかを理解しながら作業を進めていただければと思います。

まず、「/etc/apt/」ディレクトリ内にある「sources.list」を「sudo vi」コマンドを使って開きます。(「sudo vi /etc/apt/sources.list」)viの「i」コマンドで文字入力モードにしてから、「deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi」となっている行の先頭に「#」を入れて(「#deb …」のようにする)コメントアウトします。ESCキーを押して文字入力モードからコマンド入力モードに切り替えて、「:wq」コマンドで変更内容を保存すると同時にviを終了させます。

次に「/etc/apt/sources.list.d/」ディレクトリ内に「raspi.list」というファイルがあった(なければ作る)ので、これを「sudo vi」コマンドで開いて、(「sudo vi  /etc/apt/sources.list.d/raspi.list」)同様にviの「i」コマンドで文字入力モードにしてから、「deb http://legacy.raspbian.org/raspbian/ stretch main contrib non-free rpi」と書き加えます。最後に、ESCキーを押してから「:wq」コマンドで保存&終了しました。この状態で「reboot」コマンドで再起動してから、「sudo apt update」コマンドを試してみたところ、無事にアップデートができるようになりました。
#アップデート作業の詳細は、拙Blogの過去記事をご参照ください。

溜まっていたアップデートを一気に行ったので、ただでさえ非力な初代Raspberry PiのCPU使用率が100%にはり付いたままの状態になり、大丈夫か心配になるくらい時間がかかりましたが、どうにかアップデートを終わらせることができました。古いOSのサポートを続けてもらえるのは本当にありがたいと思いましたが、スタッフ側の負担を考えると順次新しいOSへの移行を進めていく必要があるのかもしれないとも思いました。

実は、過去のRaspbianでしか使えないアプリケーションソフトがあって、できれば動作確認なども考えて動態保存しておきたいと思っています。OSをインストールしているSDカード自体も消耗品なので、バックアップを取って複製ができるようにしておくなどの対策もしなければならないと思います。手間がかかる作業なので、なかなか取り組めないのが現状ですが…。orz

「Raspberry Piの古いOS(Raspbian)のアップデートを試みる」

2026年5月1日金曜日

micro:bitのAボタンとBボタンを大きくする試み

特別支援学級で、「micro:bitで楽器作り」の授業をやったことをきっかけに、合理的な配慮の一環として、小さなAボタンとBボタンではうまく操作できない人のために、大きなAボタンとBボタンにするにはどうしたらよいかと考えていました。そもそも、micro:bitのAボタンとBボタンは、一般的なタクティルスイッチがそのまま載っているだけなので、小さくて押しにくいという課題があります。ある程度使い慣れてくれば使えないとまでは言えないレベルではあるのですが、手先の動かしが苦手な人にとっては、それだけでハードルが高くなってしまいます。micro:bitが教育用途で広く使われることを想定して開発されていることを考えれば、汎用性のある一般的な電子部品で作ることにより、コスト削減につながっているであろうことは容易に想像がつきますが、使いやすさとコストのトレード・オフな関係は、許容しなければならないことも多いので、使う側でどうにかできないものかと考えてみました。

すぐに思いついた方法として、micro:bitの基板から、AボタンとBボタンのタクティルスイッチを取り外して、使いやすいスイッチに載せ替えてしまえばよいのではないかと思いました。しかしそうなると、配慮が必要な状態が判明するたびに、micro:bitそのものを改造する必要が生じてしまいます。改造micro:bitを作り続けるのは、どう考えても合理的かつ効率的とは思えません。

そこで、micro:bit自体はそのままで、アタッチメントのようなものを取り付けて、必要な機能を付加するようなことはできないかと考えました。micro:bitには、さまざまな拡張モジュールやブレイクアウトボードと呼ばれるものが開発・販売されていますが、こうしたものを参考にしながらAボタンとBボタンだけを大きなものにするような拡張モジュールを作ることを考えて、試作してみることにしました。今回準備したパーツは、以下のとおりです。

〈使用パーツリスト〉

  • micro:bit用カードエッジコネクタ
  • ユニバーサル基板(ブレッドボードを模したもの)
  • 大きなタクティルスイッチ*2
  • 整流ダイオード*2(1N4002)

まずは、micro:bitのAボタンとBボタンは、どこの端子につながっているのかを確かめます。micro:bitのピンアウトの情報を確認すると、AボタンはP5に、BボタンはP11につながっていることがわかりました。あとは、これらの端子を大きなタクティルスイッチとつなぐようにして、反対側をGNDに落とすようにすれば大きなボタンで操作ができるようになるはずです。簡易的につないで動作確認をしてみたところ、問題なく操作することがわかりました。あとは、モジュール化するだけです。
#「Edge Connector & micro:bit pinout」では、新旧micro:bitのピンアウトが確認できます。

今回使ったカードエッジコネクタのピン配置は、ユニバーサル基板よりもピッチが狭い(半分の幅になっている)ので、そのままではユニバーサル基板に取り付けられません。できれば、カードエッジコネクタのピンを間引いて、うまくユニバーサル基板にはめてしまいたいところです。そこで、micro:bitの各ピンとカードエッジコネクタの各ピンがどのように対応しているのかを確認してみました。micro:bitのピンを見ると、広いピン(「0」「1」「2」「3V」「GND」)1つ分の幅は、狭いピン4つ分の幅と同じになっていて、数えていくとmicro:bitのP5のピンとP11のピンにつながるカードエッジコネクタのピンは、交互に残しながらカードエッジコネクタのピンを間引く(つまり、ユニバーサル基板のピッチに合うようにする)ことで、両方とも使える状態にすることができがそうだということがわかりました。


※ブレッドボードユニバーサル基板を裏表逆に使っているのは、回路としてどのようにつながっているのかわかりやすくしたかったためです。

地道な作業ではありましたが、どうにか加工を終えてユニバーサル基板にカードエッジコネクタを載せることができました。横幅はうまくユニバーサル基板のピッチ似合わせることができましたが、縦の幅は少し狭かったので、無理やり広げて挿し込みました。配線も済ませて動作確認をしてみると、無事にAボタンとBボタンとして機能してくれました。これで、大きなAボタンとBボタンが必要になったときには、この拡張モジュールを使えばよいことになります。作り方も簡単だし、安価な部品しか使っていないので、材料さえ揃えられれば誰にでも作れると思います。(本音としては、カードエッジコネクタ付きのユニバーサル基板があるとありがたいところですが…)
#よろしければ、このBlogのmicro:bitに関する過去記事もご覧ください。