ブログ
ブログ
やさしい組込みシステム入門(1) ~MicroPythonとは?
2022-03-08 1223

Python が主流のプログラミング言語になるにつれて、MicroPython は組み込みシステム分野、特に Raspberry PI Foundation によってリリースされたばかりの人気の ESP32 および RP2040 マイクロコントローラー ベースの Pico モジュールでますます人気が高まりました。

コードを 7 行も書くことができないバノンとして、私はほとんどの時間で非常に限界を感じ、プログラミング言語を学ぶ良い時間を見つけようと心に誓いました。私は XNUMX 日間の国慶節休暇中に MicroPython に没頭し、自分で設計した Pico 拡張学習ボード上のボード上のペリフェラルの機能をすべて実現しました。

  • ファンシーな照明 - モノクロ、RGB 3 色、あらゆる種類の組み合わせ、ボタンとセンサーでも制御可能

  • OLED スクリーンにはテキスト、画像、波形が表示されます

  • オーディオ信号が収集され、OLED スクリーンに表示され、クールな波形表示が行われます。

  • ボード上のブザーで「Me and my Country」を演奏

  • 他人のコードを移植して任意の波形を生成する - 波形の変更、周波数の変更、振幅の変更など



7 日間の「探索」で私が最も感銘を受けたのは、豊富なオープン ソース リソース、ビデオ コース、テキスト ケースなどのさまざまな形式のリファレンスなど、MicroPython の組み込みシステムを簡単に始めることができるということでした。

MicroPython は本当に優れたプログラミング言語です。オブジェクト指向、柔軟、シンプル、エレガントです。

私の個人的な学習は他の人の共有 (オープンソース) から恩恵を受けており、知識を伝える最良の方法は、私が学んだことと学んだことを共有することです。したがって、Pico をベースにした Micro Python 組み込みプログラミング チュートリアルを開始する予定です。これは 1 か月以内に正式にリリースされる予定です。もちろん、 初期段階では、Pico ラーニング ボードを自分で設計できるようにする 15 の PCB 設計ライブ コースが提供されます。結局のところ、無料のプリント基板と送料無料の便利な環境で、Pico コア ボードに基づいて、将来的にさまざまな興味深いアプリケーションを作成するための PCB を誰でも設計できます。 PCB の設計方法を学ぶことは、組み込みシステム エンジニアにとっても利点となります。

今後、このコースに関連する一連の技術記事が掲載されます。今日はその最初のものです:

1.MicroPythonとは

MicroPython は、小さな組み込み開発ボード上で実行される、小さなオープンソースの Python プログラミング言語インタープリターです。 MicroPython を使用すると、C や C ++ (プログラミングには Arduino) などの複雑な基礎言語を使用することなく、クリーンでシンプルな Python コードを作成してハードウェアを制御できます。


マイクロパイソンのロゴ

Python プログラミング言語のシンプルさにより、MicroPython はプログラミングとハードウェアの初心者にとって理想的な選択肢となります。 MicroPython は非常にフル機能を備えており、ほとんどの Python 構文をサポートしているため、経験豊富な Python のベテランでも MicroPython を使用するのが親しみやすく楽しいと感じるでしょう。

MicroPython は使いやすいことに加えて、他の組み込みシステムとは異なる独自の機能をいくつか備えています。

インタラクティブ インタプリタを使用します: REPL (Read Read-Evaluate Evaluate-Print Print-Loop Loop) - これにより、ボードに接続し、コンパイルやアップロードを行わずにコードを実行できるようになります - ハードウェアの迅速な学習と実験に最適です。

豊富なソフトウェア ライブラリ - 通常の Python プログラミング言語と同様、MicroPython には多くのタスクをサポートする多数のライブラリが組み込まれています。たとえば、MicroPython の組み込みライブラリを使用すると、Web サービスからの JSON データの解析、正規表現を使用したテキストの検索、さらにはネットワーク ソケット プログラミングさえも簡単に実行できます。

