Commit 57a2f7ca authored by Clement Remi's avatar Clement Remi
Browse files

new image to documentation

parent 5697c9bf
*****************************************
OhmPi V 2.00 (64 or 128 électrodes)
*****************************************
.. figure:: Under-Construction.png
:width: 500px
:align: center
:height: 250px
:alt: Ohmpi 2
:figclass: align-center
.. figure:: image_ohmpi_2.jpg
:width: 800px
:align: center
:height: 600px
:alt: Ohmpi 2
:figclass: align-center
.. note::
In this version, we have developed two new board types that allow the assembly of Ohmpi v2.00, a measurement board and a multiplexer board.
This new version is made up of:
1. A measurement board for four-point measurement
2. 4 multiplexer cards
3. A box
The philosophy of Ohmpi
**************************
The philosophy of Ohmpi V2.00 is to offer a new DIY multielectrode resistivity meter. It is a resistivity meter with 64 electrodes , which can be upgraded to 128 electrodes.
It is limited to low-current injection,but suitable for small laboratory experiments and small field time-lapse monitoring.
Ohmpi, is developed by a team that seeks to share all its experience and wishes to improve and offer a more and more robust tool to the community.Ohmpi V2.00 is a completely different version from the previous one.
We will stop the development on the previous version, to dedicate our efforts on this new version.
Technical data
***************
+-------------------------------+--------------------+-----------+--------------------+-----------+
| **Parameter** | **Specifications** | Units | **Specifications** | Units |
| | **V1** | | **V2** | |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Electrodes |32 | |64 to 128 | |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Operating temperature |-0 to 50 |°c |-25 to 50 |°c |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Power consumption of CPU and |18.5 |W |18.5 |W |
|control system | | | | |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Voltage injection |12 |V |12 |V |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Battery |9 |V |12 |V |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Current |0 to 40 |mA |0 to 40 |mA |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Min pulse duration |150 |mS |150 |mS |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Input impedance |80 |Mohm |80 |Mohm |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Data storage |micro SD card | |micro SD card | |
+-------------------------------+--------------------+-----------+--------------------+-----------+
|Resolution |O.O1 |ohm |O.O1 |ohm |
+-------------------------------+--------------------+-----------+--------------------+-----------+
**STEP n°1** : Raspberry Pi configuration
*******************************************
OS installation
================
+----------------------------------------------------+---------------+
| **Required components** | **Quantity** |
+----------------------------------------------------+---------------+
|Raspberry Pi 4 Model B | 1|
+----------------------------------------------------+---------------+
|Micro SD 32 Go | 1|
+----------------------------------------------------+---------------+
|HDMI Cable | 1|
+----------------------------------------------------+---------------+
|Computer mouse | 1|
+----------------------------------------------------+---------------+
|Computer Keyboard | 1|
+----------------------------------------------------+---------------+
The first step is to start up the Raspberry Pi board, including installation of an OS (operating system).
For this step, the installation instructions are well described on the Raspberry website
1. Watch the vidéo "how to set up your raspberry Pi" (https://www.youtube.com/watch?v=wjWZhV1v3Pk)
2. The authors recommend installing the latest stable and complete version of Raspbian by using NOOBS (a simple-to-use operating system installer).
3. or you can visit this website : (https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up)
.. note::
All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:
.. figure:: raspbian_version.jpg
:width: 800px
:align: center
:height: 400px
:alt: alternate text
:figclass: align-center
.. warning::
Once the OS has been installed, **1-wire, spi and GPIO remote option** must be deactivated via the Raspbian GUI settings menu. Failure to carry out this task may cause damage to the relay shield cards during measurements.
3. When the relays are connected to the GPIO, make sure that all the GPIOs are in the low position when the raspberry starts up. If not, the relays will activate unexpectedly.
To ensure that the GPIOs are in Low position, you will need to modify the /boot/config.txt file.
Run the terminal, and write
.. code-block:: python
cd /boot/
4. Open config.txt with GNU nano editor
.. code-block:: python
sudo nano config.txt
5. At the end of the file write :
.. code-block:: python
gpio=8=op,dl
gpio=7=op,dl
6. Press Ctrl +O to save the modifications and press enter
7. Press Ctrl +x to escap and return to the terminal
8. Close the terminal
Virtual Environnement and packages
==================================
A virtual environment is a way to have multiple, parallel instances of the Python interpreter, each with different package sets and different configurations.
Each virtual environment contains a discrete copy of the Python interpreter, including copies of its support utilities. It also protects your system in case of problems with the packages.
All dependencies are specified in requirements.txt
.. note::
All instructions below should be typed in the terminal
It is first necessary to ensure that the libatlas-base-dev library is installed:
.. code-block:: python
sudo apt-get install libatlas-base-dev
We strongly recommend users to create a virtual environment to run the code and installed all required dependencies. It can be done either in a directory gathering all virtual environments used on the computer or within the ohmpy directory.
Create the virtual environment:
.. code-block:: python
python3 -m venv ohmpy
Activate it using the following command:
.. code-block:: python
source ohmpy/bin/activate
Install packages within the virtual environment. Installing the following package should be sufficient to meet dependencies:
.. code-block:: python
pip install RPi.GPIO adafruit-blinka numpy adafruit-circuitpython-ads1x15 pandas
Check that requirements are met using
.. code-block:: python
pip list
You should run you code within the virtual environment
to leave the virtual environment simply type:
.. code-block:: python
deactivate
Activate virtual environnement on Thonny (Python IDE) (on Rapberry Pi)
========================================================================
If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.
1- Run the Thonny Python IDE software, Click on raspebrry acces **menu > programming> Thonny pythonIDE**
2- Thonny's interface opens, Python runs on the Root (Python 3.7.3 (/usr/bin/python3))
.. figure:: thonny_first_interface.jpg
:width: 600px
:align: center
:height: 450px
:alt: alternate text
:figclass: align-center
3-Click on **Run>select interpreter**, a new window opens click on interpret
.. figure:: thonny_option.jpg
:width: 600px
:align: center
:height: 450px
:alt: alternate text
:figclass: align-center
4-On the new open windows select **alternative Pyhton3 or virtual environnement**
.. figure:: thonny_interpreter.jpg
:width: 600px
:align: center
:height: 450px
:alt: alternate text
:figclass: align-center
5- New buttons appeared, selected **"locate another python executable "**
6- A new window opens, find the folder where there is the python 3 file in the virtual environment folder previously created **/home/pi/ohmpi/bin/python3**.
7- In the **known interpreter** tab the path of the virtual environnementshould appear
.. figure:: thonny_interpreter_folder.jpg
:width: 600px
:align: center
:height: 450px
:alt: alternate text
:figclass: align-center
8- Close the window by clicking on **ok**.
9- Close thonny to save modifications
**STEP n°2**: Assembly of the measurement board
****************************************************
+----------------------------------------------------+
| **Required components** |
+----------------------------------------------------+
.. figure:: mesure/00_mes_board_components.jpg
:width: 600px
:align: center
:height: 450px
:alt: alternate text
:figclass: align-center
Description
==========================================
.. figure:: schema_measurement_board.jpg
:width: 600px
:align: center
:height: 450px
:alt: alternate text
:figclass: align-center
Figure shows the general diagram for the electronic measurement board developed.
We have developed a complete measurement board. To measure electrical resistivity with Raspberry Pi, two ADS1115 were used,one for the voltage measurement one for the current measurement, as proposed by Florsch [7]. The ADS1115
is a 16-bit ADC (Analog-to-Digital Converter), with an adaptable gain. The advantage of ADS1115 is that the
input signal value could lie between - to + 6.114 V. Pour la mesure du current nous avons intégré directement le composant ina282, qui permet de réaliser des mesure de courant de précision autour d'une resistance de shunt
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| .. image:: mesure/01_mes_board.jpg | |
+---------------------------------------+---------------------------------------+
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| | .. image:: mesure/02_mes_board.jpg |
+---------------------------------------+---------------------------------------+
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| .. image:: mesure/03_mes_board.jpg | |
+---------------------------------------+---------------------------------------+
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| | .. image:: mesure/04_mes_board.jpg |
+---------------------------------------+---------------------------------------+
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| .. image:: mesure/05_mes_board.jpg | |
+---------------------------------------+---------------------------------------+
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| | .. image:: mesure/06_mes_board.jpg |
+---------------------------------------+---------------------------------------+
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| .. image:: mesure/07_mes_board.jpg | |
+---------------------------------------+---------------------------------------+
.. table::
:align: center
+---------------------------------------+---------------------------------------+
| | .. image:: mesure/08_mes_board.jpg |
+---------------------------------------+---------------------------------------+
......@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
......@@ -15,6 +15,12 @@ div.clearer {
clear: both;
}
div.section::after {
display: block;
content: '';
clear: left;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
......@@ -124,7 +130,7 @@ ul.search li a {
font-weight: bold;
}
ul.search li div.context {
ul.search li p.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
......@@ -271,25 +277,25 @@ p.rubric {
font-weight: bold;
}
img.align-left, .figure.align-left, object.align-left {
img.align-left, figure.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, .figure.align-right, object.align-right {
img.align-right, figure.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, .figure.align-center, object.align-center {
img.align-center, figure.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
img.align-default, .figure.align-default {
img.align-default, figure.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
......@@ -313,7 +319,8 @@ img.align-default, .figure.align-default {
/* -- sidebars -------------------------------------------------------------- */
div.sidebar {
div.sidebar,
aside.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px;
......@@ -328,8 +335,8 @@ p.sidebar-title {
font-weight: bold;
}
div.admonition, div.topic, pre, div[class|="highlight"] {
clear: both;
div.admonition, div.topic, blockquote {
clear: left;
}
/* -- topics ---------------------------------------------------------------- */
......@@ -338,7 +345,6 @@ div.topic {
border: 1px solid #ccc;
padding: 7px;
margin: 10px 0 10px 0;
overflow-x: auto;
}
p.topic-title {
......@@ -353,7 +359,6 @@ div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
overflow-x: auto;
}
div.admonition dt {
......@@ -373,11 +378,22 @@ div.body p.centered {
/* -- content of sidebars/topics/admonitions -------------------------------- */
div.sidebar > :last-child,
aside.sidebar > :last-child,
div.topic > :last-child,
div.admonition > :last-child {
margin-bottom: 0;
}
div.sidebar::after,
aside.sidebar::after,
div.topic::after,
div.admonition::after,
blockquote::after {
display: block;
content: '';
clear: both;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
......@@ -442,20 +458,22 @@ td > :last-child {
/* -- figures --------------------------------------------------------------- */
div.figure {
div.figure, figure {
margin: 0.5em;
padding: 0.5em;
}
div.figure p.caption {
div.figure p.caption, figcaption {
padding: 0.3em;
}
div.figure p.caption span.caption-number {
div.figure p.caption span.caption-number,
figcaption span.caption-number {
font-style: italic;
}
div.figure p.caption span.caption-text {
div.figure p.caption span.caption-text,
figcaption span.caption-text {
}
/* -- field list styles ----------------------------------------------------- */
......@@ -490,6 +508,63 @@ table.hlist td {
vertical-align: top;
}
/* -- object description styles --------------------------------------------- */
.sig {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
}
.sig-name, code.descname {
background-color: transparent;
font-weight: bold;
}
.sig-name {
font-size: 1.1em;
}
code.descname {
font-size: 1.2em;
}
.sig-prename, code.descclassname {
background-color: transparent;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.sig-param.n {
font-style: italic;
}
/* C++ specific styling */
.sig-inline.c-texpr,
.sig-inline.cpp-texpr {
font-family: unset;
}
.sig.c .k, .sig.c .kt,
.sig.cpp .k, .sig.cpp .kt {
color: #0033B3;
}
.sig.c .m,
.sig.cpp .m {
color: #1750EB;
}
.sig.c .s, .sig.c .sc,
.sig.cpp .s, .sig.cpp .sc {
color: #067D17;
}
/* -- other body styles ----------------------------------------------------- */
......@@ -513,28 +588,31 @@ ol.upperroman {
list-style: upper-roman;
}
ol > li:first-child > :first-child,
ul > li:first-child > :first-child {
:not(li) > ol > li:first-child > :first-child,
:not(li) > ul > li:first-child > :first-child {
margin-top: 0px;
}
ol ol > li:first-child > :first-child,
ol ul > li:first-child > :first-child,
ul ol > li:first-child > :first-child,
ul ul > li:first-child > :first-child {
margin-top: revert;
:not(li) > ol > li:last-child > :last-child,
:not(li) > ul > li:last-child > :last-child {
margin-bottom: 0px;
}
ol > li:last-child > :last-child,
ul > li:last-child > :last-child {
margin-bottom: 0px;
ol.simple ol p,
ol.simple ul p,
ul.simple ol p,
ul.simple ul p {
margin-top: 0;
}
ol ol > li:last-child > :last-child,
ol ul > li:last-child > :last-child,
ul ol > li:last-child > :last-child,
ul ul > li:last-child > :last-child {
margin-bottom: revert;
ol.simple > li:not(:first-child) > p,
ul.simple > li:not(:first-child) > p {
margin-top: 0;
}
ol.simple p,
ul.simple p {
margin-bottom: 0;
}
dl.footnote > dt,
......@@ -613,14 +691,6 @@ dl.glossary dt {
font-size: 1.1em;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.versionmodified {
font-style: italic;
}
......@@ -677,6 +747,10 @@ pre {
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
pre, div[class*="highlight-"] {
clear: both;
}
span.pre {
-moz-hyphens: none;
-ms-hyphens: none;
......@@ -684,7 +758,7 @@ span.pre {
hyphens: none;
}
div[class^="highlight-"] {
div[class*="highlight-"] {
margin: 1em 0;
}
......@@ -744,8 +818,13 @@ div.code-block-caption code {
}
table.highlighttable td.linenos,
div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */
user-select: none;
span.linenos,
div.highlight span.gp { /* gp: Generic.Prompt */
user-select: none;
-webkit-user-select: text; /* Safari fallback only */
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
}
div.code-block-caption span.caption-number {
......@@ -760,16 +839,6 @@ div.literal-block-wrapper {
margin: 1em 0;
}
code.descname {
background-color: transparent;
font-weight: bold;
font-size: 1.2em;
}
code.descclassname {
background-color: transparent;
}
code.xref, a code {
background-color: transparent;
font-weight: bold;
......