Raspberry Pi 初心者の個人的なメモ

#概要と目次
新しくRaspberryPiのセットアップが必要になったとき用に諸々のメモ
2021.07.11 新規作成
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; motion
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; picameraキャプチャのとり方
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bluetooth接続方法
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ポートの設定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 仮想環境の構築
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Google Assistant API
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AWSIOTへのデータ送信
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 画面の解像度を変えたい
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lチカしたい
2021.07.14 Tensorflow Liteで物体認識 追加
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOまとめ 追加
2021.07.17 QRコードの読み取り 追加
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; picameraピントの合わせ方追加


##motion（カメラ画像web配信、動体検知)
* インストール<br>sudo apt-get install motion
* 設定<br>sudo nano /etc/motion/motion.conf
* 起動<br> sudo motion -xxx<br>xxx=b background mode, n=not background mode
* 実行時にhttp<style></style>://192.168.0.x:8080でwebカメラとして見れない場合<br>motion.confのwebcam_localhost on を off に

##picameraキャプチャのとり方
* Piカメラでキャプチャを取る<br>raspistill -o image.jpg

##picameraピントの合わせ方
十字方向に出っ張りを爪などで引っ掛けて回すとフォーカスが変わる
カメラ先端から撮像面まで1-2cmくらいまでは近づけられる
近づける方に合わせるとカメラが前に出っ張ってくる
回しすぎると外れる(メカストップがない)ので注意

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/433821/a7ed0e7d-29e9-3cac-1070-00cfafa57bc7.png)

##ssh
https://qiita.com/c60evaporator/items/2384416f1122ae124f50

パスワード認証/公開鍵認証どちらも記載あり。ありがたい！

*  sshでの接続<br>ssh pi@raspberrypi -p ポート番号

##chmodについて
https://hacknote.jp/archives/51298/

600はrw-------所有者のみ読み書き可能を示す


##bluetooth接続方法
https://qiita.com/noraworld/items/55c0cb1eb52cf8dccc12

使い方は上記記事を参考
キーボードの接続がうまく行かない場合、pairしたあとにconnectするとうまくつながることがある(実際つながった)

##ポートの設定
* インストール<br> sudo apt install ufw
* 許可<br>sudo ufw allow portNum
* ステータスの表示<br>sudo ufw status
* 開始/終了<br>sudo ufw enable/disable

##IPアドレスの固定
https://mugeek.hatenablog.com/entry/2019/05/27/230256

他PCからDNSやGWの設定を確認することで簡単に設定できる

##NextCloud-Cloudサーバを建てる

https://qiita.com/pira/items/10efe9e93cbf13e1617f

##NextCloud 信頼できないドメインを介したアクセスが表示された
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/433821/c918a702-9987-a5a3-be29-863728e3c7bd.png)

https://linuxfun.org/2020/11/30/nextcloud-domain-access/

##viコマンド(テキスト編集)の使い方
https://eng-entrance.com/linux-command-vi


##仮想環境の構築
https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e

とってもわかりやすい
例)

* python3 -m venv env
* source env/bin/activate

##Google Assistant API

https://engetu21.hatenablog.com/entry/2019/05/06/012435

https://developers.google.com/assistant/sdk/guides/service/python/embed/setup

ブログを参考に、公式ページを見ながら実施。
OAuth 同意画面 を作らないとうまく行かないので注意
OK Googleするコマンド
googlesamples-assistant-pushtotalk --project-id PROJECTID --device-model-id DEVICEMODELID

専用のコマンドを作るには

https://note.com/mizutory/n/nf0f8f532927a

##AWSIOTへのデータ送信
https://tech.gmogshd.com/raspberrypi-and-awsiot/
https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/sdk-tutorials.html
基本的にはaws公式サイトを見たほうがいい。画面などイメージしづらい部分はブログ参考に

*  ENDPOINT<br>例：abcde1234567890xyz-ats.iot.us-east-1.amazonaws.com<br>左側の一覧(証明書やモノなど選べる欄)の一番下の方にある設定画面から飛ぶと確認できる
*  リージョンの切り替え<br>右上に 米国西部 (オレゴン) のような形で地域名が書かれている部分があるので、そこをクリック<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/433821/362dbe2b-4386-93e8-5ec3-d57b48b623e0.png)

##画面の解像度を変えたい
*  Screen Configurationをデスクトップ左上スタートメニューから起動して設定する。<br>初回起動時はうまく動かないことがあるので(実際動かなかった)、再起動するといいかも

##Lチカしたい

https://qiita.com/westvirginia/items/e339dbaf3286ea966483

素晴らしい

##Tensorflow Liteで物体認識
ここのとおりやれば比較的簡単にできた
家にあったコップをコップと認識してくれて感動した！

https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection/raspberry_pi

##QRコードの読み取り

```Python:QRdetect.py

cap = cv2.VideoCapture(1)
#↓にして実行すれば動いた
cap = cv2.VideoCapture(0)

```

https://qiita.com/h-kiyo/items/45e991a6d046211ed834

#GPIOまとめ(Raspberry Pi 4B GPIOの機能はどの機種も同じ)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/433821/773f0839-cad9-7dbf-2187-53266b92b005.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/433821/093c245d-d742-440c-7a19-9a258af84612.png)

ピン配

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/433821/d9bd8bfe-ffdd-8c04-bad2-18da438e3a4e.png)

###通常使わないALT機能について

FL0/FL1:BCM283Xのデバッグを支援するツール用のピン
https://github.com/RPi-Distro/raspi-gpio より

ARM-TRST …　ARM JTAG reset
ARM-RTCK … ARM JTAG return clock
ARM-TDO …   ARM JTAG Data out
ARM-TCK …   ARM JTAG Clock
ARM-TDI …   ARM JTAG Data in
ARM-TMS …   ARM JTAG Mode Select

PCLKD / DED / LCD_VSYNC / LCD_HSYNCD DPI_DxDisplay
→Display Parallel Interface

SAX … Secondary mem Address bus  X=1.2.3...
SDX … Secondary mem Data bus X=1.2.3...
SOE_N / SE … Secondary mem. Controls
SWE_N / SRW_N … Secondary mem. Controls

https://datasheets.raspberrypi.org/cm4/cm4-datasheet.pdf
より