Commit 13ba6dba authored by remi.clement's avatar remi.clement
Browse files

Update the documentation

stable version of ohmpi documentation
Showing with 221 additions and 8 deletions
+221 -8
No preview for this file type
No preview for this file type
sphinx/build/html/_images/cable.jpg

16.6 KB

sphinx/build/html/_images/electrode_cable.jpg

3.53 MB

......@@ -211,20 +211,85 @@ 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 |
| +----------+----------+----------+----------+---------------------+
| |Pin1 |Pin 2-3 |Pin 4-7 |Pin 8-16 |Pin 1- 16 |
| |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
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
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, the 12-V battery 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, the 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
==========================================================
.. code-block:: python
:linenos:
:lineno-start: 27
"""
measurement parameters
"""
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
The measurement parameters can be adjusted in lines 27 to 30 of the ohmpi.py code.
\ No newline at end of file
......@@ -194,6 +194,7 @@
<li class="toctree-l2"><a class="reference internal" href="page1.html#construction-of-the-measurement-board-and-connection-to-the-raspberry">Construction of the measurement board and connection to the Raspberry</a></li>
<li class="toctree-l2"><a class="reference internal" href="page1.html#current-injection">Current injection</a></li>
<li class="toctree-l2"><a class="reference internal" href="page1.html#multiplexer-implentation">Multiplexer implentation</a></li>
<li class="toctree-l2"><a class="reference internal" href="page1.html#electrode-connection">Electrode connection</a></li>
<li class="toctree-l2"><a class="reference internal" href="page1.html#operating-instruction">Operating instruction</a></li>
</ul>
</li>
......
......@@ -94,8 +94,11 @@
</li>
<li class="toctree-l2"><a class="reference internal" href="#current-injection">Current injection</a></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>
</ul>
......@@ -372,22 +375,101 @@ The next step consists of connecting the relay card inputs to the Raspberry Pi a
<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>Pin1</p></td>
<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>
</tbody>
</table>
<blockquote>
<div><p>Connection of the GPIOs to each multiplexer</p>
</div></blockquote>
</div>
<div class="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>
<div class="align-center figure">
<a class="reference internal image-reference" href="_images/cable.jpg"><img alt="alternate text" src="_images/cable.jpg" style="width: 800px; height: 300px;" /></a>
</div>
<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>
<div class="align-center figure">
<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>
</div>
</div>
<div class="section" id="operating-instruction">
<h2>Operating instruction<a class="headerlink" href="#operating-instruction" title="Permalink to this headline"></a></h2>
<div class="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>
</div>
<div class="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, the 12-V battery 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, the 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>
</div>
<div class="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>
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>27
28
29
30
31
32
33
34</pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> measurement parameters</span>
<span class="sd"> &quot;&quot;&quot;</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="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="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="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="n">stack</span><span class="o">=</span> <span class="mi">1</span> <span class="c1"># repetition of the current injection for each quadripole</span>
</pre></div>
</td></tr></table></div>
<p>The measurement parameters can be adjusted in lines 27 to 30 of the ohmpi.py code.</p>
</div>
</div>
</div>
......
Search.setIndex({docnames:["index","page0","page1"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","page0.rst","page1.rst"],objects:{},objnames:{},objtypes:{},terms:{"ao\u00fbt":1,"case":2,"cr\u00e9er":[],"d\u00e9mo":[],"esp\u00e8r":[],"final":2,"function":1,"h\u00e9l\u00e8ne":[0,1],"justifi\u00e9":[],"mm\u00b2":2,"orl\u00e9an":1,"pr\u00e9sent":[],"pr\u00e9sentat":[],"premi\u00e8r":[],"r\u00e9mi":[0,1],"switch":2,"universit\u00e9":1,ADS:2,For:2,IGE:1,Its:2,The:0,These:2,With:2,abov:2,accord:2,accur:2,accuraci:2,acid:2,activ:2,actual:2,adapt:2,adc:2,added:2,adding:2,addit:2,adjust:2,administr:[],ads1115:2,ads115:2,align:[],all:2,allow:[1,2],alp:1,also:2,alt:[],amplifi:2,analog:2,appli:2,arrai:2,articl:[],assembl:2,associ:1,attent:2,aug:0,author:[0,1,2],automat:1,automobil:2,avail:2,barbeau:[],basic:1,batteri:2,been:2,behavior:2,being:2,below:2,between:2,bit:2,black:2,block:2,blue:2,board:0,both:2,bridg:2,c_1:[],c_2:[],cabl:2,calcul:2,calibr:2,call:1,can:2,cap:2,caption:[],card:2,carri:2,caus:2,ceci:[],cedex:1,cela:[],center:[],channel:2,christoph:[],circuit:2,circul:2,clean:2,clement:[0,1],close:2,cokela:[],commerci:2,common:2,commun:1,complet:2,compon:2,conduct:2,configur:2,connect:0,connector:2,consist:2,constitut:2,construct:0,consult:[],consumpt:2,contact:2,contain:2,content:0,control:2,convert:2,correct:2,cos:[],cost:1,could:2,cpu:2,creat:2,creation:1,current:[0,1],damag:2,daniel:[],data:0,date:[0,1],deactiv:2,deliv:2,demo:[],depend:2,describ:2,design:2,despit:2,develop:[0,1,2],diagram:2,differ:2,digit:2,direct:2,directli:2,displai:2,distanc:2,disturb:2,divid:2,dkfjshkdfh:[],doc:[],document:1,dual:2,duboi:[0,1],durat:2,dure:2,each:2,eiffel:1,electr:[],electrod:[0,1],electron:2,enabl:2,end:2,energ:2,enough:2,ensur:2,entir:2,equal:2,equival:2,eric:[],ert:2,est:[],estim:2,everyon:1,exampl:2,excess:2,execut:2,experi:[1,2],extra:2,failur:2,fargier:[0,1],featur:[],femal:2,field:2,fig:2,figur:2,file:2,first:2,flexibl:1,florsch:2,flow:2,follow:2,fonctionn:[],formul:[],forquet:[0,1],four:2,franc:1,from:2,fulli:1,fuse:2,gain:2,ganc:[0,1],gener:[0,2],ger:1,get:1,gpio:2,grenobl:1,ground:2,gui:2,guidelin:0,gustav:1,guyard:[0,1],had:2,hand:2,hardwar:1,hardwareresist:[],has:2,have:2,hazard:2,header:2,height:[],help:2,high:2,holder:2,hole:2,horizont:2,hous:2,how:2,howev:2,http:2,ifsttar:1,illustr:2,imag:[],imped:2,implement:[],implent:0,includ:2,increas:2,inde:2,index:[],inform:[],inject:[0,1],input:2,inra:1,insert:2,instal:0,instruct:0,instrument:1,intens:2,introduc:2,introduct:0,introduir:[],invit:[],involv:1,ion:2,iri:1,jpg:[],juillet:1,julien:[0,1],justifi:[],kohm:2,laboratori:2,lastli:2,latest:2,lead:2,length:2,less:2,let:2,lie:2,lien:[],like:[],limit:0,lithium:2,lm358n:2,locat:2,logger:2,logo:[],logo_inra:[],logo_univ_gustav:[],low:[1,2],lying:2,lyon:1,made:2,mai:2,make:2,manag:2,manual:2,matur:0,maxdepth:[],measur:[0,1],mechan:2,mega:2,menu:2,meter:[1,2],meterfeatur:1,micro:2,mimic:2,min:2,modifi:2,modul:2,mohm:2,monitor:2,moscardi:[],mount:2,multi:2,multiplex:[0,1],multipli:2,must:2,mux:2,necessari:2,need:2,neg:2,next:2,nicola:[0,1],noob:2,normal:2,note:2,notr:[],number:2,obtain:2,offcial:0,offer:2,officiel:[],ohm:2,ohmpi:[],onc:2,one:2,onli:[],onto:2,open:[1,2],oper:0,option:2,order:2,org:2,other:2,our:2,out:2,output:2,page0:[],page1:[],page:[],pai:2,paramet:2,parl:[],part:2,parten:1,pcb:2,per:2,perform:[1,2],peu:[],philosophi:[0,1],pin1:2,pin:2,pitch:2,place:2,pleas:2,plu:[],plug:2,png:[],point:2,polar:2,pole:2,posit:2,possibl:2,potenti:2,pour:[],power:2,practic:2,pradal:[],precis:2,prefer:2,prepar:2,present:[1,2],print:2,procedur:[],produc:2,progress:[0,1],project:0,propos:2,protocol:2,provid:1,puls:2,purpos:2,que:[],r10:2,r11:2,r12:2,rang:2,raspberri:0,raspberrypi:2,raspbian:2,recommend:2,reduct:2,refer:2,relai:2,relat:[],releas:0,remain:2,rememb:2,remot:2,repeat:2,repositori:2,repres:2,requir:2,research:0,resist:[0,1],resistor:2,resolut:2,respect:2,result:2,revers:2,reversa:1,robust:[1,2],role:2,rro:1,safeti:2,same:2,scale:1,schemat:2,scientif:1,screw:2,search:[],second:[],section:2,see:2,seri:2,serv:2,set:2,setup:2,sever:2,shield:2,shortcut:2,show:2,shown:2,signal:2,simpl:2,simpli:2,simultan:2,singl:2,site:[],small:[1,2],smaller:2,soil:2,solder:2,solut:2,some:0,sourc:[1,2],specif:2,sphinx:[],stabl:2,stainless:2,start:2,statu:[0,1],steel:2,step:2,still:2,storag:2,strip:2,strong:2,stronger:2,stuck:2,studi:2,style:[],subject:2,suggest:2,suitabl:2,sum:2,sum_:[],suppli:2,sur:[],surfac:1,system:2,tabl:2,target:0,task:2,technic:0,temperatur:2,ten:2,termin:2,test:2,text:[],than:2,thei:2,therefor:2,thi:[1,2],thoma:[],thousand:2,three:2,through:2,thu:2,time:2,toctre:[],togeth:2,tool:1,total:2,track:2,tutori:0,two:2,type:2,typic:2,unit:2,univ:1,updat:1,upping:2,use:2,used:2,user:[0,2],using:2,valu:2,variou:2,version:2,vertic:2,via:2,villeurbann:1,vise:[],vivien:[0,1],voici:[],voltag:2,voltmet:2,vou:[],weaker:2,websit:2,welcom:1,well:2,when:2,which:2,whose:2,width:[],willing:1,wire:2,within:2,without:2,would:2,www:2,x_n:[],yannick:[0,1],you:2},titles:["OHMPI: Open source and open hardware resitivity-meter","<strong>OhmPi project</strong>","OhmPi V 1.01 (limited to 32 electrodes)"],titleterms:{The:2,bienvenu:[],board:2,center:0,cett:[],connect:2,construct:2,current:2,data:2,document:0,electr:2,electrod:2,formul:[],hardwar:0,imag:[],implement:2,implent:2,indic:[],initi:2,inject:2,instal:2,instruct:2,introduct:1,lien:[],limit:2,measur:2,meter:0,multiplex:2,ohmpi:[0,1,2],onli:2,open:0,openalea:[],oper:2,page:[],philosophi:2,preliminari:2,procedur:2,project:1,raspberri:2,resist:2,resit:0,second:[],sourc:0,summari:0,sur:[],tabl:[],technic:2,text:[],welcom:[]}})
\ No newline at end of file
Search.setIndex({docnames:["index","page0","page1"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","page0.rst","page1.rst"],objects:{},objnames:{},objtypes:{},terms:{"ao\u00fbt":1,"case":2,"cr\u00e9er":[],"d\u00e9mo":[],"esp\u00e8r":[],"final":2,"function":[1,2],"h\u00e9l\u00e8ne":[0,1],"justifi\u00e9":[],"mm\u00b2":2,"orl\u00e9an":1,"pr\u00e9sent":[],"pr\u00e9sentat":[],"premi\u00e8r":[],"r\u00e9mi":[0,1],"switch":2,"universit\u00e9":1,ADS:2,For:2,IGE:1,Its:2,The:0,These:2,With:2,abmn:2,abov:2,access:2,accord:2,accur:2,accuraci:2,acid:2,activ:2,actual:2,adapt:2,adc:2,added:2,adding:2,addit:2,address:2,adjust:2,administr:[],ads1115:2,ads115:2,after:2,align:[],all:2,allow:[1,2],alp:1,also:2,alt:[],amplifi:2,analog:2,ani:2,appli:2,arrai:2,articl:[],assembl:2,assist:2,associ:1,attent:2,attribut:2,aug:0,author:[0,1,2],automat:[1,2],automobil:2,avail:2,bank:2,barbeau:[],basic:1,batteri:2,been:2,befor:2,behavior:2,being:2,below:2,between:2,bit:2,black:2,block:2,blue:2,board:0,both:2,bridg:2,c_1:[],c_2:[],cabl:2,calcul:2,calibr:2,call:1,can:2,cap:2,capac:2,caption:[],card:2,carri:2,caus:2,ceci:[],cedex:1,cela:[],center:[],channel:2,characterist:2,charg:2,chosen:2,christoph:[],circuit:2,circul:2,clean:2,clement:[0,1],close:2,code:2,cokela:[],commerci:2,common:2,commun:1,complet:2,compon:2,comput:2,conduct:2,configur:2,connect:0,connector:2,consequ:2,consist:2,constitut:2,construct:0,consult:[],consumpt:2,contact:2,contain:2,content:0,control:2,convert:2,correct:2,cos:[],cost:1,could:2,cpu:2,creat:2,creation:1,csv:2,current:[0,1],damag:2,daniel:[],data:0,date:[0,1],deactiv:2,delai:2,deliv:2,demo:[],depend:2,describ:2,design:2,despit:2,develop:[0,1,2],diagram:2,differ:2,digit:2,din:2,direct:2,directli:2,directori:2,disconnect:2,displai:2,distanc:2,disturb:2,divid:2,dkfjshkdfh:[],doc:[],document:1,download:2,dual:2,duboi:[0,1],durat:2,dure:2,dzwb4:2,each:2,eiffel:1,either:2,electr:[],electrod:[0,1],electron:2,enabl:2,end:2,energ:2,enough:2,ensur:2,entir:2,environ:2,equal:2,equival:2,eric:[],ert:2,est:[],estim:2,everyon:1,exampl:2,excess:2,execut:2,experi:[1,2],extra:2,failur:2,fair:[],fargier:[0,1],featur:[],femal:2,fewer:2,field:2,fig:2,figur:2,file:2,first:2,flexibl:1,florsch:2,flow:2,folder:2,follow:2,fonctionn:[],formul:[],forquet:[0,1],four:2,framework:2,franc:1,from:2,full:2,fulli:1,fuse:2,gain:2,ganc:[0,1],gener:[0,2],ger:1,get:1,gitlab:2,gpio:2,grenobl:1,ground:2,gui:2,guidelin:0,gustav:1,guyard:[0,1],had:2,hand:2,handl:2,hardwar:[1,2],hardwareresist:[],has:2,have:2,hazard:2,header:2,hear:2,height:[],help:2,high:2,holder:2,hole:2,horizont:2,hous:2,how:2,howev:2,http:2,ifsttar:1,illustr:2,imag:[],imped:2,implement:[],implent:0,includ:2,incom:2,increas:2,inde:2,index:[],inform:[],inject:[0,1],injection_dur:2,input:2,inra:1,insert:2,insid:2,instal:0,instead:2,instruct:0,instrument:1,intens:2,introduc:2,introduct:0,introduir:[],invit:[],involv:1,ion:2,iri:1,irstea:2,jpg:[],juillet:1,julien:[0,1],justifi:[],keyboard:2,kjsdfhksdgfjksdf:[],kohm:2,laboratori:2,lastli:2,latest:2,lead:2,length:2,less:2,let:2,lie:2,lien:[],like:[],limit:0,line:2,lithium:2,lm358n:2,locat:2,logger:2,logo:[],logo_inra:[],logo_univ_gustav:[],low:[1,2],lying:2,lyon:1,made:2,mai:2,main:2,make:2,manag:2,manual:2,manuscript:2,master:2,matur:0,maxdepth:[],maximum:2,measur:[0,1],mechan:2,mega:2,menu:2,meter:[1,2],meterfeatur:1,micro:2,mimic:2,min:2,modifi:2,modul:2,mohm:2,monitor:2,moreov:2,moscardi:[],mount:2,mous:2,multi:2,multiplex:[0,1],multipli:2,must:2,mux:2,name:2,nb_electrod:2,nbr_mea:2,necessari:2,need:2,neg:2,next:2,nicola:[0,1],noob:2,normal:2,note:2,notr:[],now:2,number:2,numer:2,obtain:2,offcial:0,offer:2,officiel:[],ohm:2,ohmpi:[],onc:2,one:2,onli:[],onto:2,open:[1,2],oper:0,optim:2,option:2,order:2,org:2,osf:2,other:2,our:2,out:2,output:2,packag:2,page0:[],page1:[],page:[],pai:2,paramet:[],parl:[],part:2,parten:1,pcb:2,per:2,perform:[1,2],permut:2,peu:[],philosophi:[0,1],pin1:[],pin:2,pitch:2,place:2,pleas:2,plu:[],plug:2,png:[],point:2,polar:2,pole:2,posit:2,possibl:2,potenti:2,pour:[],power:2,practic:2,pradal:[],precis:2,prefer:2,prepar:2,present:[1,2],previous:2,print:2,procedur:[],produc:2,progress:[0,1],project:0,propos:2,protocol:2,provid:[1,2],puls:2,purpos:2,python3:2,python:2,quadripol:2,quadrupol:2,que:[],r10:2,r11:2,r12:2,rail:2,rang:2,raspberri:0,raspberrypi:2,raspbian:2,readm:2,recommend:2,reduct:2,refer:2,relai:2,relat:[],releas:0,remain:2,rememb:2,remot:2,repeat:2,repetit:2,repositori:2,repres:2,requir:2,research:0,resist:[0,1],resistor:2,resolut:2,respect:2,result:2,revers:2,reversa:[1,2],robust:[1,2],role:2,rro:1,run:2,safeti:2,same:2,scale:1,schemat:2,scienc:2,scientif:1,screen:2,screw:2,search:[],second:2,section:2,see:2,select:2,sequenc:2,sequence_delai:2,seri:2,serv:2,set:2,setup:2,sever:2,shield:2,shortcut:2,should:2,show:2,shown:2,signal:2,simpl:2,simpli:2,simultan:2,singl:2,site:[],small:[1,2],smaller:2,softwar:2,soil:2,solder:2,solut:2,some:[0,2],sound:2,sourc:[1,2],specif:2,sphinx:[],stabl:2,stack:2,stainless:2,start:2,statu:[0,1],steel:2,step:2,still:2,storag:2,strip:2,strong:2,stronger:2,strongli:2,stuck:2,studi:2,style:[],subject:2,suggest:2,suitabl:2,sum:2,sum_:[],suppli:2,sur:[],surfac:1,system:2,tabl:2,target:0,task:2,technic:0,temperatur:2,ten:2,termin:2,test:2,text:[],than:2,thei:2,therefor:2,thi:[1,2],thoma:[],thonni:2,thousand:2,three:2,through:2,thu:2,time:2,toctre:[],togeth:2,tool:1,total:2,track:2,turn:2,tutori:0,two:2,txt:2,type:2,typic:2,unit:2,univ:1,unzip:2,updat:1,upping:2,use:2,used:2,user:[0,2],using:2,valu:2,variou:2,version:2,vertic:2,via:2,villeurbann:1,virtual:2,vise:[],vivien:[0,1],voici:[],voltag:2,voltmet:2,vou:[],weaker:2,websit:2,welcom:1,well:2,were:2,when:2,which:2,whose:2,width:[],willing:1,wire:2,within:2,without:2,would:2,www:2,x_n:[],yannick:[0,1],you:2},titles:["OHMPI: Open source and open hardware resitivity-meter","<strong>OhmPi project</strong>","OhmPi V 1.01 (limited to 32 electrodes)"],titleterms:{The:2,bienvenu:[],board:2,center:0,cett:[],connect:2,construct:2,current:2,data:2,descript:2,document:0,electr:2,electrod:2,formul:[],hardwar:0,imag:[],implement:2,implent:2,indic:[],initi:2,inject:2,instal:2,instruct:2,introduct:1,lien:[],limit:2,measur:2,meter:0,modif:[],multiplex:2,ohmpi:[0,1,2],onli:2,open:0,openalea:[],oper:2,page:[],paramet:2,philosophi:2,preliminari:2,procedur:2,project:1,raspberri:2,resist:2,resit:0,second:[],sourc:0,startup:2,summari:0,sur:[],tabl:[],technic:2,text:[],welcom:[]}})
\ No newline at end of file
sphinx/source/cable.jpg

16.6 KB

sphinx/source/electrode_cable.jpg

3.53 MB

......@@ -211,20 +211,85 @@ 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 |
| +----------+----------+----------+----------+---------------------+
| |Pin1 |Pin 2-3 |Pin 4-7 |Pin 8-16 |Pin 1- 16 |
| |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
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
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, the 12-V battery 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, the 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
==========================================================
.. code-block:: python
:linenos:
:lineno-start: 27
"""
measurement parameters
"""
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
The measurement parameters can be adjusted in lines 27 to 30 of the ohmpi.py code.
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment