書籍概要

Raspberry Piでロボット製作 コミュニケーションロボットSIROの製作日誌

著者
発売日
更新日

概要

【Raspberry Pi 4 Model B 対応】

家族と一緒に暮らすコミュニケーションロボットを作ってみたい。「自律移動」「音声認識」「顔認識」,それから「発話」機能を付けてみようか。ということで,あれこれ機能を組み込んで完成したのがSIROです。

本書のロボット製作には,Raspberry Pi(Raspberry Pi 4 Model B),電子工作,Python,コンピュータ,Linux,HTMLなどの幅広い知識が必要となりますが,一つ一つの難易度はそれほど高くありません。ですのでまだ自信のない初学者の方も,ぜひロボット製作にチャレンジしてください。

こんな方におすすめ

  • 理工系の学生(機械,電気,情報)
  • 初級エンジニア
  • 電子工作,プログラミングが趣味の社会人

サンプル

samplesamplesamplesamplesample

目次

  • まえがき

第1章 コミュニケーションロボットSIRO

  • 1-1 SIROの製作コンセプト
  • 1-2 SIROのスペック
  • 1-3 SIROの機能

第2章 Raspberry Piの準備

  • 2-1 Raspberry Piとは
  • 2-2 Raspberry Piの準備
  • 2-3 Raspberry Pi OSのインストール
  • 2-4 Raspberry Piの起動
  • 2-5 Raspberry Pi OSの初期設定
  • 2-6 Raspberry Pi OSのデスクトップ環境
  • 2-7 Raspberry Pi OSの基本操作
  • 2-8 日本語入力ソフトのインストール
  • 2-9 Wi-Fi(無線LAN)の設定
  • 2-10 ローカルIPアドレスの固定
  • 2-11 VNCでリモート操作
  • 2-12 Pythonプログラミング環境の準備

第3章 ロボットのフレーム製作

  • 3-1 SIROのハードウェア構成
  • 3-2 外装ユニットの製作
  • 3-3 内装ユニットの製作
  • 3-4 走行ユニットの製作

第4章 ロボットの基本機能の実現

  • 4-1 SIROの基本機能
  • 4-2 移動する
  • 4-3 発話する
  • 4-4 サウンド再生
  • 4-5 顔認識①:人の顔を見つける
  • 4-6 顔認識②:家族の顔を判別する
  • 4-7 音声認識
  • 4-8 ロボットの記憶
  • 4-9 障害物の検知
  • 4-10 気温と湿度の検知
  • 4-11 ジェスチャー認識
  • 4-12 バッテリー残量の検知
  • 4-13 CPUの異常検知
  • 4-14 IPアドレスの確認
  • 4-15 写真撮影
  • 4-16 音声録音
  • 4-17 radiko聴取
  • 4-18 LINE通知
  • 4-19 ウィキペディア検索
  • 4-20 Webアプリ

第5章 SIROの制御プログラム

  • 5-1 SIROの制御プログラムの構成
  • 5-2 SIROの応用機能
  • 5-3 SIROのWebアプリ
  • あとがき
  • 参考文献
  • 索引

サポート

ダウンロード

本書のプログラムファイル(サンプルプログラム)をダウンロードできます。

電子付録1の「プロジェクトフォルダ」をダウンロードして,ホームディレクトリ「 /home/(ユーザー名)」にコピーしてください(データは,圧縮ファイル形式でダウンロードできます。)。

なお,電子付録2にサンプルブログラムの説明書を付けてありますのでご利用ください。

電子付録3は本書に登場する材料および工具のリスト、電子付録4はSIROの制御プログラムを解説したPDFファイル、電子付録5は配線図(全機能)とその説明書です。ぜひご活用ください。

(2024年8月6日更新)

PDF
電子付録2:サンプルプログラム説明書
電子付録3:パーツリスト
電子付録4:SIROの制御プログラム全文解説
電子付録5:配線図(全機能),配線図(全機能)説明書

補足情報

【補足情報: 4-2 移動する】
モータードライバーの入手について

(2024年8月21日更新)

読者より本書で紹介したデュアルモータードライバーDRV8835(POLOLU)の入手が困難との連絡がありましたので,筆者の方でも探してみたのですが確かに現在(2024.8)入手困難なようです。

デュアルモータードライバーDRV8835 のブレイクアウト基板は複数ブランドから販売されており,ピン配列が異なる等の違いはありますが応用すれば使用可能と思います。

ただ,いろいろとハードルが高くなりそうなので初学者の方には以下の物をお勧めします。デュアルモータードライバーDRV8835(POLOLU)とピン配列が同じなのでそのまま流用可能かと思います。(筆者が実際に試したわけではないので保証はできませんがSWITCH SCIENCEのHPに添付の回路図を確認する限りでは問題なさそうです。)

20240821figure1.png

出典:https://www.switch-science.com/products/9341?srsltid=AfmBOooDBkf_G0qwiqu-bNAUBcX8T3Fezo1IwXbSaKSE9xGFnJbegngS

筆者の弁明

筆者はサラリーマンなので平日は小忙しく労働しています。そのため全ての環境,ケース,タイミングでは作動確認を行えませんので,願わくは,無事,動くことが確認できればフィードバック(ご連絡)頂ければ助かります。(移り変わりの早い世界なのですぐに古新聞になりますがそれでも幾分かはどこかの誰かの助けになるかと思いますので。。)

