diff --git a/sphinx/build/doctrees/V2_00.doctree b/sphinx/build/doctrees/V2_00.doctree index e5087e2d92e4bc64a915accb335e417180c177cc..1a62a6a5cd4ad5aba18fd44b7715834e7464b18c 100644 Binary files a/sphinx/build/doctrees/V2_00.doctree and b/sphinx/build/doctrees/V2_00.doctree differ diff --git a/sphinx/build/doctrees/environment.pickle b/sphinx/build/doctrees/environment.pickle index 0212f60d93f96755bf45fa56a9b25e66d4e7b4d2..bb73d0795aba895993f96ca70e9446aa533088eb 100644 Binary files a/sphinx/build/doctrees/environment.pickle and b/sphinx/build/doctrees/environment.pickle differ diff --git a/sphinx/build/html/V2_00.html b/sphinx/build/html/V2_00.html index 68cf5ff6b5ceccdb3a4e8a90a24b55ca24f60c0a..407daa82692e56528a5379382c906f2b20b856e6 100644 --- a/sphinx/build/html/V2_00.html +++ b/sphinx/build/html/V2_00.html @@ -33,7 +33,6 @@ <script src="_static/jquery.js"></script> <script src="_static/underscore.js"></script> <script src="_static/doctools.js"></script> - <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script type="text/javascript" src="_static/js/theme.js"></script> @@ -98,25 +97,10 @@ <li class="toctree-l3"><a class="reference internal" href="#activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi">Activate virtual environnement on Thonny (Python IDE) (on Rapberry Pi)</a></li> </ul> </li> -<li class="toctree-l2"><a class="reference internal" href="#assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi">Assembly of the measuring/current injection cards, and connection with the Raspberry Pi</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#electrical-resistivity-measurements-board">Electrical resistivity measurements board</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#a-description">a) Description</a></li> -<li class="toctree-l4"><a class="reference internal" href="#b-implementation">b) Implementation</a></li> +<li class="toctree-l2"><a class="reference internal" href="#step-n2-assembly-of-the-measurement-board"><strong>STEP n°2</strong>: Assembly of the measurement board</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li> </ul> </li> -<li class="toctree-l3"><a class="reference internal" href="#current-injection-board">Current injection board</a></li> -<li class="toctree-l3"><a class="reference internal" href="#frist-four-electrodes-resistivity-mesurement">Frist four electrodes resistivity mesurement</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="#multiplexer-implentation">Multiplexer implentation</a></li> -<li class="toctree-l2"><a class="reference internal" href="#electrode-connection">Electrode connection</a></li> -<li class="toctree-l2"><a class="reference internal" href="#operating-instruction">Operating instruction</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#preliminary-procedure-only-for-the-initial-operation">Preliminary procedure (Only for the initial operation)</a></li> -<li class="toctree-l3"><a class="reference internal" href="#startup-procedure">Startup procedure</a></li> -<li class="toctree-l3"><a class="reference internal" href="#electrical-resistivity-measurement-parameters-description">Electrical resistivity measurement parameters description</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="#complete-list-of-components">Complete list of components</a></li> </ul> </li> </ul> @@ -439,486 +423,103 @@ to leave the virtual environment simply type:</p> <p>9- Close thonny to save modifications</p> </section> </section> -<section id="assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"> -<h2>Assembly of the measuring/current injection cards, and connection with the Raspberry Pi<a class="headerlink" href="#assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi" title="Permalink to this headline">¶</a></h2> -<section id="electrical-resistivity-measurements-board"> -<h3>Electrical resistivity measurements board<a class="headerlink" href="#electrical-resistivity-measurements-board" title="Permalink to this headline">¶</a></h3> -<section id="a-description"> -<h4>a) Description<a class="headerlink" href="#a-description" title="Permalink to this headline">¶</a></h4> -<p>To measure electrical resistivity with Raspberry Pi, an ADS1115 was introduced, as proposed by Florsch [7]. The ADS1115 -is a 16-bit ADC (Analog-to-Digital Converter), with an adaptable gain. Its value has been set at 2/3 in this study. The -input signal value could lie between - to + 6.114 V. The ADS1115 is mounted on a board adapted from an in-house design. -Figure 5 shows the general diagram for the electronic measurement board developed. This figure also displays the test -circuit used to test the board in the laboratory, which mimics the behavior of a soil subjected to current injection. -In this test circuit, resistance R11 represents the soil resistance. -Soil resistance R11 is connected to electrodes A and B for the current injection. Resistors R10 and R12 constitute -the contact resistances between soil and electrodes; they are typically made of stainless steel. The battery, which -allows for direct current injection, is connected in series with resistors R10, R11 and R12. In this part of the board, -resistance R9 has been added to measure the current flowing between electrodes A and B. This resistance value has been -set at 50 ohms in order to ensure: -• a precise resistance, -• a resistance less than the sum of resistors R10, R11 and R12; indeed, R10 and R12 generally lie between 100 and 5,000 ohms. -To measure the current intensity between A and B, the electrical potential difference at the pole of the reference resistor (R9) -is measured. The intensity (in mA) is calculated by inserting the resulting value into the following: ? -To measure the potential difference needed to measure current intensity, the ADS 1115 is connected to the ground of the circuit. -In our case, the ground reference is electrode B. The analog inputs A1 and A0 of the ADS1115 are connected to each pole of the -reference resistor (R9). In order to increase input impedance and adapt the signal gain, tracking amplifiers have been included -and completed by a divider bridge (R5, R8, R6 and R7) located between the two amplifiers. The resistance of the divider bridge -ensures that the signal remains between 0 and 5 V, in accordance with the ADS1115 signal gain. To measure the potential difference, -the M and N electrodes are connected to analog inputs A2 and A3 of the ADS 1115. Between the ADC and the electrodes, two tracking -amplifiers and a divider bridge have been positioned so as to obtain a potential lying within the 0-5 V range at the analog input of the ADS 1115. -Let’s note that the potential difference value would equal the potential measured with ADS1115 multiplied by the voltage reduction -value of the divider bridge (see Section 5.2). Despite the use of high-resolution resistance (i.e. accurate to within 1%), it is -still necessary to calibrate the divider bridge using a precision voltmeter. For this purpose, the input and output potentials -of the divider bridge must be measured using an equivalent circuit for various electrical potential values. These values serve -to calculate the gain. With this electronic board, it is possible to measure the potential and intensity without disturbing the -electric field in the ground, with the total input impedance value being estimated at 36 mega-ohms. -A shortcut between Electrodes A and B will generate excessive currents, whose intensities depend on the type of battery used. -A lithium ion battery or automobile-type lead-acid battery can deliver a strong enough current to damage the board and, as such, -constitutes a potential hazard. We therefore recommend adding a 1.5-A fuse between the battery and resistor R9. -In version 1.02, we have improved the electronic board of measurement. we have added a DC/DC converter to supply the operational amplifiers -(2 Traco power DC/DCconverter TRN3-1215). These converters allow to limit the suppression of the signal when the injected voltage is higher than 10V. -We also added 4 capacitors on the +12v inputs of the fast operational amplifiers. These are decoupling capacitors (typically 100nF ceramic) -between each power supply terminal and ground. The last point, we have added a four very high resistances of 10 MOhm, between the ground and -the signal input on the operational amplifiers. This prevents the operational amplifiers from overheating.</p> -<figure class="align-center" id="id1"> -<a class="reference internal image-reference" href="_images/schema_measurement_board1_02.png"><img alt="alternate text" src="_images/schema_measurement_board1_02.png" style="width: 800px; height: 400px;" /></a> -<figcaption> -<p><span class="caption-text">Measurement board (Ohmpi version 1.02)</span><a class="headerlink" href="#id1" title="Permalink to this image">¶</a></p> -</figcaption> -</figure> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>If you want to have very accurate measurements you can replace the resistors with a tolerance of 1% by resistors with a tolerance of 0.01% which will improve the measurement, but the cost will be higher.</p> -</div> -</section> -<section id="b-implementation"> -<h4>b) Implementation<a class="headerlink" href="#b-implementation" title="Permalink to this headline">¶</a></h4> -<p>The measurement board must be printed using the PCB file (Source file repository), with components soldered onto -it by following the steps described below and illustrated in the following figure :</p> -<ul> -<li><dl> -<dt>Step no. 1: test divider bridge</dt><dd><p>For each measurement channel, we have installed a bridge divider, it is necessary to test with ohmmeter the value of the resistances, to adjust each coefficients (coef_p0, coef_p1, coef_p2, coef_p3) in the Ohmpi.py code..</p> -<blockquote> -<div><div class="math notranslate nohighlight"> -\[coeff po = (R1 + R2) / R1\]</div> -<div class="math notranslate nohighlight"> -\[coeff p1 = (R3 + R4) / R3\]</div> -<div class="math notranslate nohighlight"> -\[coeff p2 = (R7 + R6) / R7\]</div> -<div class="math notranslate nohighlight"> -\[coeff p3 = (R9 + R8) / R9\]</div> -<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">36</span> <span class="sd">"""</span> -<span class="linenos">37</span><span class="sd"> hardware parameters</span> -<span class="linenos">38</span><span class="sd"> """</span> -<span class="linenos">39</span> <span class="n">R_ref</span> <span class="o">=</span> <span class="mi">50</span> <span class="c1"># reference resistance value in ohm</span> -<span class="linenos">40</span> <span class="n">coef_p0</span> <span class="o">=</span> <span class="mf">2.5</span> <span class="c1"># slope for current conversion for ADS.P0, measurement in V/V</span> -<span class="linenos">41</span> <span class="n">coef_p1</span> <span class="o">=</span> <span class="mf">2.5</span> <span class="c1"># slope for current conversion for ADS.P1, measurement in V/V</span> -<span class="linenos">42</span> <span class="n">coef_p2</span> <span class="o">=</span> <span class="mf">2.5</span> <span class="c1"># slope for current conversion for ADS.P2, measurement in V/V</span> -<span class="linenos">43</span> <span class="n">coef_p3</span> <span class="o">=</span> <span class="mf">2.5</span> <span class="c1"># slope for current conversion for ADS.P3, measurement in V/V</span> -</pre></div> -</div> -<p>The coefficient parameters can be adjusted in lines 40 to 43 of the ohmpi.py code.</p> -</div></blockquote> -</dd> -</dl> -</li> -<li><p>Step no. 2: installation of the 1-Kohm resistors with an accuracy of ± 1% (b-in the figure).</p></li> -<li><p>Step no. 3: installation of the 1.5-Kohm resistors with an accuracy of ± 1%(C-in the figure).</p></li> -<li><p>Step no. 4: installation of both the black female 1 x 10 header and the 7-blue screw terminal blocks (c-in the figure)</p></li> -<li><p>Step no. 5: installation of the 50-Ohm reference resistor ± 0.1%, please check the value and correct the line 39 in ohmpi.py code (d-in the figure)</p></li> -<li><p>Step no. 6: addition of both the ADS115 directly onto the header (pins must be plugged according to the figure) and the LM358N operational amplifiers (pay attention to the orientation) (e-in the figure).</p></li> -<li><p>Step no. 7: installation of the 10-Mohm resistors with an accuracy of ± 5% (f-in the figure).</p></li> -<li><p>Step no. 8: installation of the two DC/DC converter TRN3-1215 (h-in the figure).</p></li> -<li><p>Setp no. 9: installation of the four capacitor on 100-nF/50vDC and the fuse of 10-A (h-in the figure).</p></li> -</ul> -<p>1-Kohm and 1.5-Kohm resistors apply to the divider bridge. If, for example, you prefer using a stronger power supply, it would be possible to adjust the divider bridge value by simply modifying these resistors. -Once all the components have been soldered together, the measurement board can be connected to the Raspberry Pi and the -battery terminal, according to Figure 9. Between the battery and the TX+ terminal of the measurement board, remember to -place a fuse holder with a 1.5-A fuse for safety purposes.</p> -<figure class="align-center" id="id2"> -<a class="reference internal image-reference" href="_images/measurement_board1-02.jpg"><img alt="alternate text" src="_images/measurement_board1-02.jpg" style="width: 800px; height: 700px;" /></a> -<figcaption> -<p><span class="caption-text">Measurement circuit board assembly: a) printed circuit board, b) adding the 1-Kohm resistors ± 1%, c)adding the 1.5-Kohm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers</span><a class="headerlink" href="#id2" title="Permalink to this image">¶</a></p> -</figcaption> -</figure> -<figure class="align-center" id="id3"> -<a class="reference internal image-reference" href="_images/measurement_board-2-V1-02.jpg"><img alt="alternate text" src="_images/measurement_board-2-V1-02.jpg" style="width: 800px; height: 700px;" /></a> -<figcaption> -<p><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p> -</figcaption> -</figure> -</section> -</section> -<section id="current-injection-board"> -<h3>Current injection board<a class="headerlink" href="#current-injection-board" title="Permalink to this headline">¶</a></h3> -<p>To carry out the electrical resistivity measurement, the first step consists of injecting current into the ground. -In our case, a simple 9-V lead-acid battery is used to create an electrical potential difference that results -in current circulating into the ground. The current is injected through electrodes A and B (see Fig. 2). This -injection is controlled via a 4-channel relay module board connected to the Raspberry Pi. The mechanical relay -module board is shown in Figure 4. Relays 1 and 2 serve to switch on the current source. The common contacts -of relays 1 and 2 are connected to the positive and negative battery poles, respectively. The normally open -contacts of both relays are connected to the common contacts of relays 3 and 4. Relays 1 and 2 are connected -to the GPIO 7 on the Raspberry Pi and therefore activate simultaneously. The role of relays 3 and 4 is to reverse -the polarity at electrodes A and B. Thus, when relays 3 and 4 are energized by the GPIO 8 in the open position, -the positive battery pole is connected to electrode A and the negative pole to electrode B. When not energized, -they remain in the normally closed position. This set-up offers a simple and robust solution to inject current.</p> -<figure class="align-center" id="id4"> -<a class="reference internal image-reference" href="_images/current_board.jpg"><img alt="alternate text" src="_images/current_board.jpg" style="width: 800px; height: 400px;" /></a> -<figcaption> -<p><span class="caption-text">Wiring of the 4-channel relay module board for current injection management</span><a class="headerlink" href="#id4" title="Permalink to this image">¶</a></p> -</figcaption> -</figure> -<p>The next step consists of featuring the 4-channel relay module used for current injection and its assembly. The wiring -between the relays must be carried out in strict accordance with Fig. 10. This card must then be connected to the Raspberry -Pi and the measurement card. On the Raspberry Pi, it is necessary to connect inputs In1 and In2 to the same GPIO. For this -purpose, it is necessary to solder together the two pins on the 4-channel relay shield module and connect them to the Raspberry Pi GPIO-7 (Fig. 10). The same must be performed for inputs In3 and In4 with GPIO-8. Connect the GND and 5Vdc pins of -the relay card’s 4 channels respectively to the GND pin and 5Vcc of the Raspberry Pi. Now connect relays 1, 2, 3 and 4, as -shown in the diagram, using 1-mm2 cables (red and black in Fig. 10). Lastly, connect the inputs of relay 1 and 2 respectively -to terminals B and A of the measurement board.</p> -<figure class="align-center" id="id5"> -<a class="reference internal image-reference" href="_images/installation_current_board_1_02.jpg"><img alt="alternate text" src="_images/installation_current_board_1_02.jpg" style="width: 800px; height: 700px;" /></a> -<figcaption> -<p><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Permalink to this image">¶</a></p> -</figcaption> -</figure> -<p>Congratulations, you have build a 4 electrodes resistivity-meter.</p> -</section> -<section id="frist-four-electrodes-resistivity-mesurement"> -<h3>Frist four electrodes resistivity mesurement<a class="headerlink" href="#frist-four-electrodes-resistivity-mesurement" title="Permalink to this headline">¶</a></h3> -<p>Under construction !</p> -<p>Describe the way to valide the first part of the instruction. -Electrical resistivity measurement on test circuit</p> -</section> -</section> -<section id="multiplexer-implentation"> -<h2>Multiplexer implentation<a class="headerlink" href="#multiplexer-implentation" title="Permalink to this headline">¶</a></h2> -<p>The resistivity measurement is conducted on four terminals (A, B, M and N). The user could perform each measurement -by manually plugging four electrodes into the four channel terminals. In practice, ERT requires several tens or thousands -of measurements conducted on different electrode arrays. A multiplexer is therefore used to connect each channel to one of -the 32 electrodes stuck into the ground, all of which are connected to the data logger.</p> -<p>We will describe below how to assemble the four multiplexers (MUX), one per terminal. A multiplexer consists of 2 relay -modules with 16 channels each. On the first board, on each MUX, 15 relays out of the 16 available will be used. Please note that the suggested -configuration enables making smaller multiplexers (8 or 16 electrodes only). On the other hand, if you prefer upping to 64 electrodes, -which is entirely possible, a GPIO channel multiplier will have to be used. -To prepare the multiplexer, the channels of the two relay boards must be connected according to the wiring diagram shown below.</p> -<figure class="align-center" id="id6"> -<a class="reference internal image-reference" href="_images/multiplexer_implementation.jpg"><img alt="alternate text" src="_images/multiplexer_implementation.jpg" style="width: 800px; height: 500px;" /></a> -<figcaption> -<p><span class="caption-text">Schematic diagram of the wiring of two 16-channel relay shields</span><a class="headerlink" href="#id6" title="Permalink to this image">¶</a></p> -</figcaption> -</figure> -<p>For this purpose, 0.5-mm² cables with end caps are used and their length adjusted for each connection in order to produce a clean assembly. -The length was adjusted so that the distance between the two points to be connected could be directly measured on the board once they had -been assembled one above the other, in adding an extra 3 cm. The wires at the ends need to be stripped and the end caps added. -As a final step, connect the cables to the correct connectors. This operation must be repeated in order to carry out all the wiring shown in Figure below.</p> -<p>Once the operation has been completed, the 16 control pins of each 16-channel relay shield card must be prepared. Each card actually contains 16 input channels -for activating each relay (Fig. 12). However, we will be activating several relays with a single GPIO (to limit the number of GPIOs used on Raspberry Pi, -see Section 2.4). To execute this step, it will be necessary to follow the protocol presented in Figure.</p> -<blockquote> -<div><figure class="align-center" id="id7"> -<a class="reference internal image-reference" href="_images/connection.jpg"><img alt="alternate text" src="_images/connection.jpg" style="width: 800px; height: 400px;" /></a> -<figcaption> -<p><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p> -</figcaption> -</figure> -</div></blockquote> -<p>For the 16-channel relay shield no. 1, these steps must be followed: -* Position a test circuit with 10 horizontal and 10 vertical holes on the pins of the 16-channel relay shield board. -* Follow the diagram and solder the pins as shown in Fig. -* Lastly, solder 0.5-mm² wires 1 m in length to the test circuit.</p> -<p>For relay shield no. 2, follow the same procedure, but solder all the pins together (d-e-f). -This same operation must be repeated for the other three multiplexers as well. -The next step consists of connecting the relay card inputs to the Raspberry Pi according to Table 5 for all four multiplexers.</p> +<section id="step-n2-assembly-of-the-measurement-board"> +<h2><strong>STEP n°2</strong>: Assembly of the measurement board<a class="headerlink" href="#step-n2-assembly-of-the-measurement-board" title="Permalink to this headline">¶</a></h2> <table class="docutils align-default"> <colgroup> -<col style="width: 34%" /> -<col style="width: 11%" /> -<col style="width: 11%" /> -<col style="width: 11%" /> -<col style="width: 11%" /> -<col style="width: 23%" /> +<col style="width: 100%" /> </colgroup> <tbody> -<tr class="row-odd"><td rowspan="2"></td> -<td colspan="4"><p>Relay shield n°1</p></td> -<td><p>Relay Shield n°2</p></td> -</tr> -<tr class="row-even"><td><p>Pin 1</p></td> -<td><p>Pin 2-3</p></td> -<td><p>Pin 4-7</p></td> -<td><p>Pin 8-16</p></td> -<td><p>Pin 1- 16</p></td> -</tr> -<tr class="row-odd"><td><p>Multiplexer A</p></td> -<td><p>12</p></td> -<td><p>16</p></td> -<td><p>20</p></td> -<td><p>21</p></td> -<td><p>26</p></td> -</tr> -<tr class="row-even"><td><p>Multiplexer B</p></td> -<td><p>18</p></td> -<td><p>23</p></td> -<td><p>24</p></td> -<td><p>25</p></td> -<td><p>19</p></td> -</tr> -<tr class="row-odd"><td><p>Multiplexer M</p></td> -<td><p>06</p></td> -<td><p>13</p></td> -<td><p>04</p></td> -<td><p>17</p></td> -<td><p>27</p></td> -</tr> -<tr class="row-even"><td><p>Multiplexer N</p></td> -<td><p>22</p></td> -<td><p>10</p></td> -<td><p>09</p></td> -<td><p>11</p></td> -<td><p>05</p></td> +<tr class="row-odd"><td><p><strong>Required components</strong></p></td> </tr> </tbody> </table> -<blockquote> -<div><p>Connection of the GPIOs to each multiplexer</p> -</div></blockquote> -</section> -<section id="electrode-connection"> -<h2>Electrode connection<a class="headerlink" href="#electrode-connection" title="Permalink to this headline">¶</a></h2> -<p>At this point, all that remains is to connect the electrodes of each multiplexer to a terminal block (Fig. 13). In our set-up, screw terminals assembled on a din rail were used. -According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming -connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure.</p> -<figure class="align-center" id="id8"> -<a class="reference internal image-reference" href="_images/cable.jpg"><img alt="alternate text" src="_images/cable.jpg" style="width: 800px; height: 300px;" /></a> -<figcaption> -<p><span class="caption-text">Wire cabling for multiplexer and terminal screw connection</span><a class="headerlink" href="#id8" title="Permalink to this image">¶</a></p> -</figcaption> +<figure class="align-center"> +<a class="reference internal image-reference" href="_images/00_mes_board_components.jpg"><img alt="alternate text" src="_images/00_mes_board_components.jpg" style="width: 600px; height: 450px;" /></a> </figure> -<p>the next figure provides an example of multiplexer relay connections for electrode no. 1: this electrode of multiplexer MUX A must be connected to electrode no. 1 of MUX B. Moreover, electrode no. 1 of MUX B -must be connected to electrode no. 1 of MUX N, which in turn must be connected to electrode no. 1 of MUX M. Lastly, electrode no. 1 of MUX M is connected to the terminal block. -This operation must be repeated for all 32 electrodes.</p> -<figure class="align-center" id="id9"> -<a class="reference internal image-reference" href="_images/electrode_cable.jpg"><img alt="alternate text" src="_images/electrode_cable.jpg" style="width: 800px; height: 800px;" /></a> -<figcaption> -<p><span class="caption-text">Example of a multiplexer connection to the screw terminal for electrode no. 1.</span><a class="headerlink" href="#id9" title="Permalink to this image">¶</a></p> -</figcaption> +<section id="description"> +<h3>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h3> +<figure class="align-center"> +<a class="reference internal image-reference" href="_images/schema_measurement_board.jpg"><img alt="alternate text" src="_images/schema_measurement_board.jpg" style="width: 600px; height: 450px;" /></a> </figure> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>The 16 channel relay cards exist in 5-V and 12-V , in the bottom figure we have 12-V cards that we will directly connect to the battery. -In case you bought 16 channel relay 5-V cards, you will need to add a DC/DC 12-V/5-V converter. You can use a STEP DOWN MODULE DC-DC (Velleman WPM404) and set the voltage to 5V with the potentiometer.</p> -</div> -</section> -<section id="operating-instruction"> -<h2>Operating instruction<a class="headerlink" href="#operating-instruction" title="Permalink to this headline">¶</a></h2> -<section id="preliminary-procedure-only-for-the-initial-operation"> -<h3>Preliminary procedure (Only for the initial operation)<a class="headerlink" href="#preliminary-procedure-only-for-the-initial-operation" title="Permalink to this headline">¶</a></h3> -<p>The open source code must be downloaded at the Open Science Framework source file repository for this manuscript (<a class="reference external" href="https://osf.io/dzwb4/">https://osf.io/dzwb4/</a>) -or at the following Gitlab repository address: <a class="reference external" href="https://gitlab.irstea.fr/reversaal/OhmPi">https://gitlab.irstea.fr/reversaal/OhmPi</a>. The code must be then unzipped into a selected folder (e.g. OhmPi-master). A “readme†file -is proposed in the directory to assist with installation of the software and required python packages. It is strongly recommended to create a python virtual environment for installing -the required packages and running the code.</p> -</section> -<section id="startup-procedure"> -<h3>Startup procedure<a class="headerlink" href="#startup-procedure" title="Permalink to this headline">¶</a></h3> -<p>As an initial operating instruction, all batteries must be disconnected before any hardware handling. Ensure that the battery is charged at full capacity. Plug all the electrodes (32 or fewer) -into the screw terminals. The Raspberry Pi must be plugged into a computer screen, with a mouse and keyboard accessed remotely. The Raspberry Pi must then be plugged into the power supply -(for laboratory measurements) or a power bank (5V - 2A for field measurements). At this point, you’ll need to access the Raspbian operating system. Inside the previously created folder “ohmPiâ€, -the protocol file “ABMN.txt†must be created or modified; this file contains all quadrupole ABMN numeration (an example is proposed with the source code). Some input parameters of the main “ohmpi.py†-function may be adjusted/optimized depending on the measurement attributes. For example, both the current injection duration and number of stacks can be adjusted. At this point, the9 V and 12-V battery can be -plugged into the hardware; the “ohmpi.py†source code must be run within a python3 environment (or a virtual environment if one has been created) either in the terminal or using Thonny. You should now -hear the characteristic sound of a relay switching as a result of electrode permutation. After each quadrupole measurement, the potential difference as well as the current intensity and resistance -are displayed on the screen. A measurement file is automatically created and named “measure.csvâ€; it will be placed in the same folder.</p> -</section> -<section id="electrical-resistivity-measurement-parameters-description"> -<h3>Electrical resistivity measurement parameters description<a class="headerlink" href="#electrical-resistivity-measurement-parameters-description" title="Permalink to this headline">¶</a></h3> -<p>In the version 1.02, the measurement parameters are in the Jason file (ohmpi_param.json).</p> -<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span> <span class="n">nb_electrodes</span> <span class="o">=</span> <span class="mi">32</span> <span class="c1"># maximum number of electrodes on the resistivity meter</span> -<span class="linenos">2</span> <span class="n">injection_duration</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="c1"># Current injection duration in second</span> -<span class="linenos">3</span> <span class="n">nbr_meas</span><span class="o">=</span> <span class="mi">1</span> <span class="c1"># Number of times the quadripole sequence is repeated</span> -<span class="linenos">4</span> <span class="n">sequence_delay</span><span class="o">=</span> <span class="mi">30</span> <span class="c1"># Delay in seconds between 2 sequences</span> -<span class="linenos">5</span> <span class="n">stack</span><span class="o">=</span> <span class="mi">1</span> <span class="c1"># repetition of the current injection for each quadripole</span> -<span class="linenos">6</span> <span class="n">export_path</span><span class="o">=</span> <span class="s2">"home/pi/Desktop/measurement.csv"</span> -</pre></div> -</div> -</section> -</section> -<section id="complete-list-of-components"> -<h2>Complete list of components<a class="headerlink" href="#complete-list-of-components" title="Permalink to this headline">¶</a></h2> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date</p> -</div> -<table class="colwidths-given docutils align-default" id="id10"> -<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id10" title="Permalink to this table">¶</a></caption> +<p>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</p> +<table class="docutils align-center"> <colgroup> -<col style="width: 8%" /> -<col style="width: 18%" /> -<col style="width: 18%" /> -<col style="width: 18%" /> -<col style="width: 18%" /> -<col style="width: 18%" /> +<col style="width: 50%" /> +<col style="width: 50%" /> </colgroup> -<thead> -<tr class="row-odd"><th class="head"><p>Component</p></th> -<th class="head"><p>Number</p></th> -<th class="head"><p>Cost per unit</p></th> -<th class="head"><p>Total cost</p></th> -<th class="head"><p>Manufacturer</p></th> -<th class="head"><p>Manufacturer s reference</p></th> -</tr> -</thead> <tbody> -<tr class="row-even"><td><p>Raspberry Pi 3 Model B+</p></td> -<td><p>1</p></td> -<td><p>37</p></td> -<td><p>37</p></td> -<td><p>Raspberry</p></td> -<td><p>Raspberry Pi 3 Model B</p></td> -</tr> -<tr class="row-odd"><td><p>Raspberry Pi 1 2 and 3 Power Supply</p></td> -<td><p>1</p></td> -<td><p>8.37</p></td> -<td><p>8.37</p></td> -<td><p>Raspberry</p></td> -<td><p>Raspberry Pi 1 2 and 3 Power Supply</p></td> -</tr> -<tr class="row-even"><td><p>SainSmart 16-Channel 12V Relay</p></td> -<td><p>8</p></td> -<td><p>24.99</p></td> -<td><p>199.92</p></td> -<td><p>Sain Smart</p></td> -<td><p>101-70-103</p></td> -</tr> -<tr class="row-odd"><td><p>4-Channel 5V Relay Module</p></td> -<td><p>1</p></td> -<td><p>7.99</p></td> -<td><p>7.99</p></td> -<td><p>Sain Smart</p></td> -<td><p>20-018-101-CMS</p></td> -</tr> -<tr class="row-even"><td><p>cable 1X1 mm2 (50 m)</p></td> -<td><p>1</p></td> -<td><p>19.66</p></td> -<td><p>19.66</p></td> -<td><p>TRU COMPONENTS</p></td> -<td><p>1568649</p></td> -</tr> -<tr class="row-odd"><td><p>cable 1X0.5 mm2 (100 m)</p></td> -<td><p>1</p></td> -<td><p>29.71</p></td> -<td><p>29.71</p></td> -<td><p>TRU COMPONENTS</p></td> -<td><p>1565235</p></td> -</tr> -<tr class="row-even"><td><p>Printed circuit board (packaging quantity x 3)</p></td> -<td><p>1</p></td> -<td><p>12</p></td> -<td><p>12</p></td> -<td><p>Asler</p></td> -<td><p>0</p></td> -</tr> -<tr class="row-odd"><td><p>Header sets 1x10</p></td> -<td><p>1</p></td> -<td><p>2.68</p></td> -<td><p>2.68</p></td> -<td><p>Samtec</p></td> -<td><p>SSW-110-02-G-S</p></td> -</tr> -<tr class="row-even"><td><p>Dual screw terminal (3.5-mm pitch)</p></td> -<td><p>7</p></td> -<td><p>0.648</p></td> -<td><p>4.55</p></td> -<td><p>RS PRO</p></td> -<td><p>897-1332</p></td> -</tr> -<tr class="row-odd"><td><p>Resistor 1 Kohm 0.5W +- 0.1%</p></td> -<td><p>4</p></td> -<td><p>0.858</p></td> -<td><p>3.44</p></td> -<td><p>TE Connectivity</p></td> -<td><p>H81K0BYA</p></td> -</tr> -<tr class="row-even"><td><p>Resistor 1.5 Kohms +- 0.1%</p></td> -<td><p>4</p></td> -<td><p>0.627</p></td> -<td><p>2.52</p></td> -<td><p>TE Connectivity</p></td> -<td><p>H81K5BYA</p></td> -</tr> -<tr class="row-odd"><td><p>Resistor 50 +- 0.1%</p></td> -<td><p>1</p></td> -<td><p>8.7</p></td> -<td><p>8.7</p></td> -<td><p>TE Connectivity</p></td> -<td><p>UPW50B50RV</p></td> -</tr> -<tr class="row-even"><td><p>LM358N AMP-o</p></td> -<td><p>4</p></td> -<td><p>0.8</p></td> -<td><p>2.4</p></td> -<td><p>Texas Instruments</p></td> -<td><p>LM358AN/NOPB</p></td> -</tr> -<tr class="row-odd"><td><p>ADS1115</p></td> -<td><p>1</p></td> -<td><p>11.9</p></td> -<td><p>11.9</p></td> -<td><p>Adafruit</p></td> -<td><p>1083</p></td> -</tr> -<tr class="row-even"><td><p>12V battery 7ah</p></td> -<td><p>1</p></td> -<td><p>19.58</p></td> -<td><p>19.58</p></td> -<td><p>RS PRO</p></td> -<td><p>537-5488</p></td> +<tr class="row-odd"><td><img alt="_images/01_mes_board.jpg" src="_images/01_mes_board.jpg" /> +</td> +<td></td> </tr> -<tr class="row-odd"><td><p>Battery Holder Type D LR20 (9V)</p></td> -<td><p>1</p></td> -<td><p>3.43</p></td> -<td><p>3.43</p></td> -<td><p>RS PRO</p></td> -<td><p>185-4686</p></td> +</tbody> +</table> +<table class="docutils align-center"> +<colgroup> +<col style="width: 50%" /> +<col style="width: 50%" /> +</colgroup> +<tbody> +<tr class="row-odd"><td></td> +<td><img alt="_images/02_mes_board.jpg" src="_images/02_mes_board.jpg" /> +</td> </tr> -<tr class="row-even"><td><p>Ferrule Crimp Terminal (1 mm2) (500 pieces)</p></td> -<td><p>1</p></td> -<td><p>30.48</p></td> -<td><p>30.48</p></td> -<td><p>WEIDMULLER</p></td> -<td><p>9004330000</p></td> +</tbody> +</table> +<table class="docutils align-center"> +<colgroup> +<col style="width: 50%" /> +<col style="width: 50%" /> +</colgroup> +<tbody> +<tr class="row-odd"><td><img alt="_images/03_mes_board.jpg" src="_images/03_mes_board.jpg" /> +</td> +<td></td> </tr> -<tr class="row-odd"><td><p>Electrical Crimp Terminal (0.5 mm2) (100 piece)</p></td> -<td><p>1</p></td> -<td><p>6.38</p></td> -<td><p>6.38</p></td> -<td><p>AMP - TE CONNECTIVITY</p></td> -<td><p>966067-1</p></td> +</tbody> +</table> +<table class="docutils align-center"> +<colgroup> +<col style="width: 50%" /> +<col style="width: 50%" /> +</colgroup> +<tbody> +<tr class="row-odd"><td></td> +<td><img alt="_images/04_mes_board.jpg" src="_images/04_mes_board.jpg" /> +</td> </tr> -<tr class="row-even"><td><p>Fuse 1.0 A</p></td> -<td><p>1</p></td> -<td><p>0.2</p></td> +</tbody> +</table> +<table class="docutils align-center"> +<colgroup> +<col style="width: 50%" /> +<col style="width: 50%" /> +</colgroup> +<tbody> +<tr class="row-odd"><td><img alt="_images/05_mes_board.jpg" src="_images/05_mes_board.jpg" /> +</td> <td></td> -<td><p>LITTELFUSE</p></td> -<td><p>0251001.PAT1L</p></td> -</tr> -<tr class="row-odd"><td><p>Capacitor 100nF 50Vdc 10% Ceramic</p></td> -<td><p>4</p></td> -<td><p>0.2</p></td> -<td><p>0.8</p></td> -<td><p>KEMET</p></td> -<td><p>C320C104K1</p></td> </tr> -<tr class="row-even"><td><p>DC/DC converter 12 to 24V</p></td> -<td><p>2</p></td> -<td><p>26.72</p></td> -<td><p>53.44</p></td> -<td><p>TracoPower</p></td> -<td><p>TRN 3-1215</p></td> +</tbody> +</table> +<table class="docutils align-center"> +<colgroup> +<col style="width: 50%" /> +<col style="width: 50%" /> +</colgroup> +<tbody> +<tr class="row-odd"><td></td> +<td><img alt="_images/06_mes_board.jpg" src="_images/06_mes_board.jpg" /> +</td> </tr> </tbody> </table> </section> +</section> </section> diff --git a/sphinx/build/html/_images/00_mes_board_components.jpg b/sphinx/build/html/_images/00_mes_board_components.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0aa99066a6382bf8fe09444a0e602e0e171a748c Binary files /dev/null and b/sphinx/build/html/_images/00_mes_board_components.jpg differ diff --git a/sphinx/build/html/_images/01_mes_board.jpg b/sphinx/build/html/_images/01_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2baa894bd38ab71c7a2f03bfca10a382ce93a0b9 Binary files /dev/null and b/sphinx/build/html/_images/01_mes_board.jpg differ diff --git a/sphinx/build/html/_images/02_mes_board.jpg b/sphinx/build/html/_images/02_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa737e27b5801333012abc9831195b5ae573139c Binary files /dev/null and b/sphinx/build/html/_images/02_mes_board.jpg differ diff --git a/sphinx/build/html/_images/03_mes_board.jpg b/sphinx/build/html/_images/03_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41381d5341aed8952dab89fa31ed7c0303e50205 Binary files /dev/null and b/sphinx/build/html/_images/03_mes_board.jpg differ diff --git a/sphinx/build/html/_images/04_mes_board.jpg b/sphinx/build/html/_images/04_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..988d238ad7fc61d9fb594467729879635deec63b Binary files /dev/null and b/sphinx/build/html/_images/04_mes_board.jpg differ diff --git a/sphinx/build/html/_images/05_mes_board.jpg b/sphinx/build/html/_images/05_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a88db4242f13c04286aa763f6818252421aa6839 Binary files /dev/null and b/sphinx/build/html/_images/05_mes_board.jpg differ diff --git a/sphinx/build/html/_images/06_mes_board.jpg b/sphinx/build/html/_images/06_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94a903f0c942832b86d2f074b95ea5c65a58553b Binary files /dev/null and b/sphinx/build/html/_images/06_mes_board.jpg differ diff --git a/sphinx/build/html/_images/measurement_board_requirement.jpg b/sphinx/build/html/_images/measurement_board_requirement.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e011a8de2fb7801b07f29db11b0c7679b1dc680b Binary files /dev/null and b/sphinx/build/html/_images/measurement_board_requirement.jpg differ diff --git a/sphinx/build/html/_images/schema_measurement_board.jpg b/sphinx/build/html/_images/schema_measurement_board.jpg index 067f79537545338f96b3db86198f8ecbabb3e6e4..a4d73a9656272e18ec6a3341eba40956e568ae48 100644 Binary files a/sphinx/build/html/_images/schema_measurement_board.jpg and b/sphinx/build/html/_images/schema_measurement_board.jpg differ diff --git a/sphinx/build/html/_sources/V2_00.rst.txt b/sphinx/build/html/_sources/V2_00.rst.txt index 5cffe76fe42144dafa816bb388dd2314b5826890..6a511baef4a0479a24a3b106c5fa23f41975688d 100644 --- a/sphinx/build/html/_sources/V2_00.rst.txt +++ b/sphinx/build/html/_sources/V2_00.rst.txt @@ -237,340 +237,73 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt 9- Close thonny to save modifications -Assembly of the measuring/current injection cards, and connection with the Raspberry Pi -***************************************************************************************** +**STEP n°2**: Assembly of the measurement board +**************************************************** -Electrical resistivity measurements board -========================================== ++----------------------------------------------------+ +| **Required components** | ++----------------------------------------------------+ -a) Description ------------------------------ - -To measure electrical resistivity with Raspberry Pi, an ADS1115 was introduced, as proposed by Florsch [7]. The ADS1115 -is a 16-bit ADC (Analog-to-Digital Converter), with an adaptable gain. Its value has been set at 2/3 in this study. The -input signal value could lie between - to + 6.114 V. The ADS1115 is mounted on a board adapted from an in-house design. -Figure 5 shows the general diagram for the electronic measurement board developed. This figure also displays the test -circuit used to test the board in the laboratory, which mimics the behavior of a soil subjected to current injection. -In this test circuit, resistance R11 represents the soil resistance. -Soil resistance R11 is connected to electrodes A and B for the current injection. Resistors R10 and R12 constitute -the contact resistances between soil and electrodes; they are typically made of stainless steel. The battery, which -allows for direct current injection, is connected in series with resistors R10, R11 and R12. In this part of the board, -resistance R9 has been added to measure the current flowing between electrodes A and B. This resistance value has been -set at 50 ohms in order to ensure: -• a precise resistance, -• a resistance less than the sum of resistors R10, R11 and R12; indeed, R10 and R12 generally lie between 100 and 5,000 ohms. -To measure the current intensity between A and B, the electrical potential difference at the pole of the reference resistor (R9) -is measured. The intensity (in mA) is calculated by inserting the resulting value into the following: ? -To measure the potential difference needed to measure current intensity, the ADS 1115 is connected to the ground of the circuit. -In our case, the ground reference is electrode B. The analog inputs A1 and A0 of the ADS1115 are connected to each pole of the -reference resistor (R9). In order to increase input impedance and adapt the signal gain, tracking amplifiers have been included -and completed by a divider bridge (R5, R8, R6 and R7) located between the two amplifiers. The resistance of the divider bridge -ensures that the signal remains between 0 and 5 V, in accordance with the ADS1115 signal gain. To measure the potential difference, -the M and N electrodes are connected to analog inputs A2 and A3 of the ADS 1115. Between the ADC and the electrodes, two tracking -amplifiers and a divider bridge have been positioned so as to obtain a potential lying within the 0-5 V range at the analog input of the ADS 1115. -Let's note that the potential difference value would equal the potential measured with ADS1115 multiplied by the voltage reduction -value of the divider bridge (see Section 5.2). Despite the use of high-resolution resistance (i.e. accurate to within 1%), it is -still necessary to calibrate the divider bridge using a precision voltmeter. For this purpose, the input and output potentials -of the divider bridge must be measured using an equivalent circuit for various electrical potential values. These values serve -to calculate the gain. With this electronic board, it is possible to measure the potential and intensity without disturbing the -electric field in the ground, with the total input impedance value being estimated at 36 mega-ohms. -A shortcut between Electrodes A and B will generate excessive currents, whose intensities depend on the type of battery used. -A lithium ion battery or automobile-type lead-acid battery can deliver a strong enough current to damage the board and, as such, -constitutes a potential hazard. We therefore recommend adding a 1.5-A fuse between the battery and resistor R9. -In version 1.02, we have improved the electronic board of measurement. we have added a DC/DC converter to supply the operational amplifiers -(2 Traco power DC/DCconverter TRN3-1215). These converters allow to limit the suppression of the signal when the injected voltage is higher than 10V. -We also added 4 capacitors on the +12v inputs of the fast operational amplifiers. These are decoupling capacitors (typically 100nF ceramic) -between each power supply terminal and ground. The last point, we have added a four very high resistances of 10 MOhm, between the ground and -the signal input on the operational amplifiers. This prevents the operational amplifiers from overheating. - -.. figure:: schema_measurement_board1_02.png - :width: 800px - :align: center - :height: 400px - :alt: alternate text - :figclass: align-center - - Measurement board (Ohmpi version 1.02) - -.. note:: - If you want to have very accurate measurements you can replace the resistors with a tolerance of 1% by resistors with a tolerance of 0.01% which will improve the measurement, but the cost will be higher. - - - -b) Implementation --------------------------------- -The measurement board must be printed using the PCB file (Source file repository), with components soldered onto -it by following the steps described below and illustrated in the following figure : - -* Step no. 1: test divider bridge - For each measurement channel, we have installed a bridge divider, it is necessary to test with ohmmeter the value of the resistances, to adjust each coefficients (coef_p0, coef_p1, coef_p2, coef_p3) in the Ohmpi.py code.. - - .. math:: - coeff po = (R1 + R2) / R1 - - .. math:: - coeff p1 = (R3 + R4) / R3 - - .. math:: - coeff p2 = (R7 + R6) / R7 - - .. math:: - coeff p3 = (R9 + R8) / R9 - - .. code-block:: python - :linenos: - :lineno-start: 36 - - """ - hardware parameters - """ - R_ref = 50 # reference resistance value in ohm - coef_p0 = 2.5 # slope for current conversion for ADS.P0, measurement in V/V - coef_p1 = 2.5 # slope for current conversion for ADS.P1, measurement in V/V - coef_p2 = 2.5 # slope for current conversion for ADS.P2, measurement in V/V - coef_p3 = 2.5 # slope for current conversion for ADS.P3, measurement in V/V - - The coefficient parameters can be adjusted in lines 40 to 43 of the ohmpi.py code. - - -* Step no. 2: installation of the 1-Kohm resistors with an accuracy of ± 1% (b-in the figure). -* Step no. 3: installation of the 1.5-Kohm resistors with an accuracy of ± 1%(C-in the figure). -* Step no. 4: installation of both the black female 1 x 10 header and the 7-blue screw terminal blocks (c-in the figure) -* Step no. 5: installation of the 50-Ohm reference resistor ± 0.1%, please check the value and correct the line 39 in ohmpi.py code (d-in the figure) -* Step no. 6: addition of both the ADS115 directly onto the header (pins must be plugged according to the figure) and the LM358N operational amplifiers (pay attention to the orientation) (e-in the figure). -* Step no. 7: installation of the 10-Mohm resistors with an accuracy of ± 5% (f-in the figure). -* Step no. 8: installation of the two DC/DC converter TRN3-1215 (h-in the figure). -* Setp no. 9: installation of the four capacitor on 100-nF/50vDC and the fuse of 10-A (h-in the figure). - -1-Kohm and 1.5-Kohm resistors apply to the divider bridge. If, for example, you prefer using a stronger power supply, it would be possible to adjust the divider bridge value by simply modifying these resistors. -Once all the components have been soldered together, the measurement board can be connected to the Raspberry Pi and the -battery terminal, according to Figure 9. Between the battery and the TX+ terminal of the measurement board, remember to -place a fuse holder with a 1.5-A fuse for safety purposes. - -.. figure:: measurement_board1-02.jpg - :width: 800px - :align: center - :height: 700px - :alt: alternate text - :figclass: align-center - - Measurement circuit board assembly: a) printed circuit board, b) adding the 1-Kohm resistors ± 1%, c)adding the 1.5-Kohm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers - -.. figure:: measurement_board-2-V1-02.jpg - :width: 800px - :align: center - :height: 700px - :alt: alternate text - :figclass: align-center - - Measurement board installation with Raspberry Pi - -Current injection board -======================= - -To carry out the electrical resistivity measurement, the first step consists of injecting current into the ground. -In our case, a simple 9-V lead-acid battery is used to create an electrical potential difference that results -in current circulating into the ground. The current is injected through electrodes A and B (see Fig. 2). This -injection is controlled via a 4-channel relay module board connected to the Raspberry Pi. The mechanical relay -module board is shown in Figure 4. Relays 1 and 2 serve to switch on the current source. The common contacts -of relays 1 and 2 are connected to the positive and negative battery poles, respectively. The normally open -contacts of both relays are connected to the common contacts of relays 3 and 4. Relays 1 and 2 are connected -to the GPIO 7 on the Raspberry Pi and therefore activate simultaneously. The role of relays 3 and 4 is to reverse -the polarity at electrodes A and B. Thus, when relays 3 and 4 are energized by the GPIO 8 in the open position, -the positive battery pole is connected to electrode A and the negative pole to electrode B. When not energized, -they remain in the normally closed position. This set-up offers a simple and robust solution to inject current. - -.. figure:: current_board.jpg - :width: 800px - :align: center - :height: 400px - :alt: alternate text - :figclass: align-center - - Wiring of the 4-channel relay module board for current injection management - -The next step consists of featuring the 4-channel relay module used for current injection and its assembly. The wiring -between the relays must be carried out in strict accordance with Fig. 10. This card must then be connected to the Raspberry -Pi and the measurement card. On the Raspberry Pi, it is necessary to connect inputs In1 and In2 to the same GPIO. For this -purpose, it is necessary to solder together the two pins on the 4-channel relay shield module and connect them to the Raspberry Pi GPIO-7 (Fig. 10). The same must be performed for inputs In3 and In4 with GPIO-8. Connect the GND and 5Vdc pins of -the relay card’s 4 channels respectively to the GND pin and 5Vcc of the Raspberry Pi. Now connect relays 1, 2, 3 and 4, as -shown in the diagram, using 1-mm2 cables (red and black in Fig. 10). Lastly, connect the inputs of relay 1 and 2 respectively -to terminals B and A of the measurement board. - -.. figure:: installation_current_board_1_02.jpg - :width: 800px - :align: center - :height: 700px - :alt: alternate text - :figclass: align-center - - Current injection board installation with Raspberry Pi - - -Congratulations, you have build a 4 electrodes resistivity-meter. +.. figure:: mesure/00_mes_board_components.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center -Frist four electrodes resistivity mesurement -============================================ +Description +========================================== -Under construction ! +.. figure:: schema_measurement_board.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center -Describe the way to valide the first part of the instruction. -Electrical resistivity measurement on test circuit +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 - -Multiplexer implentation -************************* -The resistivity measurement is conducted on four terminals (A, B, M and N). The user could perform each measurement -by manually plugging four electrodes into the four channel terminals. In practice, ERT requires several tens or thousands -of measurements conducted on different electrode arrays. A multiplexer is therefore used to connect each channel to one of -the 32 electrodes stuck into the ground, all of which are connected to the data logger. - - -We will describe below how to assemble the four multiplexers (MUX), one per terminal. A multiplexer consists of 2 relay -modules with 16 channels each. On the first board, on each MUX, 15 relays out of the 16 available will be used. Please note that the suggested -configuration enables making smaller multiplexers (8 or 16 electrodes only). On the other hand, if you prefer upping to 64 electrodes, -which is entirely possible, a GPIO channel multiplier will have to be used. -To prepare the multiplexer, the channels of the two relay boards must be connected according to the wiring diagram shown below. - -.. figure:: multiplexer_implementation.jpg - :width: 800px +.. table:: :align: center - :height: 500px - :alt: alternate text - :figclass: align-center + + +---------------------------------------+---------------------------------------+ + | .. image:: mesure/01_mes_board.jpg | | + +---------------------------------------+---------------------------------------+ - Schematic diagram of the wiring of two 16-channel relay shields - - -For this purpose, 0.5-mm² cables with end caps are used and their length adjusted for each connection in order to produce a clean assembly. -The length was adjusted so that the distance between the two points to be connected could be directly measured on the board once they had -been assembled one above the other, in adding an extra 3 cm. The wires at the ends need to be stripped and the end caps added. -As a final step, connect the cables to the correct connectors. This operation must be repeated in order to carry out all the wiring shown in Figure below. - -Once the operation has been completed, the 16 control pins of each 16-channel relay shield card must be prepared. Each card actually contains 16 input channels -for activating each relay (Fig. 12). However, we will be activating several relays with a single GPIO (to limit the number of GPIOs used on Raspberry Pi, -see Section 2.4). To execute this step, it will be necessary to follow the protocol presented in Figure. - - .. figure:: connection.jpg - :width: 800px +.. table:: :align: center - :height: 400px - :alt: alternate text - :figclass: align-center - - Connection to the 16-channel relay shield - -For the 16-channel relay shield no. 1, these steps must be followed: -* Position a test circuit with 10 horizontal and 10 vertical holes on the pins of the 16-channel relay shield board. -* Follow the diagram and solder the pins as shown in Fig. -* Lastly, solder 0.5-mm² wires 1 m in length to the test circuit. - -For relay shield no. 2, follow the same procedure, but solder all the pins together (d-e-f). -This same operation must be repeated for the other three multiplexers as well. -The next step consists of connecting the relay card inputs to the Raspberry Pi according to Table 5 for all four multiplexers. - - -+-------------------------------+-------------------------------------------+---------------------+ -| |Relay shield n°1 |Relay Shield n°2 | -| +----------+----------+----------+----------+---------------------+ -| |Pin 1 |Pin 2-3 |Pin 4-7 |Pin 8-16 |Pin 1- 16 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer A |12 |16 |20 |21 |26 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer B |18 |23 |24 |25 |19 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer M |06 |13 |04 |17 |27 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer N |22 |10 |09 |11 |05 | -+-------------------------------+----------+----------+----------+----------+---------------------+ - - Connection of the GPIOs to each multiplexer - - -Electrode connection -************************* -At this point, all that remains is to connect the electrodes of each multiplexer to a terminal block (Fig. 13). In our set-up, screw terminals assembled on a din rail were used. -According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming -connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure. - -.. figure:: cable.jpg - :width: 800px + + +---------------------------------------+---------------------------------------+ + | | .. image:: mesure/02_mes_board.jpg | + +---------------------------------------+---------------------------------------+ +.. table:: :align: center - :height: 300px - :alt: alternate text - :figclass: align-center + + +---------------------------------------+---------------------------------------+ + | .. image:: mesure/03_mes_board.jpg | | + +---------------------------------------+---------------------------------------+ - Wire cabling for multiplexer and terminal screw connection - -the next figure provides an example of multiplexer relay connections for electrode no. 1: this electrode of multiplexer MUX A must be connected to electrode no. 1 of MUX B. Moreover, electrode no. 1 of MUX B -must be connected to electrode no. 1 of MUX N, which in turn must be connected to electrode no. 1 of MUX M. Lastly, electrode no. 1 of MUX M is connected to the terminal block. -This operation must be repeated for all 32 electrodes. - -.. figure:: electrode_cable.jpg - :width: 800px +.. table:: + :align: center + + +---------------------------------------+---------------------------------------+ + | | .. image:: mesure/04_mes_board.jpg | + +---------------------------------------+---------------------------------------+ +.. table:: :align: center - :height: 800px - :alt: alternate text - :figclass: align-center + + +---------------------------------------+---------------------------------------+ + | .. image:: mesure/05_mes_board.jpg | | + +---------------------------------------+---------------------------------------+ - Example of a multiplexer connection to the screw terminal for electrode no. 1. - -.. warning:: - The 16 channel relay cards exist in 5-V and 12-V , in the bottom figure we have 12-V cards that we will directly connect to the battery. - In case you bought 16 channel relay 5-V cards, you will need to add a DC/DC 12-V/5-V converter. You can use a STEP DOWN MODULE DC-DC (Velleman WPM404) and set the voltage to 5V with the potentiometer. - -Operating instruction -************************* - -Preliminary procedure (Only for the initial operation) -====================================================== -The open source code must be downloaded at the Open Science Framework source file repository for this manuscript (https://osf.io/dzwb4/) -or at the following Gitlab repository address: https://gitlab.irstea.fr/reversaal/OhmPi. The code must be then unzipped into a selected folder (e.g. OhmPi-master). A “readme†file -is proposed in the directory to assist with installation of the software and required python packages. It is strongly recommended to create a python virtual environment for installing -the required packages and running the code. - - -Startup procedure -================== -As an initial operating instruction, all batteries must be disconnected before any hardware handling. Ensure that the battery is charged at full capacity. Plug all the electrodes (32 or fewer) -into the screw terminals. The Raspberry Pi must be plugged into a computer screen, with a mouse and keyboard accessed remotely. The Raspberry Pi must then be plugged into the power supply -(for laboratory measurements) or a power bank (5V - 2A for field measurements). At this point, you'll need to access the Raspbian operating system. Inside the previously created folder “ohmPiâ€, -the protocol file “ABMN.txt†must be created or modified; this file contains all quadrupole ABMN numeration (an example is proposed with the source code). Some input parameters of the main “ohmpi.py†-function may be adjusted/optimized depending on the measurement attributes. For example, both the current injection duration and number of stacks can be adjusted. At this point, the9 V and 12-V battery can be -plugged into the hardware; the "ohmpi.py" source code must be run within a python3 environment (or a virtual environment if one has been created) either in the terminal or using Thonny. You should now -hear the characteristic sound of a relay switching as a result of electrode permutation. After each quadrupole measurement, the potential difference as well as the current intensity and resistance -are displayed on the screen. A measurement file is automatically created and named "measure.csv"; it will be placed in the same folder. - -Electrical resistivity measurement parameters description -========================================================== - -In the version 1.02, the measurement parameters are in the Jason file (ohmpi_param.json). - -.. code-block:: python - :linenos: - :lineno-start: 1 - - - nb_electrodes = 32 # maximum number of electrodes on the resistivity meter - injection_duration = 0.5 # Current injection duration in second - nbr_meas= 1 # Number of times the quadripole sequence is repeated - sequence_delay= 30 # Delay in seconds between 2 sequences - stack= 1 # repetition of the current injection for each quadripole - export_path= "home/pi/Desktop/measurement.csv" - - - -Complete list of components -******************************* -.. warning:: - The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date - - -.. csv-table:: List of components - :file: C:\Users\remi.clement\Documents\28_ohmpi_all_git\master\sphinx\source\list - 1_02.csv - :widths: 30, 70, 70, 70, 70,70 - :header-rows: 1 - - +.. table:: + :align: center + + +---------------------------------------+---------------------------------------+ + | | .. image:: mesure/06_mes_board.jpg | + +---------------------------------------+---------------------------------------+ diff --git a/sphinx/build/html/index.html b/sphinx/build/html/index.html index 93a710c17f3a80e7d711bc9e22e5d1cba45a9b6c..205714867bba948a44e81ba892bb8b64fb6d6a20 100644 --- a/sphinx/build/html/index.html +++ b/sphinx/build/html/index.html @@ -221,11 +221,7 @@ <li class="toctree-l2"><a class="reference internal" href="V2_00.html#the-philosophy-of-ohmpi">The philosophy of Ohmpi</a></li> <li class="toctree-l2"><a class="reference internal" href="V2_00.html#technical-data">Technical data</a></li> <li class="toctree-l2"><a class="reference internal" href="V2_00.html#step-n1-raspberry-pi-configuration"><strong>STEP n°1</strong> : Raspberry Pi configuration</a></li> -<li class="toctree-l2"><a class="reference internal" href="V2_00.html#assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi">Assembly of the measuring/current injection cards, and connection with the Raspberry Pi</a></li> -<li class="toctree-l2"><a class="reference internal" href="V2_00.html#multiplexer-implentation">Multiplexer implentation</a></li> -<li class="toctree-l2"><a class="reference internal" href="V2_00.html#electrode-connection">Electrode connection</a></li> -<li class="toctree-l2"><a class="reference internal" href="V2_00.html#operating-instruction">Operating instruction</a></li> -<li class="toctree-l2"><a class="reference internal" href="V2_00.html#complete-list-of-components">Complete list of components</a></li> +<li class="toctree-l2"><a class="reference internal" href="V2_00.html#step-n2-assembly-of-the-measurement-board"><strong>STEP n°2</strong>: Assembly of the measurement board</a></li> </ul> </li> </ul> diff --git a/sphinx/build/html/searchindex.js b/sphinx/build/html/searchindex.js index cbd93c057972e746d171e1cf525d3059accd03cd..9d6839628f172706742555c263ab6283721ba356 100644 --- a/sphinx/build/html/searchindex.js +++ b/sphinx/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["Ohmpi","V1_01","V1_02","V2_00","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["Ohmpi.rst","V1_01.rst","V1_02.rst","V2_00.rst","index.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[1,2,3],"00":4,"000":[1,2,3],"01":[2,3,4],"018":[1,2,3],"02":[1,3,4],"0251001":[2,3],"04":[1,2,3],"05":[1,2,3],"06":[1,2,3],"09":[1,2,3],"1":4,"10":[1,2,3],"100":[1,2,3],"100nf":[2,3],"101":[1,2,3],"1016":0,"103":[1,2,3],"1083":[1,2,3],"10v":[2,3],"11":[1,2,3],"110":[1,2,3],"1115":[1,2,3],"114":[1,2,3],"12":[1,2,3],"1215":[2,3],"128":4,"12v":[1,2,3],"13":[1,2,3],"1332":[1,2,3],"14":4,"15":[1,2,3],"150":[1,2,3],"1565235":[1,2,3],"1568649":[1,2,3],"16":[1,2,3],"17":[1,2,3],"18":[1,2,3],"185":[1,2,3],"19":[1,2,3],"199":[1,2,3],"1x0":[1,2,3],"1x1":[1,2,3],"1x10":[1,2,3],"2":[1,2,4],"20":[1,2,3],"2016":4,"2020":0,"2021":4,"21":[0,1,2,3],"22":[1,2,3],"23":[1,2,3],"24":[0,1,2,3],"24v":[2,3],"25":[1,2,3],"26":[1,2,3],"27":[1,2,3],"29":[1,2,3],"2a":[1,2,3],"3":[1,2,3],"30":[1,2,3],"32":[0,3,4],"36":[1,2,3],"37":[1,2,3],"38":[1,2,3],"39":[1,2,3],"4":[1,2,3],"40":[1,2,3],"43":[1,2,3],"44":[1,2,3],"45100":0,"4686":[1,2,3],"48":[1,2,3],"5":[1,2,3],"50":[1,2,3],"500":[1,2,3],"50vdc":[2,3],"52":[1,2,3],"53":[2,3],"537":[1,2,3],"5488":[1,2,3],"55":[1,2,3],"576":1,"58":[1,2,3],"5v":[1,2,3],"5vcc":[1,2,3],"5vdc":[1,2,3],"5w":[1,2,3],"6":[1,2,3],"627":[1,2,3],"64":[1,2,4],"648":[1,2,3],"66":[1,2,3],"68":[1,2,3],"69626":0,"69675":0,"7":[1,2,3],"70":[1,2,3],"71":[1,2,3],"72":[2,3],"7ah":[1,2,3],"8":[0,1,2,3],"80":3,"858":[1,2,3],"897":[1,2,3],"9":[1,2,3],"9004330000":[1,2,3],"92":[1,2,3],"96":1,"966067":[1,2,3],"99":[1,2,3],"9v":[1,2,3],"\u00e9lectrod":4,"ao\u00fbt":0,"case":[1,2,3],"final":[1,2,3],"function":[0,1,2,3],"h\u00e9l\u00e8ne":[0,4],"mm\u00b2":[1,2,3],"new":[1,2,3],"orl\u00e9an":0,"public":[1,2,3],"r\u00e9mi":[0,4],"return":[1,2,3],"switch":[1,2,3],"universit\u00e9":0,"vid\u00e9o":[1,2,3],A:[1,2,3],As:[1,2,3],At:[1,2,3],For:[1,2,3],If:[1,2,3],In:[0,1,2,3],It:[1,2,3],Its:[1,2,3],On:[1,2,3],The:4,These:[1,2,3],To:[1,2,3],With:[1,2,3],a0:[1,2,3],a1:[1,2,3],a2:[1,2,3],a3:[1,2,3],abmn:[1,2,3],abov:[1,2,3],acc:[1,2,3],access:[1,2,3],accord:[1,2,3],accur:[1,2,3],accuraci:[1,2,3],acid:[1,2,3],actual:[1,2,3],ad:[1,2,3],adafruit:[1,2,3],adapt:[1,2,3],adc:[1,2,3],add:[1,2,3],addit:[1,2,3],address:[1,2,3],adjust:[1,2,3],ads1115:[1,2,3],ads115:[1,2,3],ads1x15:[1,2,3],after:[1,2,3],al:0,all:[1,2,3],allow:[0,1,2,3],alp:0,also:[1,2,3],altern:[1,2,3],amp:[1,2,3],amplifi:[1,2,3],an:[0,1,2,3],analog:[1,2,3],ani:[1,2,3],anoth:[1,2,3],appear:[1,2,3],appli:[1,2,3],applic:0,apt:[1,2,3],ar:[1,2,3],arduino:1,arm:1,arrai:[1,2,3],articl:[1,2,3],asler:[1,2,3],assembl:4,assist:[1,2,3],associ:0,attent:[1,2,3],attribut:[1,2,3],author:[0,1,2,3,4],automat:[0,1,2,3],automobil:[1,2,3],avail:[1,2,3],avr:1,bank:[1,2,3],base:[1,2,3],basic:0,batteri:[1,2,3],been:[1,2,3],befor:[1,2,3],behavior:[1,2,3],being:[1,2,3],below:[1,2,3],between:[1,2,3],bin:[1,2,3],bit:[1,2,3],black:[1,2,3],blinka:[1,2,3],block:[1,2,3],blue:[1,2,3],boot:[1,2,3],both:[1,2,3],bottom:[1,2,3],bought:[1,2,3],box:3,bridg:[1,2,3],bug:1,build:[1,2,3],button:[1,2,3],c320c104k1:[2,3],c:[1,2,3],cabl:[1,2,3],calcul:[1,2,3],calibr:[1,2,3],call:0,can:[1,2,3],canal:1,cap:[1,2,3],capac:[1,2,3],capacitor:[2,3],car:1,card:4,carri:[1,2,3],caus:[1,2,3],cd:[1,2,3],cedex:0,ceram:[2,3],channel:[1,2,3],characterist:[1,2,3],charg:[1,2,3],check:[1,2,3],chosen:[1,2,3],circuit:[1,2,3],circuitpython:[1,2,3],circul:[1,2,3],clean:[1,2,3],clement:[0,4],click:[1,2,3],close:[1,2,3],cm:[1,2,3],code:[1,2,3],coef_p0:[1,2,3],coef_p1:[1,2,3],coef_p2:[1,2,3],coef_p3:[1,2,3],coeff:[1,2,3],coeffici:[1,2,3],com:[1,2,3],command:[1,2,3],commerci:[1,2],common:[1,2,3],commun:[0,3],complet:4,compon:4,comput:[1,2,3],conduct:[1,2,3],config:[1,2,3],configur:4,congratul:[1,2,3],connect:4,connector:[1,2,3],consequ:[1,2,3],consist:[1,2,3],constitut:[1,2,3],construct:[1,2,3],consumpt:[1,2,3],contact:[1,2,3],contain:[1,2,3],content:4,control:[1,2,3],convers:[1,2,3],convert:[1,2,3],copi:3,correct:[1,2,3],correspond:1,cost:[0,1,2,3],could:[1,2,3],cpu:[1,2,3],creat:[1,2,3],creation:0,crimp:[1,2,3],csv:[1,2,3],ctrl:[1,2,3],current:[0,4],d:[1,2,3],damag:[1,2,3],data:[0,4],date:[0,1,2,3,4],dc:[1,2,3],dcconvert:[2,3],deactiv:[1,2,3],decid:[1,2,3],decoupl:[2,3],dedic:[0,3],delai:[1,2,3],deliv:[1,2,3],depend:[1,2,3],describ:[1,2,3],design:[1,2,3],desktop:[2,3],despit:[1,2,3],detail:1,dev:[1,2,3],develop:[0,1,2,3,4],diagram:[1,2,3],differ:[1,2,3],digit:[1,2,3],dii:3,din:[1,2,3],direct:[1,2,3],directli:[1,2,3],directori:[1,2,3],disconnect:[1,2,3],discret:3,displai:[1,2,3],distanc:[1,2,3],disturb:[1,2,3],divid:[1,2,3],dl:[1,2,3],document:[0,1],done:[1,2,3],down:[1,2,3],download:[1,2,3],dsp:1,dual:[1,2,3],duboi:[0,4],durat:[1,2,3],dure:[1,2,3],dzwb4:[1,2,3],e00122ff:0,e:[1,2,3],each:[1,2,3],editor:[1,2,3],effort:3,eiffel:0,either:[1,2,3],electr:0,electrod:[0,4],electron:[1,2,3],elsevi:0,emil:0,en:3,enabl:[1,2,3],end:[1,2,3],energ:[1,2,3],enough:[1,2,3],ensur:[1,2,3],enter:[1,2,3],entir:[1,2,3],environ:[1,2,3],environnementshould:[1,2,3],equal:[1,2,3],equival:[1,2,3],ert:[1,2,3],escap:[1,2,3],estim:[1,2,3],et:0,everyon:0,evolv:[1,2,3],exampl:[1,2,3],excess:[1,2,3],execut:[1,2,3],exist:[1,2,3],experi:[0,1,2,3],explain:1,export_path:[2,3],extra:[1,2,3],f:[0,1,2,3],failur:[1,2,3],fargier:[0,4],fast:[2,3],featur:[1,2,3],femal:[1,2,3],ferrul:[1,2,3],fewer:[1,2,3],ff10:0,fhac0002zxj:1,field:[1,2,3],fig:[1,2,3],figur:[1,2,3],file:[1,2,3],find:[1,2,3],first:[1,2,3],flexibl:0,florsch:[1,2,3],flow:[1,2,3],folder:[1,2,3],follow:[1,2,3],forquet:[0,4],fr:[1,2,3],framework:[1,2,3],franc:0,from:[1,2,3],full:[1,2,3],fulli:0,fuse:[1,2,3],g:[1,2,3],gain:[1,2,3],ganc:[0,4],gather:[1,2,3],gener:[1,2,3,4],ger:0,get:[0,1,2,3],gitlab:[1,2,3],gnd:[1,2,3],gnu:[1,2,3],go:3,gpio:[1,2,3],grenobl:0,gro:0,ground:[1,2,3],gui:[1,2,3],guidelin:4,gustav:0,guyard:[0,4],h81k0bya:[1,2,3],h81k5bya:[1,2,3],h:[2,3],ha:[1,2,3],had:[1,2,3],hand:[1,2,3],handl:[1,2,3],hardwar:[0,1,2,3],hardwarex:0,have:[1,2,3],hazard:[1,2,3],hdmi:3,header:[1,2,3],hear:[1,2,3],here:2,high:[1,2,3],higher:[2,3],holder:[1,2,3],hole:[1,2,3],home:[1,2,3],horizont:[1,2,3],hous:[1,2,3],how:[1,2,3],howev:[1,2,3],http:[1,2,3],i:[1,2,3],ifsttar:0,ig:0,illustr:[1,2,3],imag:0,imped:[1,2,3],implent:4,improv:[2,3],in1:[1,2,3],in2:[1,2,3],in3:[1,2,3],in4:[1,2,3],includ:[1,2,3],incom:[1,2,3],increas:[1,2,3],inde:[1,2,3],inject:[0,4],injection_dur:[1,2,3],input:[1,2,3],inra:0,insert:[1,2,3],insid:[1,2,3],instanc:3,instead:[1,2,3],instruct:4,instrument:[0,1,2,3],intens:[1,2,3],interfac:[1,2,3],interpret:[1,2,3],introduc:[1,2,3],invit:1,involv:0,io:[1,2,3],ion:[1,2,3],iri:0,irstea:[1,2,3],its:[1,2,3],j:0,jason:[2,3],journal:1,json:[2,3],juillet:0,jul:4,juli:4,julien:[0,4],just:2,kemet:[2,3],keyboard:[1,2,3],known:[1,2,3],kohm:[1,2,3],laboratori:[0,1,2,3],laps:3,last:[2,3],lastli:[1,2,3],latest:[1,2,3],lead:[1,2,3],leav:[1,2,3],length:[1,2,3],less:[1,2,3],let:[1,2,3],libatla:[1,2,3],librari:[1,2,3],lie:[1,2,3],limit:[3,4],line:[1,2,3],list:4,lithium:[1,2,3],littelfus:[1,2,3],littl:[1,2,3],ll:[1,2,3],lm358an:[1,2,3],lm358n:[1,2,3],locat:[1,2,3],logger:[0,1,2,3],low:[0,1,2,3],lr20:[1,2,3],ly:[1,2,3],lyon:0,m:[1,2,3],ma:[1,2,3],made:[1,2,3],mai:[1,2,3],main:[1,2,3],make:[1,2,3],manag:[1,2,3],manual:[1,2,3],manufactur:[1,2,3],manuscript:[1,2,3],master:[1,2,3],matur:4,maximum:[1,2,3],measur:[0,4],mechan:[1,2,3],meet:[1,2,3],mega:[1,2,3],menu:[1,2,3],met:[1,2,3],meter:[0,1,2,3],meterfeatur:0,micro:[1,2,3],mimic:[1,2,3],min:[1,2,3],miss:1,mm2:[1,2,3],mm:[1,2,3],model:[1,2,3],modif:[1,2,3],modifi:[1,2,3],modul:[1,2,3],mohm:[1,2,3],monitor:[1,2,3],more:3,moreov:[1,2,3],mount:[1,2,3],mous:[1,2,3],ms:[1,2,3],multi:[1,2],multielectrod:3,multipl:3,multiplex:[0,4],multipli:[1,2,3],must:[1,2,3],mux:[1,2,3],n:[1,2,4],name:[1,2,3],nano:[1,2,3],nb_electrod:[1,2,3],nbr_mea:[1,2,3],necessari:[1,2,3],need:[1,2,3],neg:[1,2,3],next:[1,2,3],nf:[2,3],nicola:[0,4],noob:[1,2,3],nopb:[1,2,3],normal:[1,2,3],note:[1,2,3],now:[1,2,3],number:[1,2,3],numer:[1,2,3],numpi:[1,2,3],o1:[1,2,3],o:[1,2,3],obtain:[1,2,3],offcial:4,offer:[1,2,3],ohm:[1,2,3],ohmmet:[1,2,3],ohmpi_param:[2,3],ohx:0,ok:[1,2,3],onc:[1,2,3],one:[1,2,3],onto:[1,2,3],op:[1,2,3],open:[0,1,2,3],oper:4,optim:[1,2,3],option:[1,2,3],order:[1,2,3],org:3,orient:[2,3],osf:[1,2,3],other:[1,2,3],our:[1,2,3],out:[1,2,3],output:[1,2,3],overh:[2,3],p0:[1,2,3],p1:[1,2,3],p2:[1,2,3],p3:[1,2,3],p:0,pai:[1,2,3],panda:[1,2,3],parallel:3,part:[1,2,3],parten:0,partenair:4,pat1l:[2,3],path:[1,2,3],pcb:[1,2,3],per:[1,2,3],perform:[0,1,2,3],permut:[1,2,3],philosophi:[0,4],pi:4,pic:1,piec:[1,2,3],pin:[1,2,3],pip:[1,2,3],pitch:[1,2,3],place:[1,2,3],pleas:[1,2,3],plug:[1,2,3],po:[1,2,3],point:[1,2,3],polar:[1,2,3],pole:[1,2,3],posit:[1,2,3],possibl:[1,2,3],potenti:[1,2,3],potentiomet:[1,2,3],pour:1,power:[1,2,3],practic:[1,2,3],precis:[1,2,3],prefer:[1,2,3],prepar:[1,2,3],present:[0,1,2,3],press:[1,2,3],prevent:[2,3],previou:3,previous:[1,2,3],print:[1,2,3],pro:[1,2,3],problem:3,produc:[1,2,3],program:[1,2,3],progress:[0,4],project:[3,4],propos:[1,2,3],protect:3,protocol:[1,2,3],provid:[0,1,2,3],publish:1,puls:[1,2,3],purpos:[1,2,3],py:[1,2,3],pyhton3:[1,2,3],python3:[1,2,3],pythonid:[1,2,3],quadripol:[1,2,3],quadrupol:[1,2,3],quantiti:[1,2,3],r10:[1,2,3],r11:[1,2,3],r12:[1,2,3],r1:[1,2,3],r2:[1,2,3],r3:[1,2,3],r4:[1,2,3],r5:[1,2,3],r6:[1,2,3],r7:[1,2,3],r8:[1,2,3],r9:[1,2,3],r_ref:[1,2,3],rail:[1,2,3],rang:[1,2,3],raspberri:4,raspberrypi:3,raspbian:[1,2,3],raspebrri:[1,2,3],readm:[1,2,3],recommend:[1,2,3],red:[1,2,3],reduct:[1,2,3],refer:[1,2,3],relai:[1,2,3],releas:4,remain:[1,2,3],rememb:[1,2,3],remot:[1,2,3],repeat:[1,2,3],repetit:[1,2,3],replac:[2,3],repositori:[1,2,3],repres:[1,2,3],requir:[1,2,3],research:4,resist:[0,4],resistor:[1,2,3],resolut:[1,2,3],respect:[1,2,3],result:[1,2,3],revers:[1,2,3],reversa:[0,1,2,3],robust:[0,1,2,3],role:[1,2,3],root:[1,2,3],rpi:[1,2,3],rro:0,rs:[1,2,3],rubric:[],run:[1,2,3],s:[0,1,2,3],safeti:[1,2,3],sain:[1,2,3],sainsmart:[1,2,3],same:[1,2,3],samtec:[1,2,3],save:[1,2,3],scale:0,schemat:[1,2,3],scienc:[1,2,3],scientif:0,screen:[1,2,3],screw:[1,2,3],sd:[1,2,3],second:[1,2,3],section:[1,2,3],see:[1,2,3],seek:3,select:[1,2,3],sequenc:[1,2,3],sequence_delai:[1,2,3],seri:[1,2,3],serv:[1,2,3],set:[1,2,3],setp:[2,3],setup:[1,2,3],sever:[1,2,3],share:3,shield:[1,2,3],shortcut:[1,2,3],should:[1,2,3],show:[1,2,3],shown:[1,2,3],signal:[1,2,3],simpl:[1,2,3],simpli:[1,2,3],simultan:[1,2,3],singl:[1,2,3],slope:[1,2,3],small:[0,1,2,3],smaller:[1,2,3],smart:[1,2,3],so:[1,2,3],softwar:[1,2,3],soil:[1,2,3],solder:[1,2,3],solut:[1,2,3],some:[1,2,3,4],sound:[1,2,3],sourc:[0,1,2,3],specif:[1,2,3],specifi:[1,2,3],spi:[1,2,3],ssw:[1,2,3],stabl:[1,2,3],stack:[1,2,3],stainless:[1,2,3],start:[1,2,3,4],statu:[0,4],steel:[1,2,3],step:[1,2,4],still:[1,2,3],stop:3,storag:[1,2,3],strict:[1,2,3],strip:[1,2,3],strong:[1,2,3],stronger:[1,2,3],strongli:[1,2,3],stuck:[1,2,3],studi:[1,2,3],subject:[1,2,3],sudo:[1,2,3],suffici:[1,2,3],suggest:[1,2,3],suitabl:[1,2,3],sum:[1,2,3],suppli:[1,2,3],support:3,suppress:[2,3],sure:[1,2,3],surfac:0,system:[1,2,3],tab:[1,2,3],tabl:[2,3],target:4,task:[1,2,3],te:[1,2,3],team:3,technic:4,temperatur:[1,2,3],ten:[1,2,3],termin:[1,2,3],test:[1,2,3],texa:[1,2,3],than:[1,2,3],the9:[1,2,3],thei:[1,2,3],them:[1,2,3],therefor:[1,2,3],thi:[0,1,2,3],thousand:[1,2,3],three:[1,2,3],through:[1,2,3],thu:[1,2,3],time:[1,2,3],togeth:[1,2,3],toler:[2,3],tool:[0,3],total:[1,2,3],track:[1,2,3],traco:[2,3],tracopow:[2,3],trn3:[2,3],trn:[2,3],tru:[1,2,3],turn:[1,2,3],tutori:4,two:[1,2,3],tx:[1,2,3],txt:[1,2,3],type:[1,2,3],typic:[1,2,3],under:[1,2,3],unexpectedli:[1,2,3],unit:[1,2,3],univ:0,unzip:[1,2,3],up:[0,1,2,3],updat:0,upgrad:[2,3],upw50b50rv:[1,2,3],us:[1,2,3],user:[1,2,3,4],usr:[1,2,3],util:3,v1:[1,2,3],v2:3,v:4,valid:[1,2,3],valu:[1,2,3],variou:[1,2,3],velleman:[1,2,3],venv:[1,2,3],veri:[2,3],version:[1,2,3],vertic:[1,2,3],via:[1,2,3],villeurbann:0,visit:3,vivien:[0,4],voltag:[1,2,3],voltmet:[1,2,3],w:[1,2,3],wa:[1,2,3],wai:[1,2,3],want:[2,3],watch:[1,2,3],we:[1,2,3],weaker:1,websit:[1,2,3],weidmul:[1,2,3],welcom:0,well:[1,2,3],were:[1,2,3],when:[1,2,3],where:[1,2,3],which:[1,2,3],whose:[1,2,3],willing:0,window:[1,2,3],wire:[1,2,3],wish:3,within:[1,2,3],without:[1,2,3],wjwzhv1v3pk:[1,2,3],would:[1,2,3],wpm404:[1,2,3],write:[1,2,3],www:[1,2,3],x:[1,2,3],yannick:[0,4],you:[1,2,3],your:[1,2,3],youtub:[1,2,3]},titles:["OhmPi project","OhmPi V 1.01 (limited to 32 electrodes)","OhmPi V 1.02 (limited to 32 electrodes)","OhmPi V 2.00 (64 or 128 \u00e9lectrodes)","OHMPI: Open source and open hardware resitivity-meter"],titleterms:{"00":3,"01":1,"02":2,"1":[1,2,3],"128":3,"2":3,"32":[1,2],"64":3,"\u00e9lectrod":3,The:[1,2,3],activ:[1,2,3],assembl:[1,2,3],b:[1,2,3],board:[1,2,3],card:[1,2,3],center:4,cite:0,complet:[1,2,3],compon:[1,2,3],configur:[1,2,3],connect:[1,2,3],current:[1,2,3],data:[1,2,3],descript:[1,2,3],document:4,electr:[1,2,3],electrod:[1,2,3],environn:[1,2,3],four:[1,2,3],frist:[1,2,3],hardwar:4,id:[1,2,3],implement:[1,2,3],implent:[1,2,3],initi:[1,2,3],inject:[1,2,3],instal:[1,2,3],instruct:[1,2,3],introduct:0,limit:[1,2],list:[1,2,3],measur:[1,2,3],mesur:[1,2,3],meter:4,multiplex:[1,2,3],n:3,ohmpi:[0,1,2,3,4],onli:[1,2,3],open:4,oper:[1,2,3],os:[1,2,3],packag:[1,2,3],paramet:[1,2,3],partenair:0,philosophi:[1,2,3],pi:[1,2,3],preliminari:[1,2,3],procedur:[1,2,3],project:0,python:[1,2,3],rapberri:[1,2,3],raspberri:[1,2,3],resist:[1,2,3],resit:4,sourc:4,startup:[1,2,3],step:3,summari:4,tabl:1,technic:[1,2,3],thonni:[1,2,3],titl:1,v:[1,2,3],virtual:[1,2,3]}}) \ No newline at end of file +Search.setIndex({docnames:["Ohmpi","V1_01","V1_02","V2_00","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["Ohmpi.rst","V1_01.rst","V1_02.rst","V2_00.rst","index.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[1,2,3],"00":4,"000":[1,2],"01":[2,4],"018":[1,2],"02":[1,4],"0251001":2,"04":[1,2],"05":[1,2],"06":[1,2],"09":[1,2],"1":4,"10":[1,2],"100":[1,2],"100nf":2,"101":[1,2],"1016":0,"103":[1,2],"1083":[1,2],"10v":2,"11":[1,2],"110":[1,2],"1115":[1,2],"114":[1,2,3],"12":[1,2,3],"1215":2,"128":4,"12v":[1,2],"13":[1,2],"1332":[1,2],"14":4,"15":[1,2],"150":[1,2,3],"1565235":[1,2],"1568649":[1,2],"16":[1,2,3],"17":[1,2],"18":[1,2,3],"185":[1,2],"19":[1,2],"199":[1,2],"1x0":[1,2],"1x1":[1,2],"1x10":[1,2],"2":[1,2,4],"20":[1,2],"2016":4,"2020":0,"2021":4,"21":[0,1,2],"22":[1,2],"23":[1,2],"24":[0,1,2],"24v":2,"25":[1,2,3],"26":[1,2],"27":[1,2],"29":[1,2],"2a":[1,2],"3":[1,2,3],"30":[1,2],"32":[0,3,4],"36":[1,2],"37":[1,2],"38":[1,2],"39":[1,2],"4":[1,2,3],"40":[1,2,3],"43":[1,2],"44":[1,2],"45100":0,"4686":[1,2],"48":[1,2],"5":[1,2,3],"50":[1,2,3],"500":[1,2],"50vdc":2,"52":[1,2],"53":2,"537":[1,2],"5488":[1,2],"55":[1,2],"576":1,"58":[1,2],"5v":[1,2],"5vcc":[1,2],"5vdc":[1,2],"5w":[1,2],"6":[1,2,3],"627":[1,2],"64":[1,2,4],"648":[1,2],"66":[1,2],"68":[1,2],"69626":0,"69675":0,"7":[1,2,3],"70":[1,2],"71":[1,2],"72":2,"7ah":[1,2],"8":[0,1,2,3],"80":3,"858":[1,2],"897":[1,2],"9":[1,2,3],"9004330000":[1,2],"92":[1,2],"96":1,"966067":[1,2],"99":[1,2],"9v":[1,2],"\u00e9lectrod":4,"ao\u00fbt":0,"case":[1,2,3],"final":[1,2],"function":[0,1,2],"h\u00e9l\u00e8ne":[0,4],"int\u00e9gr\u00e9":3,"mm\u00b2":[1,2],"new":[1,2,3],"orl\u00e9an":0,"pr\u00e9cision":3,"public":[1,2],"r\u00e9alis":3,"r\u00e9mi":[0,4],"return":[1,2,3],"switch":[1,2],"universit\u00e9":0,"vid\u00e9o":[1,2,3],A:[1,2,3],As:[1,2],At:[1,2,3],For:[1,2,3],If:[1,2,3],In:[0,1,2,3],It:[1,2,3],Its:[1,2],On:[1,2,3],The:4,These:[1,2],To:[1,2,3],With:[1,2],a0:[1,2],a1:[1,2],a2:[1,2],a3:[1,2],abmn:[1,2],abov:[1,2],acc:[1,2,3],access:[1,2],accord:[1,2],accur:[1,2],accuraci:[1,2],acid:[1,2],actual:[1,2],ad:[1,2],adafruit:[1,2,3],adapt:[1,2,3],adc:[1,2,3],add:[1,2],addit:[1,2],address:[1,2],adjust:[1,2],ads1115:[1,2,3],ads115:[1,2],ads1x15:[1,2,3],advantag:3,after:[1,2],al:0,all:[1,2,3],allow:[0,1,2,3],alp:0,also:[1,2,3],altern:[1,2,3],amp:[1,2],amplifi:[1,2],an:[0,1,2,3],analog:[1,2,3],ani:[1,2],anoth:[1,2,3],appear:[1,2,3],appli:[1,2],applic:0,apt:[1,2,3],ar:[1,2,3],arduino:1,arm:1,arrai:[1,2],articl:[1,2],asler:[1,2],assembl:4,assist:[1,2],associ:0,attent:[1,2],attribut:[1,2],author:[0,1,2,3,4],automat:[0,1,2],automobil:[1,2],autour:3,avail:[1,2],avon:3,avr:1,b:3,bank:[1,2],base:[1,2,3],basic:0,batteri:[1,2,3],been:[1,2,3],befor:[1,2],behavior:[1,2],being:[1,2],below:[1,2,3],between:[1,2,3],bin:[1,2,3],bit:[1,2,3],black:[1,2],blinka:[1,2,3],block:[1,2],blue:[1,2],board:4,boot:[1,2,3],both:[1,2],bottom:[1,2],bought:[1,2],box:3,bridg:[1,2],bug:1,build:[1,2],button:[1,2,3],c320c104k1:2,c:[1,2,3],cabl:[1,2,3],calcul:[1,2],calibr:[1,2],call:0,can:[1,2,3],canal:1,cap:[1,2],capac:[1,2],capacitor:2,car:1,card:[3,4],carri:[1,2,3],caus:[1,2,3],cd:[1,2,3],cedex:0,ceram:2,channel:[1,2],characterist:[1,2],charg:[1,2],check:[1,2,3],chosen:[1,2],circuit:[1,2],circuitpython:[1,2,3],circul:[1,2],clean:[1,2],clement:[0,4],click:[1,2,3],close:[1,2,3],cm:[1,2],code:[1,2,3],coef_p0:[1,2],coef_p1:[1,2],coef_p2:[1,2],coef_p3:[1,2],coeff:[1,2],coeffici:[1,2],com:[1,2,3],command:[1,2,3],commerci:[1,2],common:[1,2],commun:[0,3],complet:[3,4],compon:[3,4],compos:3,comput:[1,2,3],conduct:[1,2],config:[1,2,3],configur:4,congratul:[1,2],connect:[3,4],connector:[1,2],consequ:[1,2],consist:[1,2],constitut:[1,2],construct:[1,2],consumpt:[1,2,3],contact:[1,2],contain:[1,2,3],content:4,control:[1,2,3],convers:[1,2],convert:[1,2,3],copi:3,correct:[1,2],correspond:1,cost:[0,1,2],could:[1,2,3],courant:3,cpu:[1,2,3],creat:[1,2,3],creation:0,crimp:[1,2],csv:[1,2],ctrl:[1,2,3],current:[0,3,4],d:[1,2,3],damag:[1,2,3],data:[0,4],date:[0,1,2,4],dc:[1,2],dcconvert:2,de:3,deactiv:[1,2,3],decid:[1,2,3],decoupl:2,dedic:[0,3],delai:[1,2],deliv:[1,2],depend:[1,2,3],describ:[1,2,3],design:[1,2],desktop:2,despit:[1,2],detail:1,dev:[1,2,3],develop:[0,1,2,3,4],diagram:[1,2,3],differ:[1,2,3],digit:[1,2,3],dii:3,din:[1,2],direct:[1,2,3],directli:[1,2],directori:[1,2,3],disconnect:[1,2],discret:3,displai:[1,2],distanc:[1,2],disturb:[1,2],divid:[1,2],dl:[1,2,3],document:[0,1],done:[1,2,3],down:[1,2],download:[1,2],dsp:1,du:3,dual:[1,2],duboi:[0,4],durat:[1,2,3],dure:[1,2,3],dzwb4:[1,2],e00122ff:0,e:[1,2],each:[1,2,3],editor:[1,2,3],effort:3,eiffel:0,either:[1,2,3],electr:[0,3],electrod:[0,3,4],electron:[1,2,3],elsevi:0,emil:0,en:3,enabl:[1,2],end:[1,2,3],energ:[1,2],enough:[1,2],ensur:[1,2,3],enter:[1,2,3],entir:[1,2],environ:[1,2,3],environnementshould:[1,2,3],equal:[1,2],equival:[1,2],ert:[1,2],escap:[1,2,3],estim:[1,2],et:0,everyon:0,evolv:[1,2],exampl:[1,2],excess:[1,2],execut:[1,2,3],exist:[1,2],experi:[0,1,2,3],explain:1,export_path:2,extra:[1,2],f:[0,1,2],failur:[1,2,3],fargier:[0,4],fast:2,featur:[1,2],femal:[1,2],ferrul:[1,2],fewer:[1,2],ff10:0,fhac0002zxj:1,field:[1,2,3],fig:[1,2],figur:[1,2,3],file:[1,2,3],find:[1,2,3],first:[1,2,3],flexibl:0,florsch:[1,2,3],flow:[1,2],folder:[1,2,3],follow:[1,2,3],forquet:[0,4],four:3,fr:[1,2],framework:[1,2],franc:0,from:[1,2,3],full:[1,2],fulli:0,fuse:[1,2],g:[1,2],gain:[1,2,3],ganc:[0,4],gather:[1,2,3],gener:[1,2,3,4],ger:0,get:[0,1,2,3],gitlab:[1,2],gnd:[1,2],gnu:[1,2,3],go:3,gpio:[1,2,3],grenobl:0,gro:0,ground:[1,2],gui:[1,2,3],guidelin:4,gustav:0,guyard:[0,4],h81k0bya:[1,2],h81k5bya:[1,2],h:2,ha:[1,2,3],had:[1,2],hand:[1,2],handl:[1,2],hardwar:[0,1,2],hardwarex:0,have:[1,2,3],hazard:[1,2],hdmi:3,header:[1,2],hear:[1,2],here:2,high:[1,2],higher:2,holder:[1,2],hole:[1,2],home:[1,2,3],horizont:[1,2],hous:[1,2],how:[1,2,3],howev:[1,2],http:[1,2,3],i:[1,2],ifsttar:0,ig:0,illustr:[1,2],imag:0,imped:[1,2,3],implent:4,improv:[2,3],in1:[1,2],in2:[1,2],in3:[1,2],in4:[1,2],ina282:3,includ:[1,2,3],incom:[1,2],increas:[1,2],inde:[1,2],inject:[0,3,4],injection_dur:[1,2],input:[1,2,3],inra:0,insert:[1,2],insid:[1,2],instanc:3,instead:[1,2],instruct:[3,4],instrument:[0,1,2],intens:[1,2],interfac:[1,2,3],interpret:[1,2,3],introduc:[1,2],invit:1,involv:0,io:[1,2],ion:[1,2],iri:0,irstea:[1,2],its:[1,2,3],j:0,jason:2,journal:1,json:2,juillet:0,jul:4,juli:4,julien:[0,4],just:2,kemet:2,keyboard:[1,2,3],known:[1,2,3],kohm:[1,2],la:3,laboratori:[0,1,2,3],laps:3,last:2,lastli:[1,2],latest:[1,2,3],le:3,lead:[1,2],leav:[1,2,3],length:[1,2],less:[1,2],let:[1,2],libatla:[1,2,3],librari:[1,2,3],lie:[1,2,3],limit:[3,4],line:[1,2],list:[3,4],lithium:[1,2],littelfus:[1,2],littl:[1,2],ll:[1,2],lm358an:[1,2],lm358n:[1,2],locat:[1,2,3],logger:[0,1,2],low:[0,1,2,3],lr20:[1,2],ly:[1,2],lyon:0,m:[1,2,3],ma:[1,2,3],made:[1,2,3],mai:[1,2,3],main:[1,2],make:[1,2,3],manag:[1,2],manual:[1,2],manufactur:[1,2],manuscript:[1,2],master:[1,2],matur:4,maximum:[1,2],measur:[0,4],mechan:[1,2],meet:[1,2,3],mega:[1,2],menu:[1,2,3],mesur:3,met:[1,2,3],meter:[0,1,2,3],meterfeatur:0,micro:[1,2,3],mimic:[1,2],min:[1,2,3],miss:1,mm2:[1,2],mm:[1,2],model:[1,2,3],modif:[1,2,3],modifi:[1,2,3],modul:[1,2],mohm:[1,2,3],monitor:[1,2,3],more:3,moreov:[1,2],mount:[1,2],mous:[1,2,3],ms:[1,2,3],multi:[1,2],multielectrod:3,multipl:3,multiplex:[0,3,4],multipli:[1,2],must:[1,2,3],mux:[1,2],n:[1,2,4],name:[1,2],nano:[1,2,3],nb_electrod:[1,2],nbr_mea:[1,2],necessari:[1,2,3],need:[1,2,3],neg:[1,2],next:[1,2],nf:2,nicola:[0,4],noob:[1,2,3],nopb:[1,2],normal:[1,2],note:[1,2],nou:3,now:[1,2],number:[1,2],numer:[1,2],numpi:[1,2,3],o1:[1,2,3],o:[1,2,3],obtain:[1,2],offcial:4,offer:[1,2,3],ohm:[1,2,3],ohmmet:[1,2],ohmpi_param:2,ohx:0,ok:[1,2,3],onc:[1,2,3],one:[1,2,3],onto:[1,2],op:[1,2,3],open:[0,1,2,3],oper:[3,4],optim:[1,2],option:[1,2,3],order:[1,2],org:3,orient:2,osf:[1,2],other:[1,2],our:[1,2,3],out:[1,2,3],output:[1,2],overh:2,p0:[1,2],p1:[1,2],p2:[1,2],p3:[1,2],p:0,pai:[1,2],panda:[1,2,3],parallel:3,paramet:3,part:[1,2],parten:0,partenair:4,pat1l:2,path:[1,2,3],pcb:[1,2],per:[1,2],perform:[0,1,2,3],permet:3,permut:[1,2],philosophi:[0,4],pi:4,pic:1,piec:[1,2],pin:[1,2],pip:[1,2,3],pitch:[1,2],place:[1,2],pleas:[1,2],plug:[1,2],po:[1,2],point:[1,2,3],polar:[1,2],pole:[1,2],posit:[1,2,3],possibl:[1,2],potenti:[1,2],potentiomet:[1,2],pour:[1,3],power:[1,2,3],practic:[1,2],precis:[1,2],prefer:[1,2],prepar:[1,2],present:[0,1,2],press:[1,2,3],prevent:2,previou:3,previous:[1,2,3],print:[1,2],pro:[1,2],problem:3,produc:[1,2],program:[1,2,3],progress:[0,4],project:[3,4],propos:[1,2,3],protect:3,protocol:[1,2],provid:[0,1,2],publish:1,puls:[1,2,3],purpos:[1,2],py:[1,2],pyhton3:[1,2,3],python3:[1,2,3],pythonid:[1,2,3],quadripol:[1,2],quadrupol:[1,2],quantiti:[1,2,3],qui:3,r10:[1,2],r11:[1,2],r12:[1,2],r1:[1,2],r2:[1,2],r3:[1,2],r4:[1,2],r5:[1,2],r6:[1,2],r7:[1,2],r8:[1,2],r9:[1,2],r_ref:[1,2],rail:[1,2],rang:[1,2],raspberri:4,raspberrypi:3,raspbian:[1,2,3],raspebrri:[1,2,3],readm:[1,2],recommend:[1,2,3],red:[1,2],reduct:[1,2],refer:[1,2],relai:[1,2,3],releas:4,remain:[1,2],rememb:[1,2],remot:[1,2,3],repeat:[1,2],repetit:[1,2],replac:2,repositori:[1,2],repres:[1,2],requir:[1,2,3],research:4,resist:[0,3,4],resistor:[1,2],resolut:[1,2,3],respect:[1,2],result:[1,2],revers:[1,2],reversa:[0,1,2],robust:[0,1,2,3],role:[1,2],root:[1,2,3],rpi:[1,2,3],rro:0,rs:[1,2],rubric:[],run:[1,2,3],s:[0,1,2,3],safeti:[1,2],sain:[1,2],sainsmart:[1,2],same:[1,2],samtec:[1,2],save:[1,2,3],scale:0,schemat:[1,2],scienc:[1,2],scientif:0,screen:[1,2],screw:[1,2],sd:[1,2,3],second:[1,2],section:[1,2],see:[1,2],seek:3,select:[1,2,3],sequenc:[1,2],sequence_delai:[1,2],seri:[1,2],serv:[1,2],set:[1,2,3],setp:2,setup:[1,2,3],sever:[1,2],share:3,shield:[1,2,3],shortcut:[1,2],should:[1,2,3],show:[1,2,3],shown:[1,2],shunt:3,signal:[1,2,3],simpl:[1,2,3],simpli:[1,2,3],simultan:[1,2],singl:[1,2],slope:[1,2],small:[0,1,2,3],smaller:[1,2],smart:[1,2],so:[1,2],softwar:[1,2,3],soil:[1,2],solder:[1,2],solut:[1,2],some:[1,2,4],sound:[1,2],sourc:[0,1,2,3],specif:[1,2,3],specifi:[1,2,3],spi:[1,2,3],ssw:[1,2],stabl:[1,2,3],stack:[1,2],stainless:[1,2],start:[1,2,3,4],statu:[0,4],steel:[1,2],step:[1,2,4],still:[1,2],stop:3,storag:[1,2,3],strict:[1,2],strip:[1,2],strong:[1,2],stronger:[1,2],strongli:[1,2,3],stuck:[1,2],studi:[1,2],subject:[1,2],sudo:[1,2,3],suffici:[1,2,3],suggest:[1,2],suitabl:[1,2,3],sum:[1,2],suppli:[1,2],support:3,suppress:2,sure:[1,2,3],surfac:0,system:[1,2,3],tab:[1,2,3],tabl:2,target:4,task:[1,2,3],te:[1,2],team:3,technic:4,temperatur:[1,2,3],ten:[1,2],termin:[1,2,3],test:[1,2,3],texa:[1,2],than:[1,2],the9:[1,2],thei:[1,2],them:[1,2],therefor:[1,2],thi:[0,1,2,3],thousand:[1,2],three:[1,2],through:[1,2],thu:[1,2],time:[1,2,3],togeth:[1,2],toler:2,tool:[0,3],total:[1,2],track:[1,2],traco:2,tracopow:2,trn3:2,trn:2,tru:[1,2],turn:[1,2],tutori:4,two:[1,2,3],tx:[1,2],txt:[1,2,3],type:[1,2,3],typic:[1,2],un:3,under:[1,2],unexpectedli:[1,2,3],unit:[1,2,3],univ:0,unzip:[1,2],up:[0,1,2,3],updat:0,upgrad:[2,3],upw50b50rv:[1,2],us:[1,2,3],user:[1,2,3,4],usr:[1,2,3],util:3,v1:[1,2,3],v2:3,v:4,valid:[1,2],valu:[1,2,3],variou:[1,2],velleman:[1,2],venv:[1,2,3],veri:2,version:[1,2,3],vertic:[1,2],via:[1,2,3],villeurbann:0,visit:3,vivien:[0,4],voltag:[1,2,3],voltmet:[1,2],w:[1,2,3],wa:[1,2],wai:[1,2,3],want:2,watch:[1,2,3],we:[1,2,3],weaker:1,websit:[1,2,3],weidmul:[1,2],welcom:0,well:[1,2,3],were:[1,2,3],when:[1,2,3],where:[1,2,3],which:[1,2,3],whose:[1,2],willing:0,window:[1,2,3],wire:[1,2,3],wish:3,within:[1,2,3],without:[1,2],wjwzhv1v3pk:[1,2,3],would:[1,2],wpm404:[1,2],write:[1,2,3],www:[1,2,3],x:[1,2,3],yannick:[0,4],you:[1,2,3],your:[1,2,3],youtub:[1,2,3]},titles:["OhmPi project","OhmPi V 1.01 (limited to 32 electrodes)","OhmPi V 1.02 (limited to 32 electrodes)","OhmPi V 2.00 (64 or 128 \u00e9lectrodes)","OHMPI: Open source and open hardware resitivity-meter"],titleterms:{"00":3,"01":1,"02":2,"1":[1,2,3],"128":3,"2":3,"32":[1,2],"64":3,"\u00e9lectrod":3,The:[1,2,3],activ:[1,2,3],assembl:[1,2,3],b:[1,2],board:[1,2,3],card:[1,2],center:4,cite:0,complet:[1,2],compon:[1,2],configur:[1,2,3],connect:[1,2],current:[1,2],data:[1,2,3],descript:[1,2,3],document:4,electr:[1,2],electrod:[1,2],environn:[1,2,3],four:[1,2],frist:[1,2],hardwar:4,id:[1,2,3],implement:[1,2],implent:[1,2],initi:[1,2],inject:[1,2],instal:[1,2,3],instruct:[1,2],introduct:0,limit:[1,2],list:[1,2],measur:[1,2,3],mesur:[1,2],meter:4,multiplex:[1,2],n:3,ohmpi:[0,1,2,3,4],onli:[1,2],open:4,oper:[1,2],os:[1,2,3],packag:[1,2,3],paramet:[1,2],partenair:0,philosophi:[1,2,3],pi:[1,2,3],preliminari:[1,2],procedur:[1,2],project:0,python:[1,2,3],rapberri:[1,2,3],raspberri:[1,2,3],resist:[1,2],resit:4,sourc:4,startup:[1,2],step:3,summari:4,tabl:1,technic:[1,2,3],thonni:[1,2,3],titl:1,v:[1,2,3],virtual:[1,2,3]}}) \ No newline at end of file diff --git a/sphinx/source/V2_00.rst b/sphinx/source/V2_00.rst index 5cffe76fe42144dafa816bb388dd2314b5826890..6a511baef4a0479a24a3b106c5fa23f41975688d 100644 --- a/sphinx/source/V2_00.rst +++ b/sphinx/source/V2_00.rst @@ -237,340 +237,73 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt 9- Close thonny to save modifications -Assembly of the measuring/current injection cards, and connection with the Raspberry Pi -***************************************************************************************** +**STEP n°2**: Assembly of the measurement board +**************************************************** -Electrical resistivity measurements board -========================================== ++----------------------------------------------------+ +| **Required components** | ++----------------------------------------------------+ -a) Description ------------------------------ - -To measure electrical resistivity with Raspberry Pi, an ADS1115 was introduced, as proposed by Florsch [7]. The ADS1115 -is a 16-bit ADC (Analog-to-Digital Converter), with an adaptable gain. Its value has been set at 2/3 in this study. The -input signal value could lie between - to + 6.114 V. The ADS1115 is mounted on a board adapted from an in-house design. -Figure 5 shows the general diagram for the electronic measurement board developed. This figure also displays the test -circuit used to test the board in the laboratory, which mimics the behavior of a soil subjected to current injection. -In this test circuit, resistance R11 represents the soil resistance. -Soil resistance R11 is connected to electrodes A and B for the current injection. Resistors R10 and R12 constitute -the contact resistances between soil and electrodes; they are typically made of stainless steel. The battery, which -allows for direct current injection, is connected in series with resistors R10, R11 and R12. In this part of the board, -resistance R9 has been added to measure the current flowing between electrodes A and B. This resistance value has been -set at 50 ohms in order to ensure: -• a precise resistance, -• a resistance less than the sum of resistors R10, R11 and R12; indeed, R10 and R12 generally lie between 100 and 5,000 ohms. -To measure the current intensity between A and B, the electrical potential difference at the pole of the reference resistor (R9) -is measured. The intensity (in mA) is calculated by inserting the resulting value into the following: ? -To measure the potential difference needed to measure current intensity, the ADS 1115 is connected to the ground of the circuit. -In our case, the ground reference is electrode B. The analog inputs A1 and A0 of the ADS1115 are connected to each pole of the -reference resistor (R9). In order to increase input impedance and adapt the signal gain, tracking amplifiers have been included -and completed by a divider bridge (R5, R8, R6 and R7) located between the two amplifiers. The resistance of the divider bridge -ensures that the signal remains between 0 and 5 V, in accordance with the ADS1115 signal gain. To measure the potential difference, -the M and N electrodes are connected to analog inputs A2 and A3 of the ADS 1115. Between the ADC and the electrodes, two tracking -amplifiers and a divider bridge have been positioned so as to obtain a potential lying within the 0-5 V range at the analog input of the ADS 1115. -Let's note that the potential difference value would equal the potential measured with ADS1115 multiplied by the voltage reduction -value of the divider bridge (see Section 5.2). Despite the use of high-resolution resistance (i.e. accurate to within 1%), it is -still necessary to calibrate the divider bridge using a precision voltmeter. For this purpose, the input and output potentials -of the divider bridge must be measured using an equivalent circuit for various electrical potential values. These values serve -to calculate the gain. With this electronic board, it is possible to measure the potential and intensity without disturbing the -electric field in the ground, with the total input impedance value being estimated at 36 mega-ohms. -A shortcut between Electrodes A and B will generate excessive currents, whose intensities depend on the type of battery used. -A lithium ion battery or automobile-type lead-acid battery can deliver a strong enough current to damage the board and, as such, -constitutes a potential hazard. We therefore recommend adding a 1.5-A fuse between the battery and resistor R9. -In version 1.02, we have improved the electronic board of measurement. we have added a DC/DC converter to supply the operational amplifiers -(2 Traco power DC/DCconverter TRN3-1215). These converters allow to limit the suppression of the signal when the injected voltage is higher than 10V. -We also added 4 capacitors on the +12v inputs of the fast operational amplifiers. These are decoupling capacitors (typically 100nF ceramic) -between each power supply terminal and ground. The last point, we have added a four very high resistances of 10 MOhm, between the ground and -the signal input on the operational amplifiers. This prevents the operational amplifiers from overheating. - -.. figure:: schema_measurement_board1_02.png - :width: 800px - :align: center - :height: 400px - :alt: alternate text - :figclass: align-center - - Measurement board (Ohmpi version 1.02) - -.. note:: - If you want to have very accurate measurements you can replace the resistors with a tolerance of 1% by resistors with a tolerance of 0.01% which will improve the measurement, but the cost will be higher. - - - -b) Implementation --------------------------------- -The measurement board must be printed using the PCB file (Source file repository), with components soldered onto -it by following the steps described below and illustrated in the following figure : - -* Step no. 1: test divider bridge - For each measurement channel, we have installed a bridge divider, it is necessary to test with ohmmeter the value of the resistances, to adjust each coefficients (coef_p0, coef_p1, coef_p2, coef_p3) in the Ohmpi.py code.. - - .. math:: - coeff po = (R1 + R2) / R1 - - .. math:: - coeff p1 = (R3 + R4) / R3 - - .. math:: - coeff p2 = (R7 + R6) / R7 - - .. math:: - coeff p3 = (R9 + R8) / R9 - - .. code-block:: python - :linenos: - :lineno-start: 36 - - """ - hardware parameters - """ - R_ref = 50 # reference resistance value in ohm - coef_p0 = 2.5 # slope for current conversion for ADS.P0, measurement in V/V - coef_p1 = 2.5 # slope for current conversion for ADS.P1, measurement in V/V - coef_p2 = 2.5 # slope for current conversion for ADS.P2, measurement in V/V - coef_p3 = 2.5 # slope for current conversion for ADS.P3, measurement in V/V - - The coefficient parameters can be adjusted in lines 40 to 43 of the ohmpi.py code. - - -* Step no. 2: installation of the 1-Kohm resistors with an accuracy of ± 1% (b-in the figure). -* Step no. 3: installation of the 1.5-Kohm resistors with an accuracy of ± 1%(C-in the figure). -* Step no. 4: installation of both the black female 1 x 10 header and the 7-blue screw terminal blocks (c-in the figure) -* Step no. 5: installation of the 50-Ohm reference resistor ± 0.1%, please check the value and correct the line 39 in ohmpi.py code (d-in the figure) -* Step no. 6: addition of both the ADS115 directly onto the header (pins must be plugged according to the figure) and the LM358N operational amplifiers (pay attention to the orientation) (e-in the figure). -* Step no. 7: installation of the 10-Mohm resistors with an accuracy of ± 5% (f-in the figure). -* Step no. 8: installation of the two DC/DC converter TRN3-1215 (h-in the figure). -* Setp no. 9: installation of the four capacitor on 100-nF/50vDC and the fuse of 10-A (h-in the figure). - -1-Kohm and 1.5-Kohm resistors apply to the divider bridge. If, for example, you prefer using a stronger power supply, it would be possible to adjust the divider bridge value by simply modifying these resistors. -Once all the components have been soldered together, the measurement board can be connected to the Raspberry Pi and the -battery terminal, according to Figure 9. Between the battery and the TX+ terminal of the measurement board, remember to -place a fuse holder with a 1.5-A fuse for safety purposes. - -.. figure:: measurement_board1-02.jpg - :width: 800px - :align: center - :height: 700px - :alt: alternate text - :figclass: align-center - - Measurement circuit board assembly: a) printed circuit board, b) adding the 1-Kohm resistors ± 1%, c)adding the 1.5-Kohm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers - -.. figure:: measurement_board-2-V1-02.jpg - :width: 800px - :align: center - :height: 700px - :alt: alternate text - :figclass: align-center - - Measurement board installation with Raspberry Pi - -Current injection board -======================= - -To carry out the electrical resistivity measurement, the first step consists of injecting current into the ground. -In our case, a simple 9-V lead-acid battery is used to create an electrical potential difference that results -in current circulating into the ground. The current is injected through electrodes A and B (see Fig. 2). This -injection is controlled via a 4-channel relay module board connected to the Raspberry Pi. The mechanical relay -module board is shown in Figure 4. Relays 1 and 2 serve to switch on the current source. The common contacts -of relays 1 and 2 are connected to the positive and negative battery poles, respectively. The normally open -contacts of both relays are connected to the common contacts of relays 3 and 4. Relays 1 and 2 are connected -to the GPIO 7 on the Raspberry Pi and therefore activate simultaneously. The role of relays 3 and 4 is to reverse -the polarity at electrodes A and B. Thus, when relays 3 and 4 are energized by the GPIO 8 in the open position, -the positive battery pole is connected to electrode A and the negative pole to electrode B. When not energized, -they remain in the normally closed position. This set-up offers a simple and robust solution to inject current. - -.. figure:: current_board.jpg - :width: 800px - :align: center - :height: 400px - :alt: alternate text - :figclass: align-center - - Wiring of the 4-channel relay module board for current injection management - -The next step consists of featuring the 4-channel relay module used for current injection and its assembly. The wiring -between the relays must be carried out in strict accordance with Fig. 10. This card must then be connected to the Raspberry -Pi and the measurement card. On the Raspberry Pi, it is necessary to connect inputs In1 and In2 to the same GPIO. For this -purpose, it is necessary to solder together the two pins on the 4-channel relay shield module and connect them to the Raspberry Pi GPIO-7 (Fig. 10). The same must be performed for inputs In3 and In4 with GPIO-8. Connect the GND and 5Vdc pins of -the relay card’s 4 channels respectively to the GND pin and 5Vcc of the Raspberry Pi. Now connect relays 1, 2, 3 and 4, as -shown in the diagram, using 1-mm2 cables (red and black in Fig. 10). Lastly, connect the inputs of relay 1 and 2 respectively -to terminals B and A of the measurement board. - -.. figure:: installation_current_board_1_02.jpg - :width: 800px - :align: center - :height: 700px - :alt: alternate text - :figclass: align-center - - Current injection board installation with Raspberry Pi - - -Congratulations, you have build a 4 electrodes resistivity-meter. +.. figure:: mesure/00_mes_board_components.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center -Frist four electrodes resistivity mesurement -============================================ +Description +========================================== -Under construction ! +.. figure:: schema_measurement_board.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center -Describe the way to valide the first part of the instruction. -Electrical resistivity measurement on test circuit +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 - -Multiplexer implentation -************************* -The resistivity measurement is conducted on four terminals (A, B, M and N). The user could perform each measurement -by manually plugging four electrodes into the four channel terminals. In practice, ERT requires several tens or thousands -of measurements conducted on different electrode arrays. A multiplexer is therefore used to connect each channel to one of -the 32 electrodes stuck into the ground, all of which are connected to the data logger. - - -We will describe below how to assemble the four multiplexers (MUX), one per terminal. A multiplexer consists of 2 relay -modules with 16 channels each. On the first board, on each MUX, 15 relays out of the 16 available will be used. Please note that the suggested -configuration enables making smaller multiplexers (8 or 16 electrodes only). On the other hand, if you prefer upping to 64 electrodes, -which is entirely possible, a GPIO channel multiplier will have to be used. -To prepare the multiplexer, the channels of the two relay boards must be connected according to the wiring diagram shown below. - -.. figure:: multiplexer_implementation.jpg - :width: 800px +.. table:: :align: center - :height: 500px - :alt: alternate text - :figclass: align-center + + +---------------------------------------+---------------------------------------+ + | .. image:: mesure/01_mes_board.jpg | | + +---------------------------------------+---------------------------------------+ - Schematic diagram of the wiring of two 16-channel relay shields - - -For this purpose, 0.5-mm² cables with end caps are used and their length adjusted for each connection in order to produce a clean assembly. -The length was adjusted so that the distance between the two points to be connected could be directly measured on the board once they had -been assembled one above the other, in adding an extra 3 cm. The wires at the ends need to be stripped and the end caps added. -As a final step, connect the cables to the correct connectors. This operation must be repeated in order to carry out all the wiring shown in Figure below. - -Once the operation has been completed, the 16 control pins of each 16-channel relay shield card must be prepared. Each card actually contains 16 input channels -for activating each relay (Fig. 12). However, we will be activating several relays with a single GPIO (to limit the number of GPIOs used on Raspberry Pi, -see Section 2.4). To execute this step, it will be necessary to follow the protocol presented in Figure. - - .. figure:: connection.jpg - :width: 800px +.. table:: :align: center - :height: 400px - :alt: alternate text - :figclass: align-center - - Connection to the 16-channel relay shield - -For the 16-channel relay shield no. 1, these steps must be followed: -* Position a test circuit with 10 horizontal and 10 vertical holes on the pins of the 16-channel relay shield board. -* Follow the diagram and solder the pins as shown in Fig. -* Lastly, solder 0.5-mm² wires 1 m in length to the test circuit. - -For relay shield no. 2, follow the same procedure, but solder all the pins together (d-e-f). -This same operation must be repeated for the other three multiplexers as well. -The next step consists of connecting the relay card inputs to the Raspberry Pi according to Table 5 for all four multiplexers. - - -+-------------------------------+-------------------------------------------+---------------------+ -| |Relay shield n°1 |Relay Shield n°2 | -| +----------+----------+----------+----------+---------------------+ -| |Pin 1 |Pin 2-3 |Pin 4-7 |Pin 8-16 |Pin 1- 16 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer A |12 |16 |20 |21 |26 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer B |18 |23 |24 |25 |19 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer M |06 |13 |04 |17 |27 | -+-------------------------------+----------+----------+----------+----------+---------------------+ -| Multiplexer N |22 |10 |09 |11 |05 | -+-------------------------------+----------+----------+----------+----------+---------------------+ - - Connection of the GPIOs to each multiplexer - - -Electrode connection -************************* -At this point, all that remains is to connect the electrodes of each multiplexer to a terminal block (Fig. 13). In our set-up, screw terminals assembled on a din rail were used. -According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming -connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure. - -.. figure:: cable.jpg - :width: 800px + + +---------------------------------------+---------------------------------------+ + | | .. image:: mesure/02_mes_board.jpg | + +---------------------------------------+---------------------------------------+ +.. table:: :align: center - :height: 300px - :alt: alternate text - :figclass: align-center + + +---------------------------------------+---------------------------------------+ + | .. image:: mesure/03_mes_board.jpg | | + +---------------------------------------+---------------------------------------+ - Wire cabling for multiplexer and terminal screw connection - -the next figure provides an example of multiplexer relay connections for electrode no. 1: this electrode of multiplexer MUX A must be connected to electrode no. 1 of MUX B. Moreover, electrode no. 1 of MUX B -must be connected to electrode no. 1 of MUX N, which in turn must be connected to electrode no. 1 of MUX M. Lastly, electrode no. 1 of MUX M is connected to the terminal block. -This operation must be repeated for all 32 electrodes. - -.. figure:: electrode_cable.jpg - :width: 800px +.. table:: + :align: center + + +---------------------------------------+---------------------------------------+ + | | .. image:: mesure/04_mes_board.jpg | + +---------------------------------------+---------------------------------------+ +.. table:: :align: center - :height: 800px - :alt: alternate text - :figclass: align-center + + +---------------------------------------+---------------------------------------+ + | .. image:: mesure/05_mes_board.jpg | | + +---------------------------------------+---------------------------------------+ - Example of a multiplexer connection to the screw terminal for electrode no. 1. - -.. warning:: - The 16 channel relay cards exist in 5-V and 12-V , in the bottom figure we have 12-V cards that we will directly connect to the battery. - In case you bought 16 channel relay 5-V cards, you will need to add a DC/DC 12-V/5-V converter. You can use a STEP DOWN MODULE DC-DC (Velleman WPM404) and set the voltage to 5V with the potentiometer. - -Operating instruction -************************* - -Preliminary procedure (Only for the initial operation) -====================================================== -The open source code must be downloaded at the Open Science Framework source file repository for this manuscript (https://osf.io/dzwb4/) -or at the following Gitlab repository address: https://gitlab.irstea.fr/reversaal/OhmPi. The code must be then unzipped into a selected folder (e.g. OhmPi-master). A “readme†file -is proposed in the directory to assist with installation of the software and required python packages. It is strongly recommended to create a python virtual environment for installing -the required packages and running the code. - - -Startup procedure -================== -As an initial operating instruction, all batteries must be disconnected before any hardware handling. Ensure that the battery is charged at full capacity. Plug all the electrodes (32 or fewer) -into the screw terminals. The Raspberry Pi must be plugged into a computer screen, with a mouse and keyboard accessed remotely. The Raspberry Pi must then be plugged into the power supply -(for laboratory measurements) or a power bank (5V - 2A for field measurements). At this point, you'll need to access the Raspbian operating system. Inside the previously created folder “ohmPiâ€, -the protocol file “ABMN.txt†must be created or modified; this file contains all quadrupole ABMN numeration (an example is proposed with the source code). Some input parameters of the main “ohmpi.py†-function may be adjusted/optimized depending on the measurement attributes. For example, both the current injection duration and number of stacks can be adjusted. At this point, the9 V and 12-V battery can be -plugged into the hardware; the "ohmpi.py" source code must be run within a python3 environment (or a virtual environment if one has been created) either in the terminal or using Thonny. You should now -hear the characteristic sound of a relay switching as a result of electrode permutation. After each quadrupole measurement, the potential difference as well as the current intensity and resistance -are displayed on the screen. A measurement file is automatically created and named "measure.csv"; it will be placed in the same folder. - -Electrical resistivity measurement parameters description -========================================================== - -In the version 1.02, the measurement parameters are in the Jason file (ohmpi_param.json). - -.. code-block:: python - :linenos: - :lineno-start: 1 - - - nb_electrodes = 32 # maximum number of electrodes on the resistivity meter - injection_duration = 0.5 # Current injection duration in second - nbr_meas= 1 # Number of times the quadripole sequence is repeated - sequence_delay= 30 # Delay in seconds between 2 sequences - stack= 1 # repetition of the current injection for each quadripole - export_path= "home/pi/Desktop/measurement.csv" - - - -Complete list of components -******************************* -.. warning:: - The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date - - -.. csv-table:: List of components - :file: C:\Users\remi.clement\Documents\28_ohmpi_all_git\master\sphinx\source\list - 1_02.csv - :widths: 30, 70, 70, 70, 70,70 - :header-rows: 1 - - +.. table:: + :align: center + + +---------------------------------------+---------------------------------------+ + | | .. image:: mesure/06_mes_board.jpg | + +---------------------------------------+---------------------------------------+ diff --git "a/sphinx/source/Vid\303\251os - Raccourci.lnk" "b/sphinx/source/Vid\303\251os - Raccourci.lnk" new file mode 100644 index 0000000000000000000000000000000000000000..cc75a3ff27342fc1381ca3f0045e315d552343db Binary files /dev/null and "b/sphinx/source/Vid\303\251os - Raccourci.lnk" differ diff --git a/sphinx/source/measurement_board_requirement.jpg b/sphinx/source/measurement_board_requirement.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e011a8de2fb7801b07f29db11b0c7679b1dc680b Binary files /dev/null and b/sphinx/source/measurement_board_requirement.jpg differ diff --git a/sphinx/source/mesure/00_mes_board_components.jpg b/sphinx/source/mesure/00_mes_board_components.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0aa99066a6382bf8fe09444a0e602e0e171a748c Binary files /dev/null and b/sphinx/source/mesure/00_mes_board_components.jpg differ diff --git a/sphinx/source/mesure/01_mes_board.jpg b/sphinx/source/mesure/01_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2baa894bd38ab71c7a2f03bfca10a382ce93a0b9 Binary files /dev/null and b/sphinx/source/mesure/01_mes_board.jpg differ diff --git a/sphinx/source/mesure/02_mes_board.jpg b/sphinx/source/mesure/02_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa737e27b5801333012abc9831195b5ae573139c Binary files /dev/null and b/sphinx/source/mesure/02_mes_board.jpg differ diff --git a/sphinx/source/mesure/03_mes_board.jpg b/sphinx/source/mesure/03_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41381d5341aed8952dab89fa31ed7c0303e50205 Binary files /dev/null and b/sphinx/source/mesure/03_mes_board.jpg differ diff --git a/sphinx/source/mesure/04_mes_board.jpg b/sphinx/source/mesure/04_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..988d238ad7fc61d9fb594467729879635deec63b Binary files /dev/null and b/sphinx/source/mesure/04_mes_board.jpg differ diff --git a/sphinx/source/mesure/05_mes_board.jpg b/sphinx/source/mesure/05_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a88db4242f13c04286aa763f6818252421aa6839 Binary files /dev/null and b/sphinx/source/mesure/05_mes_board.jpg differ diff --git a/sphinx/source/mesure/06_mes_board.jpg b/sphinx/source/mesure/06_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94a903f0c942832b86d2f074b95ea5c65a58553b Binary files /dev/null and b/sphinx/source/mesure/06_mes_board.jpg differ diff --git a/sphinx/source/mesure/07_mes_board.jpg b/sphinx/source/mesure/07_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..954aabf761288a96221d98914011a337cd6664ad Binary files /dev/null and b/sphinx/source/mesure/07_mes_board.jpg differ diff --git a/sphinx/source/mesure/08_mes_board.jpg b/sphinx/source/mesure/08_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..645ed57a8f2c9118f57500a4aa575913770acdad Binary files /dev/null and b/sphinx/source/mesure/08_mes_board.jpg differ diff --git a/sphinx/source/mesure/09_mes_board.jpg b/sphinx/source/mesure/09_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28dc97fb5c4c69eec691f6070b7ff79674eae41c Binary files /dev/null and b/sphinx/source/mesure/09_mes_board.jpg differ diff --git a/sphinx/source/mesure/0_mes_board.jpg b/sphinx/source/mesure/0_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffb247a2c8fa1930ceb99c47c4d50f4bd0493985 Binary files /dev/null and b/sphinx/source/mesure/0_mes_board.jpg differ diff --git a/sphinx/source/mesure/10_mes_board.jpg b/sphinx/source/mesure/10_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..349248bd28f6f78f8494408c8766be50367f4c50 Binary files /dev/null and b/sphinx/source/mesure/10_mes_board.jpg differ diff --git a/sphinx/source/mesure/11_mes_board.jpg b/sphinx/source/mesure/11_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9f76edf4a3fd158a8b3cb36fe8216c5d0f2d70d Binary files /dev/null and b/sphinx/source/mesure/11_mes_board.jpg differ diff --git a/sphinx/source/mesure/12_mes_board.jpg b/sphinx/source/mesure/12_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..daf1c5a86bee7f7def78d5564d09cca0bc2ea315 Binary files /dev/null and b/sphinx/source/mesure/12_mes_board.jpg differ diff --git a/sphinx/source/mesure/13_mes_board.jpg b/sphinx/source/mesure/13_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c954948f8b497ac5a62701a2cbcba8d8133258b4 Binary files /dev/null and b/sphinx/source/mesure/13_mes_board.jpg differ diff --git a/sphinx/source/mesure/14_mes_board.jpg b/sphinx/source/mesure/14_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06db732127be7c32a33d2153f3a58a764466891b Binary files /dev/null and b/sphinx/source/mesure/14_mes_board.jpg differ diff --git a/sphinx/source/mesure/15_mes_board.jpg b/sphinx/source/mesure/15_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf98e5c5ce8ffe7373e6aee0bc7e13b880f47db8 Binary files /dev/null and b/sphinx/source/mesure/15_mes_board.jpg differ diff --git a/sphinx/source/mesure/16_mes_board.jpg b/sphinx/source/mesure/16_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..930821538195751d3b6be551bbf605711bf394f4 Binary files /dev/null and b/sphinx/source/mesure/16_mes_board.jpg differ diff --git a/sphinx/source/mesure/17_mes_board.jpg b/sphinx/source/mesure/17_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2cdc3b622201e41ee870d3c88dbd7bfe72c4fd1 Binary files /dev/null and b/sphinx/source/mesure/17_mes_board.jpg differ diff --git a/sphinx/source/mesure/18_mes_board.jpg b/sphinx/source/mesure/18_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..699b20b0a617d080aa2ddcdbab91960a821ee3f7 Binary files /dev/null and b/sphinx/source/mesure/18_mes_board.jpg differ diff --git a/sphinx/source/mesure/19_mes_board.jpg b/sphinx/source/mesure/19_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f191473cb7982f67488e13a62ea6e53bc97e4e26 Binary files /dev/null and b/sphinx/source/mesure/19_mes_board.jpg differ diff --git a/sphinx/source/mesure/20_mes_board.jpg b/sphinx/source/mesure/20_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6780cd498352806e601bd9e77b9e6a9076b47c0 Binary files /dev/null and b/sphinx/source/mesure/20_mes_board.jpg differ diff --git a/sphinx/source/mesure/21_mes_board.jpg b/sphinx/source/mesure/21_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..faf681109fae1e1a4115b95c3fca1b83608fd550 Binary files /dev/null and b/sphinx/source/mesure/21_mes_board.jpg differ diff --git a/sphinx/source/mesure/22_mes_board.jpg b/sphinx/source/mesure/22_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b3e2ad86a98550cc53a2053a1151f67dad2d741 Binary files /dev/null and b/sphinx/source/mesure/22_mes_board.jpg differ diff --git a/sphinx/source/mesure/23_mes_board.jpg b/sphinx/source/mesure/23_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6fa589f253fea3036bc1363592f803782dcce7b3 Binary files /dev/null and b/sphinx/source/mesure/23_mes_board.jpg differ diff --git a/sphinx/source/mesure/24_mes_board.jpg b/sphinx/source/mesure/24_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..767e901170e31f12a7834931950bce5f3d8ca776 Binary files /dev/null and b/sphinx/source/mesure/24_mes_board.jpg differ diff --git a/sphinx/source/mesure/25_mes_board.jpg b/sphinx/source/mesure/25_mes_board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9b037db9594d3ae331fed5768e4209591865631b Binary files /dev/null and b/sphinx/source/mesure/25_mes_board.jpg differ diff --git a/sphinx/source/new 1.txt b/sphinx/source/new 1.txt new file mode 100644 index 0000000000000000000000000000000000000000..a7f8b4af89fc5c1e0f9f696e745a33be14356281 --- /dev/null +++ b/sphinx/source/new 1.txt @@ -0,0 +1,324 @@ + In this part of the board, resistance R9 has been added to measure the current flowing between electrodes A and B. This resistance value has been +set at 2 ohms in order to ensure: +• a precise resistance, +• a resistance less than the sum of resistors R10, R11 and R12; indeed, R10 and R12 generally lie between 100 and 5,000 ohms. +To measure the current intensity between A and B, the electrical potential difference at the pole of the reference resistor (R9) +is measured. The intensity (in mA) is calculated by inserting the resulting value into the following: + + +To measure the potential difference needed to measure current intensity, the ADS 1115 is connected to the ground of the circuit. +In our case, the ground reference is electrode B. The analog inputs A1 and A0 of the ADS1115 are connected to each pole of the +reference resistor (R9). In order to increase input impedance and adapt the signal gain, tracking amplifiers have been included +and completed by a divider bridge (R5, R8, R6 and R7) located between the two amplifiers. The resistance of the divider bridge +ensures that the signal remains between 0 and 5 V, in accordance with the ADS1115 signal gain. To measure the potential difference, +the M and N electrodes are connected to analog inputs A2 and A3 of the ADS 1115. Between the ADC and the electrodes, two tracking +amplifiers and a divider bridge have been positioned so as to obtain a potential lying within the 0-5 V range at the analog input of the ADS 1115. +Let's note that the potential difference value would equal the potential measured with ADS1115 multiplied by the voltage reduction +value of the divider bridge (see Section 5.2). Despite the use of high-resolution resistance (i.e. accurate to within 1%), it is +still necessary to calibrate the divider bridge using a precision voltmeter. For this purpose, the input and output potentials +of the divider bridge must be measured using an equivalent circuit for various electrical potential values. These values serve +to calculate the gain. With this electronic board, it is possible to measure the potential and intensity without disturbing the +electric field in the ground, with the total input impedance value being estimated at 36 mega-ohms. +A shortcut between Electrodes A and B will generate excessive currents, whose intensities depend on the type of battery used. +A lithium ion battery or automobile-type lead-acid battery can deliver a strong enough current to damage the board and, as such, +constitutes a potential hazard. We therefore recommend adding a 1.5-A fuse between the battery and resistor R9. +In version 1.02, we have improved the electronic board of measurement. we have added a DC/DC converter to supply the operational amplifiers +(2 Traco power DC/DCconverter TRN3-1215). These converters allow to limit the suppression of the signal when the injected voltage is higher than 10V. +We also added 4 capacitors on the +12v inputs of the fast operational amplifiers. These are decoupling capacitors (typically 100nF ceramic) +between each power supply terminal and ground. The last point, we have added a four very high resistances of 10 MOhm, between the ground and +the signal input on the operational amplifiers. This prevents the operational amplifiers from overheating. + +.. figure:: schema_measurement_board.jpg + :width: 800px + :align: center + :height: 400px + :alt: alternate text + :figclass: align-center + + Measurement board (Ohmpi version 1.02) + +.. note:: + If you want to have very accurate measurements you can replace the resistors with a tolerance of 1% by resistors with a tolerance of 0.01% which will improve the measurement, but the cost will be higher. + + + +b) Implementation +-------------------------------- +The measurement board must be printed using the PCB file (Source file repository), with components soldered onto +it by following the steps described below and illustrated in the following figure : + +* Step no. 1: test divider bridge + For each measurement channel, we have installed a bridge divider, it is necessary to test with ohmmeter the value of the resistances, to adjust each coefficients (coef_p0, coef_p1, coef_p2, coef_p3) in the Ohmpi.py code.. + + .. math:: + coeff po = (R1 + R2) / R1 + + .. math:: + coeff p1 = (R3 + R4) / R3 + + .. math:: + coeff p2 = (R7 + R6) / R7 + + .. math:: + coeff p3 = (R9 + R8) / R9 + + .. code-block:: python + :linenos: + :lineno-start: 36 + + """ + hardware parameters + """ + R_ref = 50 # reference resistance value in ohm + coef_p0 = 2.5 # slope for current conversion for ADS.P0, measurement in V/V + coef_p1 = 2.5 # slope for current conversion for ADS.P1, measurement in V/V + coef_p2 = 2.5 # slope for current conversion for ADS.P2, measurement in V/V + coef_p3 = 2.5 # slope for current conversion for ADS.P3, measurement in V/V + + The coefficient parameters can be adjusted in lines 40 to 43 of the ohmpi.py code. + + +* Step no. 2: installation of the 1-Kohm resistors with an accuracy of ± 1% (b-in the figure). +* Step no. 3: installation of the 1.5-Kohm resistors with an accuracy of ± 1%(C-in the figure). +* Step no. 4: installation of both the black female 1 x 10 header and the 7-blue screw terminal blocks (c-in the figure) +* Step no. 5: installation of the 50-Ohm reference resistor ± 0.1%, please check the value and correct the line 39 in ohmpi.py code (d-in the figure) +* Step no. 6: addition of both the ADS115 directly onto the header (pins must be plugged according to the figure) and the LM358N operational amplifiers (pay attention to the orientation) (e-in the figure). +* Step no. 7: installation of the 10-Mohm resistors with an accuracy of ± 5% (f-in the figure). +* Step no. 8: installation of the two DC/DC converter TRN3-1215 (h-in the figure). +* Setp no. 9: installation of the four capacitor on 100-nF/50vDC and the fuse of 10-A (h-in the figure). + +1-Kohm and 1.5-Kohm resistors apply to the divider bridge. If, for example, you prefer using a stronger power supply, it would be possible to adjust the divider bridge value by simply modifying these resistors. +Once all the components have been soldered together, the measurement board can be connected to the Raspberry Pi and the +battery terminal, according to Figure 9. Between the battery and the TX+ terminal of the measurement board, remember to +place a fuse holder with a 1.5-A fuse for safety purposes. + +.. figure:: measurement_board1-02.jpg + :width: 800px + :align: center + :height: 700px + :alt: alternate text + :figclass: align-center + + Measurement circuit board assembly: a) printed circuit board, b) adding the 1-Kohm resistors ± 1%, c)adding the 1.5-Kohm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers + +.. figure:: measurement_board-2-V1-02.jpg + :width: 800px + :align: center + :height: 700px + :alt: alternate text + :figclass: align-center + + Measurement board installation with Raspberry Pi + + + + + + +Current injection board +======================= + +To carry out the electrical resistivity measurement, the first step consists of injecting current into the ground. +In our case, a simple 9-V lead-acid battery is used to create an electrical potential difference that results +in current circulating into the ground. The current is injected through electrodes A and B (see Fig. 2). This +injection is controlled via a 4-channel relay module board connected to the Raspberry Pi. The mechanical relay +module board is shown in Figure 4. Relays 1 and 2 serve to switch on the current source. The common contacts +of relays 1 and 2 are connected to the positive and negative battery poles, respectively. The normally open +contacts of both relays are connected to the common contacts of relays 3 and 4. Relays 1 and 2 are connected +to the GPIO 7 on the Raspberry Pi and therefore activate simultaneously. The role of relays 3 and 4 is to reverse +the polarity at electrodes A and B. Thus, when relays 3 and 4 are energized by the GPIO 8 in the open position, +the positive battery pole is connected to electrode A and the negative pole to electrode B. When not energized, +they remain in the normally closed position. This set-up offers a simple and robust solution to inject current. + +.. figure:: current_board.jpg + :width: 800px + :align: center + :height: 400px + :alt: alternate text + :figclass: align-center + + Wiring of the 4-channel relay module board for current injection management + +The next step consists of featuring the 4-channel relay module used for current injection and its assembly. The wiring +between the relays must be carried out in strict accordance with Fig. 10. This card must then be connected to the Raspberry +Pi and the measurement card. On the Raspberry Pi, it is necessary to connect inputs In1 and In2 to the same GPIO. For this +purpose, it is necessary to solder together the two pins on the 4-channel relay shield module and connect them to the Raspberry Pi GPIO-7 (Fig. 10). The same must be performed for inputs In3 and In4 with GPIO-8. Connect the GND and 5Vdc pins of +the relay card’s 4 channels respectively to the GND pin and 5Vcc of the Raspberry Pi. Now connect relays 1, 2, 3 and 4, as +shown in the diagram, using 1-mm2 cables (red and black in Fig. 10). Lastly, connect the inputs of relay 1 and 2 respectively +to terminals B and A of the measurement board. + +.. figure:: installation_current_board_1_02.jpg + :width: 800px + :align: center + :height: 700px + :alt: alternate text + :figclass: align-center + + Current injection board installation with Raspberry Pi + + +Congratulations, you have build a 4 electrodes resistivity-meter. + + +Frist four electrodes resistivity mesurement +============================================ + + +Under construction ! + +Describe the way to valide the first part of the instruction. +Electrical resistivity measurement on test circuit + + +Multiplexer implentation +************************* +The resistivity measurement is conducted on four terminals (A, B, M and N). The user could perform each measurement +by manually plugging four electrodes into the four channel terminals. In practice, ERT requires several tens or thousands +of measurements conducted on different electrode arrays. A multiplexer is therefore used to connect each channel to one of +the 32 electrodes stuck into the ground, all of which are connected to the data logger. + + +We will describe below how to assemble the four multiplexers (MUX), one per terminal. A multiplexer consists of 2 relay +modules with 16 channels each. On the first board, on each MUX, 15 relays out of the 16 available will be used. Please note that the suggested +configuration enables making smaller multiplexers (8 or 16 electrodes only). On the other hand, if you prefer upping to 64 electrodes, +which is entirely possible, a GPIO channel multiplier will have to be used. +To prepare the multiplexer, the channels of the two relay boards must be connected according to the wiring diagram shown below. + +.. figure:: multiplexer_implementation.jpg + :width: 800px + :align: center + :height: 500px + :alt: alternate text + :figclass: align-center + + Schematic diagram of the wiring of two 16-channel relay shields + + +For this purpose, 0.5-mm² cables with end caps are used and their length adjusted for each connection in order to produce a clean assembly. +The length was adjusted so that the distance between the two points to be connected could be directly measured on the board once they had +been assembled one above the other, in adding an extra 3 cm. The wires at the ends need to be stripped and the end caps added. +As a final step, connect the cables to the correct connectors. This operation must be repeated in order to carry out all the wiring shown in Figure below. + +Once the operation has been completed, the 16 control pins of each 16-channel relay shield card must be prepared. Each card actually contains 16 input channels +for activating each relay (Fig. 12). However, we will be activating several relays with a single GPIO (to limit the number of GPIOs used on Raspberry Pi, +see Section 2.4). To execute this step, it will be necessary to follow the protocol presented in Figure. + + .. figure:: connection.jpg + :width: 800px + :align: center + :height: 400px + :alt: alternate text + :figclass: align-center + + Connection to the 16-channel relay shield + +For the 16-channel relay shield no. 1, these steps must be followed: +* Position a test circuit with 10 horizontal and 10 vertical holes on the pins of the 16-channel relay shield board. +* Follow the diagram and solder the pins as shown in Fig. +* Lastly, solder 0.5-mm² wires 1 m in length to the test circuit. + +For relay shield no. 2, follow the same procedure, but solder all the pins together (d-e-f). +This same operation must be repeated for the other three multiplexers as well. +The next step consists of connecting the relay card inputs to the Raspberry Pi according to Table 5 for all four multiplexers. + + ++-------------------------------+-------------------------------------------+---------------------+ +| |Relay shield n°1 |Relay Shield n°2 | +| +----------+----------+----------+----------+---------------------+ +| |Pin 1 |Pin 2-3 |Pin 4-7 |Pin 8-16 |Pin 1- 16 | ++-------------------------------+----------+----------+----------+----------+---------------------+ +| Multiplexer A |12 |16 |20 |21 |26 | ++-------------------------------+----------+----------+----------+----------+---------------------+ +| Multiplexer B |18 |23 |24 |25 |19 | ++-------------------------------+----------+----------+----------+----------+---------------------+ +| Multiplexer M |06 |13 |04 |17 |27 | ++-------------------------------+----------+----------+----------+----------+---------------------+ +| Multiplexer N |22 |10 |09 |11 |05 | ++-------------------------------+----------+----------+----------+----------+---------------------+ + + Connection of the GPIOs to each multiplexer + + +Electrode connection +************************* +At this point, all that remains is to connect the electrodes of each multiplexer to a terminal block (Fig. 13). In our set-up, screw terminals assembled on a din rail were used. +According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming +connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure. + +.. figure:: cable.jpg + :width: 800px + :align: center + :height: 300px + :alt: alternate text + :figclass: align-center + + Wire cabling for multiplexer and terminal screw connection + +the next figure provides an example of multiplexer relay connections for electrode no. 1: this electrode of multiplexer MUX A must be connected to electrode no. 1 of MUX B. Moreover, electrode no. 1 of MUX B +must be connected to electrode no. 1 of MUX N, which in turn must be connected to electrode no. 1 of MUX M. Lastly, electrode no. 1 of MUX M is connected to the terminal block. +This operation must be repeated for all 32 electrodes. + +.. figure:: electrode_cable.jpg + :width: 800px + :align: center + :height: 800px + :alt: alternate text + :figclass: align-center + + Example of a multiplexer connection to the screw terminal for electrode no. 1. + +.. warning:: + The 16 channel relay cards exist in 5-V and 12-V , in the bottom figure we have 12-V cards that we will directly connect to the battery. + In case you bought 16 channel relay 5-V cards, you will need to add a DC/DC 12-V/5-V converter. You can use a STEP DOWN MODULE DC-DC (Velleman WPM404) and set the voltage to 5V with the potentiometer. + +Operating instruction +************************* + +Preliminary procedure (Only for the initial operation) +====================================================== +The open source code must be downloaded at the Open Science Framework source file repository for this manuscript (https://osf.io/dzwb4/) +or at the following Gitlab repository address: https://gitlab.irstea.fr/reversaal/OhmPi. The code must be then unzipped into a selected folder (e.g. OhmPi-master). A “readme†file +is proposed in the directory to assist with installation of the software and required python packages. It is strongly recommended to create a python virtual environment for installing +the required packages and running the code. + + +Startup procedure +================== +As an initial operating instruction, all batteries must be disconnected before any hardware handling. Ensure that the battery is charged at full capacity. Plug all the electrodes (32 or fewer) +into the screw terminals. The Raspberry Pi must be plugged into a computer screen, with a mouse and keyboard accessed remotely. The Raspberry Pi must then be plugged into the power supply +(for laboratory measurements) or a power bank (5V - 2A for field measurements). At this point, you'll need to access the Raspbian operating system. Inside the previously created folder “ohmPiâ€, +the protocol file “ABMN.txt†must be created or modified; this file contains all quadrupole ABMN numeration (an example is proposed with the source code). Some input parameters of the main “ohmpi.py†+function may be adjusted/optimized depending on the measurement attributes. For example, both the current injection duration and number of stacks can be adjusted. At this point, the9 V and 12-V battery can be +plugged into the hardware; the "ohmpi.py" source code must be run within a python3 environment (or a virtual environment if one has been created) either in the terminal or using Thonny. You should now +hear the characteristic sound of a relay switching as a result of electrode permutation. After each quadrupole measurement, the potential difference as well as the current intensity and resistance +are displayed on the screen. A measurement file is automatically created and named "measure.csv"; it will be placed in the same folder. + +Electrical resistivity measurement parameters description +========================================================== + +In the version 1.02, the measurement parameters are in the Jason file (ohmpi_param.json). + +.. code-block:: python + :linenos: + :lineno-start: 1 + + + nb_electrodes = 32 # maximum number of electrodes on the resistivity meter + injection_duration = 0.5 # Current injection duration in second + nbr_meas= 1 # Number of times the quadripole sequence is repeated + sequence_delay= 30 # Delay in seconds between 2 sequences + stack= 1 # repetition of the current injection for each quadripole + export_path= "home/pi/Desktop/measurement.csv" + + + +Complete list of components +******************************* +.. warning:: + The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date + + +.. csv-table:: List of components + :file: C:\Users\remi.clement\Documents\28_ohmpi_all_git\master\sphinx\source\list - 1_02.csv + :widths: 30, 70, 70, 70, 70,70 + :header-rows: 1 \ No newline at end of file diff --git a/sphinx/source/schema_measurement_board.jpg b/sphinx/source/schema_measurement_board.jpg index 067f79537545338f96b3db86198f8ecbabb3e6e4..a4d73a9656272e18ec6a3341eba40956e568ae48 100644 Binary files a/sphinx/source/schema_measurement_board.jpg and b/sphinx/source/schema_measurement_board.jpg differ