#author("2022-12-22T04:22:35+00:00","","")
#author("2022-12-22T04:24:00+00:00","","")
[[専門ゼミ(蒲田)]]

*目次 [#e890b3d5]

#CONTENTS
**【12月8日の専門ゼミの内容】[#i495c384]
・ブレッドボードを用いて簡単なセンサ配線の組み方の習得~
・Arduino IDEを用いた基本的なセンシングプログラムの記述~
・RaspberryPiをVNCを用いて遠隔操作してのセンシング~

**【参考資料】[#n524e1f0]

https://qiita.com/tanakadaichi_1989/items/c655d93a1fae56f2be07~
https://algorithm.joho.info/arduino/fsr402/

**【ブレッドボードを用いた簡単なセンサ配線の組み方の習得】[#q403d9b3]

***ブレッドボードとは [#yd049dee]

センサ類をワイヤーを用いて配線するための基盤。~
ユニバーサル基盤とは違い簡単に配線を組むことができる。~

#ref(専門ゼミ/ブレッドボード.jpg,,46%)
#ref(ブレッドボード中身.jpg,,120%)
#ref(専門ゼミ/ブレッドボード中身.jpg,,120%)
~

***Arduinoを用いたセンシング [#yd049dee]

今回はFSR402圧力センサをブレッドボードを用いて配線を組む。~
必要な道具は「FSR402」と「10kオーム抵抗」。~

これらを配線してArduino Unoと接続してセンサデータを取得する。~
配線図は下に示す。授業ではこれをもとにブレッドボードを用いて配線を組んでいく。~

#ref(大森/ArduinoUno.png,,47%)
#ref(専門ゼミ/ArduinoUno.png,,47%)
~

**【Arduino IDEを用いた基本的なセンシングプログラムの記述】[#q403d9b3]

***Arduino IDEとは [#yd049dee]
Arduino IDEとはArduinoを動かすためのプログラミングソフトウェアである。~
ここで用いる言語は「Arduino言語」とよばれ、C言語とC++をもとに作られている。~

***Arduino言語の基本的な記述 [#yd049dee]

#ref(Arduinolang.png,,50%)
#ref(専門ゼミ/Arduinolang.png,,50%)
~
新規ファイルを作成すると、まず、図のように「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にコンパイルする方法 [#yd049dee]

まずは「ツール」を開き、ボードを選択する。~
Arduino Unoを使っている場合は「Arduino Uno」を、Arduino nanoを使っている場合は「Arduino nano」を選択する。~
次にシリアルポートを選択する。PCで接続している場合「COM~」と表示される。RaspberryPiに接続している場合はUnoの場合は「~ACM0」を、nanoの場合は「~USB0」を選択する。~
最後に画面左上にある矢印をクリックすればArduinoに書き込まれる。~

***授業課題 [#yd049dee]
・Arduino IDEでArduino言語を用いてブレッドボードで配線した圧力センサのデータを取得し、シリアルプロッタでデータを確認しよう。~

**【RaspberryPiをVNCを用いて遠隔操作してのセンシング】[#q403d9b3]

***VNC Viewer [#yd049dee]
VNC ViewerはRaspberryPiを遠隔で操作するためのソフトウェアである。~
これを用いてファイルの送受信も可能である。~
今回、RaspberryPiにアクセスする場合のIDとパスワードはともに「raspberrypi」である。~

***Win SCP [#yd049dee]
今回は研究室にあるサーバにアクセスするために用いる。~
<サーバにアクセスする方法>~
アドレス「133.55.115.240」~
ユーザ名 自分のギリシャ文字(大森の場合はlambda)~
パスワード ギリシャ文字を含んだパスワード(大森の場合はElambda15)~

***コマンドプロンプトでサーバにアクセスする方法 [#yd049dee]
まずコマンドプロンプトを起動する。~
#ref(サーバ1.png,,40%)
起動したら画像のように
 ssh ギリシャ文字@133.55.115.240
と入力する。するとパスワードを問われるのでギリシャ文字を含んだ自分のパスワードを入力する。~
すると下図のようにサーバログイン成功画面となる。~
#ref(サーバ2.png,,40%)
~
この状態で専門ゼミのディレクトの階層に行くためには~
 cd ..
 cd ..
 cd var/www/html/professional_zemi_one
で可能。~
~
ファイル編集やプログラムの実行はsudo権限が必要となる。その場合は下図のように~
#ref(サーバ3.png,,40%)
#ref(専門ゼミ/サーバ3.png,,40%)
 sudo su -
と入力する。パスワードを問われるので同じくギリシャ文字を含んだパスワードを入力する。~

#ref(サーバ4.png,,40%)
#ref(専門ゼミ/サーバ4.png,,40%)
するとsudo権限でサーバにアクセスすることができる。~

 cd ..
 cd var/www/html/professional_zemi_one
と入力すると今回の専門ゼミで用いるディレクトリに入ることができる。~

#ref(サーバ5.png,,40%)
#ref(専門ゼミ/サーバ5.png,,40%)
~
***2週間課題 [#yd049dee]
・今日作ったデバイスを使って、通信プログラムでデータをサーバに蓄積しよう。~
~
今回、配ったRaspberryPiにclient.pyが入っている。~
#ref(client1.png,,40%)
#ref(専門ゼミ/client1.png,,40%)
~
しかし、いくつかがQuestionになっているので自分で埋めなければ動かない。~
・Q1_サーバアドレスを記入せよ~
・Q2_シリアルポートを記入せよ~
・Q3_ポートの通信速度を記入せよ~
~
それをRaspberryPi上で動かせば自動的にサーバに圧力データが蓄積されるようになっている。~
課題は圧力データを10分収集すること。~
データはprofessional_zemi_oneの日付ディレクトリの中の自分の名前のディレクトリに自動的にcsvで1分ごとに作成される。~
#ref(サーバ6.png,,40%)
#ref(専門ゼミ/サーバ6.png,,40%)

このcsvファイルが10個でき上っていればO.K.とする。~
#ref(Win.png,,40%)
#ref(専門ゼミ/Win.png,,40%)
~
~
~
#ref(専門ゼミ課題1222.gif,,46%)
**【追記~今回におけるRaspberryPiでArduino IDEを開く方法~】[#n524e1f0]

ここにRaspberryPiでArduino IDEを開く方法を記す。~
RaspberryPiのターミナル上で~
 cd Desktop/arduino-1.8.19
 ./arduino
と入力すればArduino IDEを開くことができる。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS