初著書「ラズパイPico WかんたんIoT電子工作レシピ」技術評論社より発売中

【PR】この記事には広告が含まれています。

初著書「ラズパイPico WかんたんIoT電子工作レシピ」技術評論社より発売中

私の書籍「ラズパイPico WかんたんIoT電子工作レシピ」が技術評論社から発売されました。大変ご好評いただいており、5/2時点でAmazon 自作パソコン部門の1位になっています。

書籍内で使用するプログラムは下記のボタンからダウンロードできます。

購入者用サポート情報

ラズパイPico Wの入門書

内容はRaspberry Pi Pico Wの入門書で、インターネットと連動する電子工作を楽しむ方法について、プログラミングの基礎から解説しています。出版時点では無線LAN機能付きのPico Wに特化した入門書はあまりないため、ここが差別化ポイントとなっています。

そぞら
そぞら

僕自身、Pico Wが大好きで、この本を書くにあたり高い熱量で取り組むことができました。

これから電子工作をはじめる人や、ラズパイは使ったことがあるけどPico Wは初めてという方に向けて書きました。あまり難しい技術には触れず、応用しやすいシンプルなテクニックを多数紹介しています。

日常生活での小さな悩みを解決するアイディアからAIアシスタントの開発まで、さまざまなテクニックを紹介し、オリジナルの作品作りのきっかけになることを目指しています。

動作検証用に使用したPico W達

本書は、これからPico Wや電子工作に挑戦する方のために書きました。Pico Wさえあれば、電子パーツがなくてもプログラムを実際に動かして楽しめるコンテンツを豊富に用意しています。

本書のこだわり


この本では、無線LAN機能を活用した電子工作を5つの作例を通じて紹介しています。

そぞら
そぞら

各作例は実際に取り組んでいただけるように、必要な部品を最小限に抑えたものを選んでいます。

初心者の方が挫折しないように、難しい用語を避けてわかりやすく説明するように心がけました。また、本書は256ページのフルカラーであり、図解や写真を多く使い読みやすさに配慮した構成になっています。

サンプルページを公開中

作例の紹介では、いきなり全体のプログラムを示すのではなく、構成要素ごとに分けて丁寧に解説しています。これにより、各プログラムの役割が明確になり、アレンジのヒントとして役立つようにしました。

「光の強さで降水確率を知らせる装置」の章の構成例

以下は本書で紹介している5つの作例です。

光の強さで降水確率を知らせる装置

天気予報APIから今日の降水確率を取得して、LEDの明るさを変化させる装置です。

今日のごみの日をお知らせする装置

今日の日付から「何ごみの日」かを判定して、サーボモーターの角度で、ごみの種類を表現します。

お風呂の湯はりボタンをスマホで遠隔操作

BlynkというIoTプラットフォームを利用してスマホのアプリ画面を作成します。

作成したアプリ画面を操作することにより、遠隔からサーボモーターを動かせるようにします。また、照度センサーの値をスマホで確認できる機能も実装します。これらの機能は外出先からも確認および操作可能です。

玄関のカギを確認する装置

2台のPico Wを通信させて、センサーのデータを送ることにより、玄関のカギの開閉状態を遠隔で確認できる装置です。

洋服選び提案ChatGPTロボット

ChatGPTの機能をPico Wで利用して、天気に応じた洋服を提案するロボットを作ります。

書籍に登場するパーツ

以下は書籍に登場する7つのパーツとその特徴です。比較的リーズナブルで、扱いやすく入手性の良いパーツを選びました。

製品名特徴作例での用途詳細


抵抗内蔵 5mm LED 5V
青色
抵抗を用意せずにそのまま使えるLED明るさで降水確率を表現詳細を見る


サーボモーター
SG90
定番の小型サーボモーター表示器として活用
物理ボタンを押す
詳細を見る


フォトトランジスタ
NJL7502L
明るさを測定できる状態表示LEDの
点灯確認
詳細を見る


赤外線障害物回避センサー
障害物の有無を検知できるカギの位置の判定詳細を見る


2.9インチ e-Paper
タッチディスプレイ(白黒)
バックライトを使わない
紙のように見える電子ペーパー
カギの開閉状態を表示詳細を見る

0.96インチ 128×64ドット
有機ELディスプレイ(OLED) 白色
文字や図形、画像を表示できる
小型ディスプレイ
ロボットの顔
テキストの表示
詳細を見る

静電容量式タッチセンサーTTP223B
軽いタッチを検出可能装置の動作開始条件に使用詳細を見る

監修は松岡貴志氏

本書の監修は、ラズパイ自由自在 電子工作パーツ制御完全攻略の著者である松岡貴志さんに担当していただきました。松岡さんの本を読んで、その知識の深さに感動したため、ぜひ監修を依頼したいと思いそれが実現したのです。

私一人の力では足りない部分が多かったのですが、松岡さんのご協力で大幅に本の品質が向上しました。お忙しい中にもかかわらず、私からの度重なる相談に丁寧に対応してくださったこと、ここで心から感謝の意を表します。

