5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ZOZOAdvent Calendar 2023

Day 7

HackyPiで遊んでみるの巻_1

Last updated at Posted at 2023-12-06

ずいぶん前に届いてはいたが、ようやく触る気が起きた。
どうも日本語記事が少ない様なのでチョロチョロっと遊んでみる。

この記事で紹介する方法は、教育目的や研究目的でのみ使用してください。不正な目的で使用する場合、著作権法や不正アクセス禁止法などの法律に違反する可能性があります

Hackypiとはなんぞや

IMG_6068.jpg
  • KickStarterプロジェクト
  • セキュリティやコーディング教育用のUSBデバイス
  • RaspberryPiベースで作られており、PCに接続すると自動でプログラムを走らせてくれる
  • 小さいLCDが付いていてかわいい

セットアップ

基本的には公式のREADMEを読むのが早い
流れとしては...

  1. HackyPiにCircuitPythonのファームウェアをインストール
  2. 編集用のIDEを準備
  3. 動作確認

1. HackyPiにCircuitPythonのファームウェアをインストール

  • まずは上記をダウンロード
  • 側面についているブートボタンを押しながらPCに接続
  • 認識されたデバイスにダウンロードしたファームウェアをドロップする
スクリーンショット 2023-12-02 13.07.34.png
  • デバイスの中身が上記になれば完了

2. 編集用のIDEを準備

  • OSに合ったThonny IDEをインストール
  • IDEを起動し、preferencesインタプリタから以下を設定
    • インタプリタ: CircuitPython(ジェネリック)
    • ポート: HackyPiを接続しているポート
スクリーンショット 2023-12-02 13.15.59.png

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
hackypi_hello.gif
次はUSBを接続した際に、自動でプログラムが走るところを見てみる。
まずは上記プログラムをHackyPIへcode.pyというファイル名で保存
hackypi_hello.gif
hackypi_hello.gif
一旦HackyPIを取り出し、再接続
hackypi_hello.gif
上記の様に自動でターミナルが起動、hello worldされてて嬉しい(画像アップロード制限でガビガビ画質)

終わりに

とりあえずセットアップと接続した際のプログラム自動起動まで動いた。
次回はもうちょっとハッキングぽい事を試してみるという気持ち。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?