#author("2022-12-22T06:01:08+00:00","","") #author("2023-01-12T03:32:10+00:00","","") [[平井]] *目次 [#e890b3d5] #CONTENTS **【12月8日の専門ゼミの内容】[#i495c384] ・ブレッドボードを用いて簡単なセンサ配線の組み方の習得~ ・Arduino IDEを用いた基本的なセンシングプログラムの記述~ ・RaspberryPiをVNCを用いて遠隔操作してのセンシング~ **【ストレスコーピングについて】[#i495c384] ストレスの基(ストレッサー)にうまく対処しようとすること。問題焦点コーピングと情動焦点コーピングに分けられる。 **【参考資料】[#n524e1f0] ストレッサーによって過剰なストレスが慢性的にかかると心身へのさまざまな悪影響が考えられるため、健康を維持するにはうまくストレスコーピングすることが必要になる。 https://qiita.com/tanakadaichi_1989/items/c655d93a1fae56f2be07~ https://algorithm.joho.info/arduino/fsr402/ **【問題焦点コーピングについて】[#i495c384] ストレッサーそのものに働きかけて、それ自体を変化させて解決を図ろうとすること。 **【ブレッドボードを用いた簡単なセンサ配線の組み方の習得】[#q403d9b3] **【情動焦点コーピングについて】[#i495c384] ストレッサーそのものに働きかけるのではなく、それに対する考え方や感じ方を変えようとすること ***ブレッドボードとは [#yd049dee] **【実行環境】[#rde624e4] ・Python3~ ・Raspberry Pi Zero WH~ ・Arduino nano ・Tinkercad センサ類をワイヤーを用いて配線するための基盤。~ ユニバーサル基盤とは違い簡単に配線を組むことができる。~ **【環境構築】 [#udebb2c6] 以下のページを見ながら環境構築を行った。~ [[専門ゼミ 北田]] #ref(専門ゼミ/ブレッドボード.jpg,,46%) #ref(専門ゼミ/ブレッドボード中身.jpg,,120%) ~ 今回は研究室のサーバーにあるファイルを確認した。~ 一応課題はTinkercadで北田さんの研究の首回りを考えるというものだったが今回は無しになったので暇なときに作りたい。 ***Arduinoを用いたセンシング [#yd049dee] **【参考文献】[#i495c384] ストレスコーピング -e-ヘルスネット -厚生労働省~ https://www.e-healthnet.mhlw.go.jp/information/dictionary/exercise/ys-068.html 今回はFSR402圧力センサをブレッドボードを用いて配線を組む。~ 必要な道具は「FSR402」と「10kオーム抵抗」。~ これらを配線してArduino Unoと接続してセンサデータを取得する。~ 配線図は下に示す。授業ではこれをもとにブレッドボードを用いて配線を組んでいく。~ #ref(専門ゼミ/ArduinoUno.png,,47%) ~ **【Arduino IDEを用いた基本的なセンシングプログラムの記述】[#q403d9b3] ***Arduino IDEとは [#yd049dee] Arduino IDEとはArduinoを動かすためのプログラミングソフトウェアである。~ ここで用いる言語は「Arduino言語」とよばれ、C言語とC++をもとに作られている。~ ***Arduino言語の基本的な記述 [#yd049dee] #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%) sudo su - と入力する。パスワードを問われるので同じくギリシャ文字を含んだパスワードを入力する。~ #ref(専門ゼミ/サーバ4.png,,40%) するとsudo権限でサーバにアクセスすることができる。~ cd .. cd var/www/html/professional_zemi_one と入力すると今回の専門ゼミで用いるディレクトリに入ることができる。~ #ref(専門ゼミ/サーバ5.png,,40%) ~ ***2週間課題 [#yd049dee] ・今日作ったデバイスを使って、通信プログラムでデータをサーバに蓄積しよう。~ ~ 今回、配ったRaspberryPiにclient.pyが入っている。~ #ref(専門ゼミ/client1.png,,40%) ~ しかし、いくつかがQuestionになっているので自分で埋めなければ動かない。~ ・Q1_サーバアドレスを記入せよ~ ・Q2_シリアルポートを記入せよ~ ・Q3_ポートの通信速度を記入せよ~ ~ それをRaspberryPi上で動かせば自動的にサーバに圧力データが蓄積されるようになっている。~ 課題は圧力データを10分収集すること。~ データはprofessional_zemi_oneの日付ディレクトリの中の自分の名前のディレクトリに自動的にcsvで1分ごとに作成される。~ #ref(専門ゼミ/サーバ6.png,,40%) このcsvファイルが10個でき上っていればO.K.とする。~ #ref(専門ゼミ/Win.png,,40%) ~ ~ ~ **【追記~今回におけるRaspberryPiでArduino IDEを開く方法~】[#n524e1f0] ここにRaspberryPiでArduino IDEを開く方法を記す。~ RaspberryPiのターミナル上で~ cd Desktop/arduino-1.8.19 ./arduino と入力すればArduino IDEを開くことができる。