やった!動いた!をすべての人に

OLEDに表示したランダムに変化するロボットの顔(本誌にて紹介)

出版のお話をいただいてから1年間。「プログラミングや電子工作で遊ぶ楽しさを世界に伝える」という熱い想いを持ち、魂を込めて書いた1冊です。読者の方にパーツを動かせた感動を味わってもらいたくて、納得がいくまで何度も何度も書き直しました。

一般的な書店にはあまり置いていないので、通販での購入がおすすめです。

訂正情報

P.152のBlynkLib.pyについて、ライブラリ使用時にエラーが発生するため、以下のサイトから修正版のBlynkLib.pyをコピーして使用してください。

https://github.com/U-1F992/blynk-library-python/blob/master/BlynkLib.py

コメント一覧

中川祐喜

初めまして、著書に大変お世話になっております
とても困った状況でして知恵をお貸しいただきたくコメントさせていただきます。

現在著書のサンプルコード(p61)を元にwi-fi機能を用いた電子工作を行っているのですが、PCに接続しthonnyを用いた場合正常に機能するにも関わらず、pcに接続しない電源供給のみの場合全く機能しません
以下に試行した事を記させていただきますので、もしよろしければアドバイスなどをいただけると幸いです

wifi機能を用いないプログラム、Lチカ(p49)をmain.pyに設定 → 問題なく起動

乾電池による起動、直流安定化電源での起動、USBケーブルおよびACアダプターの交換、最新ファームウェア再インストール→効果なし

別のpico wに1から書き込み→全く同じ症状

どうぞよろしくお願いします

返信する
そぞら

はじめまして。著書をご愛読いただきありがとうございます。
現在の問題について、プログラムの進行状況を確認するための手段として、Pico W本体のLEDを用いたデバッグ方法を提案します。
以下の例では各ステップごとにLEDを異なる時間で点灯させる処理を追加しています。これにより、プログラムがどこまで進んでいるかを目視で確認できます。
from machine import Pin
import time
import network

led = Pin(“LED”, Pin.OUT)

# LED点灯でプログラムの進行を確認
def blink_led(duration):
led.on()
time.sleep(duration)
led.off()
time.sleep(1) # LED消灯後に短いスリープを追加

# 開始時に1秒間点灯
blink_led(1)

# 自宅Wi-FiのSSIDとパスワードを入力
ssid = “YOUR NETWORK SSID”
password = “YOUR NETWORK PASSWORD”

# Wi-Fi設定
wlan = network.WLAN(network.STA_IF)
wlan.active(True)

# Wi-Fi接続前に2秒間点灯
blink_led(2)

wlan.connect(ssid, password)

max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print(‘接続待ち…’)
time.sleep(1)

if wlan.status() != 3:
# 接続失敗時に3秒間点灯
blink_led(3)
raise RuntimeError(‘ネットワーク接続失敗’)
else:
# 接続成功時に4秒間点灯
blink_led(4)
print(‘接続完了’)
status = wlan.ifconfig()
print(‘IPアドレス = ‘ + status[0])
このようにしてLEDの点灯時間を変えることで、プログラムがどの段階で停止しているのかを確認できます。問題のある箇所が特定できれば、より具体的な対応ができる可能性があります。

返信する
中川祐喜

ありがとうございます、わかりやすいご説明のおかげでなんとか上手く動かせそうです

返信する
そぞら

先ほどの返信につきまして、コードのインデントが崩れてしまっていますので、ご注意ください。

返信する
s.saimon

はじめまして。コメント失礼いたします。
そぞらさんの著書を購入させていただき、日々勉強させていただいております。
Chapter 5の serve_rotation.py について質問がございます。サーボモーターを動かすプログラムを実行すると、途中でエラーが発生してプログラムが停止してしまいます。
もし可能でしたら、エラーの原因や解決策についてご教示いただけますと幸いです。

以下のエラー出力して停止してしまいます。
>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
PROBLEM IN THONNY’S BACK-END: Exception while handling ‘Run’ (ConnectionError: read failed: [Errno 6] Device not configured).
See Thonny’s backend.log for more info.
You may need to press “Stop/Restart” or hard-reset your MicroPython device and try again.
Process ended with exit code 1.
Unable to connect to /dev/cu.usbmodem1201: [Errno 2] could not open port /dev/cu.usbmodem1201: [Errno 2] No such file or directory: ‘/dev/cu.usbmodem1201’

Process ended with exit code 1.

返信する
そぞら

連絡が遅くなり申し訳ありません。

Chapter 5の serve_rotation.py について、エラーの原因ですが、エラーはThonnyがPico Wとの接続時に通信の問題を起こしている可能性があります。
Pico Wの再接続やThonnyの再起動を試してみてください。
また、他のプログラムが正常に動作するか試していただけると、問題の原因がより明確になるかもしれません。
よろしくお願いいたします。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です