『マイコンで沢山のスイッチを使いたい 〜シフトレジスタ編〜』
みなさ〜ん👋🔲M5Stack 使ってますか〜❓
最近の日本ではさまざまな作品に組み込まれた M5Stack を見ることも増えてきました。
M5Stackとは💡🔲 画面、ボタン、各種センサー、TFカードスロット、GROVEポートや沢山の外部モジュールとの連携などなど、プロトタイプを始めるのに至れり尽くせりな開発モジュールです。
初心者向けの解説サイトや書籍も増えてます。コロっと四角い見た目もカワイイですし、興味のある方はぜひ足を突っ込んでみてください🦵
至れり尽くせりだけに足りないところもある
さまざまな機能がはじめから標準搭載されている、ということは…。
汎用入出力に使えるピンの空きが少ない💥という問題があります。後から追加したいものをさすところがそれほど余ってないということです。贅沢言うな?いやいや M5Stack は本当にいろんな「こうしたい」を作ることができるんですよ。さすところ無いじゃん💢くらいで可能性を狭めてしまっては勿体無い。
🧠🧠🧠🌀🌀🌀
72個のボタンを使いたい❗️どうする入力問題
2023年の初めにnecobitが作った「ソレノイドラムマシン」は押すところ、つまり入力の数がとても多いです。
左上の黒い四角画面が M5Stack。基板上のちっこい黒丸◉が操作ボタン、72個ある。
どうやって入力問題をクリアしたのか!?解説します👨🦲✨
入力を増やす手法を調べよう
身近な押すところが多いものと言えば👀パソコンのキーボード⌨️。コレには少ない入出力信号でたくさんのスイッチを扱えるようにするためにマトリクス配線という方法が使われていることが多いです。
これでできるかな〜と思ったけど、M5Stack で MIDI(2ピン)、ソレノイド用出力(4ピン)を使うと…72入力のマトリクスを組むだけの余裕はありませんでした。
それくらいでは諦めませんよ。今回は74HC165シフトレジスタ(パラレルtoシリアル)というICを使って多入力を実現できました。
実例:回路図
これがソレノイドラムマシンに使っているシフトレジスタ部の回路図です。
これが2個分だけ拡大したもの。
今回使った 74HC165 シフトレジスタは、8並行(パラレル)で入力されたものを直列(シリアル)に変換して送信するものです。
8個の入力情報を格納する箱を作って、その箱を順番に出力する感じですね。
受け取った側は、「何番目の箱は 0 or 1 」という情報を元に入出力を判定するわけです。
複数の情報が沢山ならんでマイコンに送られることになるので、当然マイコンの IO に直接入力するのに比べると動作は遅いです(あくまで比較しての話)。実際に組んでステップシーケンサー入出力で使ってみたところまったく気にならない程度の差でした。
実例:使い方
M5Stack からの接続は2つのピンでシフトレジスタに対して読み取り指令を出します。指令を出すと、シフトレジスタは1つの出力から格納された入力情報を送信します。
この入力情報を M5Stack に返すと、8個の入力情報を1ピンで取得できます。
それをなんと M5Stackに返さずに違うシフトレジスタに渡すことで、次のシフトレジスタは自分の8個+受け取った8個=16個のスイッチ状態を送信できるのです🙌
ソレノイドラムマシンでは9個のシフトレジスタを繋ぐことで、8入力*9個 = 72入力 を 3つのピンで実現しました✌️🔲
入手先
みんな大好き秋月電子には、 74LV166 というICがあり、同じ機能が実現できるのですが、秋月以外での入手性が極端に悪いので…特別な理由がなければ 74HC165 を使うことをお勧めします。
DIPタイプを使えばブレッドボードなどでも簡単に実験できますよ。入力にお困りの方はお試しあれ。
このようにして出来上がったソレノイドラムマシンは、10月開催 Maker Faire Tokyo 2023 にて遊べます!!
今年の necobit は、展示イベントのたびにアップデートが進むソレノイドラムマシンをお見せします👨🦲✨ 毎年たくさんの来場者で賑わう Maker Faire Tokyo 向けに、ステップシーケンサーを2台に増量⤴️つなげる打楽器の種類も増やして持っていきます。
仲良しさんと2人でリズム合戦なども楽しめますよ〜🎶ぜひお越しください😺
✉️ ご意見・ご質問を necobit に送る✉️
-
匿名で送りたい方はコチラ👇
-
ツイッターで送りたい方はコチラ👇
-
メールで送りたい方はコチラ👇
それでは次回のねこびっと通信まで、お楽しみに
necobit
すでに登録済みの方は こちら