Raspberry PiPicoを使用したMicroPythonの初心者向けガイド

Raspberry PiPicoを使用したMicroPythonの初心者向けガイド

Raspberry Pi Picoは、RaspberryPiファミリーの最新メンバーです。これまで、Raspberry Pi製品ラインは、オペレーティングシステムを実行できるシングルボードコンピューターでした。

新しいRP2040チップに基づいて、Raspberry PiPicoはMicroPythonとC / C ++の両方をサポートします。Raspberry Pi Picoを使用すると、初心者や愛好家はハードウェアと接続されたデバイスを制御できます。Raspberry Pi PicoのGPIOピンは、ライトのフェード、スイッチの状態の読み取りなどに使用できます。

MicroPythonとは何ですか?

マイクロコントローラーでのプログラミングは、Arduino開発ボードで使用されているように、主にC言語で行われました。その後、2014年に、マイクロコントローラー用の新しいプログラミング言語であるMicroPythonが公開されました。MicroPythonを使用すると、マイクロコントローラーのベアメタル上にPythonコードを記述できます。これは、オペレーティングシステムなしでPythonコードを記述できることを意味します。

Pythonは、初心者向けの高水準プログラミング言語であり、ユーザーはプログラミングの概念の学習に集中できます。これはMicroPythonでもほとんど同じです。

LEDの使用

ハードウェアを制御するために、Picoはその両端に沿って一連のピンと通信します。これらは汎用入出力(GPIO)ピンと呼ばれ、オンボードLEDはGPIO 25にあります。これを制御するには、最初に必要なライブラリをインポートします。

import machine

import utime

次に、マシンライブラリを使用してPin関数を呼び出し、ピンのGPIOピンを処理します。この場合、GPIO 25でピンを設定しているため、これが最初のパラメーターです。2番目のパラメーターは、入力ピンではなく出力ピンとして設定します。そうすることで、ピンは何をすべきかを認識します。

onboard_led = machine.Pin(25, machine.Pin.OUT)

続行するには、次のコードで、PicoにGPIO 25のピンを1、つまり「オン」に設定するように指示しています。

while True: onboard_led.value(1)

ただし、何も起こらないように見えることに気付くかもしれません。これは、ピコが非常に高速に動作するため、LEDが目で認識できるよりも速く点灯するためです。これを修正するには、utimeライブラリのsleepコマンドを使用してプログラムの速度を落とす必要があります。LEDがオン/オフする完全なコードを以下に示します。

import machine import utime onboard_led = machine.Pin(25, machine.Pin.OUT) while True: onboard_led.value(1) utime.sleep(5) onboard_led.value(0) utime.sleep(5)

LEDのオンとオフの切り替え

または、トグルコマンドを使用してLEDをオンまたはオフにする別の方法があります

import machine import utime onboard_led = machine.Pin(25, machine.Pin.OUT) while True: led_onboard.toggle() utime.sleep(5)

この例では、toggleコマンドは、LEDの値を1以降0に設定する必要性を置き換えます。プログラムが実行されている限り、LEDは5秒間点灯し、その後さらに5秒間消灯します。

関数の作成

Raspberry PiPicoを使用したMicroPythonの初心者向けガイド

プログラムがより複雑になると、コードのチャンクをグループ化して一貫性を維持するのに役立ちます。そのために、PythonのようなMicroPythonでは関数を使用できます。関数は、特定のタスクを実行する関連ステートメントのグループです。たとえば、次のコードでは、printNamesという関数が定義されています。

def printNames: print(“Raspberry Pi 1”) print(“Raspberry Pi 2”) print(“Raspberry Pi 3”) print(“Raspberry Pi 4”) print(“Raspberry Pi Compute Module”) print(“Raspberry Pi 400”) print(“Raspberry Pi Pico”) printNames()

コードの最後の行は、実際に実行されるように関数を呼び出します。

ループ

Raspberry PiPicoを使用したMicroPythonの初心者向けガイド

条件付きロジックは、ブール制約がtrueと評価されるかfalseと評価されるかに応じて異なるアクションを実行します。多くのRaspberryPi Picoプロジェクトは、これらの論���的なステートメントに基づいています。次の例では、if-elseステートメントを使用して、printステートメントを実行するかどうかを決定します

i = 17 def printNames(): if i > 15: print("i is greater than 15!") else: print("i is not greater than 15") printNames()

次の例では、forループが範囲関数で使用されてます。これらのループを使用して、コードのブロックを何度も繰り返すことができます。

Raspberry PiPicoを使用したMicroPythonの初心者向けガイド

この例では、印刷コマンドが持つそれらのそれぞれの間に5秒の遅延で5回実行されるスリープコマンド:

import utime def printNames(): for i in range(5): print("Raspberry Pi Pico") utime.sleep(5) printNames()

アナログ-デジタルコンバーター(ADC)

見ることはできませんが、Raspberry PiPicoにはアナログ-デジタルコンバーターが内蔵されています。次の例では、ポテンショメータがGPIO26のRaspberryPi Picoに接続されています。これは、ADC機能が可能です。

