CircuitPythonのFAQ

AdafruitのLearning Guideの非公式日本語訳です。
英語独特の言い回しを可能な限り日本語的な表現に直していますが、不自然に感じる部分も残っていますことを何卒ご容赦ください。

CircuitPython 3.xや2.xを使い続けなければなりませんが、互換性のあるライブラリはどこにありますか?

CircuitPython 2.xと3.xのライブラリバンドルのビルドやサポートは終了しました。CircuitPythonを最新バージョンにアップデートして、現在のバージョンのライブラリを使用することを強くお勧めします。しかし、何らかの理由でアップデートできない場合は、ここで最後に利用可能な2.xビルドをここで最後に利用可能な3.xビルドを見つけることができます。

CircuitPythonでESP8266やESP32はサポートされていますか?なぜですか?

4.xではESP8266のサポートを終了しています。

https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-for-esp8266

CircuitPythonでインターネットに接続するには?

WiFiサポートを追加したい場合は、コプロセッサとしてのESP32/ESP8266のガイドをご覧ください。

CircuitPythonにasyncioのサポートはありますか?

現時点ではCircuitPythonではasyncioをサポートしていません

RGB NeoPixel/DotStar LEDが変な色で点滅しています。

ステータスLEDはCircuitPythonボードに何が起こっているかを教えてくれます。色の意味についてはこちらをご覧ください。

MemoryErrorとは何ですか?

メモリ割り当てエラーは、ボードにたくさんのメモリを保存しようとしたときに発生します。
CircuitPythonマイコンボードには、使用できるメモリの量に制限があります。M0 Expressボードでは約250行のコードを持つことができます。あまりにも多くのライブラリをインポートしたり、大きなライブラリを組み合わせてインポートしたり、コード行数が多すぎるプログラムを実行しようとすると、コードの実行に失敗し、シリアルコンソール(REPL)にMemoryErrorが表示されます。

MemoryErrorが発生した場合はどうすればいいですか?

ボードをリセットしてみてください。ボードをリセットするたびに、メモリが再割り当てされます。これで問題が解決する可能性は低いですが、簡単な手順なので試してみる価値はあります。

.mpyバージョンのライブラリを使用していることを確認してください。CircuitPythonのライブラリはすべて.mpy形式でバンドルされています。お使いのCircuitPythonのバージョンに合った最新のライブラリバンドルを使用していることを確認してください。

それでも問題が解決しない場合は、コードを短くしてみてください。コメントを短くしたり、余計なコードや不要なコードを削除したり、コードを短くするためにできるクリーンアップをしてみてください。多くの関数を使用している場合は、それらを別のライブラリに移動し、そのライブラリの .mpy を作成してコードにインポートしてみてください。

ファイル全体を .mpy にして、それを code.py にインポートすることができます。これは、ボード上でコードを編集することができないことを意味しますが、スペースを節約することができます。

Import文の順番はメモリに影響しますか?

割り当て順やオブジェクトのサイズによってメモリの断片化が異なる場合があります。.mpyファイルをロードするとメモリ消費が少なくなるので、編集していないファイルにはそうすることをお勧めします。

自分で.mpyファイルを作成するにはどうすればいいですか?

mpy-crossを使えば、独自の.mpyファイルを作成することができます。

お使いのオペレーティングシステム用のCircuitPython 2.xバージョンのmpy-crossは、CircuitPythonのリリースページから最新の2.xバージョンをダウンロードすることができます。

CircuitPythonのGitHubリポジトリをクローンし、circuitPython/mpy-cross/ディレクトリでmakeを実行することで、CircuitPython 3.x用のmpy-crossをビルドすることができます。そして、./mpy-cross path/to/foo.pyを実行して、元のファイルと同じディレクトリにfoo.mpyを作成します。

どのようにしてメモリの空き容量を確認するのですか?

Import gc
gc.mem_free()

使用可能なバイト数を教えてくれます。

CircuitPythonは割り込みをサポートしていますか?

現在のところ、CircuitPythonは割り込みをサポートしていません。割り込みがサポートされる時期の見通しは立っていません。

Feather M0はWINC1500に対応していますか?

いいえ、WINC1500はM0のフラッシュスペースには収まりません。

ATmega328やATmega2560などのAVRはCircuitPythonを実行できますか?

できません。

よく使われる略語

CPまたはCPy = CircuitPython
CPC = Circuit Playground Classic
CPX = Circuit Playground Express

原文: https://learn.adafruit.com/adafruit-clue/frequently-asked-questions

Follow me on Twitter