Pythonの勉強のために、Raspberry Pi Picoを使って、ショートカットキーボードの製作に挑戦しました。
<試作1号>
使用したもの
部品名 | 型式 | メーカー | 数量 |
---|---|---|---|
マイコン | Raspberry Pi Pico | ラズベリーパイ財団 | 1 |
キーボード | ボタンスイッチ | 自作加工 | 1 |
ブレッドボード | 6cm×4.5cm | 自作加工 | 1 |
USBケーブル | 巻取り式 | 不明 | 1 |
製作方法
1,ブレッドボードを6cm×4cmにカットして、Raspberry Pi Picoのサイズに加工しました。
2,Raspberry Pi Picoをブレッドボードにセットして、作動表示用LED、動作確認ブザーを付けました。
3、先ずは、KEY_SWを3個にして、
①コピー:(Ctrl+C)
②ペースト:(Ctrl+V)
③漢字変換:(半角/全角)
にしました。
3,試作1号のソースコード
---<> Code---
import time
import board
import digitalio
import pwmio
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
#キーボードデバイスのセットアップ
kbd = Keyboard(usb_hid.devices)
#各スイッチの端子設定
sw1 = digitalio.DigitalInOut(board.GP20)
sw1.direction = digitalio.Direction.INPUT
sw1.pull = digitalio.Pull.UP
sw2 = digitalio.DigitalInOut(board.GP26)
sw2.direction = digitalio.Direction.INPUT
sw2.pull = digitalio.Pull.UP
sw3 = digitalio.DigitalInOut(board.GP16)
sw3.direction = digitalio.Direction.INPUT
sw3.pull = digitalio.Pull.UP
#ブザー音の端子設定
buzzer = pwmio.PWMOut(board.GP15, frequency=2300)
#LEDの端子設定
led = pwmio.PWMOut(board.GP8, frequency=5000)
#LED点灯
led.duty_cycle = 8000
#直前のスイッチ状態
old_sw1_value = True
old_sw2_value = True
old_sw3_value = True
#メインループ
while True:
#ブザーを鳴らすフラグ初期化
sound_buzzer = False
#各スイッチの押下時を検知
if sw1.value == False and old_sw1_value == True:
kbd.send(Keycode.CONTROL, Keycode.C) #コピー(Windows)
sound_buzzer = True
if sw2.value == False and old_sw2_value == True:
kbd.send(Keycode.CONTROL, Keycode.V) #ペースト(Windows)
sound_buzzer = True
if sw3.value == False and old_sw3_value == True:
kbd.send(Keycode.CONTROL, Keycode.A) #全体選択(Windows)
sound_buzzer = True
#ブザーはここで鳴らす
if sound_buzzer == True:
buzzer.duty_cycle = 2000
time.sleep(0.1)
buzzer.duty_cycle = 0
#直前のスイッチ状態の更新
old_sw1_value = sw1.value
old_sw2_value = sw2.value
old_sw3_value = sw3.value
#スイッチ入力待ち
time.sleep(0.01)
<試作2号>
4×3のキーボードがあったので、それを利用して4キーとRaspberry Pi Picoを取り付けてみました。
使用したもの
部品名 | 型式 | メーカー | 数量 |
---|---|---|---|
マイコン | Raspberry Pi Pico | ラズベリーパイ財団 | 1 |
キースイッチ | キースイッチ | 不明 | 4 |
LED | 赤色 | 不明 | 1 |
ブザー | 圧電ブザー | 不明 | 1 |
ベースボード | 8cm×6.3cm | 自作加工 | 1 |
USBケーブル | 巻取り式 | 不明 | 1 |
1,ユニバーサル基板を8cm×4cmにカットして、ベースボードに取り付けました。
2,Raspberry Pi Picoをユニバーサル基板にハンダ付けして、作動表示用LED、動作確認ブザーもハンダ付けしました。
3,ソースコードは、KEY_SWを4個にして、
①切り取り:(Ctrl+X)
②コピー:(Ctrl+C)
③ペースト:(Ctrl+V)
④すべてを選択:(Ctrl+A)
にして、
4,スズメッキ線で、配線を行いました。
回路図
試作2号のソースコード
import time
import board
import digitalio
import pwmio
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
#キーボードデバイスのセットアップ
kbd = Keyboard(usb_hid.devices)
#各スイッチの端子設定
sw1 = digitalio.DigitalInOut(board.GP17) #カット Ctr+X
sw1.direction = digitalio.Direction.INPUT
sw1.pull = digitalio.Pull.UP
sw2 = digitalio.DigitalInOut(board.GP19) #コピー Ctrl+C
sw2.direction = digitalio.Direction.INPUT
sw2.pull = digitalio.Pull.UP
sw3 = digitalio.DigitalInOut(board.GP26) #ペースト Ctrl+V
sw3.direction = digitalio.Direction.INPUT
sw3.pull = digitalio.Pull.UP
sw4 = digitalio.DigitalInOut(board.GP28) #全体指定 Ctrl+A
sw4.direction = digitalio.Direction.INPUT
sw4.pull = digitalio.Pull.UP
#ブザー音の端子設定
buzzer = pwmio.PWMOut(board.GP15, frequency=2300)
#LEDの端子設定
led = pwmio.PWMOut(board.GP8, frequency=5000)
#LED点灯
led.duty_cycle = 8000
#直前のスイッチ状態
old_sw1_value = True
old_sw2_value = True
old_sw3_value = True
old_sw4_value = True
#メインループ
while True:
#ブザーを鳴らすフラグ初期化
sound_buzzer = False
#各スイッチの押下時を検知
if sw1.value == False and old_sw1_value == True:
kbd.send(Keycode.CONTROL, Keycode.X) #カット(Windows)
sound_buzzer = True
if sw2.value == False and old_sw2_value == True:
kbd.send(Keycode.CONTROL, Keycode.C) #コピー(Windows)
sound_buzzer = True
if sw3.value == False and old_sw3_value == True:
kbd.send(Keycode.CONTROL, Keycode.V) #ペースト(Windows)
sound_buzzer = True
if sw4.value == False and old_sw4_value == True:
kbd.send(Keycode.CONTROL, Keycode.A) #全体指定(Windows)
sound_buzzer = True
#ブザーはここで鳴らす
if sound_buzzer == True:
buzzer.duty_cycle = 2000
time.sleep(0.1)
buzzer.duty_cycle = 0
#直前のスイッチ状態の更新
old_sw1_value = sw1.value
old_sw2_value = sw2.value
old_sw3_value = sw3.value
old_sw4_value = sw4.value
#スイッチ入力待ち
time.sleep(0.01)
まとめ
Raspberry Pi Picoを使って、ブレッドボードに3ボタンのショートカットキーボードを試作してみました。小さすぎて操作性が悪いので、キーボードスイッチで作りました。、ベースも安定して使い易い自分だけのショートカットキーボードになります。
1
投稿者の人気記事
-
nakkyi
さんが
2023/02/07
に
編集
をしました。
(メッセージ: 初版)
-
nakkyi
さんが
2023/02/12
に
編集
をしました。
Opening
Kazekaoru
2023/12/08
ログインしてコメントを投稿する突然のご連絡失礼いたします。
PCBGOGOマーケティング部門の葉と申します。
宣伝協力のことに関しまして、
一度ご相談させて頂けませんでしょうか。
ご興味がおありであれば、一度ご連絡をいただけますでしょうか。
ご多用の折恐れ入りますが、ぜひご検討くださいますよう
お願い申し上げます。
メール:service10@pcbgogo.jp