ずいぶん前に届いてはいたが、ようやく触る気が起きた。
どうも日本語記事が少ない様なのでチョロチョロっと遊んでみる。
この記事で紹介する方法は、教育目的や研究目的でのみ使用してください。不正な目的で使用する場合、著作権法や不正アクセス禁止法などの法律に違反する可能性があります
Hackypiとはなんぞや
- KickStarterプロジェクト
- セキュリティやコーディング教育用のUSBデバイス
- RaspberryPiベースで作られており、PCに接続すると自動でプログラムを走らせてくれる
- 小さいLCDが付いていてかわいい
セットアップ
基本的には公式のREADMEを読むのが早い
流れとしては...
- HackyPiにCircuitPythonのファームウェアをインストール
- 編集用のIDEを準備
- 動作確認
1. HackyPiにCircuitPythonのファームウェアをインストール
- まずは上記をダウンロード
- 側面についているブートボタンを押しながらPCに接続
- 認識されたデバイスにダウンロードしたファームウェアをドロップする
- デバイスの中身が上記になれば完了
2. 編集用のIDEを準備
- OSに合ったThonny IDEをインストール
- IDEを起動し、
preferences
→インタプリタ
から以下を設定- インタプリタ: CircuitPython(ジェネリック)
- ポート: HackyPiを接続しているポート
3. 動作確認
まずは本当に動くかを見てみる
python
import time
import os
import usb_hid
import board
import terminalio
from adafruit_hid.keyboard import Keyboard, Keycode
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
try:
keyboard = Keyboard(usb_hid.devices)
keyboard_layout = KeyboardLayoutUS(keyboard)
time.sleep(1)
keyboard.send(Keycode.COMMAND, Keycode.SPACE)
time.sleep(0.3)
keyboard_layout.write('terminal')
# pcによってはエンター押下に'terminal'入力が間に合わない事があるのでtime.sleepを挟む
time.sleep(1)
keyboard.send(Keycode.ENTER)
time.sleep(1.2)
keyboard_layout.write('echo "hello world"')
time.sleep(1)
keyboard.send(Keycode.ENTER)
keyboard.release_all()
except Exception as ex:
keyboard.release_all()
raise ex
time.sleep(1)
上記を実行し、以下の様にhello world
されればOK
次はUSBを接続した際に、自動でプログラムが走るところを見てみる。
まずは上記プログラムをHackyPIへcode.py
というファイル名で保存
一旦HackyPIを取り出し、再接続
上記の様に自動でターミナルが起動、hello world
されてて嬉しい(画像アップロード制限でガビガビ画質)
終わりに
とりあえずセットアップと接続した際のプログラム自動起動まで動いた。
次回はもうちょっとハッキングぽい事を試してみるという気持ち。