2025年8月12日火曜日
Google Spread Sheetの利用
Google Home miniを喋らせる
gmail送信
1.Gmail側の設定
Wi-Fi 接続といろいろ
今回は Raspberry Pi Pico W を使って、MicroPython で Wi‑Fi に接続する方法を紹介します。これまでの Pico には Wi‑Fi 機能がなかったんですが、Pico W になってついに無線が使えるようになりました!
これからは、この Wi‑Fi 機能を使って、インターネットにつないだり、他のデバイスとやりとりしたり、いろんなことにチャレンジしていきたいと思います。1. MicroPython で Wi-Fi 接続
Raspberry Pi Pico W×2台:Bluetooth接続とGPIO制御の実装例
Raspbery Pi PicoWでも使えるのでThonny2つ起動できないので片方をMuエディタにします。
Bluetooth接続を介してLチカをしてみる
ESP32ではBluetooth ClassicとBLEの両方が使えますが、Raspberry Pi Pico WはBLEのみ対応しています。Bluetooth Classicは音楽再生や連続データ転送向け、BLEは省電力でセンサ制御などに適しています。BLEは理論上多数の機器と接続可能ですが、実際の接続数はデバイスや実装により異なります。今回はPico WのBLE機能を使って、スマホなどからLEDの点灯・消灯を制御します。Pico WのBLEは実験的な機能ですが、簡単な通信制御には十分使えます。ESP32ほど多機能ではありませんが、Pico Wでも手軽にBLE通信を試すことができます。
BLEのサンプルコードは、micropython/micropython リポジトリの examples/bluetoothディレクトリに用意されています。
MPU‑6050で6軸センサ値を読み取り、OLED SSD1306にリアルタイム表示!
今回は、MPU‑6050(加速度センサ+ジャイロセンサを内蔵した6軸モーションセンサ)を使い、デバイスの動きや傾きを計測して、そのデータをOLEDディスプレイ(SSD1306)にリアルタイム表示します。
MPU‑6050とは?
MPU‑6050は、3軸方向の加速度を測定する加速度センサと、3軸の角速度を測定するジャイロセンサを1つの小型チップに集約した、6軸モーションセンサです。
加速度センサは、デバイスの直線的な動きや傾きを検出します。例えば、スマートフォンの画面が回転する仕組みや、歩数計の動きを感知する役割を担います。
ジャイロセンサは、回転の速さや角度の変化を測定します。これにより、デバイスがどの方向にどれだけ回転したかを正確に把握できます。
この2つのセンサを組み合わせることで、デバイスの姿勢や動きを多角的に把握することが可能です。例えば、ロボットやドローンの制御、自作ゲームコントローラの動き検知、モーションキャプチャーなど、幅広い応用が期待できます。
また、MPU‑6050はI²C通信を用いて簡単にマイコンと接続でき、小型で省電力、比較的安価なため、多くの電子工作や組み込みシステムで人気のあるセンサです。
超音波センサ HC-SR04 を使ったリアルタイム距離測定と OLED 表示
HC‑SR04 超音波距離センサを Raspberry Pi Pico から制御し、OLED(SSD1306 128×64)にリアルタイム表示するデモを MicroPython で作成します。センサが発した超音波が物体で反射し戻るまでの往復時間を計測し、Pico 内蔵温度センサで取得した気温を用いて音速を補正することで、測定精度を高めます。
配線(GPIO ピンアサイン)
BME280センサーの値をOLEDディスプレイにリアルタイム表示
Raspberry Pi Pico W に BME280(温度・湿度・気圧センサー)と OLED(SSD1306) を I²C でつなぎ、センサーで測った値をLCDに表示します。
測定したデータはリアルタイムに画面に表示され、室内の環境の変化がすぐにわかるようになります。
1. 配線
両方とも I²C を使うので、SDA と SCL の 2 本を共通でつなぎます。
SDカードの BMP を ST7789 LCD (SPI) に表示
Raspberry Pi Pico や Pico W などのマイコンでは、カラー画像の表示も意外と簡単に行えます。今回は、SPI接続のフルカラーLCD(ST7789) に、SDカードから読み込んだ BMP画像を表示してみます。
📁 SDカードに保存した画像ファイル(BMP形式)を読み取り、📺 ST7789ディスプレイに転送して表示するという構成です。
小さなディスプレイにお気に入りのイラストやロゴ、写真などを表示できるようになります!
🔌 SPI通信ってなに?
ST7789 ディスプレイとは、SPI(Serial Peripheral Interface)通信を使ってやり取りを行います。
SPIとは、以下のような特徴をもった高速なシリアル通信方式です:
1対1 または 1対多 で使える
複数本の信号線(通常4本)で構成される
MOSI(Master Out Slave In):データ送信
MISO(Master In Slave Out):データ受信(今回は使わない)
SCLK(Serial Clock):クロック信号
CS(Chip Select):通信相手の選択
フルデュプレックス通信(送受信同時)にも対応(今回は片方向のみ)
📷 今回は、Picoが「マスター」、ST7789が「スレーブ」として動作し、画像データを高速に転送していきます。
microSDモジュールを使ってデータを読み書き
今回は、microSDカード用の「AE-MICRO-SD-DIP」モジュールを使って、
MicroPythonでmicroSDカードにデータを読み書きする方法を紹介します。公式ライブラリを使い、SPI通信で簡単にデータを書き込みます。
🔄 SPI通信とは?
SPI(エスピーアイ)通信は、マイコン(例:Raspberry Pi Pico W)と周辺の電子部品(SDカード・液晶など)をつなぐための「データのやりとり方法」の一つです。
かんたんに言えば…
📡 SPIは、“マイコンと部品が会話するためのルール” です。
💬 どんなふうに通信するの?
SPI通信では、4本の線を使ってやりとりします。
| 信号線の名前 | はたらき | Pico W の例 |
|---|---|---|
| SCK(クロック) | データのタイミングを決める時計のようなもの | GP18 など |
| MOSI(モジー) | マイコンから部品へデータを送る | GP19 など |
| MISO(ミソー) | 部品からマイコンへデータを返す | GP16 など |
| CS(チップセレクト) | どの部品と通信するかを選ぶスイッチ | GP17 など |
📝 MISO = 「Master In / Slave Out」
👉 マスター(=Pico)がデータを出す/受け取る方向を表しています。
SSD1306 OLED:I²C接続で表示
Raspberry Pi Pico W に 0.96 インチ I²C 接続 OLED(128 × 64 ドット)をつないで、表示テストをしてみましょう。
この OLED は SSD1306 というコントローラ IC で動いており、I²C アドレスは 0x3C です。
自分でレジスタを叩くこともできますが、今回は初心者でも扱いやすい SSD1306 用ライブラリ を使って手早く動かしてみます。
Thonny IDE を起動
Pico を USB でつないだら、Thonny のメニューから
[ツール] → [パッケージを管理...] を選びます。
I2C接続のLCD「AM1602」に文字を表示
今回は、Raspberry Pi Pico W を使って、**「AM1602」**という小型のI2C接続LCDディスプレイに文字を表示する方法をご紹介します。
AM1602は、「16文字 × 2行」のテキストを表示できる液晶ディスプレイです。I2C通信に対応しているモデルを使えば、配線が少なくて済み、初心者でも扱いやすいのが特長です。
このガイドでは、MicroPythonというシンプルでわかりやすいプログラミング言語を使って、「Hello, World!」などのメッセージをLCDに表示します。MicroPythonでI2C通信の仕組みを学ぶことが目的なので、あえてライブラリは使わず、自分でプログラムを組んでいきます(※専用ライブラリの有無は未確認です)。
MicroPythonでのI2C設定について
MicroPythonでは、I2Cは次のようにして初期化します:
from machine import I2C, Pin
i2c = I2C(id, freq=400_000, scl=Pin(...), sda=Pin(...))
idを指定するだけでも使えますが、その場合は以下のようなデフォルト設定になります:
id = 0→ SCL = GP9、SDA = GP8(周波数 400kHz)id = 1→ SCL = GP7、SDA = GP6(周波数 400kHz)
また、Raspberry Pi Pico Wでは、以下の12通りのピンの組み合わせでI2C通信が可能です:
| id | SDAピン | SCLピン |
|---|---|---|
| 0 | GPIO0 | GPIO1 |
| 1 | GPIO2 | GPIO3 |
| 0 | GPIO4 | GPIO5 |
| 1 | GPIO6 | GPIO7 ※デフォルト |
| 0 | GPIO8 | GPIO9 ※デフォルト |
| 1 | GPIO10 | GPIO11 |
| 0 | GPIO12 | GPIO13 |
| 1 | GPIO14 | GPIO15 |
| 0 | GPIO16 | GPIO17 |
| 1 | GPIO18 | GPIO19 |
| 0 | GPIO20 | GPIO21 |
| 1 | GPIO22 | GPIO23 |
I2C接続1602キャラクタLCD(HD44780+PCF8574A)の操作
前回は、1602 LCD をビットパラレルモード(4ビットデータ通信)で直接制御しました。これは LCD の各制御線(RS、EN、D4〜D7など)を Raspberry Pi Pico W の GPIO に1本ずつ接続して動かす方法で、仕組みを理解するにはとても勉強になります。
しかし、この方法では接続に使うピンが多くなり、GPIOの数が限られている小型マイコンでは少し不便に感じることもあります。
そこで今回は、**PCF8574A という I/O エクスパンダ(拡張チップ)**を使って、I²C(アイ・スクエアド・シー)通信で LCD を制御する方法を紹介します。この方法を使うと、LCD の操作に必要な信号を **わずか2本の通信線(SDA と SCL)**にまとめられるため、配線がとてもスッキリし、他のセンサーやデバイスとの接続も簡単になります。
初心者の方でも、I²C の基本を学びながら、LCD 表示の実用的な使い方にステップアップできる内容になっています。マイコンの入出力ピンを節約しつつ、LCD にメッセージを表示したい方にぴったりの方法です。
PCF8574A と I²C って何?
PCF8574A
PCF8574A は NXP 製の “I/O エクスパンダ” と呼ばれる IC で、
8 本の GPIO を I²C でまとめて増設できる
各ピンは入力にも出力にも使える “擬似オープンドレイン” 方式
アドレスピン(A2–A0)の組み合わせで 0x38 – 0x3F の 8 通りの I²C アドレスを選択可能
今回の 1602 LCD では、PCF8574A の 8 本を下図のように割り当てるのが定番です。
| PCF8574A ピン | LCD 信号 | 役割 |
|---|---|---|
| P0 | RS | データ/コマンド切替 |
| P1 | RW | 読み書き切替(通常は GND = 書き込み専用) |
| P2 | EN | イネーブルパルス |
| P3 | BL | バックライト ON/OFF |
| P4–P7 | D4–D7 | 4 ビットデータバス |
I²C(Inter‑Integrated Circuit)
I²C は 1980 年代に Philips(現 NXP)が開発した 2 線式のシリアル通信規格で、
SDA(データ線) と SCL(クロック線) だけで通信
7 ビットまたは 10 ビットの アドレスでデバイスを識別
マスター(Pico W) がクロックを生成し、スレーブ(PCF8574A など) に読み書き要求を出す
複数デバイスを同じ SDA/SCL に “バス” でぶら下げられる(プルアップ抵抗が必須)
初心者が最初につまずきやすいポイントは「プルアップ抵抗がないと信号が正しく High にならない」ことですが、多くの市販 I²C‑LCD モジュールには 4.7 kΩ 付近の抵抗が実装済みなので安心です。
16x2キャラクタ LCDディスプレイモジュール(HD44780コンパチブル)の4ビット操作
Raspberry Pi Pico Wは小型でパワフルなだけでなく、LEDやセンサー、モーターなど多彩なデバイスを直接ドライブできるのが魅力です。中でも HD44780互換の16×2キャラクタLCD は、値段が手頃で入手しやすく、テキストをすばやく表示できる“定番デバイス”として人気があります。今回は、GPIO本数を節約できる 4ビットパラレルモード を使い、MicroPythonだけで Pico W に接続して文字を表示させる方法を紹介します。電源と数本の信号線を結ぶだけで、温度センサーの読み取り値やデバッグメッセージを手元の液晶にサッと映し出せるようになります。
HD44780コンパチブルとは?
HD44780コンパチブル とは、もともと 日立製のHD44780 というキャラクタ液晶コントローラIC(LCDコントローラ)の仕様や命令セットと互換性のあるディスプレイモジュールを指します。
このコントローラは
最大80文字分の表示メモリ(DDRAM)
カーソル制御やスクロール機能
英数字・記号などのフォント(ROM内蔵)
4ビット/8ビットのパラレル通信インターフェース
といった機能を搭載しており、**LCD表示の「業界標準」**として非常に広く使われています。
「HD44780コンパチブル」という表現は、
➡ 他メーカー製であっても HD44780と同じ命令セットと制御方法で動作する 液晶モジュールであることを意味します。
たとえば、AIP31066やST7066UなどはHD44780互換品として知られており、ほぼ同じコードで制御できます。
✅ 要点まとめ
HD44780 = キャラクタLCD用の定番コントローラIC
コンパチブル = 命令セットや動作が互換の他社製品
メリット = ライブラリやサンプルが豊富で扱いやすい
このため、Raspberry Pi PicoやArduinoなどで使うキャラクタLCDの多くは「HD44780コンパチブル」です。
OSL641501-ARA 赤色ドットマトリックスのダイナミック点灯
回は、Raspberry Pi Pico Wを使って「OSL641501-ARA」という8×8の赤色ドットマトリクスLEDの基本的な仕組みと接続方法を学びました。
今回はその応用として、**ダイナミック点灯(スキャン方式)**によって、アルファベットの A~G を順番に表示させてみましょう。💡 ダイナミック点灯とは?
8×8のマトリクスLEDには64個のLEDが搭載されていますが、すべてを同時に点灯させると、電流の負荷が大きくなり回路にも悪影響を及ぼします。
そこで活躍するのが「ダイナミック点灯」という方法です。
これは、1行(または1列)ずつ高速に点灯させていくことで、人間の目にはすべてが同時に光って見えるようにする仕組みです。
実際には、LEDは1行ずつ順番にON/OFFを繰り返しており、目の錯覚(残像効果)を利用しています。
OSL641501-ARA 赤色ドットマトリックスの点灯
Raspberry Pi Pico Wは、LEDやセンサーなどさまざまな外部デバイスを制御できる柔軟なマイコンボードです。
今回は、その活用例として「OSL641501-ARA 赤色8×8ドットマトリックスLED」の制御に挑戦してみましょう。
このLEDマトリックスは、縦横8つずつのLEDが格子状に並んでおり、文字やパターン、アニメーションなどを自由に表示することが可能です。
Raspberry Pi Pico Wと組み合わせることで、自作のディスプレイやゲーム、時計など、アイデア次第で多彩な表現が広がります。
7 セグ 4 桁 ダイナミック 点灯
4桁の7セグメントLEDは、数字や簡単な記号を見やすく表示できる便利な表示デバイスですが、各桁すべてを同時に点灯させるには多くのピンが必要になります。これを解決する方法が「ダイナミック点灯」です。
ダイナミック点灯では、1桁ずつ高速で切り替えながら表示を行うことで、あたかも全桁が同時に点灯しているように見せかけます。Raspberry Pi Pico WとMicroPythonを使って、GPIOを制御します。
ダイナミック点灯とは?
7セグメントLEDを複数桁使って数字を表示する場合、各桁のセグメント(A~G、DP)をすべて同時に制御しようとすると、多くのGPIOピンが必要になります。たとえば、4桁分すべてのセグメントを個別に制御すると、7セグメント × 4桁 = 28本のピンが必要になってしまいます。
これを解決する方法が「ダイナミック点灯(タイムマルチプレックス表示)」です。
DFPlayer で MP3 再生
Raspberry Pi Pico Wは単体でも便利ですが、外部機器と音声や音楽をやりとりできると応用の幅がぐっと広がります。
そこで今回は「DFPlayer Mini」を使ったMP3再生について紹介します。
まずは、Pico WからDFPlayer Miniにコマンドを送り、保存されている音楽ファイルを再生・停止・音量調整などを操作する方法を実装してみましょう。
DFPlayer Miniとは?
DFPlayer MiniはマイクロSDカード内のMP3/WAVファイルを単体で再生できる小型モジュールです。Pico Wとはシリアル通信(UART)を使って接続し、簡単なコマンドで音楽の再生・停止・音量変更などを制御できます。
回路図
PWM でドレミと『かえるの歌』を鳴らす
Raspberry Pi Pico Wは LED を光らせたりモーターを回したりと多芸なマイコンですが、「音」を出せるとなると一気にガジェット感が増しますよね。
今回は PWM(Pulse‑Width Modulation) を使って、ドレミ♪ とブザーでメロディを鳴らしてみましょう。
ハードもソフトもシンプルなので、ちょっとした電子工作にピッタリです。
回路
Google Spread Sheetの利用
以前に ESP32 で作っていたものを、Raspberry Pi Pico W + MicroPythonで再現してみました。 1.Googleスプレッドシートの設定 1.Google Drive → 右クリック → Google スプレッドシート 2.作成して共有をクリック
-
Raspberry Pi Pico W(ラズベリーパイ ピコ ダブリュー) は、英国 Raspberry Pi 財団が 2022 年に発売した Wi-Fi 搭載マイコンボードです。従来の「Raspberry Pi」と聞くと Linux が動くシングルボードコンピュータ(SBC)...
-
今回は、 Raspberry Pi Pico のアナログ入力機能(ADC) を使って、電圧を読み取るテストを行います。Pico には ADC(アナログ-デジタル変換器) が 5 つありますが、このうちユーザーが自由に使えるのは 3 チャンネルです。 ADC 番号 ...
-
回は**ラジコンサーボ(RCサーボ)**を動かしてみます。 ロボットを作るときや、センサーと組み合わせて何かを動かしたいときなど、RCサーボはとてもよく使われる部品です。小さなモーターにギアや制御回路が内蔵されていて、指定した角度まで正確に動かせるのが特徴です。 そこで今回は...

