nakkyiのアイコン画像
nakkyi 2023年02月07日作成 (2023年02月12日更新)
製作品 製作品 Lチカ Lチカ 閲覧数 9570
nakkyi 2023年02月07日作成 (2023年02月12日更新) 製作品 製作品 Lチカ Lチカ 閲覧数 9570

ラズパイPICOで、ショートカットキーボードを作ってみた。

ラズパイPICOで、ショートカットキーボードを作ってみた。

Pythonの勉強のために、Raspberry Pi Picoを使って、ショートカットキーボードの製作に挑戦しました。

<試作1号>

使用したもの

部品名 型式 メーカー 数量
マイコン Raspberry Pi Pico ラズベリーパイ財団
キーボード ボタンスイッチ 自作加工
ブレッドボード 6cm×4.5cm 自作加工
USBケーブル 巻取り式 不明

製作方法

キャプションを入力できます
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 ラズベリーパイ財団
キースイッチ キースイッチ 不明
LED 赤色 不明
ブザー 圧電ブザー 不明
ベースボード 8cm×6.3cm 自作加工
USBケーブル 巻取り式 不明

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のアイコン画像 Kazekaoru 2023/12/08

    突然のご連絡失礼いたします。
    PCBGOGOマーケティング部門の葉と申します。

    宣伝協力のことに関しまして、
    一度ご相談させて頂けませんでしょうか。

    ご興味がおありであれば、一度ご連絡をいただけますでしょうか。

    ご多用の折恐れ入りますが、ぜひご検討くださいますよう
    お願い申し上げます。
    メール:service10@pcbgogo.jp

    0 件の返信が折りたたまれています
ログインしてコメントを投稿する