diff --git a/sphinx/build/doctrees/environment.pickle b/sphinx/build/doctrees/environment.pickle index da64ec821899c7adb79988b3a08d437cb4df32fa..58676bc7082a243d3b6324c2595bec1a441831e3 100644 Binary files a/sphinx/build/doctrees/environment.pickle and b/sphinx/build/doctrees/environment.pickle differ diff --git a/sphinx/build/doctrees/page1.doctree b/sphinx/build/doctrees/page1.doctree index 32496145cfe031d0d89856921c00de508c133e59..2c03f6393384a016c335e007deabcf176fe90151 100644 Binary files a/sphinx/build/doctrees/page1.doctree and b/sphinx/build/doctrees/page1.doctree differ diff --git a/sphinx/build/html/_images/cable.jpg b/sphinx/build/html/_images/cable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac41ddaa8a5fce47d255ab87a89d3baf0a01d7a6 Binary files /dev/null and b/sphinx/build/html/_images/cable.jpg differ diff --git a/sphinx/build/html/_images/electrode_cable.jpg b/sphinx/build/html/_images/electrode_cable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ec579dac056f193d384c380dc18c0feae537565 Binary files /dev/null and b/sphinx/build/html/_images/electrode_cable.jpg differ diff --git a/sphinx/build/html/_sources/page1.rst.txt b/sphinx/build/html/_sources/page1.rst.txt index 0d9ee3a4901d6e43ca6e153daf2aeeb27d5b2a72..d6e35223defec078a5040b05c47922f4dc1df8e5 100644 --- a/sphinx/build/html/_sources/page1.rst.txt +++ b/sphinx/build/html/_sources/page1.rst.txt @@ -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 diff --git a/sphinx/build/html/index.html b/sphinx/build/html/index.html index e4d4a51a6396778802743d0331fb21c40c4a5707..228f44ccbd36507321381ede45e280b9d19c1d8b 100644 --- a/sphinx/build/html/index.html +++ b/sphinx/build/html/index.html @@ -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> diff --git a/sphinx/build/html/page1.html b/sphinx/build/html/page1.html index c4d81dd352968618c30e005885a6ab7e37df404f..ff93e494f3900bee86028ff5a606f3a75d62d26b 100644 --- a/sphinx/build/html/page1.html +++ b/sphinx/build/html/page1.html @@ -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">"""</span> +<span class="sd"> measurement parameters</span> +<span class="sd"> """</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> diff --git a/sphinx/build/html/searchindex.js b/sphinx/build/html/searchindex.js index fa71fed806669260e2f1f7999831e442f9668bf3..01ddf320c73c9e96ac79cfb841cfcfe227048ad7 100644 --- a/sphinx/build/html/searchindex.js +++ b/sphinx/build/html/searchindex.js @@ -1 +1 @@ -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 diff --git a/sphinx/source/cable.jpg b/sphinx/source/cable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac41ddaa8a5fce47d255ab87a89d3baf0a01d7a6 Binary files /dev/null and b/sphinx/source/cable.jpg differ diff --git a/sphinx/source/electrode_cable.jpg b/sphinx/source/electrode_cable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ec579dac056f193d384c380dc18c0feae537565 Binary files /dev/null and b/sphinx/source/electrode_cable.jpg differ diff --git a/sphinx/source/page1.rst b/sphinx/source/page1.rst index 0d9ee3a4901d6e43ca6e153daf2aeeb27d5b2a72..d6e35223defec078a5040b05c47922f4dc1df8e5 100644 --- a/sphinx/source/page1.rst +++ b/sphinx/source/page1.rst @@ -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