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

ラズパイ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 件の返信が折りたたまれています
ログインしてコメントを投稿する