【補足情報: 4-7 音声認識】
Juliusのディクテーションキットの入手について

(2024年8月5日更新)

Juliusのディクテーションキットを入手する際の注意事項を初学者向けに補足します。

1. Juliusのディクテーションキットのダウンロード

本文中にも記載の通りディクテーションキットは以下のgitコマンドでダウンロードできます。

$ git clone https://github.com/julius-speech/dictation-kit.git

ただし1点だけ注意事項があり,初めてGitHubを使用する場合は先にgit-lfsというソフトウェアをインストールしておく必要があります。

JuliusのGitHub(https://github.com/julius-speech/dictation-kit)のページにも以下のような注意書きがあります。

画像1.png

2. git-lfsのインストール

Git LFSは「Git Large File Storage」の略で,GitHubで動画などのサイズの大きいファイルを扱う際に使用されるツールです。このGit LFSを使用しているプロジェクトの場合,git-lfsをインストールしていないと正しくダウンロードすることができません(Git LFSに保管されているサイズの大きいファイルが実ファイルではなく保管場所を示した参照ファイルの形でダウンロードされてしまいます)。

git-lfs は以下のコマンドでインストールできます。GitHubを初めて使用する初学者の方は忘れずにインストールしてください。

$ sudo apt install git-lfs

【補足情報:4-10 気温と湿度の検知】
温湿度センサ(BME280)用Pythonモジュールの入手について

(2024年8月5日更新)

GitHubからPythonモジュールを入手する際の手順について,初学者向けに補足します。

1. GitHubのPythonモジュールの入手方法

本文中にも記載の通り温湿度センサ(BME280)用のPythonモジュールを以下のセンサメーカ(Adafruit)のGitHub公開情報から入手します。方法は2通りあります。
https://github.com/adafruit/Adafruit_Python_BME280

  • ① gitコマンドによるダウンロード
    以下のgitコマンドでプロジェクトフォルダ一式をダウンロードできます。
    $ git clone https://github.com/adafruit/Adafruit_Python_BME280.git
  • ② GitHubのページからダウンロード
    ブラウザでGitHubのページを開きます。 ページ右側の 「Code」 → 「DownLoad ZIP」 をクリックすると同様に一式でダウンロードできます。

    画像1.png

2. READMEの確認

ダウンロードが完了したらプロジェクトのREADME(ソフトウェアの取説のようなものです。)を読んでみます。(大抵,英語ですが苦手な方も頑張ってください。)

注目してほしいのが「Requirements」です。こちらにはソフトウェアを使用する際に必要となるライブラリや前提とする環境(OSのバージョンなど)が記載されています。

画像2.png

内容は?というと,「Adafruit_Python_GPIO」というパッケージを先にインストールしてください。と書かれています。 リンクが貼られているのでクリックします。すると 「Adafruit_Python_GPIO」のGitHubのページに飛びます。

画像3.png

こちらも一式ダウンロードします。そしてREADMEを確認します。

冒頭に「!!!Deprecation Warning!!! (非推奨の警告)」と大きく書かれていますが,今時点で問題なく使えているので気にしないことにします。

画像4.png

下の方にいくと「Debian-based Linex like Raspbian… 」とあります。

画像5.png

まず,以下の関連パッケージをapt コマンドでインストールします。
build-essential,python-pip,python-dev,python-smbus
(たぶんインストール済と思います。)

その後,git cloneで一式ダウンロードして,以下のコマンドでプロジェクトフォルダに入ります。

$ cd Adafruit_Python_GPIO

そしてプロジェクトフォルダの中で以下のコマンドを実行します。

$ sudo python setup.py install

エラーが出なければインストール完了です。

【メモ情報】

GitHubのページでは,プロジェクト一式ではなく,欲しいファイルだけをダウンロードすることもできます。 ページ左側のファイル一覧から対象のファイルをクリックするとファイルの中身が表示されます。その右上のダウンロードボタンをクリックするとダウンロードできます。

画像6.png

【補足情報: 4-17 radiko聴取】
radiko再生用シェルスクリプトの入手について

(2024年8月2日更新)

一件,紹介できそうなソフトウェアを見つけましたのでご紹介いたします。筆者の方で動作確認済(2024.7.30)です。

1. radiko再生用シェルスクリプト

GitHubに公開されている「RadikoSimulator」というものを使用します。以下のGitHubのページから入手してください。
https://github.com/Migoreng/RadikoSimulator

以下はREADME(ソフトウェアの取説のようなものです。)の抜粋です。

画像2.png

まずgitコマンドでプロジェクト一式をコピーします。

$ git clone https://github.com/Migoreng/RadikoSimulator.git

以下のコマンドでプロジェクトフォルダに移動します。

$ git clone https://github.com/Migoreng/RadikoSimulator.git

以下のコマンドでシェルスクリプトを実行します。(兵庫県の「Kiss FM KOBE」を聞いてみました。)

$ bash radikoplay.sh KISSFMKOBE Hyogo
2. SIROでradiko聴取

サンプルプログラム(SIRO_test_radiko.py)のシェルスクリプト実行コマンドの部分を編集すれば,SIROでradikoを聞くことができます。

画像1.png

商品一覧