CircuitPythonをつかってみた

お父ちゃん  2019.4.7 
Home > 電子工作 > CircuitPythonをつかってみた
すき 0
うんこ 0

Adafruitが提唱するCircuitPythonなるものをつかってマイコンのコーディングをしてみましたのでご報告いたします。

マイコン向けのPython環境であるMicroPythonをAdafruit社のマイコン用に派生させたのがCircuitPythonです。Pythonのように少ない記述で高い機能を実現できて、当然コンパイルの必要もなく書き込みも簡単にできました♪

 

 

CircuitPython対象マイコン

以下にサポートされているマイコンの一覧が記載されています。
 https://github.com/adafruit/circuitpython

ここではAdafruit ItsyBitsy M0 Express を使用しました。

マイコンセットアップ

CircuitPythonで生成したコードを書きこむための設定をします。マイコンボードをUSBでPCに接続します。接続時に新しいディスクとして”CIRCUITPY”と表示されていれば特に何もしなくでOKです。

“ITSYBOOT”(マイコンによって違う名前)などと表示される場合はCircuitPythonをインストールします。各ボードのインストーラは以下にあります。
 https://circuitpython.org/downloads

ここではAdafruit ItsyBitsy M0 Expressのインストーラをダウンロードします。
 https://circuitpython.org/board/itsybitsy_m0_express/

“DOWNLOAD.UF2 NOW”でインストーラであるUF2ファイルをダウンロードし、”ITSYBOOT”フォルダにドラッグします。以後は”CIRCUITPY”と表示されるようになり以上でCircuitPythonを使用するマイコン環境が整いました。

マイコンをつなげても何も表示されない場合はRESETボタンをダブルクリックしてLEDが緑色になるとPCにディスクとして表示されます。

エディタ

コーディングのエディタとしてMuを使用しました。以下でダウンロードしてインストールします。
 https://codewith.mu/en/download

Mu起動後モードはAdafruit CircutPythonを選択します。

マイコンを接続して”CIRCUITPY”として認識されていればMuからコード書き込みやシリアルコンソールでの表示を確認することが可能です。

コーディング

Muエディタで以下のLチカコードを書いてみます。

コード記載後に”保存”クリックでmain.pyとして書き込みます。するとすぐに書き込まれ動作します。

簡単!

コードも記述少なくて楽ですね。さすがPython!

バーサライタやってみた

さっそくCircutPythonでバーサライタを試してみました。

構成

LED回転部への給電はワイヤレスチャージでおこない、フォトリフレクタセンサで回転検知します。 

部品

  • マイコン Adafruit Itsy Bitsy M0 Express

     
  • フォトリフレクタ QTR-1A

     
  • LEDテープ Dotstar

     
  • ワイヤレスチャージモジュール

     
  • マブチモーター RS-540SH

     
  • 単3電池×1 ケース

     
  • 単3電池×3 ケース

     
  • ミニスライドスイッチ
     

  • モーター シャフトカップリング ジョイント

 

CircuitPythonコード

CircuitPython用のSPIやDotstar LED用のライブラリを予めダウンロードして”CIRCUITPY”のライブラリフォルダlibに保存します。

フォトリフレクタで1周する時間を測定して、1周を36分割して赤、緑、青、水色を表示します。

動作

考察

結論から言いますとCircuitPythonはArduino IDEでのコーディングと比較すると処理は遅いです。ただコード記述は少なくて済みますし何より書き込みが非常に早くて簡単です。コンパイルないので当然ですが。

CircuitPythonでちょっと痛いのが割り込みをサポートしておりません。
 https://learn.adafruit.com/introducing-itsy-bitsy-m0/frequently-asked-questions

ちょっとバーサライタには適応は厳しいと感じましたが、通常使用時にはPythonでサクサク記述して素早く色々できそうです。

参考

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください