hack のためのネタ帳, etc,,,

初期化

タクトスイッチを押しながら通電すると、USB Mass Storage として認識されるので、UF2 形式の Firmware とか Python の module とかを放り込める。

reset

Pin 30 (reboot) を GND とショートするとリセットがかかる。

開発環境

MicroPython, CircuitPython については Thonny を使うのが簡単。
Windows の場合
winget install thonny
するのが最短。

タクトスイッチを押しながらリセットした後、
「ツール」→「オプション」→「インタプリタ」から
  • MicroPython (Raspberry Pi Pico)
  • CircuitPython (ジェネリック)
のいずれかを選んで、右下の
  • Install or update MicroPython
  • Install or update CircuitPython (UF2)
から UF2 を Pico に突っ込む。

MicroPython

自動起動スクリプト

以下のファイルが Pico 起動時に自動的に読み込まれる。
  • main.py

On board LED

以下のモジュールを使うのが簡単らしい。
導入方法は、此方にある
しかし、なぜか、PyPI 経由だと、以下のようなエラーが出る。
install --progress-bar off picozero
Looking in indexes: http://127.0.0.1:36628
ERROR: Could not find a version that satisfies the requirement picozero (from versions: none)
ERROR: No matching distribution found for picozero
Error Command '['C:\\Users\\kou\\AppData\\Local\\pipkin\\cache\\workspaces\\16865c109b326b8821690ecc50081aa1\\Scripts\\python.exe', '-I', '-m', 'pip', '--no-color', '--disable-pip-version-check', '--trusted-host', '127.0.0.1', 'install', '--no-compile', '--use-pep517', '--upgrade-strategy', 'only-if-needed', 'picozero', '--index-url', 'http://127.0.0.1:36628']' returned non-zero exit status 1.

picozero-0.4.2.tar.gz 拾ってきて Thonny のローカルファイルからインストールも試してみたが、こちらも以下のようになり駄目。
install install C:/Users/kou/git/RaspPiPicoUSBHID/picozero-0.4.2.tar.gz
Looking in indexes: http://127.0.0.1:36628
Processing c:\users\kou\git\rasppipicousbhid\picozero-0.4.2.tar.gz
  Installing build dependencies: started
  Installing build dependencies: finished with status 'error'
  error: subprocess-exited-with-error
  
  pip subprocess to install build dependencies did not run successfully.
  exit code: 1
  
  [4 lines of output]
  Looking in indexes: http://127.0.0.1:36628
  ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0 (from versions: none)
  ERROR: No matching distribution found for setuptools>=40.8.0
  WARNING: There was an error checking the latest version of pip.
  [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

pip subprocess to install build dependencies did not run successfully.
exit code: 1

See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
Error Command '['C:\\Users\\kou\\AppData\\Local\\pipkin\\cache\\workspaces\\16865c109b326b8821690ecc50081aa1\\Scripts\\python.exe', '-I', '-m', 'pip', '--no-color', '--disable-pip-version-check', '--trusted-host', '127.0.0.1', 'install', '--no-compile', '--use-pep517', '--upgrade-strategy', 'only-if-needed', 'install', 'C:/Users/kou/git/RaspPiPicoUSBHID/picozero-0.4.2.tar.gz', '--index-url', 'http://127.0.0.1:36628']' returned non-zero exit status 1.

Getting Started 見ると、Thonny の File Viewer から、picozero.py を Raspberry Pi Pico の / に upload する方法として以下の記述があったので、これを試してみると入った。
参考:
なお、試してないが machine.Pin() で "LED" 指定するとアクセスできるという情報も。

CircuitPython

自動起動スクリプト

以下のファイルが Pico 起動時に自動的に読み込まれる。
  • /boot.py
  • /code.py

セーフモード

起動中に reset するとセーフモードに入れる。
boot.py や code.py の読み込みが抑制されるので、これらのファイルでやらかした場合は、セーフモードへ。

参考:
  • adafruit / Learn / CircuitPython Safe Mode / Safe Mode Reasons# Manual Safe Mode

Onboard LED

以下にサンプルコードがある。
CircuitPython 同梱の board, digitalio モジュールで対応。

USB HID

以下のリポジトリ から、
  • adafuit_hid
を CircuitPython 入れた Pico の /lib/ 以下に放り込む。
あとはサンプルの通りと思ったんだけど、デバイス マネージャーに「HID キーボードデバイス」として認識はされるんだけど、CircuitPython から send や press、write してもメモ帳とかに何も入力されない。
なぜだー!?

2024-09-17:
RDP 経由でデスクトップにアクセスして開発していたのが原因だった。
ローカル接続されている USB HID は RDP 接続しているデスクトップへの入力として機能しないので、よくよく考えてみれば、当たり前体操だったって話。
と言う事で、サンプル通りで動いた。

参考:

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます