・ブレッドボードを用いて簡単なセンサ配線の組み方の習得
・Arduino IDEを用いた基本的なセンシングプログラムの記述
・RaspberryPiをVNCを用いて遠隔操作してのセンシング
https://qiita.com/tanakadaichi_1989/items/c655d93a1fae56f2be07
https://algorithm.joho.info/arduino/fsr402/
センサ類をワイヤーを用いて配線するための基盤。
ユニバーサル基盤とは違い簡単に配線を組むことができる。
#ref(): File not found: "ブレッドボード.jpg" at page "12/6 中市"
#ref(): File not found: "ブレッドボード中身.jpg" at page "12/6 中市"
今回はFSR402圧力センサをブレッドボードを用いて配線を組む。
必要な道具は「FSR402」と「10kオーム抵抗」。
これらを配線してArduino Unoと接続してセンサデータを取得する。
配線図は下に示す。授業ではこれをもとにブレッドボードを用いて配線を組んでいく。
#ref(): File not found: "ArduinoUno.png" at page "12/6 中市"
Arduino IDEとはArduinoを動かすためのプログラミングソフトウェアである。
ここで用いる言語は「Arduino言語」とよばれ、C言語とC++をもとに作られている。
#ref(): File not found: "Arduinolang.png" at page "12/6 中市"
新規ファイルを作成すると、まず、図のように「void setup」と「void loop」の2種類が表示される。
「void setup」はArduinoを動かすための基本的な準備をする部分である。
例えばシリアル通信を行うためのビットレートを記述する。
最大転送速度が115200のため今回はそれを用いることにする。
なのでそこには
Serial.begin(115200);
と書けばよい。
「void loop」はそのArduinoで行う作業の内容を命令する部分である。
例えばアナログピン(A0など)からセンサデータを取得したい場合は
○○ = analogRead(A0);
と入力すればよい。
データを出力する場合は
Serial.println(○○);
と記述すればよい。
データをどの間隔で取得するかについては「delay」を用いる。
例えば
delay(500);
と最後に記述すれば500ミリ毎秒、すなわち1秒間に2個ずつデータを収集する。
今回このdelayは通信の都合で100とする。
まずは「ツール」を開き、ボードを選択する。
Arduino Unoを使っている場合は「Arduino Uno」を、Arduino nanoを使っている場合は「Arduino nano」を選択する。
次にシリアルポートを選択する。PCで接続している場合「COM~」と表示される。RaspberryPiに接続している場合はUnoの場合は「~ACM0」を、nanoの場合は「~USB0」を選択する。
最後に画面左上にある矢印をクリックすればArduinoに書き込まれる。
・Arduino IDEでArduino言語を用いてブレッドボードで配線した圧力センサのデータを取得し、シリアルプロッタでデータを確認しよう。
VNC ViewerはRaspberryPiを遠隔で操作するためのソフトウェアである。
これを用いてファイルの送受信も可能である。
今回、RaspberryPiにアクセスする場合のIDとパスワードはともに「raspberrypi」である。
今回は研究室にあるサーバにアクセスするために用いる。
<サーバにアクセスする方法>
アドレス「133.55.115.240」
ユーザ名 自分のギリシャ文字(大森の場合はlambda)
パスワード ギリシャ文字を含んだパスワード(大森の場合はElambda15)
まずコマンドプロンプトを起動する。
#ref(): File not found: "サーバ1.png" at page "12/6 中市"
起動したら画像のように
ssh ギリシャ文字@133.55.115.240
と入力する。するとパスワードを問われるのでギリシャ文字を含んだ自分のパスワードを入力する。
すると下図のようにサーバログイン成功画面となる。
#ref(): File not found: "サーバ2.png" at page "12/6 中市"
ファイル編集やプログラムの実行はsudo権限が必要となる。その場合は下図のように
#ref(): File not found: "サーバ3.png" at page "12/6 中市"
sudo su -
と入力する。パスワードを問われるので同じくギリシャ文字を含んだパスワードを入力する。
#ref(): File not found: "サーバ4.png" at page "12/6 中市"
するとsudo権限でサーバにアクセスすることができる。
cd .. cd var/www/html/professional_zemi_one
と入力すると今回の専門ゼミで用いるディレクトリに入ることができる。
#ref(): File not found: "サーバ5.png" at page "12/6 中市"
・今日作ったデバイスを使って、通信プログラムでデータをサーバに蓄積しよう。
今回、配ったRaspberryPiにclient.pyが入っている。
#ref(): File not found: "client1.png" at page "12/6 中市"
しかし、いくつかがQuestionになっているので自分で埋めなければ動かない。
・Q1_サーバアドレスを記入せよ
・Q2_シリアルポートを記入せよ
・Q3_ポートの通信速度を記入せよ
それをRaspberryPi上で動かせば自動的にサーバに圧力データが蓄積されるようになっている。
課題は圧力データを10分収集すること。
データはprofessional_zemi_oneの日付ディレクトリの中の自分の名前のディレクトリに自動的にcsvで1分ごとに作成される。
#ref(): File not found: "サーバ6.png" at page "12/6 中市"
このcsvファイルが10個でき上っていればO.K.とする。
#ref(): File not found: "Win.png" at page "12/6 中市"
ここにRaspberryPiでArduino IDEを開く方法を記す。
RaspberryPiのターミナル上で
cd Desktop/arduino-1.8.19 ./arduino
と入力すればArduino IDEを開くことができる。