nakkyi が 2023年02月12日13時55分19秒 に編集
コメント無し
メイン画像の変更
本文の変更
Pythonの勉強のために、Raspberry Pi Picoを使って、ショートカットキーボードの製作に挑戦しました。
## 使用したもの
## <試作1号> ### 使用したもの
|部品名|型式|メーカー|数量| |---|---|---|---| |マイコン|Raspberry Pi Pico|ラズベリーパイ財団|1| |キーボード|ボタンスイッチ|自作加工|1|
|ブレッドボード|6cm×4cm|自作加工|1|
|ブレッドボード|6cm×4.5cm|自作加工|1|
|USBケーブル|巻取り式|不明|1| ## 製作方法
### <試作1号>
![キャプションを入力できます](https://camo.elchika.com/bf2b0dfda0c9efd0ced131a66c18909fcf61aca4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62333466356663372d613730652d343463362d613263362d6132336663343963626131382f61626266353338382d663933332d343537362d393933652d353164323464386238643164/) 1,ブレッドボードを6cm×4cmにカットして、Raspberry Pi Picoのサイズに加工しました。 2,Raspberry Pi Picoをブレッドボードにセットして、作動表示用LED、動作確認ブザーを付けました。 3、先ずは、KEY_SWを3個にして、 ①コピー:(Ctrl+C) ②ペースト:(Ctrl+V) ③漢字変換:(半角/全角) にしました。
![キャプションを入力できます](https://camo.elchika.com/fd7594336c2d402256b6727654b71322bf498094/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62333466356663372d613730652d343463362d613263362d6132336663343963626131382f65303032376339392d326338622d343839312d383639372d396639313333376432346532/) 1,ブレッドボードを6cm×4cmにカットして、Raspberry Pi Picoのサイズに加工しました。 2,Raspberry Pi Picoをブレッドボードにセットして、作動表示用LED、動作確認ブザーを付けました。 にしました。
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号> ![キャプションを入力できます](https://camo.elchika.com/b5693cd867c749953b771ee80a3aec175d0bd18a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62333466356663372d613730652d343463362d613263362d6132336663343963626131382f63326165396662662d643266332d343161382d383934332d393533326537613861326332/)
## <試作2号> 4×3のキーボードがあったので、それを利用して4キーとRaspberry Pi Picoを取り付けてみました。 ![キャプションを入力できます](https://camo.elchika.com/5bf34cf2107c72379750f8551975abfbb16939a4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62333466356663372d613730652d343463362d613263362d6132336663343963626131382f38626339356134652d336434622d346637622d613966622d643165353530643630363033/) ### 使用したもの |部品名|型式|メーカー|数量| |---|---|---|---| |マイコン|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,巻取り式のYSBケーブルを取り付けて完成です。丁度コネクターも中に納まりました。 にしました。
にして、 4,スズメッキ線で、配線を行いました。 ![キャプションを入力できます](https://camo.elchika.com/8a15a8157b0d9a2edcc01398480c085d496b93bc/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62333466356663372d613730652d343463362d613263362d6132336663343963626131382f61363336623933312d323766312d343338642d383333362d653463643061343739343134/)
## 回路図 配線はこれだけです。
![キャプションを入力できます](https://camo.elchika.com/feb1caa24eb05c2fb611f615b64442464da20e6a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62333466356663372d613730652d343463362d613263362d6132336663343963626131382f38643831326638392d366234322d346237642d616164662d326134383335376565366263/)
![キャプションを入力できます](https://camo.elchika.com/1fe34694003c14011b9930ca850f4c8709ce6eff/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62333466356663372d613730652d343463362d613263362d6132336663343963626131382f35663731346363352d626638352d343464342d623366362d333132656439643930616438/)
## 試作2号のソースコード ```[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.GP19) #カット Ctr+X
sw1 = digitalio.DigitalInOut(board.GP17) #カット Ctr+X
sw1.direction = digitalio.Direction.INPUT sw1.pull = digitalio.Pull.UP
sw2 = digitalio.DigitalInOut(board.GP20) #コピー Ctrl+C
sw2 = digitalio.DigitalInOut(board.GP19) #コピー Ctrl+C
sw2.direction = digitalio.Direction.INPUT sw2.pull = digitalio.Pull.UP
sw3 = digitalio.DigitalInOut(board.GP18) #ペースト Ctrl+V
sw3 = digitalio.DigitalInOut(board.GP26) #ペースト Ctrl+V
sw3.direction = digitalio.Direction.INPUT sw3.pull = digitalio.Pull.UP
sw4 = digitalio.DigitalInOut(board.GP21) #全体指定 Ctrl+A
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) ``` ## まとめ
ワンボタンキーボードのマイコン「Beetle」を使って、3ボタンのショートカットキーボードを作ってみました。ソースコードの1部を書き換えるだけで、自分だけのショートカットキーボードになります。
Raspberry Pi Picoを使って、ブレッドボードに3ボタンのショートカットキーボードを試作してみました。小さすぎて操作性が悪いので、キーボードスイッチで作りました。、ベースも安定して使い易い自分だけのショートカットキーボードになります。