# Raspberry
### Index
---
1. [Instalation Process](#Instalation-Process)
2. [Raspberry Camera](#Raspberry-Camera)
3. [Nano Editor](#Nano-Editor)
4. [Reference](#Reference)
### Instalation Process
---
#### Download & Connection
1. **Download os**
2. **Download Raspberry Pi Imager**
* Set Raspberry Version - OS - Target Device
* Apply OS Customization:
* Set user, password and activate ssh
4. **Connection with PuTTy**
* Activate Host Name `raspberrypi.local`
* Insert Username and password
* `sudo raspi-config`
* `Interface Options` -> `VNC` -> `Yes`
5. **Connection with SSH**
* `ssh pi@<raspberry_ip>`
6. **Connection with VNC**
* Set IP Adress
* Set Username & Password
7. **Connection with Wireshark**
* Connect LAN Cable
* `View` -> `Name Resoltion` -> `Resolve Network Addresses`
* Search for `raspberrypi.local`
* Copy `Ipv6` Address and connect with ssh
### Raspberry Camera
---
**Check USB Camera**
* `sudo apt update && sudo apt upgrade`
* Video4Linux `sudo apt install v4l-utils`
* List Devices `v4l2-ctl --list-devices1`
* Find Supports of Camera Resolution `v4l2-ctl -d /dev/video0 --list-formats-ext`
**Capture Image**
* `sudo apt install fswebcam`
* Capture Image `fswebcam --no-banner -r {resolution} {image name}`
* fswebcam --no-banner -r 1280x720 Desktop/image1.jpg
**Video Streaming**
* `pip3 install opencv-contrib-python --break-system-packages`
* Create a python file `nano video_streaming.py`
```python=
import cv2
# camera_index is the video device number of the camera
camera_index = 0
cam = cv2.VideoCapture(camera_index)
while True:
ret,image = cam.read()
cv2.imshow('Image_test',image)
k = cv2.waikey(1)
if k != -1:
break
cam.release()
cv2.destroyAllWindows()
```
* `ctrl+xy`
* Set up environment variable `export QT_QPA_PLATFORM=xcb`
* Make an executable file`chmod +x {file name}”`
* `chmod +x video_streaming.py`
* Run `python3 file_name`
### Nano Editor
---
* Write File `ctrl+v`
* Paste `ctrl+shift+v`
* Save `ctrl+s`
* Delete All `ctrl+shift+K`
* Select All Text
* Jump at the beginning `ctrl+\`
* Set a mark `ctrl+6`
* Jump at the end `alt+/`
### Set-up an Static IP Address
https://phoenixnap.com/kb/raspberry-pi-static-ip
https://askubuntu.com/questions/1333526/how-to-permanently-save-the-content-of-etc-resolv-conf
### Copy Folder from Windows to Raspberry with SSH
`-r` recursive to copy a folder; no need to copy a single file
`raspberrypi.local` you can replace with raspberry IP
```shell!
scp -r [souce_folder] pi@raspberrypi.local:/home/pi/fall
move test.py ..
```
### TMUX Commands
`ctrl+B %` split the terminal in vertical
switch between terminals `ctrl+B ->(arrow)`
`tmux a`
### Work with OpenCV and CVZone
### Reference
---
* NTUST - Multimedia Course - Prof.黃琴雅
* HackMD Tutorial [Link](https://hackmd.io/c/tutorials/%2Fs%2Ftutorials)