戻る
ハード構築
- 必要なもの
raspberrypi
Arduino×2(GPSセンサとその他のセンサを同じArduinoで動かすと衝突してうまく動かないため,GPSだけ別のArduinoで動かす.)
Arduino用アクリルベースセット×2
抵抗(10kΩ)
- 赤外線焦度センサー
- 9軸センサーモジュール(加速度xyz、角速度xyz、磁気コンパスxyz)
- 体温センサー
- 心拍
- GSRセンサー(皮膚電気反射)
- 基盤の組み立て
9軸・GPS・温湿度気圧のセンサーははんだ付けが必要.
加速度センサの青丸の部分は,はんだ付けでショートさせる必要がある.
- 配線
各参考サイトに配線の仕方が書いてある.すべて組み合わせた配線が下の画像である.参考にしてほしい.
- 配線のチェック
配線がうまくいっているかをArduinoを動かしてみて確かめる.
- GPSセンサ以外のセンサの動作確認
PCとGPSセンサ以外が接続しているArduinoをコードで接続する.こちらのArduinoで使うプログラムは以下の2つである.
このプログラムはそれぞれのセンサのプログラムを参考サイトをもとに書いたものである.このプログラムを,2つとも同じファイル内に保存する.
その後,ArduinoIDEで「0125PSO.ino」を開く.(ArduinoIDEのバージョンは学生実験でも使った1.8.5?で構わない)
上の写真で示した右矢印(マイコンボードに起動)をクリックするとコンパイルが始まる.
コンパイルが終了したら,ツール>シリアルモニターで取得画面を表示できる.
シリアルモニタの右下は「CRおよびLF」「115200fps」に変更する.
結果はカンマ区切りで表示されていて,左から「気温,湿度,気圧,照度,人感,加速度(3軸),角速度(3軸),磁気コンパス(3軸),体温,脈拍,GSR」である.
- GSRセンサについて
GSRセンサは初期値が510程度が正常値である.ここの数値がおかしい場合は以下の画像に示す部分をプラスドライバーで調節する.
- GPSセンサの動作確認
PCとGPSセンサが接続しているArduinoをコードで接続する.例で示した配線と同じように組んだ場合は,基盤の電源は最初のArduinoにつないだコードから供給しているので先ほどのArduinoにつないでいるコードは抜かない.
こちらのArduinoで使うプログラムは以下のものである.
上のプログラムを起動する前に,GPSセンサの赤いランプを確認する.
・点滅
位置情報の取得ができる状態である.
・点灯
位置情報の受信中(しばらく起動していなかったりすると取得に時間がかかる.30秒~10分ほどかかることもある)
点滅したら,ArduinoIDEで「0125PSO.ino」を開く.
ツール>シリアルポートから書き込むArduinoを選択する.(先ほど使用したArduinoとは違うほうに書き込まないと先ほどコンパイルしたものを上書きしてしまう)
その後,1つ目のAruduinoをチェックしたサイト同じように右矢印(マイコンボードに起動)をクリックしコンパイルする.
コンパイルが終了したら,ツール>シリアルモニターで取得画面を表示できる.
結果はカンマ区切りで表示されていて,左から[緯度,経度,海抜高度]である.
ここまでで,Aruduinoを使ってセンサのデータを受け取ることができる.
- 現在わかっている問題点
- 海抜の値が大きくずれる
- 心拍のノイズがひどい
- 体温が安定しない
RaspberryPiの初期設定
- SDカードとアダプターを用意し,PCに挿入する.
- DD for Windowsのインストール
参考サイト:DDfor Windows - Tech Info
参考サイトからDDWinをインストールする.
(今回はVer.0.9.9.8を使用している)
インストールしたらZIPファイルを展開しておく.
- Raspbianのインストール
参考サイト:Download Raspbian for Raspberrypi
参考サイトからRaspbianをダウンロードする.
サイト内の「Raspbian strech with desktop」のZIPファイルをダウンロードする.
インストールしたらZIPファイルを展開しておく.
- DDwinを使ってラズパイ用のOSをSDカードに書き込む
DDwinのアプリケーションを管理者として実行する.
左側のディスク選択は書き込むSDカードを指定する.(初めからなってるかも)
その後,右側のファイル選択から先程ダウンロードしたRaspbianのファイル(2018-11-13-raspbian-stretch.img)~を選択する.
(この時,フォルダの中に何も入っていないことになっている場合は,右下のddiをAll filesに変更すると出てくる.)
選択したら書込をクリックし,完了したらSDカードを取り出す.
- ラズパイでの初期設定
- ラズパイにSDカードを挿入し,ディスプレイ・マウス・キーボードを接続する.
ラズパイを電源に接続し,ラズパイの画面がちゃんと起動したらOSの書き込みは成功している.
- 右上から研究室のWifiに接続する.
- 左上のラズパイのマークから,Preferences>Raspberry Pi Configurationをクリック.以下のように設定を変更し,再起動する.
- System
ここでユーザー名とパスワードを設定できる.初期設定だとユーザー名は「pi」,パスワードは「raspberry」になっている.
パスワードは初期設定のままだとラズパイ起動時に毎回警告が出るのでそれが嫌なら任意のものに変えるといい.
- Interdface
SSHをEnableに変更する.
- Localisation
LocateのLanguageを「ja」に変更する.
TimeZoneを「Japan」に変更する.
KeyboardのLayoutを「Japanese」に変更する.
WifiCountryを「JP」に変更する.
- 再起動後左上のターミナルを開き,以下のコマンドを入力する.
sudo raspi-config
すると画面が切り替わる.ここからはキーボードのカーソルキーで操作する.
まず7番のAdvanced Optionsを選択し,その後A1のExpand Filesystem1を選択する.
すると許可を求める画面が出るのでEnterキーで許可する.
その後最初の画面に戻るのでfinishを選択し,再起動するか聞かれるのでYesを選択する.
- 再起動後再度ターミナルを開き,以下のコマンド
sudo apt-get update
を入力するすると,アップデートが始まる.終了したら,
sudo apt-get upgrade
を入力するすると,アップデートが始まる.この時続行するかを聞かれるので,Yと入力し続行する.終了したら,
sudo reboot
で再起動する.
ここまでで初期設定が終了である.
RaspberryPiの各種設定
- RaspberryPiのIPの固定
TeraTermでラズパイに接続するためにIPの固定をする.
左上のフォルダを起動し,フォルダ>etc>dhcpcd.confを起動し,コードの1番下に以下のように書き込む.
#okuharaLab
interface wLan0
static ip_address=10.0.221.144/24
static routers=10.0.221.1
static domein_name_servers=10.0.221.1
書き込んだら保存し,ラズパイを再起動する.
再起動後,左上からターミナルを起動し,
ifconfig
と入力すると,IPの一覧が出てくる.その中のwLanのIPの項目が書き加えたIPのアドレスになっていたらOK.
- 使用するプログラム
プログラムは以下のものを使う.
ラズパイでWikiを開いてダウンロードしてもいいし,USB経由でダウンロードしてもいい.
プログラムはホームのディレクトリ内(pi)に置いておく.
これでラズパイの設定は終わりである.
Teraterm
ラズパイをPC上でリモート操作するためのソフト.
特にバージョンにこだわったりインストールする際の注意事項はないので,
「Teraterm インストール」で検索して自分のPCにインストールする.
raspberrypiに接続する際はラズパイ側のIPアドレスが必要なので控えておく.(今回は「10.0.221.144」)
Xampp
- xamppのインストール
xamppとはApacheでサーバーを立てたりMySQLを使用できたりする便利なソフトである.
https://www.apachefriends.org/jp/index.html
上記のURLからそれぞれの環境に合わせてxamppをインストールする.
インストールで不明な点があったら以下のURLを参考にするといい.
https://www.adminweb.jp/xampp/install/index1.html
- xamppの設定変更
C:\xamppの位置にxampp-control.exeというものがあるのでそちらを起動,下記の画像のような画面が表示される.
configからApache(http.conf)を選択すればApacheの設定ファイルの中身が表示される.
・ローカルIP設定
Apacheの設定ファイルの59行目に
Listen 80
とあるので
Listen\ 8080
と書き換えておく.
Apacheの設定ファイルの227行目に
ServerName localhost:80
とあるので
ServerName localhost:8080
と書き換えておく.
・ディレクトリパス設定
251・252行あたりの DocumentRoot と Directory のパスを下記のように書き換える.
DocumentRoot "C:/xampp/htdocs/changeroot"~
Directory "C:/xampp/htdocs/changeroot"~
その後にhtdocsの中にchangerootというフォルダを作っておく.
PC側の設定
- プログラム各種
以下のphpファイルダウンロードする.
send.phpはxamppの中のhtdocs→changerootフォルダ内に入れておく.
test1.phpはxampp>htdocs>changerootのフォルダ内に入れておく.
実行
- Tera Termを起動する.
上のような画面が出てくるので,アドレスを「10.0.221.144」に変更し「接続」をクリック.
するとユーザー名とパスワードを求められる.
ユーザー名に「pi」、パスワードに「raspberry」を入力する.(ラズパイ初期設定のままの場合)
これでラズパイへのリモート接続が完了.
その後,次のコマンドを入力する.
sudo nano sensa.py
ここでsensa.pyの編集を行う.
・urlの部分のIPアドレスを自分のPCのものに変更する.
・Ctrl+x → y → Enterで編集画面を閉じる.
その後、次のコマンドを入力し、接続しているアルディーノの型番を確認する.
ls /dev/ttyA*
もう一回post.pyの編集画面を開き型番を確認、違ったら変更する.
- Xampp-control.exeを起動する.
Apacheの横にある「start」をクリック.~
(これでラズパイからphpファイルへ接続するためのサーバーを建てた)
- Tera Termに戻り、次のコマンドを入力する.
python sensa.py
すると,changerootフォルダ内にデータを記録したcsvファイルができる
現状の課題と今後
- Wifiモジュールを使ってRaspberryPiを使わずに接続できるようにする→軽量化
- 今は同一Wifi内でしか接続できない
→外からでも研究室のサーバーにデータを送れるようにする(この辺は小野田さんに聞けば何らかの情報が得られるかもしれない)
補足
以下の項目は以前に取得したデータをWEBサイト上にリアルタイムで表示していた際に使用していた項目である.現在のプログラムではうまく動かない.
- 取得したデータをサイト上に表示するのに必要なもの
- node.js
socket通信を用いるのでその前段階としてまずnode.jsというものを入れる.
https://qiita.com/taiponrock/items/9001ae194571feb63a5e
上記のサイトの手順に従ってインストールを行う.
インストールが終わったら以下のコマンド
node -v
をコマンドプロンプトで打ち込む.
バージョンが表示されればインストールは完了している.
次にsocket.ioというものを入れる.
npm install socket.io
上記のコマンドを打ち込むとインストールが始まる.
- RealTimeWEB
以下のZIPファイルとをダウンロードする.
ZIPファイルは適当なところに展開して構わない.
展開したファイルのディレクトリ内でのパスは後で使うので控えておく.
ここにソースコードを貼ると量がすごいので書き換えるところを以下に示しておく.(分からないところがあれば聞いてください)
- 実行する際には
Xampp起動後にTeraTermでプログラムを実行する前に以下のことをする.
- コマンドプロンプトを開く.
ディレクトリをリアルタイムWEBファイル内のsocketまで移動する.
移動したら、次のコマンドを入力する.
node server.js
(これでaccept.jsからindex.htmlへ接続するためのサーバーを建てた)
- ブラウザ(なんでもいい)で以下のURLに接続 .
http://localhost:3000
接続すると表示用のサイトが開く.