#author("2023-03-03T01:19:01+00:00","","")
#author("2023-03-09T07:28:55+00:00","","")
[[技術資料]]~

#Contents

**準備するもの [#ebc3d252]
***マイコン類 [#y5c35628]
Raspberry Pi Zero WH
#ref(1.PNG,,8%)
Arduino nano 
#ref(2.PNG,,8%)
***センサ類 [#y015e260]



9軸センサ
#ref(5.PNG,,40%)
心拍センサ
#ref(8.PNG,,25%)
その他:Respeaker 2-mics pi hat, microHDMIケーブル, バッテリー(Pisuger)とmicro USB-typeb, ArduinoとRaspberry Piをつなぐケーブル(microUSB-typeb to miniUSB-typeb), ブレッドボード, イヤホン~

**Raspberry Pi Zeroの初期設定 [#bf01853b]
Raspberry Pi Zero WHでも下記の通りに初期設定をすることができます.

-用意するもの~
ラズパイ、MicroSDカード、ディスプレイ、HDMI線、USBマウス、USBキーボード、PC、ACアダプタ~
+SDカードとアダプターを用意し,PCに挿入する.~
+balenaEtcherのインストール~
参考サイト:[[Etcher公式:https://www.balena.io/etcher/]]~
[[https://www.balena.io/etcher/]]~
参考サイトからEtcherをインストールする.~
インストールしたらZIPファイルを展開しておく.~
+Raspbianのインストール~
参考サイト:[[Download Raspbian for Raspberrypi:https://www.raspberrypi.org/downloads/raspbian/]]~
参考サイトからRaspbianをダウンロードする.~
サイト内の「Raspberry Pi OS with desktop and recommended software」のZIPファイルをダウンロードする. 
~
+Etcherを使ってラズパイ用のOSをSDカードに書き込む~
Etcherを起動すると、ウィンドウが表示され、まずSelect image をクリック、ダウンロードしたRaspbianのimgファイルを選択する。~
書き込むSDカードが自動的に選択される。~
Flashをクリックすると書き込みが始まる。~
+ラズパイでの初期設定
-ラズパイにSDカードを挿入し,ディスプレイ・マウス・キーボードを接続する.~
ラズパイを電源に接続し,ラズパイの画面がちゃんと起動したらOSの書き込みは成功している.~
-右上から研究室のWifiに接続する.~
-左上のラズパイのマークから,Preferences>Raspberry Pi Configurationをクリック.以下のように設定を変更し,再起動する.~
--System~
ここでユーザー名とパスワードを設定できる.初期設定だとユーザー名は「pi」,パスワードは「raspberry」になっている.~
パスワードは初期設定のままだとラズパイ起動時に毎回警告が出るのでそれが嫌なら任意のものに変えるといい.~
--Interdface~
SSHとVNCをEnableに変更する.~
--Localisation~
LocateのLanguageを「ja」に変更する.~
TimeZoneを「Japan」に変更する.~
KeyboardのLayoutを「Japanese」に変更する.~
WifiCountryを「JP」に変更する.~

もし特定のwifiにしか接続できない場合は以下を確認する。

1, LANや無線LAN等のインタフェースの設定ファイル~
 /etc/network/interfaces
2, 無線LANのSSIDやパスフレーズを設定するファイル~
 /etc/wpa_supplicant/wpa_supplicant.conf
3, IPアドレスの設定ファイル~
 /etc/dhcpcd.conf

以上のファイルの中身を書き換えることで、直すことができる。

-再起動後左上のターミナルを開き,以下のコマンドを入力する.~
    sudo raspi-config
すると画面が切り替わる.ここからはキーボードのカーソルキーで操作する.~
まず大容量のSDカードを使用しても、初期設定のままでは先頭の 2GB 程度のみの利用しかできなくなっているため、 Expand Filesystemを使い容量を拡張する。~
上記7番のAdvanced Optionsを選択し,その後A1のExpand Filesystem1を選択する.~
すると許可を求める画面が出るのでEnterキーで許可する.~
その後最初の画面に戻るのでfinishを選択し,再起動するか聞かれるのでYesを選択する.~
-再起動後再度ターミナルを開き,以下のコマンド~
    sudo apt-get update
を入力するすると,アップデートが始まる.終了したら,~
    sudo apt-get upgrade
を入力するすると,アップデートが始まる.この時続行するかを聞かれるので,Yと入力し続行する.終了したら,~
    sudo reboot
で再起動する.~
~
~

以下でパソコンでの遠隔操作ができるようにする。~
-VNCビュワー
これをつかってもPC上で操作できる。
重くないのでストレスにはならない
[[ここから:https://www.realvnc.com/en/connect/download/viewer/]]ダウンロードする。
起動したのち、ラズパイのIPアドレスおよびユーザー名、パスワードを入力すればもれなくPC上に表示できる。
これはVNCなのでラズパイの方で
メニュー>設定>ラズパイの設定>インターフェースのVNCを「Enable」にする必要がある。

***Raspberry Piのpython [#z26b33ec]
まずはコンパイルに必要になるライブラリをインストールします。(python3.7.2の場合)~
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt install libffi-dev libssl-dev openssl
次にソースコードのダウンロード~
    $ wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
コンパイルしていきます。~

    $ tar zxvf Python-3.7.2.tgz
    $ cd Python-3.7.2
    $ ./configure
    $ make
    $ sudo make install
エラー無くインストールできたらバージョンを確認します。~

    $ python3 -V
    Python 3.7.2
続いてpipのアップデートを行います。~

    $ sudo pip3 install --upgrade pip
    $ pip3 --version
    pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

***python2からpython3への変更 [#r514c355]
Raspberry Piのpythonは最初メインがpython2なので下記に従ってpython3へと変更する。~
以下のコマンドを実行し、デフォルトで使用されるPythonのバージョンを確認します。~

    pi@raspberrypi:~ $ python --version
    Python 2.7.16
    pi@raspberrypi:~ $

インストール直後は、以下のように、python 2.7とpython 3.7の両方のバージョンがインストールされています。~

    pi@raspberrypi:/usr/bin $ ls -l | grep python
    -rwxr-xr-x 1 root root       1056 Mar  4  2019 dh_python2
    lrwxrwxrwx 1 root root         23 Oct 10  2019 pdb2.7 -> 
    ../lib/python2.7/pdb.py
    lrwxrwxrwx 1 root root         23 Jul 25 14:03 pdb3.7 -> 
    ../lib/python3.7/pdb.py
    lrwxrwxrwx 1 root root         31 Mar 26  2019 py3versions -> 
    ../share/python3/py3versions.py
    lrwxrwxrwx 1 root root          7 Mar  4  2019 python -> python2
    lrwxrwxrwx 1 root root          9 Mar  4  2019 python2 -> python2.7
    -rwxr-xr-x 1 root root    2984816 Oct 10  2019 python2.7
    lrwxrwxrwx 1 root root          9 Mar 26  2019 python3 -> python3.7
    -rwxr-xr-x 2 root root    4275580 Jul 25 14:03 python3.7
    -rwxr-xr-x 2 root root    4275580 Jul 25 14:03 python3.7m
    lrwxrwxrwx 1 root root         10 Mar 26  2019 python3m -> python3.7m
    lrwxrwxrwx 1 root root         29 Mar  4  2019 pyversions -> 
    ../share/python/pyversions.py

上記の実行結果からデフォルトで使用されるPythonは、Python 2.7へのシンボリックになっています。デフォルトで使用するPythonをPython 3.7に切り替えるには、このシンボリックリンクをPython 3.7へのシンボリックリンクに変更します。~
以下のコマンドを実行し、現在のPythonのシンボリックを削除します。~

    pi@raspberrypi:~ $ cd /usr/bin
    pi@raspberrypi:/usr/bin $ sudo unlink python

以下のコマンドを実行し、Python3.7へのシンボリックリンクを作成します。~

    pi@raspberrypi:~ $ cd /usr/bin
    pi@raspberrypi:/usr/bin $ sudo ln -s python3 python
Python 3.7へのシンボリックリンクが作成されていることを確認します。~

    pi@raspberrypi:/usr/bin $ ls -l | grep python
    -rwxr-xr-x 1 root root       1056 Mar  4  2019 dh_python2
    lrwxrwxrwx 1 root root         23 Oct 10  2019 pdb2.7 -> 
    ../lib/python2.7/pdb.py
    lrwxrwxrwx 1 root root         23 Jul 25 14:03 pdb3.7 -> 
    ../lib/python3.7/pdb.py
    lrwxrwxrwx 1 root root         31 Mar 26  2019 py3versions -> 
    ../share/python3/py3versions.py
    lrwxrwxrwx 1 root root          7 Oct 30 03:10 python -> python3     <-- ※ 
    作成したシンボリックリンク
    lrwxrwxrwx 1 root root          9 Mar  4  2019 python2 -> python2.7
    -rwxr-xr-x 1 root root    2984816 Oct 10  2019 python2.7
    lrwxrwxrwx 1 root root          9 Mar 26  2019 python3 -> python3.7
    -rwxr-xr-x 2 root root    4275580 Jul 25 14:03 python3.7
    -rwxr-xr-x 2 root root    4275580 Jul 25 14:03 python3.7m
    lrwxrwxrwx 1 root root         10 Mar 26  2019 python3m -> python3.7m
    lrwxrwxrwx 1 root root         29 Mar  4  2019 pyversions -> 
    ../share/python/pyversions.py
デフォルトで使用されるPythonのバージョンがPython 3.7に変更されていることを確認します。~

    pi@raspberrypi:~ $ python --version
    Python 3.7.3
以上で終了です。


**必要なプログラム [#jce109e8]
下記のプログラムを全てダウンロードする。
***サーバ上に置くプログラム [#vf5729ee]
#ref(receive_data.py)←Raspberry Piからのデータをサーバで受信する
#ref(processing_data_server.py)←サーバ上でデンドログラムやコーピングhtml表示などを行う

***Raspberry Pi用プログラム [#te480697]
#ref(newsensa_all_tkd_2.py)←センサデータをArduinoから受信
#ref(gasmic_tkd_1.py)←音声入力
#ref(sensa.py)←センサデータをArduinoから受信
#ref(mic.py)←音声入力

***csv,xlsx関連ファイル(これもサーバに置いとく) [#j67d13db]
#ref(fordend.csv)
#ref(fordend.xlsx)
#ref(fordend2.xlsx)

**Arduino初期設定 [#z47e3874]

***Arduino配線 [#j6c7f7e9]
表にしてます

9軸センサ


①3つ足の9軸センサの場合(はんだづけあり)~
|上の一番左-5V|下の左-GND|下の真ん中-A4|下の右-A5|

3つ足9軸はJP4からJP6をはんだづけしてください(センサ裏面にJPあります)~
参考:https://www.remma.net/?p=190

②4つ足の9軸センサの場合(はんだづけあり)~
|VIN-5V|GND-GND|SDA-A4|SCL-A5|


心拍センサ~
|黒い線-GND|赤い線-3.3V|紫色の線-A0|

完成図(Raspberry Pi Zero WHも装着すると以下のようになる)
#ref(newsensa.jpg,,20%)


***Arduino IDEダウンロード [#jbfa0b3d]
[[Arduino公式サイト>https://www.arduino.cc/en/software]]から最新のArduino IDEをダウンロードする。(Linux arm 32bitを選択する)~
USBメモリか何かを使ってPCにダウンロードしたものをなんとかRaspberry Pi上のダウンロードフォルダ内に置く。~
置いたらRaspberry Piのターミナルで
    pi@raspberrypi:~ $ cd Downloads
    pi@raspberrypi:~ $ tar xf ./arduino-1.8.16-linuxarm.tar.xz
    pi@raspberrypi:~ $ cd arduino-1.8.16/
    pi@raspberrypi:~ $ ./arduino
この4つを実行~
これが終わったらRaspberry Piの左上のラズベリーのマークをクリックするとプログラミング→Arduino IDEが出来上がっていると思うのでクリックすればArduino IDEが開けるようになる(もし出てこなかった場合は、arduino-1.8.16のディレクトリ内で下記のコマンドを入力)
    sudo sh install.sh
実行するとそのようなディレクトリは存在しないみたいなことを言われるが、左上のラズパイのマークを押してプログラミングを開けばできているはず~


***Arduinoシリアルポート設定 [#m3fbb7ed]
Arduino IDEを開いて、ツール>ボードからArduino nano ~
プロセッサでATmega328P(Old Bootloader)を選択~
この2つが正しく設定されるとシリアルポートが表示される。~

***Arduino用プログラム [#ieb2ebca]
#ref(Arduino用.zip)
app222.ino←これをArduinoに書き込む
Interrupt.ino←心拍センサの何かで使ってる

Interruptはapp222のフォルダの中に入れて置き開かない。~
app222の内容をコンパイルしてArduino IDEの左上のマークからArduino nanoに書き込む。ここでうまく書き込めればOK

***Arduino書き込み時エラー [#b87a7685]
大体上記の書き込みの時にエラーが出ることが多い。~
まず、ツール→ブートローダに書き込むをチェックする。~
エラーが出た場合[[ここ>https://physical-computing-lab.net/arduino/learn_arduino_bootloader_install.html]]を参照し,[[こっち>https://home-repair.ipwo.jp/nano/]]でArduino nanoのつなぎ方を確認する。~

次にincludeのファイルがないみたいなエラーが出た場合~
下記のzipファイルをダウンロード~
#ref(Adafruit_Sensor-master.zip)
スケッチ→ライブラリをインクルードからAdafruit_BME280と検索してインストールする。~
上記の2つのライブラリを追加するとエラーは解消されると思うので、再び書き込めるか確認し、書き込めたらArduino IDEの右上のシリアルモニタからbpsを合わせてセンサの値が取得されているのかを確認する。

**respeaker 2-mics pi hat初期設定 [#h3d276b1]
下記のURLを参考に初期設定を行う。~
https://urashita.com/archives/28039

**サーバ関連 [#z3364dcc]
***winSCPダウンロード [#f961477a]
winSCPはサーバ上にプログラムを置いたり,プログラムの文章を変更したい時などに見やすくて便利なものだから入れとく。~
[[winSCPダウンロードサイト:https://forest.watch.impress.co.jp/library/software/winscp/]]~
***winSCPログイン [#w704f6d1]
ホスト名:133.55.115.240~
ポート番号:22~
ユーザ名:raspi~
パスワード:raspi~
を入力すると入れる。
***サーバへのログイン方法 [#t6d78f4f]
①コマンドプロンプトを開く~
②開いたら
    ssh delta@133.55.115.240
と入力してenter~
③パスワードを要求されるので
    Adelta26
と入力(打った文字は見えないが入力はされている)~
④これでサーバにはログインできた。次にサーバをroot権限で扱いたいので
    sudo su -
と入力してenter(もしまたパスワード入力を求められたら③のパスワードと同じものを入力する)~
⑤root権限まで入れたら
    cd /var/www/html/physical-space_analysis
と入力

**システムの一連の流れ [#ua3ec957]
①サーバにログインしてreceive_data.pyを動かす~
②Raspberry Pi上のnewsensa_al_tkd_2.pyを動かす(ここでセンサデータが1024個貯まるまで待つ)~
③Raspberry Pi上のgasmic_tkd_1.pyを動かしてマイク入力を行う~
②Raspberry Pi上のsensa.pyを動かす(ここでセンサデータが1024個貯まるまで待つ)~
③Raspberry Pi上のmic.pyを動かしてマイク入力を行う~
④サーバ上のprocessing_data_server.pyを動かす~

**ケース [#nf62782b]
tinkercad(図とか自分で作る用のサイト): https://www.tinkercad.com/~
3Dプリンタ公式サイト: https://help.prusa3d.com/downloads~
ソフトDL(tinkercadで作った図をプリントできる): https://www.prusa3d.com/page/prusaslicer_424/~


参考:[[瀧田さん卒論]]~
メモ:[[メモ@引継ぎ研究]]

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