import machine import utime pot = machine.ADC(26) while True: print(pot.read_u16()) utime.sleep(1)

ここで、このADC対応ピンを使用する前に、ADC機能を設定する必要があります。次に、プログラムの実行中、ポテンショメータの値が1秒ごとに出力されます。ADC対応のRaspberryPi Picoの他のピンには、GPIO27、28、および29が含まれます。

パルス幅変調(Pwm)

マイクロコントローラーのデジタル出力は1または0のみです。アナログ信号を作成するには、デジタル-アナログコンバーターが必要です。ただし、別の方法は、パルス幅変調または略してPWMを使用して、アナログ信号を人為的に作成することです。

デジタル信号のオンとオフを切り替えることにより、これはパルスと呼ばれます。パルスの幅を変調することにより、次の例に示すように、これは人為的にアナログ信号を作成します。

import machine import utime pot = machine.ADC(26 led = machine.PWM(machine.Pin(21)) led.freq(1000) while True: led.duty_u16(pot.read_u16())

まず、machineライブラリとutimeライブラリがインポートされました。オブジェクトonboard_ledは、GPIOピン21でアクティブ化されたPWM出力を使用して作成されます。次に、freqコマンドを使用して、パルス幅を変調する周波数を設定します。ポテンショメータを回すと想像してみてください。一方向に回すとLEDが明るくなります。

これは、ポテンショメータからのアナログ値がPWM信号のデューティサイクルの値として使用され、0〜65535の値であるために発生します。ただし、変換せずに、ポテンショメータをわずかに回すと、LEDがすでに最大輝度レベルに達する可能性があります。 。

これを修正して、ポテンショメータが最後まで回されたときにのみ最大輝度に達するように、値はduty_u16関数で変換されます。この関数は、それを0から1024までの値である16ビット整数に変換します。これは、Picoのアナログピンから受け取る値の範囲と同じです。

Raspberry PiPicoでさらに作成する

この記事では、Raspberry PiPicoでのMicroPythonの基本的なコマンドについて説明しました。詳細については、Raspberry PiPicoを使用したMicroPythonプログラミングの公式ドキュメントをご覧ください。

Raspberry Pi Picoでまだセットアップされていない場合は、Thonny IDEでMicroPythonコードを実行するか、UnicornCPUエミュレーターをチェックして仮想マイクロコントローラーをコンピューターで直接実行します。


FDMプリンターを使用した独自の卓上ミニチュアの設計と3D印刷

FDMプリンターを使用した独自の卓上ミニチュアの設計と3D印刷

D&Dやウォーハンマーのような卓上ゲームは、コンピューターやコンソールを必要とせずにインタラクティブなエンターテインメントを楽しむための素晴らしい方法を提供します。

あなたの寝室を変えるためのトップ10のDIYライトのアイデア

あなたの寝室を変えるためのトップ10のDIYライトのアイデア

照明はあなたの装飾をまとめる接着剤です。それはあなたの部屋の魅力的な特徴を強調し、それをあなたが毎晩来るのが大好きな暖かく居心地の良いオアシスに変えます。最良の部分?あなたの寝室を明るくするためのいくつかのかなり驚異的なDIYのアイデアがあるので、あなたは銀行を破る必要さえありません。これが私たちのトップ10です:

テーブルゲーム用のDIYダイスタワーを構築する方法

テーブルゲーム用のDIYダイスタワーを構築する方法

サイコロは何千年も前から存在していると考えられています。ただし、現時点では、このテクノロジーを進歩または革新するために行われたことはほとんどありません。材料が変わり、サイコロの作り方も進歩しましたが、ある種の穴居人のように手でサイコロを転がすのに苦労しています。

外付けハードドライブからデータを回復する方法

外付けハードドライブからデータを回復する方法

外付けハードドライブは、その速度、コスト、および利便性のためにますます人気が高まっています。ただし、通常のハードドライブと同様に、機械的であれソフトウェアによるものであれ、同じデータ損失のリスクがあります。

PC RAMをオーバークロックする方法:しかし、あなたはすべきですか?

PC RAMをオーバークロックする方法:しかし、あなたはすべきですか?

PC用のRAMを入手する必要があります。ただし、最大容量で実行しないと、多くのことを失うことになります。すべてのプログラムは、アクセスを高速化するために、しばらくの間データをRAMに保存します。オーバークロックされたRAMを使用すると、PCのパフォーマンスを向上させることができます。

車にドライブレコーダーを取り付ける方法

車にドライブレコーダーを取り付ける方法

あなたがダッシュカムを持っているならば、それを合わせるのは少し雑用のように思えるかもしれません。場合によっては、それはあなたが望むほど単純ではありませんが、あなたの車にダッシュカムをインストールすることはあなたがそれに費やす毎分価値があります。

10のベストESP32スマートホームプロジェクト

10のベストESP32スマートホームプロジェクト

スマートホームとは、インターネットに接続された任意の電話やコンピューターからアプライアンスやデバイスをリモートで制御できるホームです。これは通常、ArduinoやESP32ボードなどのマイクロコントローラーで作成されたワイヤレス接続デバイスに基づいています。

3Dプリントモデルを検索するのに最適な6つの場所

3Dプリントモデルを検索するのに最適な6つの場所

3D印刷の特許が失効すると、業界は爆発的に普及しました。

あなたが家で作ることができる10のDIY長距離Wi-Fiアンテナ

あなたが家で作ることができる10のDIY長距離Wi-Fiアンテナ

最新のWi-Fiアンテナを使用すると、ISPのパッケージ内で最速の速度を使用できますが、非常に高価になる可能性があります。幸いなことに、お金をかけすぎずに接続信号を改善するために、いつでもDIYプロジェクトに頼ることができます。

ラズベリーパイピコの11の代替品

ラズベリーパイピコの11の代替品

Raspberry PiPicoのリリースはエキサイティングでした。Raspberry Pi Foundationは、以前はArduinoが支配していたホビーマイクロコントローラー市場にようやく参入しただけでなく、独自のシリコンを使用してそれを行っていました。

FDMプリンターを使用した独自の卓上ミニチュアの設計と3D印刷

FDMプリンターを使用した独自の卓上ミニチュアの設計と3D印刷

D&Dやウォーハンマーのような卓上ゲームは、コンピューターやコンソールを必要とせずにインタラクティブなエンターテインメントを楽しむための素晴らしい方法を提供します。

あなたの寝室を変えるためのトップ10のDIYライトのアイデア

あなたの寝室を変えるためのトップ10のDIYライトのアイデア

照明はあなたの装飾をまとめる接着剤です。それはあなたの部屋の魅力的な特徴を強調し、それをあなたが毎晩来るのが大好きな暖かく居心地の良いオアシスに変えます。最良の部分?あなたの寝室を明るくするためのいくつかのかなり驚異的なDIYのアイデアがあるので、あなたは銀行を破る必要さえありません。これが私たちのトップ10です:

テーブルゲーム用のDIYダイスタワーを構築する方法

テーブルゲーム用のDIYダイスタワーを構築する方法

サイコロは何千年も前から存在していると考えられています。ただし、現時点では、このテクノロジーを進歩または革新するために行われたことはほとんどありません。材料が変わり、サイコロの作り方も進歩しましたが、ある種の穴居人のように手でサイコロを転がすのに苦労しています。

外付けハードドライブからデータを回復する方法

外付けハードドライブからデータを回復する方法

外付けハードドライブは、その速度、コスト、および利便性のためにますます人気が高まっています。ただし、通常のハードドライブと同様に、機械的であれソフトウェアによるものであれ、同じデータ損失のリスクがあります。

PC RAMをオーバークロックする方法:しかし、あなたはすべきですか?

PC RAMをオーバークロックする方法:しかし、あなたはすべきですか?

PC用のRAMを入手する必要があります。ただし、最大容量で実行しないと、多くのことを失うことになります。すべてのプログラムは、アクセスを高速化するために、しばらくの間データをRAMに保存します。オーバークロックされたRAMを使用すると、PCのパフォーマンスを向上させることができます。

車にドライブレコーダーを取り付ける方法

車にドライブレコーダーを取り付ける方法

あなたがダッシュカムを持っているならば、それを合わせるのは少し雑用のように思えるかもしれません。場合によっては、それはあなたが望むほど単純ではありませんが、あなたの車にダッシュカムをインストールすることはあなたがそれに費やす毎分価値があります。

10のベストESP32スマートホームプロジェクト

10のベストESP32スマートホームプロジェクト

スマートホームとは、インターネットに接続された任意の電話やコンピューターからアプライアンスやデバイスをリモートで制御できるホームです。これは通常、ArduinoやESP32ボードなどのマイクロコントローラーで作成されたワイヤレス接続デバイスに基づいています。

3Dプリントモデルを検索するのに最適な6つの場所

3Dプリントモデルを検索するのに最適な6つの場所

3D印刷の特許が失効すると、業界は爆発的に普及しました。

Raspberry PiPicoを使用したMicroPythonの初心者向けガイド

Raspberry PiPicoを使用したMicroPythonの初心者向けガイド

Raspberry Pi Picoは、RaspberryPiファミリーの最新メンバーです。これまで、Raspberry Pi製品ラインは、オペレーティングシステムを実行できるシングルボードコンピューターでした。

あなたが家で作ることができる10のDIY長距離Wi-Fiアンテナ

あなたが家で作ることができる10のDIY長距離Wi-Fiアンテナ

最新のWi-Fiアンテナを使用すると、ISPのパッケージ内で最速の速度を使用できますが、非常に高価になる可能性があります。幸いなことに、お金をかけすぎずに接続信号を改善するために、いつでもDIYプロジェクトに頼ることができます。