拡張性 - 上級ユーザーの場合、MicroPython は低レベルの C/C++ 関数で拡張できるため、必要に応じて表現力豊かな高レベルの MicroPython コードと高速な低レベル コードを混合できます。

MicroPython は、Python 3 言語のバリアントです。これはケンブリッジ大学のダリアン P. ジョージ博士の発案であり、彼は 2013 年にクラウドファンディング チームと協力して PyBoard と呼ばれる microPython 対応ハードウェア開発ボードを開発しました。MicroPython1.0 は Python カンファレンス ( George 博士は、MicroPython と Pyboard をサポートするために Micro Python.org Web サイト (www.micropython.org) も設立しました。


公式 MicroPython.Org ロゴ

STM32 コントローラーに基づく MicroPython.Org PyBoard。


2. MicroPython では何ができるのですか?

MicroPython は、組み込みシステム制御プログラムを迅速かつ効率的に作成できるように設計されています。 組み込みシステムは、エンジニアリングのニーズを満たすためにマイクロコントローラーの使用を必要とするプロジェクトとして簡単に定義できます。 一般的な組み込みシステムは通常、センサーを使用し、場合によっては電気機械アクチュエーターを使用してマイクロコントローラーとインターフェースします。これらは、対話を容易にするためにヒューマン マシン インターフェイス デバイスに接続される場合もありますが、スタンドアロン操作やクラウドへのリモート アクセスの場合は、より自動化されます。

Arduino ボードと同じように、MicroPython はハードウェアと接続されたデバイスを制御できます。GPIO ピンの点滅ライトを制御したり、スイッチを読み取ったりすることができます。 サーバーと LED を駆動できる PWM 信号を駆動できます。 アナログ センサーは、アナログ - デジタル コンバーターを介して読み取りおよび読み取りが可能です。 I2C または SPI デバイスとの通信も簡単です。一部のボードではネットワークと WiFi のサポートも見つかります。 MicroPython には、NeoPixel や LED ストリップ、小型 OLED ディスプレイなどの他のハードウェアを制御するためのライブラリもあります。 つまり、MicroPython は多くのことができるのです。

MicroPython の制限は何ですか?

MicroPython にはほとんど制限がなく、Arduino で実行できることはほとんどすべて MicroPython ボード経由で実行できます。 ただし、MicroPython コードは、同様の Arduino または他の C/C++ ベースの低レベル コードよりも高速ではなく、より多くのメモリを必要とする可能性があることに注意することが重要です。 ただし、速度とメモリの差が十分に大きくないため、これは通常は問題になりません。ほとんどのアプリケーションに影響を与えます。 時間やパフォーマンスが重要なコードは MicroPython では機能しない可能性があることに注意してください。 たとえば、ソフトウェアを完全に使用して IO ピンを駆動し、MicroPython で一部の高速シリアル通信プロトコルを実装するのは最良のアイデアではない可能性があります。 ただし、MicroPython と低レベル C/C++ コードを混合して、両方の長所を活用する方法があります。メイン ロジックはクリーンで理解しやすい MicroPython コードですが、パフォーマンスが重要な部分は次の言語で記述されています。より高速な低レベルコード。

MicroPython 言語は、コア Python 3 言語の大部分を実装していますが、MicroPython は Python 3 標準ライブラリ全体を実装しているわけではありません。 Python は広範な標準ライブラリがあることで知られていますが、このような大規模なライブラリを数キロバイトのメモリしか搭載していない小さなボードに圧縮しようとするのは不可能です。 代わりに、MicroPython は Python 標準ライブラリのいくつかの小さいバージョンを実装し、優れた開発エクスペリエンスを提供します。


免責事項: この記事は「電子の森」から転載されています。この記事は著者の個人的な見解のみを表しており、Sakwei および業界の見解を表すものではありません。複製および共有のみを行っており、知的財産権の保護をサポートしています。オリジナルの出典を示してください。著作者、権利侵害がある場合は、削除するようご連絡ください。



関連おすすめ
whatsapp

サービスホットライン

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950