CircuitPython PewPew M4 を使ってみた
Makerfabs 様よりCircuitPython PewPew M4 をいただきましたので使用してみました。
目次
PewPew M4
PewPew M4はマイコンATSAMD51にディスプレイST7735R、ボタン、ブザーなどが搭載されたミニゲーム機です。
アクリルカバーやボタンなど組立てが必要です。
単4電池2本を入れて電源スイッチを入れると起動します。
4種のゲームが最初から入っておりメニューから選んで遊ぶことができます。
かわいい!
ゲーム機としてもいいんだけど
SAMD51にディスプレイとボタンがついたモノとして
とらえていろんな応用できそう! pic.twitter.com/gEx34lOKyS— HomeMadeGarbage (@H0meMadeGarbage) July 17, 2020
参考
CircuitPython
PewPew M4はCircuitPython環境でコーディングすることが可能です。
マイコン向けのPython環境であるMicroPythonをAdafruit社のマイコン用に派生させたのがCircuitPythonです。
PewPew M4のマイクロUSB端子からPCに接続すると”CIRCUITPY”フォルダが現れます。
ゲーム選択メニュー用コード(main.py)や各種ゲームのpythonコードが入っています。
CircuitPythonバージョンアップ
デフォルトではAdafruit CircuitPython 5.0.0がインストールされていましたので
2020年7月時点で最新のver. 5.3.1にバージョンアップしてみます。
以下でCircuitPythonのインストーラUF2ファイルをダウンロードします。
https://circuitpython.org/board/pewpew_m4/
PewPew M4裏面のR(リセット)端子をGNDにチョンチョンと2回ショートするとUF2ファイルインストールモードになり”pewboot”フォルダが開きます。
“pewboot”フォルダにUF2ファイルをドラッグしてインストールします。
インストールが終わると”CIRCUITPY”フォルダが開きバージョンアップ終了です。
バージョンはフォルダ内のboot_out.txtで確認できます。
ゲーム追加
以下でPewPew用のゲームコードが公開されています。
https://github.com/pewpew-game
ここではオセロゲームを追加してみました。
https://github.com/pewpew-game/game-othello
DLしたPythonコードothello.pyを”CIRCUITPY”フォルダにドラッグしてコピーするだけです。
オセロがメニューに追加され遊ぶことができます。
CircuitPythonコーディング
コーディングのエディタとしてMuを使用しました。以下でダウンロードしてインストールします。
https://codewith.mu/en/download
Mu起動後モードはAdafruit CircutPythonを選択します。
マイコンを接続して”CIRCUITPY”として認識されていればMuからコード書き込みやシリアルコンソールでの表示を確認することが可能です。
以下を参考にドットで”HomeMadeGarbege”と表示するコードを書き込んでみました。
https://github.com/pewpew-game/pewpew/blob/master/games/hello.py
1 2 3 4 5 6 7 8 9 10 11 12 |
import pew pew.init() screen = pew.Pix() text = pew.Pix.from_text("HomeMadeGarbage") while True: for dx in range(-8, text.width): screen.blit(text, -dx, 1) pew.show(screen) pew.tick(1/12) |
動作
【ブログ更新】
CircuitPython PewPew M4 を使ってみた☟ブログリンクはコチラhttps://t.co/BCp6dsmdwd pic.twitter.com/TzcIqQB5UW
— HomeMadeGarbage (@H0meMadeGarbage) July 21, 2020
参考
おわりに
簡単ではありますが自分でコードを書いて実機で動作確認できました。
すこし私とPewPewとの距離が縮まったような気がいたします。
今後はさらにコードへの学習を深め自由自在にやりたいことがCircuitPythonで実施できるようになれればと願います。
できれば慣れ親しんだArduinoが使えれば助かるので、Arduinoでのコーディング方法も探っていければと考えております。