05.ソフトウェア実装

ネットリモコンのソフトウェアの実装、すなわち、Raspberry Pi のプログラムの実装

概要

ハードウェア仕様、ハードウェア組み立て、ソフトウェア仕様に従い、Raspberry Pi プログラムを実装します。

リモコンから信号を受信する処理、赤外線LEDから信号を送信する処理は、マイクロ秒精度の処理速度が必要であり、C言語で書かれた Raspberry Pi 用のGPIOアクセスライブラリである、「Wiring Pi」を利用します。

Webブラウザからの操作は、Raspberry Pi 用のフレームワークである WebIOPi を利用します。

WebIOPiを利用した処理は、Python言語で作成します。
C言語で作成した「リモコンから信号を受信する処理」「赤外線LEDから信号を送信する処理」をPython言語から使えるように、Pythonモジュール化します。

Wiring Pi のインストール

Raspberry Pi に Wiring Pi をインストールしてない場合は、まず、Wiring Pi をインストールします。

Wiring Pi のインストール

WebIOPiのインストール

Raspberry Pi にWebIOPiをインストールしてない場合は、まず、WebIOPiをインストールします。

WebIOPiのインストール

リモコン処理

リモコンから信号を受信する処理、赤外線LEDから信号を送信する処理は、マイクロ秒精度の処理速度が必要であり、C言語で書かれた Raspberry Pi 用のGPIOアクセスライブラリである、「Wiring Pi」を利用して作成します。

「/home/pi/work/netremocon」というフォルダを作成し、作成したフォルダに、「myremocon.c」というファイル名で、以下の内容のファイルを作成します。

リモコン処理をPythonモジュール化するために必要な実装

C言語で作成した「リモコンから信号を受信する処理」「赤外線LEDから信号を送信する処理」をPython言語から使えるように、Pythonモジュール化します。

「/home/pi/work/netremocon」フォルダに、「myremocon.h」というファイル名で、以下の内容のファイルを作成します。

「/home/pi/work/myremocon」フォルダに、「myremoconWrapper.c」というファイル名で、以下の内容のファイルを作成します。

リモコン処理Pythonモジュールファイルの作成

コンパイルし、Pythonモジュールファイルを作成します。
「/home/pi/work/netremocon」フォルダで、以下のコマンドを実行します。

「/home/pi/work/netremocon」フォルダに、「myremocon.so」というファイル名で、リモコン処理Pythonモジュールファイルが作成されます。

Pythonスクリプトの作成

WebIOPiを利用したPythonスクリプトを作成します。
ボタン操作、リモコン処理Pythonモジュールの処理呼び出し、Webブラウザからの信号送信要求時の処理、を実装します。

「/home/pi/work/netremocon」フォルダに、「netremocon.py」というファイル名で、以下の内容のファイルを作成します。

HTMLファイルの作成

Webブラウザからアクセスする HTMLファイルを作成します。
「/home/pi/work/netremocon」フォルダに、「netremocon.html」というファイル名で、以下の内容のHTMLファイルを作成します。

WebIOPi サービスの設定の変更

WebIOPi のサービスを開始したときに、作成したスクリプトが実行されるように、WebIOPi サービスの設定を変更します。
また、Webブラウザからアクセスしたときに、作成したHTMLが表示されるように、WebIOPi サービスの設定を変更します。

WebIOPi サービスの設定は、「/etc/webiopi/config」ファイルに記述されています。

以下のコマンドを実行し、「/etc/webiopi/config」ファイルを開きます。

[SCRIPTS] セクションを探し、[SCRIPTS] セクションの「myscript =」に、作成したスクリプトファイルを指定します。

[HTTP] セクションを探し、[HTTP] セクションの「doc-root =」、「welcome-file =」に、作成したHTMLファイルを指定します。

編集し終えたら、
Ctrl + O
で上書き保存し、
Ctrl + X
で nano を終了します。

ダウンロード

プログラムファイル

関連ページ

前項目:04.ソフトウェア仕様

次項目:06.ダイナミックDNSサービス登録