machine
--- ハードウェア関連の関数¶
machine
モジュールは、特定のボード上のハードウェアに関連する固有の関数を含んでいます。このモジュールのほとんどの機能はシステム上のハードウェアブロック(CPU、タイマー、バスなど)への直接的かつ無制限のアクセスと制御を実現します。誤って使用すると、誤動作、ロックアップ、ボードのクラッシュ、および極端な場合にはハードウェアの損傷を招く可能性があります。
machine
モジュールの関数とクラスが使うコールバックについての注記: これらのコールバックはすべて、割り込みコンテキストでの実行とみなされるべきです。これは ID >= 0 の物理デバイスと、-1 などの負のIDを持つ「仮想」デバイスの両方に当てはまります(「仮想」デバイスであっても、実際のハードウェアと実際のハードウェア割り込みのがある上に小さく用意されているものです)。 割り込みハンドラの作成 を参照してください。
その他の関数¶
-
machine.
unique_id
()¶ ボード/SoC の一意な識別子を持つバイト列を返します。基盤となるハードウェアが許せば、この値はボード/SoC の個体ごとに異なります。長さはハードウェアによって異なります(短い ID が必要な場合は、完全な値の部分文字列を使用してください)。一部の MicroPython ポートにおいて、ID はネットワークの MAC アドレスに対応します。
-
machine.
time_pulse_us
(pin, pulse_level, timeout_us=1000000, /)¶ 指定の pin のパルスを計時し、パルスの持続時間をマイクロ秒単位で返します。 pulse_level 引数には、低パルスを計時する場合に 0、高パルスを計時する場合に 1 を指定します。
ピンの現在の入力値が pulse_level と異なる場合、関数は最初にピン入力が pulse_level に等しくなるまで待機し(*)、次にそのピンが pulse_level に等しい時間を測ります(**)。ピンが既に pulse_level に等しい場合、計測はすぐに開始されます。
タイムアウトが発生した場合、上記の(*)の状態を待っていた場合は -2 を返し、上記の(**)の場合は -1 を返します。タイムアウト時間は両方のケースで同じで、 timeout_us (マイクロ秒単位)で指定します。
-
machine.
bitstream
(pin, encoding, timing, data, /)¶ 指定の pin をビットバンギングして data を送信します。引数 encoding には、ビットのエンコード方法を指定し、 timing にはエンコードに応じたタイミングを指定します。
サポートされているエンコーディングは次のとおりです:
0
は "high low" パルス幅変調です。これは 0 と 1 のビットを最上位ビットから順に時限パルスとして送信します。timing は(high_time_0, low_time_0, high_time_1, low_time_1)
の形式で、ナノ秒の4項目タプルでなければなりません。たとえば(400, 850, 800, 450)
は 800kHz の WS2812 RGB LED のタイミング仕様です。
タイミングの精度はポートによって異なります。48MHz の Cortex M0 では、せいぜい +/-120ns 程度ですが、より高速なMCU(ESP8266, ESP32, STM32, Pyboard)では +/-30ns 程度になります。
注釈
WS2812/NeoPixel ストリップの制御については、上位の API である
neopixel
モジュールを参照してください。
-
machine.
rng
()¶ 24ビットのソフトウェア生成乱数を返します。
可用性: WiPy
定数¶
クラス¶
- クラス Pin -- I/O ピンの制御
- クラス Signal -- 外部 I/O デバイスの制御と検知
- クラス ADC -- アナログ-デジタル変換
- クラス ADCBlock -- ADC ペリフェラルの制御
- クラス PWM -- パルス幅変調
- クラス UART -- 二重シリアル通信バス
- クラス SPI -- シリアルペリフェラルインタフェース バスプロトコル(コントローラ側)
- クラス I2C -- 2線式シリアルプロトコル
- クラス I2S -- IC間サウンド(Inter-IC Sound)バスプロトコル
- クラス RTC -- リアルタイムクロック
- クラス Timer -- ハードウェアタイマーの制御
- クラス WDT -- ウォッチドッグタイマー
- クラス SD -- セキュアデジタルメモリーカード(cc3200 ポートのみ)
- クラス SDCard -- SD メモリカード