制限 | ダウンロード制限: サービス停止まで |
---|---|
ライセンス条件 | ●本書は著作物であり,著作権法により保護されています.本書の一部,または全部を著作権者に断りなく,複製または改変し他人に譲渡すること,インターネットなどに公開することは法律により固く禁止されています.違反した場合は,民事上の制裁および刑事罰の対象となることがあります. ●本書は,CQ出版社から出版された,2024年5月1日発行の同タイトルの雑誌・書籍をPDFファイルとしたものです.電子版制作の都合上,オリジナルの書籍と比べて,一部の書体や線の太さ・種類が変更になっている場合があります.また,電子版という性格から,オリジナルの書籍と同一のプリント品質は保証できません.ご了承ください. ●予告なく,本サービス(Tech Village 書庫&販売)を一時休止または終了することがあります.サービス休止時やサービス終了後は,本コンテンツをダウンロードまたは閲覧できなくなります. |
解説
MicroPythonは,マイコンを搭載する組み込み機器向けにチューニングされたPythonです.Python3と高い互換性を持ち,マイコンに慣れていない初心者でも開発しやすいという特徴を持ちます.OSの支援無しに動作するので,マイコンが持つさまざまなデバイスのインターフェースを直接制御でき,物作りの楽しさを手軽に実感できます.
本書では,プログラミング言語MicroPythonの言語仕様からプログラミングの仕方までを解説します.前半ではMicroPythonの言語仕様を一通り解説し,後半では実践編として各種デバイスをMicroPythonで制御する方法を紹介します.また,実際の応用例からの逆引きでMicroPythonのプログラムを探せる特別付録も収録しています.
本書は次のような読者を想定しています.
・普段はC/C++で組み込み機器を開発したり,Arduinoで電子工作をしたりしているが,新規システムをサッと試作したいエンジニア
・製品開発時に,開発のための装置としてデータ記録装置やメカのエージング装置を作りたいエンジニア
・授業や実験でマイコンを学習する必要のある学生
MicroPython用のライブラリは公式/非公式を問わず,インターネット上に多く公開されています.基本的には車輪の再発明は避けた方がよいので「あるものを使う」というスタンスは大事なことです.しかし,それではMicroPythonという言語の学習には適切ではありませんし,なによりMicroPythonの面白さを体験できません.
そこで本書では,ありもののライブラリはなるべく使わず,自前でライブラリを作れるようになるための基本的なプログラミング技術を解説します.
本書の各記事は,月刊「Interface」に掲載された記事を再編集,加筆したものです.
※ 本コンテンツは,2024年4月23日発売の『MicroPythonプログラミング・ガイドブック』をPDFファイルとしたものです.
詳細な内容はこちら
目次
言語機能/対話型/メモリ管理/データ構造/ライブラリの取り込みイントロダクション MicroPythonをお勧めする5つの理由
【第1部 MicroPythonのプログラミング環境を準備する】
ラズベリー・パイPico/Pico W,ESP32-DevKit-C-32Eですぐ試せる!STM32搭載NUCLEOやRA搭載RA4M1-CLICKERにも対応
第1章 本書で使うマイコン・ボード
Pico/Pico W/ESP32ですぐ試せる!書いたコードを1行ずつ動かせるようにする
第2章 プログラミング環境の構築
ビギナ向け,Pythonの開発環境としても使える
第3章 開発環境Thonnyの使い方
ピン/ネットワーク/ブート…デバイスやボード固有の情報をあらかじめ作り込んでおく
第4章 本書で使うベース・プログラムの準備
【第2部 打ちながら覚える言語仕様】
基本要素から四則演算,リスト,for文の使い方,インデントのルールまで
第1章 MicroPythonチュートリアル
数値型/文字列型/論理値型/None型
第2章 基本的なデータ型
データを格納するために割り当てられたメモリ領域…と考えよう
第3章 オブジェクトと名前
便利に使える4種類のデータ構造
第4章 リスト/タプル/辞書/集合…コレクションの使い方
データの表記/生成/参照方法とシフト演算/ビット演算まで
第5章 マイコンでも使う「バイナリ・データ」型とその演算
累積代入文と複数の変数への同時代入
第6章 プログラムの代入文
実行の流れを制御する複合文
第7章 if/for/while…プログラムの制御構造
引数の扱いから変数共有の方法まで
第8章 関数
定義/使用法/拡張から継承まで
第9章 クラス
使い方から作り方まで
第10章 モジュール
疑似的なマルチタスクのメカニズム
第11章 非同期処理
エラー・メッセージの表示や中断キー対応など
第12章 例外処理
MicroPython固有の機能やプログラムの記述をシンプルにする構文
第13章 その他の言語仕様
【第3部 ネットワーク接続】
Pico W/ESP32単体でネットワークに接続する方法
第1章 接続編(1)…直接Wi-Fiに接続する
マイコン(Pico)とモジュール(ESP32)間でUART通信
第2章 接続編(2)…外付けWi-Fiモジュールを使う
UART接続の外付けモジュールでWi-Fi以外の通信もお手軽に使える
第3章 接続編(3)…外付けSigfoxモジュールを使う
双方向通信でLEDのON/OFFを制御
第4章 通信編(1)…MQTT
REST APIを使って天気情報を取得する
第5章 通信編(2)…HTTP
【第4部 センサ・データの取得】
デバイスの仕様書から必要な情報を読み取ってMicroPythonでプログラム化する
第1章 シリアル通信(I2C)で出力するセンサ
測定データを時間に変換して出力する超音波距離センサHC-SR04で試す
第2章 パルス幅で出力するセンサ
土壌水分センサのアナログ電圧出力をA-Dコンバータで読み取って表示する
第3章 アナログ電圧や電流で出力するセンサ
【第5部 データの表示】
GPIO操作とタイマ割り込みの基礎
第1章 マイコンI/Oの基本…LED点滅
SPI接続で定番の制御チップSSD1331を操作
第2章 グラフィックスLCDで波形や文字を表示する
【第6部 Wi-Fiマイコンの良さを生かしたクラウド連携の製作例】
(1)アナログ・センサ計測,(2)小型ポンプ制御,(3)クラウド連携
第1章 自動水やりシステムの製作
【付録】
Wi-Fi通信/排他制御/MQTT通信/A-D変換/I2C/SPI/GPIO/タイマ割り込みなど
第1章 モジュールのリファレンス
変数値の埋め込み/書式文字列/フォーマット済み文字列リテラル
第2章 文字列のフォーマット
UART接続でHTTPやMQTT通信!ダウンロードから書き込み方法まで
第3章 ESP32をWi-Fiモジュールとして使う方法
MQTT X,Talend API Tester
第4章 MQTTクライアントやREST APIの設定
OpenWeather API,Shiftr.io,Sigfox,スプレッドシート
第5章 天気予報/MQTT/920MHz通信/クラウド表…ウェブ・サービスの設定
【特別付録 逆引きMicroPythonプログラム集】
コンパイル不要,シンプルな言語仕様,豊富なライブラリ…
イントロダクション MicroPythonがプロトタイプ開発に向く理由
ESP32の基本仕様からファームウェアの書き込み,ファイル転送,Lチカまで
第1章 開発環境を整える
スイッチやボリューム,ロータリ・エンコーダを接続
第2章 入力検出
静電容量,磁気,赤外線(人感),温湿度/気圧の検出
第3章 センサによる測定データの見える化
LED調光,モータ制御,電子音再生
第4章 PWM出力
キャラクタ・ディスプレイやグラフィック・ディスプレイ
第5章 小型ディスプレイによる表示
定番SPI/I2C/UART
第6章 シリアル通信
(1)ESP32同士(2)音声合成ICとESP32
第7章 UART接続の実例
フラッシュ・メモリやSDカードを読み書き
第8章 ファイル・システムの利用
HTMLやMQTTでインターネットに接続する
第9章 ネットワーク接続
消費電流を半分以下に節約
第10章 省電力モードの使い方
現在時刻の表示やウェイト/タイマ処理の使い方
第11章 日時の取得と時間管理
プログラム実行の高速化
第12章 コード改善
使用量の可視化と軽量化
第13章 メモリ管理