タグ

ブックマーク / blog.boochow.com (2)

  • PicoのNeoPixel(WS2812)のサンプルを動かしてみた

    PicoのPIOを使ったサンプルを試すのに、一番手軽なのはNeoPixel(WS2812)のようです。 以前使った8連のNeoPixelがありましたので、これを光らせてみました。また、WS2812をPIOで制御する部分のコードも見てみます。 試したサンプルはPico Python SDKマニュアルの3.9.2にあるものです。 コードはここにあります。 結線ですが、信号を送る線はGP22になっていますので、29番ピンです。あとは3.3V(36番ピン)とGND(黒で示されているピンのどれか)をWS2812に結線します。 このデモはもともと8連のNeoPixel用に書かれているので、そのまま使えます。 動かすとこんな感じになります。 このコードはWS2812ドライバも含めMicroPythonだけで書かれています。 MicroPythonはインラインアセンブラが使えますが、Pico用のMicro

    PicoのNeoPixel(WS2812)のサンプルを動かしてみた
  • Raspberry Pi Zeroのキャッシュ・分岐予測・クロック設定

    以前、ベアメタル版MicroPythonの速度がRaspbian版に比べて非常に遅いというベンチマーク結果を載せました。 Raspberry Pi版MicroPythonのベンチマークテスト(2): 楽しくやろう。 遅い原因は、キャッシュ設定やクロックだろうなあとは思っていたのですが、なかなか試す暇がなく、今日ようやく実験してみました。 ベンチマークは、とりあえずperformanceTestだけを使いました。 これは、以下のような「+1を10秒間やり続ける」という単純なループです。 キャッシュ設定と分岐予測はCP15レジスタのbit2, 11, 12をオンにすることで、クロックはSDカードに置くconfig.txtに指定することで、それぞれ設定できます。 クロックの設定は今回は、config.txtにこちらに載っていた以下の記載を追加してみます。 fake_vsync_isr=1 fra

    Raspberry Pi Zeroのキャッシュ・分岐予測・クロック設定
  • 1