doc: update expert setup

This commit is contained in:
Romain Bazile 2021-10-18 11:56:36 +02:00
parent 307eddf49d
commit 5d0c067eb6

View file

@ -92,12 +92,15 @@ These steps can also be done from the Raspberry Pi Configuration GUI tool that y
!!! tip !!! tip
Special optionnal step: overclocking Special optionnal step: overclocking
We are first going to make sure that your PlanktoScope receives proper PPS signal. We need to add the following line at the end of `/boot/config.txt`. Open the file with `sudo nano /boot/config.txt` and add the following at the end: We are first going to make sure that your PlanktoScope receives proper PPS signal. We need to add the following line at the end of `/boot/config.txt`. Open the file with `sudo nano /boot/config.txt` and add the following at the end:
``` ```
# Pi overclock # Pi overclock
over_voltage=6 over_voltage=6
arm_freq=2000 arm_freq=2000
``` ```
Those settings were verified to be stable, but if you notice any weird behavior under a high load, remove those lines. Those settings were verified to be stable, but if you notice any weird behavior under a high load, remove those lines.
@ -135,14 +138,17 @@ pip3 install -U -r /home/pi/PlanktoScope/requirements.txt
### Add to python path ### Add to python path
We need to do this to make sure we can call the modules from any path in the system, and not just from the `scripts` folder:
``` ```
ln -s /home/pi/PlanktoScope/scripts/planktoscope /home/pi/.local/lib/python3.7/site-packages/planktoscope ln -s /home/pi/PlanktoScope/scripts/planktoscope /home/pi/.local/lib/python3.7/site-packages/planktoscope
ln -s /home/pi/PlanktoScope/scripts/shush /home/pi/.local/lib/python3.7/site-packages/shush
sudo mkdir -p /root/.local/lib/python3.7/site-packages sudo mkdir -p /root/.local/lib/python3.7/site-packages
sudo ln -s /home/pi/PlanktoScope/scripts/planktoscope /root/.local/lib/python3.7/site-packages/planktoscope sudo ln -s /home/pi/PlanktoScope/scripts/planktoscope /root/.local/lib/python3.7/site-packages/planktoscope
sudo ln -s /home/pi/PlanktoScope/scripts/shush /home/pi/.local/lib/python3.7/site-packages/shush
``` ```
### Check CircuitPython's install ### [ADAFRUIT VERSION] Check CircuitPython's install
Start by following [Adafruit's guide](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi). You can start at the chapter `Install Python Libraries`. Start by following [Adafruit's guide](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi). You can start at the chapter `Install Python Libraries`.
#### Testing the installation and the wiring #### Testing the installation and the wiring
@ -207,6 +213,60 @@ The device appearing at addresses 60 and 70 is our motor controller. Address `0d
In case the motor controller does not appear, shutdown your Planktoscope and check the wiring. If your board is using a connector instead of a soldered pin connection (as happens with the Adafruit Bonnet Motor Controller), sometimes the pins on the male side need to be bent a little to make good contact. In any case, do not hesitate to ask for help in Slack. In case the motor controller does not appear, shutdown your Planktoscope and check the wiring. If your board is using a connector instead of a soldered pin connection (as happens with the Adafruit Bonnet Motor Controller), sometimes the pins on the male side need to be bent a little to make good contact. In any case, do not hesitate to ask for help in Slack.
### [PSCOPE_HAT VERSION] Test the stepper controllers
After wiring the steppers, please run the following script, you can create it in `~/test/stepper_controller.py`:
```python
#!/usr/bin/python3
import shush
import time
m1 = shush.Motor(0)
m1.enable_motor()
m2 = shush.Motor(1)
m2.enable_motor()
# This function takes the target position as an input.
# It prints the current position and the iteration.
# The motor spins until it gets to the target position
# before allowing the next command.
def spin(motor, target):
motor.go_to(target)
i = 0
while motor.get_position() != target:
print(motor.get_position())
print(i)
i += 1
while True:
# Spin 5 rotations from start
spin(m1, 256000)
time.sleep(0.5)
# Spin back 5 rotations to starting point
spin(m1, 0)
time.sleep(0.5)
# Spin 5 rotations from start
spin(m2, 256000)
time.sleep(0.5)
# Spin back 5 rotations to starting point
spin(m2, 0)
time.sleep(0.5)
```
To start the script, just run the following:
```sh
chmod +x ~/test/stepper_controller.py
~/test/stepper_controller.py
```
The pump should run in one direction then in the other, and the focus stage should move in one direction and then in another.
### Deactivate steppers ### Deactivate steppers
Create `sudo nano /etc/systemd/system/gpio-init.service`: Create `sudo nano /etc/systemd/system/gpio-init.service`:
@ -505,6 +565,11 @@ First, we need to install the needed dependencies, then we will directly install
sudo apt install libgtk-3-0 libavformat58 libavcodec58 libqt4-test libopenexr23 libilmbase23 libqtgui4 libavutil56 libjasper1 libqtcore4 libcairo-gobject2 libswscale5 libhdf5-dev libilmbase-dev libopenexr-dev libgstreamer1.0-dev libavcodec-dev libavformat-dev libswscale-dev libwebp-dev libatlas-base-dev sudo apt install libgtk-3-0 libavformat58 libavcodec58 libqt4-test libopenexr23 libilmbase23 libqtgui4 libavutil56 libjasper1 libqtcore4 libcairo-gobject2 libswscale5 libhdf5-dev libilmbase-dev libopenexr-dev libgstreamer1.0-dev libavcodec-dev libavformat-dev libswscale-dev libwebp-dev libatlas-base-dev
``` ```
Install now openCV diretly with pip:
```sh
pip install opencv-contrib-python
```
You can now check that opencv is properly installed by running a python interpreter and importing the cv2 module. You can now check that opencv is properly installed by running a python interpreter and importing the cv2 module.
```sh ```sh
pi@planktoscope:~ $ python3 pi@planktoscope:~ $ python3
@ -590,6 +655,7 @@ Make sure Node-RED is correctly installed by reaching the following page from th
#### Install the necessary nodes and activate necessary features #### Install the necessary nodes and activate necessary features
We are going to activate the Projects feature of Node-Red as this will help us manage and track changes to the flows. Open the file `settings.js` with an editor (for example with `nano ~/.node-red/settings.js`) so we can change the following lines (you can use `CTRL+_` to quickly navigate to the line indicated): We are going to activate the Projects feature of Node-Red as this will help us manage and track changes to the flows. Open the file `settings.js` with an editor (for example with `nano ~/.node-red/settings.js`) so we can change the following lines (you can use `CTRL+_` to quickly navigate to the line indicated):
- Line 75: uncomment the line (remove the //) that ends with flowFilePretty: true, - Line 75: uncomment the line (remove the //) that ends with flowFilePretty: true,
- Line 337: set enabled to true - Line 337: set enabled to true