From bd4b7e0ff0f9ae2f86ab2c65ca37f110ee4084e4 Mon Sep 17 00:00:00 2001 From: "remi.clement" <remi.clement@irstea.fr> Date: Wed, 14 Jul 2021 17:26:06 +0200 Subject: [PATCH] update source file --- sphinx/build/doctrees/Ohmpi.doctree | Bin 9893 -> 10019 bytes sphinx/build/doctrees/V1_01.doctree | Bin 109870 -> 88290 bytes sphinx/build/doctrees/V1_02.doctree | Bin 113662 -> 91152 bytes sphinx/build/doctrees/V2_00.doctree | Bin 0 -> 91322 bytes sphinx/build/doctrees/environment.pickle | Bin 34163 -> 44349 bytes sphinx/build/doctrees/index.doctree | Bin 7603 -> 7848 bytes sphinx/build/html/Ohmpi.html | 20 +- sphinx/build/html/V1_01.html | 372 +++------ sphinx/build/html/V1_02.html | 376 +++------ sphinx/build/html/V2_00.html | 746 ++++++++++++++++++ sphinx/build/html/_sources/V1_01.rst.txt | 2 +- .../build/html}/_sources/V2_00.rst.txt | 12 +- sphinx/build/html/_sources/index.rst.txt | 1 + sphinx/build/html/_static/pygments.css | 7 +- sphinx/build/html/genindex.html | 1 + sphinx/build/html/index.html | 25 +- sphinx/build/html/objects.inv | Bin 327 -> 355 bytes sphinx/build/html/search.html | 1 + sphinx/build/html/searchindex.js | 2 +- sphinx/source/V2_00.rst | 542 +++++++++++++ sphinx/source/index.rst | 1 + 21 files changed, 1567 insertions(+), 541 deletions(-) create mode 100644 sphinx/build/doctrees/V2_00.doctree create mode 100644 sphinx/build/html/V2_00.html rename {public => sphinx/build/html}/_sources/V2_00.rst.txt (99%) create mode 100644 sphinx/source/V2_00.rst diff --git a/sphinx/build/doctrees/Ohmpi.doctree b/sphinx/build/doctrees/Ohmpi.doctree index 51164e758771d5172dd0a0c701c87abe121e237b..9f269b16f0a76df9885e96152ce3dc478613274a 100644 GIT binary patch delta 3264 zcmb`J&u<$=6vw^(nb>jCI<ZwbcH%mrc9S@6L<<6>00Omfow@??qX81vKNimp_O5I1 z66MeukP>=WB&ykR;edcp!4X-iKt%!+goF@3R5)<pN-z8aRYeru?8eU8jbq2@VJGp- zyw7{{<~#G|vvZ#&EN_{w9|>KveA6fQCbL3DDzLn$T-&&08%8GNlh2bUm>Fv!RTkM2 zd4usXezL~InHh4M2_{b=by5QP6H+>bMlLI16j)SH5WaEvj=>jRR3tQk9!6diZ8xbO zCQWHfG>QBqW?b{^4kiB>OYX%oCC@b(<xNk|ve1|5Jh&9{QGf9P4MqMng<ze7<~!$C zpl7*rkYBcPe3oV~ZUD>j&RXJ!r8Ihz%vpY)y9y&~`(UEg`(Q2=cF`)&eE=}!V6Z_I zcG7mEvJS9M4h9>N((Il>xCB0Qd#vUqef(_&v_lqpre?o_@td8;P}@3>h9w(4FIRS# z%%URqWQ6=Omlcr`AEnay6^wp{)&HjXM;2s7HqdM*fU%Z<N{5688-hW$h-o3aq7ZV# z{tOc%ui1~cIy@iRy-Q1%6?7517=xj9im(}eY@Y-}o1==2bgma|Noj0?f145*BZH0; zt-LQdj&6Go>%Ds)p!dHV;npfJNhMB^op~WAM7R=Hp2o$Tg0y_h>LWUFkcj%JqU(x^ zk@xz7?Lx9~Id;0p*MoUMAI#~lf@wI5mHTexP1wSFZMGWS)lNwRs(~b%;aruKxS1Y_ zpJ4WnyCcoC9FQ-aZqEez0jBA$0jM7+P5yRXIJ-jE>BY<RPsi1zb_)b*R26rnfBx*d z8g8{KT(AK*G_dsSbqz<l!i{S<a&zEO$I04>!8gd=fn$}=_eF$iir2wn_dL@yYgHEt zD*m`mR%={{rl#in!Y~X@JiqZpl^p6fKJtBiY6m49e@kb3@h$R;YuI(G$rOJ_?zuK! z`Ln5e&qqR?2u2X4TW0Las-l(#WWj%IyHf`Ne`e_G%AM}<t>sKrToY7Smq2}GllwB9 z$UVvDA_6KDIVDwl^JoKnE>P>&y@7gba@xLRL*yzmLT<YQIyKnHraQ{_8uz1qss;;K zbfN}hovf-MLe)@x-!o%<%2yxhVDsw<ih^&ANf`f<qpmC*CD{LBB}$=QJku5XF|dq) zWt(;3NzF;)(%?p6kyWeY<na-oMSYZ#S4Vu6J+=h$u_FxGQB0LYmQQgdwyfLYrtT)3 zL%X)r^jaHmPE`{Tu2>Q<n-O(HZ6vTW(8M(9n5MnbAzRCWRLZalngkh><mg9?vAQ)n z&oEc2^G8oH%w+YQ;27gMoacBpnP>T&h?04(z=_JaL!s*W*cqm>0O`ap(dIeYBxth* z2Mzy6n;89h8X8IN<x>S#Tq#0wpw?k(mr!jI>imQ{HzA<_9i>3zP-$pNL(!W_MX3ss rWasOGAo5lGP>30KaC{~&Wg$i(r@+(Ao@FyaDJ60OuOw(Tr1bRvunH~M delta 3176 zcmb`J%WoS+7{EP#C5`iFlh`6o(l|+5$7y0GlnQa6DuRGjx26&b?V(9o+lyyM>8{!A z_8}CxNPS%P(#}MvTmVI-+%2f65FjB0LJAUafdgC+`~w^+M5*{@AI>_BYdh&-$KIW9 ze&5XZoVD!j6M@VA)%OnE2z>6v=*Ie6Z3z4Dppm9?XqK*^0W?J4MHw_h|3G8&&*(V; z53jHZJhH&>C_Llv?1v}5z;v9zPva;~HWKOvp@Z1egD3G2EqJd*wuavHso^ur9Q?|r zHP?MF94WxJoW;rFp==|yZ{R_$F4JS7XwV;r!zKNHow^8L&NmMlGJ=v^5M_;JJg`#T zI7()Zp2K?L9mY)*pzDD%^xMEv`Z`EmZGn%kJOb|JVET5@NUs8n?hMvv!d`9rsJsTS z4|fLZ*K^`yW1<8)T<$h)Bv>}0TKm+IyD<Mr^LudI7_qSQ_x4let)pjw8SQyx>4H?y zFw2baFj|L2-^1yDaD0S=xDCR$8Nhg5K)Ff6lih;H2xvK_aEVcRsN+SHrWZOA^)2Dk zRf!qhOG;5WE6J)LCP}Ht@WKkiXUQJq@i=KleDGqYil;$N5yWMq_@SO7Uih2nu|wZB zYnmoQGj(#CYN63ZOMTp}eqaacH*5bpG*M6cZ0CTj{du?c)DzVHapzbgf3!(OF<FwU zj(E+zm$_~2r6w86k5uRf;I4lfxE0^G(xe7eLo)o3Sj#Nq=Q;5mNPn|6GG(;}BOokE zMVT4FJd{mQHG9R^u*_8#pnhY4-tRhn>>@vRl$_^3W|wHCy2l)<iM!Q({Ma=McV%0+ zu^L>eXYnOw;cjjVx6i`SAA6n+9dc?AxlQ|aA1K@b;?`EQjL1z5{gtdWAqOp%d{Et? z+4kbxAeB42N4!&CH71ZR`06ORM<4VK_TH<aELV^(X`=7HlRvk>F-39MKppHVv-6bv zWGgWz0eZRrv+|#<LhDB<x0ur|CR`SAcPyhbFKLoooL2C;lEj3=&b7vwh}jeFYtAkw zD(pHLr?=2v8ji$VP7TtdkyN4G+niJVO~`SlB9OC^!gT7i>D1pMv%#Z-)tOe(B~@k8 z?C@g9?#nnplJxHId^yRXQ8LrS?i@ou2l7*m<;kRlu00SGfem*WVY<5asj_{|G{Tas zsY*f5Ymy?zG^H8GfPGxNP)SfVQ5GasTxLSm(VITIuCv_F<&ewX!5Utd85+|iRUu+t za}lkH*v7;rrq6}+Juc^s;BrXO)x5~?Bt$d)bmV=6DzC?mBeYUk8$FEBWaZbfaa8Hs z_cAJ<29uI`KAhyk2|hf8bRz%qA<bXsV9<?SvT#n+E|tIxa8o6GUDjNaHRZFWY*xo3 ve3k=o$fV(e7K)b^6J^GuZgjn=D4JaPWq%y?cNE0Dq6*weEX&WS=aT;e&3Y0J diff --git a/sphinx/build/doctrees/V1_01.doctree b/sphinx/build/doctrees/V1_01.doctree index 0f204c41a19e30f4779313ff83903801add650ef..ce6250bc6d5d0221a24916c8f4e2db0885e43006 100644 GIT binary patch literal 88290 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 Jj#L*?{~rT*GtK}2 literal 109870 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 diff --git a/sphinx/build/doctrees/V1_02.doctree b/sphinx/build/doctrees/V1_02.doctree index 6695c5ae4df22e2e290a9c9a1c460265cef71bcb..690471fb6864a2560d3ec25654363f8232dc87d8 100644 GIT binary patch literal 91152 zcmeHw3!I$SRi7+bk~NOyryR1e$!9r^cjcYgon5US8=N5P;V80JiX=-)EN7XW`F7_U z&CEBMZ)R6=YcMq77bgP+GPF=aOMyThB@aRx2o8Z1T3(@)gg{?uaetwultP;}<@uxk zbIyHzGqdy3$j)Q)i&rz>eD~gS&pr3tbI<dc8^3>g(+!*Ge~q2FFk7z$#VAz{bAHrp z+(Zvbe!13sS99Xqn@=~#8#}6*wJ5AtvwpL&32$WcK`~eL%gra7`Av=Ok)N#vVcEQ& z-<sc+-~MEC96xTY1+}8@{M2~xRK9dN@XmYb)bxxuUJOb>&ChwY(3_p{{380Q5+D;z z>H<C7c+S5<u=L;XZA}InVBFEzR>=U+S~GuJW5=SIS$<1no0`x<<Hll8_L~d!rA#A{ zsnx2%QoRO5(8RX{xd@YNY|j=mQG|#1ytSMu$)}rg^@{znl*wMM`pfiAy|KNPS)rer z`JMT({LT57=eOkVX`DJdf9dhauSS=uekn+0i$3A`(h-I5=+exA#V}v01dEwsad9Q6 zT`FawnqR#XRq{dk$|V8$()sk_^h~N6VOIB^*iv62B$dNj49oxgc-gDvgUDOOa9Es4 zZ_W4enN{BlN|kE3N*K@k8sFt0>y`XWR0mvu$Xg0C)m+Lu7kc%|N;Q-7z2$0H(tXj& zrD?%v1t-0$Vcjd#qndP&$5p>l%w&BYpsiPL=_>zF_Sd|y?0W#F5=H<g?^pelUi2MU zwhTtD<Q>w<PcupEYJ9a$&JyM{sA8{B#X|mGqP_e#g5dHVNPai|dnNvR75*CsG3EE< zXY%*tAHrg9N3&F~mnSX7Q6qGoPsm2L8}nBEpz+dkAOnzBF^s}W{;C%)d)T0rKvrVc z`oG)BJca>Z-~VK2M?5O8^Q3M8fU_E&i?iTM>wx5)XTk$fgUG_=WxwiWyi&bb3p5>r zP^*3vM73Zws9gm~WAjW3?Pk2luhHzXVX5R-vjMi)RWGxe35uDeqMuNlhjv01#2<M< z&BI8U_71)ESQhBHcs1o6=Z4Np#c(Z|tyhT;c|o}#+;TDjHseM0phm-c%VE`vN`T1& zIAJwY3#(T>|4PNL2DBpqNI9ooSPuLmb}ycLrLY{}&7i!ZmTLojL!!@8^P51P7yGAX zy)_M0*Oz>=mm4nylTF&)l?<1Y%;1|Dz0LWRmJO(1aX7$^_@+KVo2JXI-g(Z?=0VGu zqL<6mGI}$&KDM)t(EnTdpEb?4?CjyY_!Qd8wCr+hmIH7;ZL6(R!+NFdClV31XTxGt z@w06|8Z>HLX_g2HBrL84xmvz?;uXXnp9MJI2@u|)*@y@reRXixwRUi`+W|>DOJVM6 z+hk~_TdLt&#~-$0i&xv*Shm=>WzU||I1-to?b)M`$!!sYC2W2zse!?NLY<L2%<E0N z%G-daU+908pTp}v+v~W|8{lrd{IOmye-tl$7z_0?EemD%f8&lld(MIwf@KgdNtKbF z?I%r>|DdM0GyY=BJijp5JpWxU(A|0dUayyX&vWbJVBL}4nChEdslNuI{<8lWxWN6t zK7q4rs&#)6L4Obcd;lx;A%k`$)33jDiK9k(*Yk28naLII!5N<)D~!=UEEx|X1APNp zz7#F{m}TKEey<C)ZJwRcpwdSRB8edwC_OZYscQqVn=}aGQZpO*67D($i39ttyyDgT z5`V^>K%;1#UoF-y3D({;6xPNttqXl(?Hs??Wns5ZlaM$!twA^6EwGUQ`<9`BEsqM= zEua2yRs+hPEs*aJAm2VTkZ&6Z$dMD&L#M+v$mv-y@_MO444q`~!>1o7fi{81IKYZt zbQRa!l19NmZ7izZFQ|I&P^h{G#P^;)QT3zzUKirKF?}F4r)MKyESSF}V18<7FrOP0 zm^WO|FyfO1@b?A4&kqgYX9ogs<Ro|d`LGD}3p5@2uBE5h;TJpYKbL8Ld8lc>0_5|h zKBxU>{9YIGx#6G&7@sVFw{GSm=@$BD;8T+TOrT{yr)F;e&l>>GI{>~)0DR@p0Nytc zfFmcI?T<kH=R*!x@}>E1*Wj2;@yJk9ybo(|sLv_BhTrQ#B%9M#a=}Ln;*$d66GMY| zaYP^%m>x)pyQ^_S2Rf+^4PiJCgrldE!=lVFbfUl8MR*s@ZLILULrw91wEXTqr}$2O zuM3?R!ABFd7K|*g?-yX-J2bHG85OXbONTU4>7xblmjuL54GrRR1A#bllDXq#Q1&YI zV&r?dItkb?m#78l^pl<VAIQZ2(@+zC0EF}(`keT`<@dS}(w4N9runl4^3MgxFAojm zmqrET=F(Y>SNdo{ymgBlp7hVahbQ4NftLLoo`T1b6VR>4%N6L0VZ8BknKBG<ihA0f z+bK`Ul#@eE`9Vy1PoGnMkl*V<I-6(rX?W?Q1@V}Gcw}f04~+`M8&5*%s)3X*7R)CF z%qNBh^Ws2Yj+}U2as)bHFM_22VzHiN{Gpxf(=yq=Gt^`!KsHzUoNS%n>q0iSl!9zE z^v)h(i;RZ5<*5a{DS&_9(18E_YXiKO%0}ip^2JS@@uRQ^6TUrC+(#BapA`K3{80FL z2n+kOed6b1{9c!Zz427)R9dg6e6e7DPQd(~p~3vuqXKh_!xH$j1@eyt$Uhny$Uhti z$i9fC`%CYGJ{KmE^<Qe-NOqVe915WQeJkGn_HM^rV{4`utd!vzk@J@`u)(sO`rFXV zF$=-;Y{zTttZAE6l5JAf1ZIB`YgI-YdI*$O%NLoNx>&wmekK!Dmi#Krr|>c%#nW=I z(jszoea9~H12?kFa6kRix6A;`Siv(b*uXv29pYP0orS6*s=@dh6Aas)TgdhaWP8mx z{V320vb1Tzkfi~cHNAYA?C#3}97}Lk_!TmLLx&2$sx|n5u-8Tmx$Gq}3D~p6dX7}a z?kq^nmnnOg+jwYn%A)6+NF|QJ+|BMOG|(h>9cxTqs&#fNg6X^J!+Qm$akvF#;hqC$ z5vUPiS@kS9YyMIMKO)Ukz80opm-~n;_akQU`dMym5}I|E9m~C`ajRd3e-|zxer~Y{ zUkTTGX#BQz&@YR?Xvz7xk-3nmW%G>s)gbpT-WPhi^Whp(37jiHBk%>PdR1o!?)Jv> zwOS>bpPE`*TT9{h8kj-~P8d^b)YofQA6_e5cvJp-dUf{n<%xtWpry%gx!xo4fa6e6 z9B3Qq`DfnUV|LF!^TXb_m1i4!+xqAOKTRyq6D>=NW!eE}GPp#MtZ&V`jfV!nrrrz# zwJ}r&6Z%+TxdpEE-IN;J0B^k-Gz)pO0pl*@sI5#5bO#;Kgo7!3=`d}3T68i=YKq>6 zmKSJ{?p{-c#|3~h^bhlI<qlOik0;u!+4x@KdYO7HA66qc`>=Zud~FmvVoMla0BiP{ zFS54|Ipg5PN)Zl5#w!jCkNHsmwg)G-dPHp(PMvxLED+K+u5Lv?SqqbOC;?hoq8`q# zf;qPCf$#ZBgHRLJR~}%7dJ7F%{CAkeAB1Nf0EK-gS`JHL>(g=LCgQ%es};D?Zi7R| zQjo=m3ieKLrJ3Ibx77MFeQey2B8jSSTBgx*Ztuf}N*W6O(jlCUbR6dVRlgWk*oBkG zHNvrpvlGWJ+{;RGY}z9e;?b;k627)Y?-6zn1!0O;=yF(u&l-`h@*btbT+{Y^B9Tf# zOn^}3&(9092gxt0S5t+`O2YHz**$08J1{+6xkBGrT%7l^@O1I3^dRpCEBV^Ix7WUb zZ<!)~E@QL7{(PlI?_nhNzNOzFaVDh)#kTE1QGQ{OptryaJ**}04+&-b)KCQeY7qGQ zn80z;Y?H-wjv3`X1!tz9L@ER40Q!4hDT}|pbJtdJ4Qp&=;=}e5QiJO@(^|8!1yt5- z?2OYI9@FvFxQoS?7K&~*5?L_)02dc_4R74Ar&;(c5E#)W{Y6=dPtrf)sN2Rl8ZU`a zZ^rfTE!>TUjctmssl%U_4rPVbXC`<x4{u*bsuw1QHQm0Jsg|*W-KG1&DF_qHC?J*R zGm*FC`(<<T<R(3D&z^L0EvWjFUQ`L#<@C|h$4}u@EWy1ThZZRr_UwVrEsnw^;x`$H z=&K}2daFUkisW<zKKl4^a=9g6k_eu-<$B6H24`Dv4U!k(V~ZOaq(L;IdqyU@?3FTC z@tlswT!zSw-XpeF^^5o=%Cq0AIOjr%PVC9?E{~M&xZwzeKO!V@7{ac`eLbh{$R>Tf z45a@tb?;mY^Tt7~@v8ptsCmfl-blC5u~_z{ma*3t%ZNna#>ddI6!s6lQdiG#w#HX1 zh#gkF`{vXV>!WD-U$JJr<cTlRy1M&WNv!sge(^SV56q^#3wdl^vpM9B3|&VV&gFE7 z%f_M2JBe*|*@vS!?Yn%YhEr681^Q9i!8AoZ;mG$8iV?7r&YJ1pT;^C25aE^w7x!fk z0Vi^A=iLcOBS62J9eDLJ`K}Wz@Q6>G3q2qHKN<oWEH?UM&d3r^!o8J!nMx_l1<MjO zGPM+jwJA~Rq-s}ckVA?(YGl_2ZaU${?5o0ETba7<pnn|3)tz~05=M}RIcHdnaPv|z z%wAr6OFbTWB%;H(rP#*H&(wv$Ala3Ia;7-RC(ByZ(bsf+$IjqEnZW}?&EOPfup2EI z`df+^y_zX5@+{m_az{4j37KjB>^w1`FdLrZ-qy!oW5<<JaXzXb7z$By5b_cGwTh2h zA&%qGvyGdInes}VBrMzkuHp&`h3d{c<YGv=`PyQpx<YYiBoWNglts39gPBKH=2P&f ziCwh(Jt7<w-T)?}?+&tB@eA<-@Bu9=#VPNxwV;;w9$k3cD`(2s$vFx+X}hGpvY%EO zqy4>XkX?AAOyvUoGce^o4kVmK%U;Y^sS8e<K@{^{e|-x-4pbK2Lw|mPIQO=~Ptxc2 z;!k5Mv&-g*8)@}A-{KyxFBR^?Xf2De*Ll>qE2`&0LA>R98jYQQG-zWQt@oID;V@n( z9HBo)@#opXG5j^uSa==2wNc;&V6=)KdSP@}3Vg*O5(^QX2sI0Cp7fFUyvHoVn{T7N zZ|wfQMpv)b4B`q+Ob&DWKKf^1dV2ybzq=3YD0+LR8RS~%t?(9fb7JfI#P&oV#P+h4 zN)SGL;Nh?`nJXsv%YONyQP|}TgFPm@5A{I6Fl6^65c|)1^h*fnpX|otoNxbWu;|D; zT&otnhfc9tn<8e3{#XXlAt`)*5j&4SqBuqbJND-B>$Ife_%?Kx2Au`&ZLIK{)ak&) zxCEU2Y9BaL#P};_kdC_2w2PoCgdkXCG8M*0)vwj7IOs+6)MtGwYW~2YW{A!#Qn;V7 z!hbRF4x--60xAD#WJuX{7_qZLC3@D0L>rH~qx~(tsXF~+XZqJP#j(O)4mHypT7LN& zX1czF(dFzDUbJm}UbGam3*Q<>N!R%2#75#Lt)CFnXsczo)znG`%`V2_-RFa9t&X6` zqvh2Ak#l7UcPDi|gtW^L#7sn1Kd;(Fx^EjV(ktknzV|2@WbZL8Xv3Wd0KefQjTzEu z=6r}_IoN>$U#@EuD~a$p+>LN?tNL%LLt(=)!X&I|ni{65oz9d@Cux8iWOrS5riJNP zJ@r1CPRz2q1a<WqG&^A(5zSC2kzSmqMJ!iurdAg6FhM2Ub=V&5Ou4hM!fS_`X&Ezp zHCpzNgIGrwUuX)-x9fabLdM1Pjw?J4mJGCG#9mvj&Bb6TQ$sF_<WeT`lhF4g7=5Wq zFGGo@Hj$s3*Hke2jxFZS5z592XNJODB}OBKn8^Do7I`z3T5<(OWi=_9XME;*j{UxF zAZPjHTY4<pF!D(?HYsO)|Lg)3FdV6ilmphp2u&wUj#%Yv)hCNb21-<6Prk4xG2|ej zhPps!VXWb^)~qyZa}*EA#aIRBA%M=B^|X{|!^bTSkyzjv87~Kxk>wNvD;au9x>V8& zbr>HCA2JImhYK=#B0EaegZ~Cy3zh1K0@knEUX?0#SL5q%;)co!RoNevq4vk>dZhG< z!$K>>AUmv<+4()+vw%J$fPU*xfL@6K8sEsfM5Qt7B`I}GdDUYw(ff9tUkzNmO&b8J z8+RRMn?4l-+1aM!hm<vga({^Vp3rQqq2wC?S-~K={|07Og?}vAe)mw={?-`iacsX# zvI7Z{r<Q{9l-9;-jCXm%z{gmB|8>CnGcnK|tpDBP;`?SKFqg4(AaO7@X+TUXzCKEZ za|8;urbBW<<`wYSl8*z$m8Z-~zPLab>=&LB>iEP^)B&eWBTwSCA3Ib}R{}WnDNLU^ z9i-T>m&s+8t4KkUTtW`4%NY-@3E<=AX*Q^4@vCg(WF{A-ucYU&PUT$2$jPJc*kFTc z@mH?{Eq-SVQ4TFWa5(R0FN3OJCvhcfc0ok$4dDuUKlS;xnNQ*0$?E?8P^<fn7|`+6 zy@^(refgANY#*4>8JmB29kAJm0p?&c_eNv}Q^GxoFq9~aMHokN=&->P*r`QdD_%Oh zAih+Pk8xWtJNShe%wV(d=dzYx9%?PWCx){4S|+SjT@#x7$UwmBdE@rcpO5c~0cSM; zjooT3l1e<4+jA1^AZc#T)~Q>+jXMn5b-ru&y3W&exXX3^QFCCoP>H(NLufq*n@ahr zH-4I}E8g)VM<+aZB$wgNWW2;xs=-~2k@aU5sc;__2>5&j{WF+iz_eh+zz@bQj8zz5 zX*cDd3CKY@$BrSliH;WtIB0W1ve>;6jv4UQRmicpQL1+G0O$N-GzN7X)Qm{~VhnB3 zIVI>!8srS3nD`+gY}GP`&U`xQX(MGjPNHzR25%ZT#T+gMI2}Md<RauRkq1jAi`zQ< zX2`+CdktkXMApI*%$zH)(dd=q6O^Yi8IiN`H(%?B)*)mBeE~18Zo#PI%`!gF>@c}k z_Ja&N0cK=JTE<`B=mxbSd$bV5t{$<Q$M6rYxANy_l4_YAB>f3)w#$^c67IR>Xwp*~ z17}yHFTiKue_*)DY-)dM)*GLyM^zTMWu<2)3`4nSx_|ze9~|ibc1yg8FgI4XI1mE0 zRsWyF5L0*#mdh4v<S#jo8XtF^|HxcjzPiX-t3`u5<^SpF|7l0ieag*KKX3O4wZ9nG z&^d7)wZFh+uY-@M{k^lZs8YtS7ogWL4ucG2%wdoq=;1Ipwmu@7h0g(fPd5vn$3KOq zutcuE;4&>4+w`Fhj1&A&?t+@PnLZs^?6KLT;a+?8fZ4q!;*6I<^sr@t^!Mz6XNE_K zS>gMegJPDqftS@>kJp%9Wx0gd*v(F_c0<P>gTmh0LYoeA8CxG1E&bfx8Cp9YGm!6U z86%EQ*WFSx5P}NFz^=xF{Z89#y8fGVn7x&#y0NVH4z@Et*kNaizvkE9hP+*ENIU=d zKKuk0-ra{kL8S8n?ZY?hO`Z~OC{BP(o;I@CA~?%Z`aH-I+AleP?fLZ8d@U@`lD@U0 zjO)l0_x0@BZka|OFM|Moxn)y18+UprII-I%2brFQm^b-nTHxuu$!P}tN(mnsY|DML z!<I8F(yxB~?Yq0xzH323eDnQZEQq`L{(zSB1=@Va=aSw6jyGgp#-@TbwNmjR*u(Q( z_8x9hd-m*xTO(Uz;NeOJ6A|i=i`hq>e2)Iw?QFW;y}PtD-00_R5aHjpkh!z%9vlQf zI@=J$*mFX7#{$V4?WUWsDt+Hq$-$gp?suboBDT>SDdpY!lHQ><2?QCuA&+QXZw_k$ z?__o+roR+D04=>*rdjb6Q+BBqmdW-ssPm}{$T6!ySdU<l6Z0Fb{Zu|I`BRl(iYyg@ zE7R}UBR61@dY*n!p|mUYVgo{}*g_``rG8^~bZY5tY<-;DnKDg2&@xtU=1<VEgoj`{ zBfGJCW(Uyw6U&IywVWN(A)Mczgkge7anGL1<#3H6Yamo>(HbExOG2m_c+)Dc#uoY% zwUyGC3Ue}|cEa{==hASW0<wo&P~<Gfu8vUYRk*zkVmk;U|5!`Uy^&9_F!J{gJ9V>U zjiI~ffRp~#`4?jA-1B1miSDw%qA;DWKat?xc9ForMO-q7KrpUkut+5L0!apY4kV%7 z({6m~`imfLzWb7)5lX*3d&0}^F>rq$ZR{>;^z}NZ?&+4D=Ir5Z0)pPOo5Rbtf8M3v z+0wT6E~U}dWs$9*^tW~XRcz}xr~3m3Es|L)54CkfcAl7Xt)5+<ZyP32_z{}?Sm7TJ zgafSz`?VO*cA||(v=u$6n01TwBP=I{#*-p}B%zQ`;vs6+a2A>*N~u_*$T8hp=i8iU z8O36u1R8WV!3GQ6p;rke&||zdM5`Yp%mvOI#yF&va^e7*WIQE~h0VT&AzBjWw2r4s z8nJDnM}C_Nhfq4Hv;;v*oq7_riCs0-Rux5RuSkH93TLB~(Hwz7QXU7PtK>eKP_A45 zmb89JNb6GrkrugkK4)4mraptM*2SJRAqn)kYzMr{ojNwAG!ue$sWy|I`v5KMY<@>( z^V<ftevBwIo6ndQJe%L{KAWAH3GWDJ?BTd!4RY&a3)g=Uxc<P5(l1<JFfACa&jK#v zTzT=Mx1pdA`F=1CRi&Ud6f=dn)I~Jt9XfJ0orcT98iJ)E&7m+^JxkX`d^L5ea7r92 zB6kS#;ykhcNfgZjnW}aP+)XlGdS7x0Cb&aK4twK=5dIdfP!^CQ0qT3f6ZvphM&<+v ziWA7e0FOEv77iE{xoWOtf--sXp^jIkSf>hJDr%dG8No?mW@;9IL9WC|QLUas`5}y- z2sl|}gmeiQL0V?n$F>;wa0sleQQ&uy%!Utn`%>xjUhjMiaJp2L!aC$v_Wa8T(Ft65 z#Kph>XHZVUbr<$QBxb@`NbAH|A-p-V`mf2oY{f5AoE@A4sh(Gf3mwr;W@Q)5!ksFQ zp+8P!;ZqGVnwlgifQw=jqN51q#jZ;4l;t9!+*HU?DWR`;$f7oH6~PZ>aM5*@farXH z<tm}{Tvqx4x6I%=2){;Tt@5HUKu&tN(3oi2Hb#|7u&@u<I4_I>VG>>=v~4Lvr*|fu z##hMy5!{bt81C4<l1iMVk?aF*gFY4Olj$f-0mrx-ldJk828r!pd1n{^%4KsVJ<YG5 zNzYJ+D2i2s>t=$GkFPbHM9#=WRzemGBMoE6eKlbdwobZpU#-yI0W&XASva5zvkl5c ziiJTgFTW^s1Ycc{^i_rF1R4-MP?0NfJ@wikhnd=)H;5YEvE=g3n?g{eW;MxZA`me( zat9OoN69!Y@I@1p)MN=4vj^?w$>fyLTr&m6iK@`G3{Xkp)A+Dx(CAl0>2x07oC&o# z=cdUSk2nX^x1@8xeiMi8`NZ?j{HU^8Wk?l~4X}%Bhm*12?Q{6W0MBqwl8YuvD$okZ z@12nIYK)yj6g6SY5`)^3SVNZ`q^ISLxyfmKBEUItyAz7&Vp~R__*H`>MVJy1E*N7L zTS0JexrSP6Sa&MeM(M1GZxO;PAwv3;NMLeZnaOzLXAVvf162SpE1;bIdgyVWwRC8L z$tF|G){C5m0^As0ZeXaigft3}LlxriO%@3qNQ9Dc>zwyqOA+esL_2~_;pnm>^{bYM z6;LvNaDR`FjTl9%VW|!lC|Au}@eSrClsYX7w|?nFy=M`F&I~DfkH|L5@Nt3}!zmlw zA<g^!5LQouCiU?}8#m5UGGKoW{;^T?;%H)G{PX5Aw2MT4a6Tq?ka#X)9+l55#<)6m z=;*>!s)(y0>}QbvilSD)n79n3$~{7<1N~frHnUEsg-8(a8W0Rp%wf|kRf8OIfsCJ- z0~H^@fBS^1?Vmu#0@Bn{<cP2?TJPFg=!_+3ayF2{OuX}i>`LBQLYrz12&};@EN@gh z#5+$}56SlfxM5yz1XPW32MK_oH+4-iUp~oGTd)f)5kIlDYgzLdS#wy3%$hUtrMyQR ztdQ_QI3^4kDuRatVM{Mj!dW7Ew`~dRy6H3#z&%c6$Rr@{aET5Aw6dG0c$HS3aDyLc z=;`Df3cpqn^lrF-JDs*UBp&l?aLl0Mrf6^YMhBiEn|qCg9E3!H;m~*%6wO8CIMJ)b z#UnwNL_?BbVpY`+fmJ}#PbQ@2j&$RVN51c!g_J;-l)2Q*M2aNd3Q`O3@FW_cAqDg& zL4ztwufylP@gU`=h>$2lDH??uTj>WN53=J{0tYujGh*&rIDskbM-3AvX7N#_b>L%# zAfrif<v66^!4b^TVx?ZCx~sx$WJA-UBO?#x88?WF5}jwRQveyfioZM#CJIOc&dB9j z3ubiguV$*GZdcUTayT%KBi^h)nS7)3e-+{i<qA^loslXc@dXl<c_NCONs!bDN!i~G zvx@>Mt%)8q!;aGg&DWkMM5dIF2=XNYS>Zp==ZC5biq56%rXpnF&PrmZUTYx<^R0|g zXlKc%&LET`nHI4t(DCd(z_gN~Vvsmy50SiFt--!zSlLliN=-{0pbU_KoZVP>{|beP zk%?HHLfFk~dD39%DUt9b&hFZIi5zB$AeD5+0yB+{Tp0NPvINnJ{tZipq=;cDTtei1 zl3T(lH<!%7<IucB@kPiV2Pmi%tAsc~#0l#wc?}k!U#D{do<t-E=J^s8)wB6Yssg2i zQ@So0(!)9N6qg}J^b}BxBPzr>X2Yi-#qq&{GQ@MqL*6p&HuogZGofWRr`nl=eAeo` zc2dE3tw(8O0UC%?bVPQflqskz(qzUva(D_{7L$?t98El`S1J&*h(O>=gAEG|gG?-= zO^nZY=Ws-Zm^RhP;y!E_=gut5Cet(NIWU%Ud0ZrH_dpd1)ies1n&m-gJWQ1eK5Jg8 z4kDA!M~WhW3N@#LTtN(q#8Z+h)6?fu31FP>S~9i0*nx2HrL-T$5ALD#%&L$(9;p-! zs8zkrG&S@jh`?tRl|T`1u;O+*ZZ8%PM9asJC=j>BAUl!JONv}$B(o5fG+I?Y89v!$ zNAf_p>H(5Uh>d_fq1INf(lUuzSfQ&tYlj!}JRl{XJe4m^#t2D?VxS{Fq!mVGuLIHR zuP#9Y^kPX6{-myeo#{ZX)F{hc%_9^LxJfB>$;FRts4qzIv7x@$P+x4QFTj?dxD!^^ zBG%};=!W`YLw#XIC`aqEp}yEqU$CTvEBJ=`g0oz{5b6sK{Mb-nY$z~_T3xfDz+lbQ zh5`d}+=c>ULxDjGA*iUn<`fv#vEzS{f5uqhPmP;KKaL&RGwXNJQagCSB;OvQI9`aw zDE^}BiV3d_m~a*yz1<=!^U{mcGpS0MDpj<Vs^}1z*jB89-su>LxK6o>1PydjTu|5x zT~vzW&^5u=%GE~d5=gy+6^E*B;Pt{t+$Zz)9dVz`zo8{$pUjgt+yFNl6dHhTkkp!P z3guVzH&g8q)bHz-pk4~FKo+~`pMIkh3U|`m8g{g%xy0P$wgkDf`05Q2et9nt;!r9L z1pL_KcfX-R_SZ6!i-wJ9tcNt#ABRdKNtOY9EIdex6p~C@My<tGP7x@$024Z_X%w-% z?4=(dBUbl!rc={+P26ADo`9-ERj3`gduMzoK)EynDc+z<<yVoPPZY&UH)&j~3Ms;@ zWaRsrnx-W<p5a(wdJuxkD-L$@Mk0(!G;NLYZH-E$S{|C!8P8|OkMoucQvOj1JlS#9 zb(4JR;=i=Ghqid`k%wFtKg8RYCcNWRu8LSytR`WHUo4VN6L!W53j-mE{0dK)7UaKo zatCo1LtTwuhULSxyeJ!zwm?>py^gGEHeuK4!|;%ze9_})q3p-z;4j!nRNNq}Ue%s< z<Zyt@c%+$!Z5F-;=mm~ZVFGqn>?GqL!kdE%6_PzoS0I$sm2_~!EQfk1B-5JImA0w! zTr+8EzBVRf*Zj@0=9kP04sf)eOwh*Ai_fRY%}eznimI(smoS#C`QkefQ-7A~RF=b( zm!20#ytpl#PF=Eiv+c-XZ(bIruCk9x1ll~LQe$BW;p`|LC#oxDhL0QI+3Am+K48IR z(>fE0*n5>dOgJ%dXL7WFn?$Zab#nxmZ0MuT7iT7mym9)rSec##x1|qh{b5Fbn1!E{ zSejU3NFhrXWl~C|Sg^n>A@snwoS&bkDLen;abOGc9)<@^8t$HFW+uETxP$fCFwG5T zso`F3INN8#8E&|r8t&tU`}=G-%MA}w!voy#pwo~hjbvpgJb}_<;vwHM;dxjVVS$cX z5uu(ZIW7M@4Dh;FgRI@VcenHf3v@L{sb7%u4Aw}>kr1`M(xKIvMcAq_3;6%tkMlV0 zS;eQd&<R!))YICbq6M^{NzI{y2o>EZ2_c-rl!v0&huO$WkKxRcIt|)!=^I_2pE}>U zYg*Dlx&}4&+chovAYFsL`|X;@Vvw$9J9e!wLMICE4B3Is^1>#~DN|*$3P&f3icqJH zHt}BLXoaP#1ZE@Zgx@Hyih{^Nne~gE*%*Z8yIS69Ewp;^u|9a)*8yYe$kn>Dv~Eq- zVP@T$ti#5-HCcy&p-B(!)sc1e;9ITirx(X+eg7JG)%9Xj((mZGl=M4#7A5_Tjz3*D z<}?n@b0f~MSV`ws^bn!+CB5f+Rwn!okqMs}L?$eJE4?kZ^F1UMK85cr5+eDb=BJL1 z0pX5Z+Rt7SzVNlp5A`~HtxwaE(f11(y=xFMGI#EsL_^=hG}NKS677Tp$;<8Kzg|w; zdAYO1tk<CHJ7xkLk^2)2!uoNzjqSNGTZU|js$l0yD~ar5$ij=z(dI&9D`J-XB0g+G zJ^{pkHlMZmuBp1lj}vNS&)i1y{iibD_uwC$#jT-X?R56F&Zpx$@%j8*-}5Pa46hD1 znLB$;rqik1I+>2|#3%C`FT`Z-?lqZC@<QumI=&O1%zu0#Ci609GH!n9i{F8=lpYHg z9VHO{Wl&i|4%X=b1^;z!LeklYqzdV5M52UrHWK+kk<G?x^l@We=k7Vm)rfD<KkczW zEpKmZS4xcL+q)FyYuv2fsv+>PdE%9vJHytAJb91ZtByAH%;?2S&8)6R*9L`!EeX~x z-$4KLYx6PUz=Xwx)u(qzzo=`+iR94z)$hi78bP)Dt5@h%N4Tx`AO$+yBk4Zu<JHHZ zEdV4%YT=+JrY>zfX$1Y5c_<U12P?uQ#fcP1Cr?19(Plv6I5&hRWjTMtr$0h=rtu|I z>|%|l=(i`@OhQw%Okxtc&I4Nt;W1J0bSMg$BnnBQX%8b!p$*w&vp@pZIJVzxusypD zwh^?_FTTeQ_d@qEi|*?^vc)$KI#zhyQ20&~zK@Iy->U}Sd)x87giL-+txGVaUiOyZ z5&-K^+Pi{i7Y_j!6lO}6oEp@E`=MS&yaCKSNEAqyWvW>0vC5eg^(_k_tj}CR3s2g0 zc(EX|>%+i|6&8nDpA@an6C+!nrdgl4_VppW&rK&`+GtakL%$7{Go4C5FzLY{Nzun} z>EIe2Do~JD4uQB-(TZ1)PDO9_AQ?<zI$Cc$*JJf+cJ;n8;k9eappF$*hg#byTHET# z*7i5d+U`SgZaB5+Q^o8%j<=mtxgRJIkPgCEn{T{AQP#$yTdc3FkR^`etI0(Uig%(B zb=a7_`q;_YxdRL9#GHBKl?>v@k%s~a2q;WT`UsI!LK(G@SIKXoh_-X=ot7lNrlx5r ziDx)g_^zQSX__eM*^yC_J-haI<`U`Y<jKB-lsO0~%e@x&NA2QX?~yIOdC;-Kj}L|K zG~xS4MuzXxX6GL0jBm;h&>Gijf>OQld@l_DoW=0y$Fex(Va5tSKNL=92&W$(8BSNu z`Ze)MIM^Ad9D!;gYAH4w5wFSev8lP~RVPgY$1{^#*EE8g+cDi%V0ih38CPHSUZ~;h zB7crncdYO`LoM<wE%I+&!y>PL!E0<2rxmI4Kv%Z{UBu+NcMFZ{xVRWm@#5b=W2UZL zBzsa2d&_+Q8DJ@RT+XeyV+#_qEFxwc%PXmaFnpjthMG={f<$p9e%`FP-lO|w6X zB+7tCpPMB?IjGP{8y`)j&Vf%<1b;!m#0eWYxd&c`NM@W4Q;AcY;Rl%ts2j(_$|esn zzE-sm1zr(&E;%S%M*#7TRi=2jJ0ST5c~>b^xM|w7ERfLA{#s;5egRi}I3}6N4#v}> z=tf%jKX>sVEAuNio;J8B$yW&p4S`qqiivk-M$!-DCATy?1|jjA%}YQl6=jxvq)bwY zHzE_^y+H_H?}T7^+@A`M`;(z~++3X3^mLWKxM}mIO>j#Pu^J9l4yh|Q`6S%r3zdQ0 z<oD}hKiBFeuQSL9L&&H^qPS&DfY*uNXY3XDEl=<jM6$PdZ8|O1U%{(xLIvLtm+HWJ z)oZy}XV<1ZK&B7eawff5aD`F{pKIAXJW-L|)d2;!U=eTQPGjyZn0VE4tdY)Uq`8>7 z79l%GQW$@Z@*#CjJkfV)q_$`SUgI96kzTegMa9DmZoN4kX7E=;|8jsHf-`X8E*z-Z zqIt1|gY%>lN)aOfB%_jKvl}!rG8)lVr47Wtz?;)%_b%Lt9Rf-6cKXLr@vrY#Kys)P z@p6dH2HIAw5ic{>5b?sDYT=glYd`T>|ElYWlblJOPrulwj+{0z8wrbauHbon8Rxxi zjMGI-oOymz3-cT&8WHCC`c~%In07g5Kl9Z0y}=t=spgx7cwaLt@xGpjm!{Q9ytCIp zyxeJ=c<mjpaT_dL@dy|jZ9_pYZ9jGmxZ#i%r}qg-T1Q#%C^4W;^qq88JxcQG$OI`+ zsNpnH7cOMT#D&6bB(X7Q)B;XR9`YWUyI*=(d74YIFw&k1Fv_C0?(cTV3$o<-L6$sE zu|U3Q!LdLmW3fONe+8D#bCeN~YOhkZK9b)oGS|b4+%UOPC1okD;9`pWwGje;aLH4X zq<my%+UlmMVsa_hv(3(mM0dRU-ofN~DpcK)6AuZ$bRudgEQBkn3u4FQEUMx-rK*jP zz1u*-vJIJO0Ug9$Q3be>!UkkYGpzGf=aFL;8TeFYM8qta9D<y%5_jR0N4Y8~I~hi! zX0*nD9C$&NbA;d^KU|POEX>}d3Y7tBk#(DH{&m>SgmZMgnN#-^w?*wa-6MC9h;@Jw zDN{IQ68F>%eQ(M;LnB47&yheoBY7a{?jL~(BL^Jm@=3R#7AxWyFBuK`h7x|JSs=YN z=dR>YZD(z%aH%T}45L(vG+-Hd8Ef=KD+ee~E+TlaPb-8dWG0s^>xet5!jMSj43zPs zEQUNNkrW#~)W{u2Yyp(osMlv1h;}T*x}mI?1o)$;kDv1PYmB(Z6Ze8wRMtdOb^@de z8q1V@E`23f!-8`FX&eF~2Mj~G>#C8Y4F@KW#S<(C87$k0i#n@w7E0u(YUzuhr$q28 z!BZeDm1~uuKR|0wb0H+El?cm{4%e)UyA<&};egOUqNtoYGmFScj$<z&b@GKghC)sj z3lfh<!LyX_S3_jhH%paaat1h>C{eCoOQMK&NO`R(ai!u4L_^hZi9)?h##aC!+e}lf zQT}W&G_2MJLnE5qU}zf*jdk2#oea&&epf{HTQ!p0AThzGNY>XvU_bZC&%5_YwTDD| zIgI9V@3m+yF9gs@qE?vX!|f_MkwHLjcq@UGkPUr>qwa^lUh)ij=;dy2!&Cf9`2$!w zw-no3X({DOxzu*0JTby)>)Yl?`?Qq#ZlTP7Gzew7T9hRsPC`cOMRe~qTtvB3P4S{d zvHrRj8(VPWVTtAn1d7(X%QCVB*O}<(1X+jT_&U;=;7C{ra1GL0QxOQ)n2t^6W$IeV zbJ|6RE?|^3pRQmKm|$oO;C&?)H(L;aFB<7-B`={(PJDdOAqUy6e}71v4zvX8-f!vR zhe9ByL}GO1-HuWEs((Pp^)Zf@<w|k9JflsC5h8C`inf{Y6DBi0r{9mq{fq4qt;KT5 zf-Ct*u>X>}n6$1!ln?wOW-d1;!nlSDcqnN|+{rLR$^G8ALZD>-h5-@4>J>mbaV%*G zYd|Y&W+>N(<K?|l=zv7*<bf1bnIapiTpAXRFmC70=dud$Wln6(Ys@I-q=iWPEm;yG ztiHYbXn-F@H<-5SDx1}8&z(rhTR@6(JzYgZh$n~dy}IX68u)~{0}`dFLQ#{-ik*hB z1oexk@G|@_DMbfiP)sox-D2o5B>gU;;*cJV`ci1ow<~j{bmzl&Ddp!Gp|%ore@IWp z(XGgx*9h(#`_jeD#=hLxmoM_Zw5R+><&^)(Ag8>E6v+)Le}2xDKV6%_Vob<d<dkzS zv@QLx(P(NVUq3p3oy=m09CZCyh41eJOL2Mhvsg-39{m(8t;nNMn>@O2xJhf#bJ*sV z{(evB?{^2GKUd0(hy-bhty1RPHAtD<>3ULT;}8S{lxM6_6*Z`Wp~WM2GV$4}2asN% z3ATzh76=@p1$?gbxj2fREGGY_VDf(qf=RQJSK~X`F~7W2?M!&Ds%_C`Y|*bkgoy2& zUZ$0kY_RB(TW#`K6_|t2hB74Pq8~#j1m37lE@tJLrpdt?S^RB(3HHfYVJrR9uhp2X zFq=&aw!%CWv%)m)dK^^+aet+{Jyj`_<=v-Y?fj#KX_vrsrx{@o?ZDHtrW&|dmbl6h zm70xZ+%=dgpmar^CDf4PCu00@YeW(kQqZRoN4egTvQrp?T<q>a;yqOsRsJS=zAya1 z7MJ%6F7F!(m){o0rL#XKmx)G`M59Sdqb-(7L!;I(D((8E?H)$TlSFh5Q0Mg>H5o1^ zA>1otDHJZr_U%maXq1FRLe;M6<^!gdBpW`rtY)H4#knu&5#rK6Mi{(MwHX3;q&A)r ztDfDXCiFL)r1F*U@V$Z^$96{*y`t%F{TD2q91%KsWFR^rYwT-H3+4lFjq!ntzX(sP zbF3Wbyko?mNQLxBRZtef&<?t|%^jNb9+~u1(L;5~g|dP;OC4v9y5hEF?@Pdb1Wg&7 z+F*ODP_Phb-C8-SF_((Jy<BCDcQ1;~9f!FIVXd_w3-9TpXU^f4i_&$t8p5&zn-^T> zsH!JQw}OAbS_WcbgQ9coVSA~ao-VfG7{^dEw+dTk3O7nsYf#paN=<6poUs<GJ31#T z)K*t8F{G#jLGlfKcE&w3P^S)oaAuxjMZtv{&eyo{N|M)@*-&5IbD3HO#WN9PWzOx5 zwWQ<ht9>o)jz1$i{<PV@gPgK&qmw~zefN~T_{PnfHla8i=L6QcP*IeK3emxiPxPgD zs5*2>%5exEd;a9(7vc3vG>z?TwqxrCA<;tnXUvH5QF#ui+{fvCRy#!-#wZ2loab8( z4I|70gHC#=<E}JNq_tE^di0Z7%>+oa0~@$bb4)uj<(-yr(|GNUh(Z&ghRu<^f0=>` zB!=EEi-xL{;cB-LIR;>U@wp!$W`YsznF<JtSHbyCDH}L(1&G~L9x+&sg>+P)YvVx3 zeXbxrnUHM`PD^2qm>)QzDtrk}APxeWmndLRgI8wC;ysoOVIVwXs)CFN639p@AGAGr z#DT`>0~PW}^C?P0#<z{&REI7p>)ap=%nl>7x>}cm7u6qAkiJ4}5ZMNi`9*fkB7zw; zky#%3Ey5$;JQR<7XPig&47O<ezN;s4_`+h`m2eoN<=nLxEzfd^1V}+z^R8K=+NreH zvCq@{T0FtTtPx#<u86_zVX6Ga?wE?JiJrkqx@w{#t*oetexOZF^xA8jxR$@KxgSfA zZxw?4jzI|0RUG{Q(Iibec5y;kgMHVaIO0yVFwkb6oQ6Pfj74M|LB?`6%`q;Y{%LKu zVee_5EMFNUQK$2Tg<jGaV~Yn>xKWl@kfXz7-6flr$ie3N20<6cC+Qt<WT9vQWHmVK zd0Cv&FhZ%Qk5u9uScd9t4TZ@~kEl~_Du`2wXSP!6+OnF@aLrhDd&8M%4>7rp;86}I zY!+4~try^14K)_6YDlq<_=?)HnH<cguySf~h~5OaOS;wqGLlf>BiYYX6(EQzSCB;> zhOunPm|<}lQB}`@JrqLsaiq$LO(xe$MVZ401dHBW4&qDV5Sk*ii?WxH**I<(Q}#4; zMNM_~3^ikv`Bf%c6EkGYjt~!Ea>lUkYT&l5+;QpdK|LzoVGMgP(?O*rlA<~1H)w}( zwLv@L%H1FBSZ?`4!YzMr5N>Id!#@;1z8!~)AB9qbgP4hq?FPt$nedLLm}ZnH@FAkp z8*~v7r)h0V7sj>DdCBH=vzwH(jmySSs%}kMD@e>W(QHt+@J5C2@;>Y~crch7PlDK^ za_Oa80dq<b#Ffhcd3V1KwX&hd;2H<|X5%!{N)B}=VirwKtmPHlgxEEA9PGi?7MHA~ zBplF>%E=uUEZ5#YnTUMfJ1hD&q-)<xN*#FUUhz@eo>(Kf%`!8BZ-s^l>N%7w&wztq zJgJ<)m<5loh1sx3cajLV8(})aNemC!Sgo&$)v~+xeX?tRa;RPVBk^6^A+v99Is5~z z9Ij40Xor>DJ--&@P)5V!a930dKmc>FQl3XSdJtfh9zb4M$)om{_7q$v#JNi$u)|iS zQ3vok%;New0q%@XJ}yfCCf3IlrGJ*zi$&=ZkS=2Zxs8dwC!}TO0a{qf`E8+`-x`E+ zT<Q1&L_9Q)R_S>EHAu(Y>BqR!?y;EORyM_1L0S}Y&cX9K96TaQ)2Y(&wk4%*_~1d- z4dSF$=OUcb&&?<HsFEh9sooI<_MlLhW4Hq2g{V!L?~n`YDLQ0|?DT{uI4*Dz#CIgJ zfar;)bi|2sn>e+u2N(-6DKqpj#1N4_5UsVQhlG9YKBqgynd*v&w!L=dQVq;~0&*qb zN_!=eKb4rT_K-V8b3AO|bc8sit@!=Fncc+yd%8KE-&*(+*^_@f$euJZ*iXf|xw94a zsI4F}jdGx*GEZ<EbR-0Jh=iDs^>esgNX<G$F<O{p+BNQ)$N=akmnZ0!NRkNoQ(6g6 zdvKX64oO)o1mX{UszSDL)DgH}K^g5Ai*o5K<NC&1lH@_7yw*IHbhn^-nGnl)$~RF_ zuPa5xm8R!dH9d!UL*~Qvip^Or7>3w4um=5r(vtUqHG8uBl~D0t3`NC1-9p9B=tLD# zq9Xsc`1kSrJK_)W>v~z;1mTy(k>-h4Ae=w{EY7dQEp&bj)kk8Zk7mQc>8=)hyg$A! z<M|J@KKPmVgDxvq3afrKT#K3~ZlF;<ij{jzR<5-VlMt+N`x%a~)!gpWA5Lp=slzXp zc;AeE(fuX*r*9u0U7GS|iFn`0kgYGiG;X5lfEY2IErU+yta!hdKmFmEmg%^^*y*gw zbZWy-=Pf;^6Q6<gFzJvEJpVzU=Q#J*n;Ps&Zaod@#H^nBW~cZMWQxt9ruYe3vG473 zir+1uuTOK^3DTM5tX>-P-9r0Q0__KehxWZAg?4Xpe+*jsZlV2Uf%enGL;I;wL3<P7 z_CPYdPlIb8Sa|=v!2559hxhZNf_Dc~Z4!464Y2dXLj1o4;y)W6;y)P(;_I<NZ#ijA z+uk8P-Ik|z%6IH!7JD20Gcb#NjyCKqXxbyOJRcGXelNfNhTWVtY?MA)7$*eA2Zx98 zm7{~vP|#)&lZEk{1;*D5596yx2II`MUiQuSXkok{Fg`v!jAup%qd7x1&!im~%K~F@ zco>7x!D!cd#$D^T35<Vlco?4<2*&HqCLYoB5@QpOILq=LnevYfHRWF*Ht{2UPWgxV zy{>HHfChJS`hWxDa{}WhhKKRvBZG0qh#i~p(Qd)d3XK0|co=_cbTIBUc%0em!1&(< z#{V`vj9(lbjB^&oIS0lYZslX^Z-<BRuSW)B`k;XkAMILygTQz<{WI{<%6sNcH0|eT zl|6Ia*~Cdb&lsCH=}h^6OnKi>Q~pI_6SI9zd79tr#wMmM_r^!NET;s<lf%RK`jNqy zwrm0)EsV<oV{UjDGb4j>+Oi3Jv@kv`F#et4VZ1Uj7}Mt7v>6{Qj7@>@`-X?{?~e?| z84DvmS{OedFurei7=L0Q7_U2<Sm?+m7Mv;nhD`a_hMMxHiB0^=KBxRI_`PmyV#Z!N z@X;>I^8(|49v;U3I5HU1R-ng63*%o1jQ?+V82``6V4Sw6AU;|cZ@Z08>Yen@z^5Ru z_04G7&neh@t<(0>fsYo(2L;9lhKF(Y$Y7kd5)VFF7+)hWe$((U9vle9e%VC#_uhxS zDti6(-)r0``qyowy?iSgZ115&Dcp@znT40)54HF<w6LaUU9s*y*rZ!j+E$7AkYm+X z{{G_l1B(?q962^9&CCXBW0$Qg%T^p}*?xssUC?{kbZN&nG+3lJzQLK3<bTz{b~eb- zeJ37}*Ba31hWVZ3(77&g!FNdnYKU-EZ8HqZ8n2yyv<UnzLEt+FLLkNWz1_6n_`Y9@ z$M@}kbMGNa8biLlAp*@LxJ)H0rBsQ?I?C>{3S_o%y3sAmZKT36LMHA<3hU`aH?wdT zJ1(hKCAs2cOC3HkxpI1U_=2%t1I&G172!Lu!z!m@IKH-qoMiJz-&l4{w}fIFyrXAj zvK)cjTPfUltErg+0PF*k*_D=!qjvCfgfK#Q3sEi_?#19k`rxP=HsS_l_!7ciNufk4 zMwP=7;n$JD{FW*Hp3IpNz$o!W`c*uR4X&dq3944u*#nRaI3>iC=Tu%DvPQEPutq70 zyXaJ`^qZL3Y4{e8yA7hS@wnQB@#~i;ED!o2;XyxWILaUqhrdotTr;D7vi^NC=EX;Q zW0=61*=q@$xd2}z-a@iRW5IsxP-XU{6cg23H!KhD*T(?&2$|Wz+nUf3cj^0itc>f@ z_mi|z5*_oqZP79F!_Q71TG!HrC96*fS$%R4vU0utewQeVrrPTDci<Yl{<u?3u5B?f zABXo6u~7C1;$sFrbk%SbsVH!OQJe>t>>>{D$Q#->$eso4@?%dA@_$Ot%V}(%wse9> zSB^DDo{Crq3mprb;(|^p?umw{w~-I|B+UB=Oo6NTdhaB(b5xAet@HK*4xD@de|8+s z$WBNnZ~x$&OnKV*Z=LQ>wq<}OWSh;#rFxZzR}beda;J)g)Eif-jV1i*T|&z{J}<oE zbA#{><DK|>gC0r$-aV2G?JgQ_4CisL)xEskzuY>QYZr8S2ma>x<5$awy#lFUsc~oE zE!iR@V)_wY>Ph9KPQM+sJSG$4GWHZAQIU2|OQ~z}Gc?c(t4IxhV5zcETL68tu`@mg zoMXsc+HBluhO@|uA6;L@3c5$v^R%LJbUoj8bS;c_?)o?zb+?vG|5C{G&j%q>_lSF* zD3wssdc+;Ph9izUjURD^KZG_x>kBTv0jJzKkPihwspKlwyA|mOu27mQoB(sEl0m-T zX;k*{IO36r4iyq=VM&#q!|hFSjqy92y9bnsz(+i15!=LFD(cmwtLg%zs6a=SYJ*eO zvLz~hQEP{b0O7tRxfyq?11b@O2`_o6bW1=?@ylVE9O98A#d{<ArE-)ATg7{4&mBGO z9XWMj!8>{C$m5S4MZ+X2w~n8OGcYO$l)Ve5Pwt)GivnEa^X^O9)zuJn7gn%)LvQZ9 z_}~*FR5_5agpe|wjm0QoHjsS%ki2UHxz`1`mapx)oweF`(mw-hwZBMA?N&7Hq17&Y z5lqRsJj$`K5MzaRnFGd22PV9cD=XRGUENz(bslTVx~TJZokDsWUAM>NnbT*<I=@=f z?G@C`41_vT=uMdxtkC--Qs{L7bKhz3>;OtA3coaw6yEqLq^05O2eGK2j4&bu1sQ32 zLeFE^=60e-Wuk`-*!^e?XrkY2TJS{wM_hCHN@y<Wa01B4PR<pAu(Y`P=&MK$RfmdU z29feQz#a=$_ReMlpMv<0RS_Gq7FI9o#>)ZXED;$(Aypx8C9xq;eo`VbNKiqgh9cdy zS|ysFnhK-kR1i+(o?2VlJ2jD@zzsPAtWxdKpoW}7ZjU&E5ZeS<PWQ6HucU%1=>t>C z)hQ{(lgSjPPUTCd14$APn-x|IXH@wq$qc}m!4T5R)Q^c`bV{Ev?x$9eafrG|mXI{t zuR`s5$b0^ocUPfzEcwqr^TRloi++N%zSR&@Mq9ed0iSXZ69RCILGq+Cp2Nx9l&*BM zq?e;`xwb~h9_ScU$<>h6?JCl#A@y1&dl|<eDLf%2P*`vkDM&$eMo}p$R$W6&w_6RW z6d#Rr2ly10DN80Vh5~@psWi47PK_f#)XQbk*3cV-IJxhQ=XW)#=kVx-r50<qdQnEl z9(se>L$d1%z9Zl@c4<P4k+a_V>-=hVHlkm~3U6u|pi7LwHdLyj+d$zG+Q4L0$O&I3 z7{SAKHPQobBnQDmH13HXv)y}bRE@I!8^p0#9s-M%&RD#71XBA3;}`+sFiW(7(vk7v zc8+9ivz?-IbQIH{kgTW$f|%sD7r7&}e3LZtO_H+iA-!#tv%xCyCTYYQM>5>!w0Gqr z>Y$r^)G9l+%4ICBbdk$$KU>S-oU7O|H52LZiy_6r_Y<cWE4-_3hC#joBu#yfX~ELe z|A|Xee*r%MN+(2>@nWJNj#4^zRTgEjqspB;fU4WbT0vyh#!Ei%P9gy%Nvh^pKA?n$ zMV!k>gHoon!gBeiLs}R9gMa`fLv=;OwdFb#w@4+G$)Xq`C2Fk08j45M!if6FH3{7= zWUpl(#^DLnx$LO#;#5a|EQ^T&oO8>v@I%rLB!&{Qut0($jhSDDmOG%FRjBO3Y5@p2 zm;I}f%?D`@A<LmD@_2_eQ!z3Y<;&;+$Xp61HWbZ6Dz``VN~L%;F;3zp<i!wI3KG8D z9JCWO$BcS^DO0}ejYGeX^kxn*fi6q&8Cx$sB55yf)Q8sOL7>klLl}6*CIcK`;nn8A zf=5>&GM30tAL-oM*d(g~7nJlwTr;vJgi6%2KOI1(R3#mCQWqAe@$;caPA;TsS8616 zYJ$<7U}C766JQFtR|6an0k;A%Nn#vY^S9J9xoVxuJW^L4($w(93nJz?;MTSlSC-{v zBOE&y10dxrbTA-iO0<I%n2`Um)Fuld*M*eXRDx9HD!@%F*UM5kwS;Wru(s%2V^d+J zhC3Biy38S6R+(dx0S^u7tQ;-{$l<jFiUJKD!(0`th+{`~Fn(Jlwgyx>2|WVcCE+N^ z)HWp#@|k5XV~=3Q4j^p{4G0c;jyg_nFKL%(BSO7H3H!dc8%xQP-|b?~tXj2R<{g2n z0?3i2{Mp#iFwTV9Nq|SLQ%a9!b1dN|f_y&{o{t@d4X17&SP;6Z;wD;EUJU1Ol_-M+ zkbVyC3zRjw9Ihquenvv~iD@9`kx%)|k>L;v4z%HVlEKELa<)=ZmaYVd<)?>KftOw| zY=qL(mg+S|I`Fwn`=1>w9Kv%JRgyw=tnsU|1<*)@O}n;~W}2(2@->O>RFs@9K{qF4 zs;dA_P?Dk_VLfzTa|V@d0TR#Dp;QH^Na2C=NpB-270`3e+pQX<veD}9SEKS577Tj` zB!f|qML{E)Gb6}#(U`=xY}+^lKq6nuhXBfcZ5#s|$3Tx`AbtvN90hq-264FZSN2hW zRdfymh%@~j2llq{V{+U0r{?a^kM36A+5Rux+4Qv|c4xaC=O5jD?0wC-km(<ti&3w; z7GGw%+_erK?OprD5eOyiJtREqo_h^FSZqEg*!;vm*rdDL$4v{qyZvqK?$&rCOrs=j zz>*nJF0gcJ8cCGsi9@Qcz)NC>lDA%;iO_;&?s1m=78wtz0v=Cj!Qgt1V6pS-f}LMA za~*`%ZrJRg3EqW!9l!UB-wKVGS6*5)5?|y!OkP3vL$!Y;DAh}jnC-ly<S|H$BwDVL z{Khwigca5ojj;Z(hYV)u@o-x?HuDNl9>GPooJ#<h>LM-9!$@>?zqe2?EkWiaoqB-E zP`q?3dj@>z5pQFdEFk{r%vA|=MLx(`e=$d5F6J|ho{q4{YX+ixrnNOnQaoeckI<B^ z5;8RPSCbTSN~LdwR(&C%o2iwD8KwkoGL^7e1GUuh4|}`wxL8e9f+<vJx?Bq@Qx4&= zAgWXw8!PeRuY}oftiJy|c3U^|YvC|9QsD^w`I{Y^Hod)Y6d#{09K+wnHn{;d3$Mes zr<;XMiA|eM+`vvevv{JsceccLrd9Vf4$5Amt4vGbsf?~Xm9$(r>2hTotKoD)cROdN znoeBS7w_a%Pd4-8Pc}(Kwgdd5#j;9l)&X~yQIMdhoY9Cm2bX;T48naOK1?iTq?h&f z<%d-+Vx;MXAr5<#ZYQ`&mur#M7j}KeEO+6rgunj9K>U?XpD&vheEQt68T{4t6KcHm z9L^es&xZ@lD*4Y8gIW#d)Fs?MGkl?@<ET<!Dq^)cVWr|W5Ca0_ckfu+8RjBzMONv7 z^HKkDs;M@_4po^KR6Fto8^*7uu;UJp;C3wVuCEaI>`E|bV}+Xu!hyXe?xOv)9ZkD! zTe7YxuZj5T#l0q8PQ*l+u9Jjas=DS-m)&FLwN6CXDx1Z~n`p(^LJzQrkz7rtlhZR8 zvlKuDl&pox*%_w_owKDL<Obd<%QW7&YC$v+bLyQyla@`kMKDVgi;QMV-OQ4rBW&g$ zB0g|KW2ZU+7uEBH#!K`QXt4d}LgOYleAS>)ikgkvb0P9x2gL~1d+02o32ZjDozE2O ze$;$dQ+d+uTxjfA@yn#N46A6rgXk59aH)bXH_I@K==(ChCe+t@wTN%GAU*ct5>9LS z6&wDejXRdZuto)ooX00_XxswHq6TH*;uW0MCFG=Q>;wl2DvMZ9GN4E3?B((VT$i6L zl9F_hy-NWs#!?N)-IO1^gq$I8#ut%eyx2Ukxsk}jyHkJN+PEDKfVD-;qgIdX)2%sw zslI~#c0%z_rg*#oU0(@LcA)q{)~D$--`?2Cde}vXFwp;&SDK9-_1bdsKr#yO`JVWX zi+;5lRu|cb;8%fR0yPVF(_6s+pv`r9*~+~%8~3*S($YoYG<Hy9r}S%K(5>%@|IpI7 zaU0Dc0-}&Gl+|j@#x2E6d8H0_2VgwsHyfM%GTdIt)1jJ!h(<bM3<H}9@URU+ARK!M zBSCHvs`cgIN;AI=&a+VNE!szo%>l^imR!A5Su`XE#PS0eJIGlW8T%F*xAGHUw;a*( z+eekiujj(WD<vYP+el`M{6)7VQ%SbAxEiq63-z@KjU+|eU?K|2?RqQZA8Nb=lYul0 zFJ-zNfojxii*$#Gnoq(7xZ+n9nRk<TO0c|yo-Dz6bCIaJVccKV*4ChBCts0NSY4UQ z`KwcSGn#5Pc2NuJky<Rm7y&GU#W!xk^W+25dx4gn)#Yr<F!aO@bB}gzsD;RDm<s&b zG7polm5LZ*M=i62Er3+u%@a2@?gc@W7R}x=;4elnLHW&R8+S7_IM*qEa##k%5sq>o z<eRIRHS-l4?{?x6*bh|h1iKnMu6gpd2OGCVS7Fn*vY1D1akz5lLA^H?;SbYnyac7h zu+835$F7dh;hp?lzAhF+h)06hdyT4Fb{iIwheGSi^$K9z31$Rg9#|7D@GNL2%m(FU zP=IC&cMzk9>PzwWZu4;i$zi8n#aMaYuc5bHS$I!fUWB)6P+U~5OAOx@IOa5QkTh-* z27w(3;tF5{0lC)}akXFZ!Eitdw__j>OAQ<nD9icFQS<3$<Br(VGSt@m7`-i<FXSr{ z<oNk^dMKaA3lCx27RKq|yqwP$?u7$MVT}I#+)eoN&*{(0pu{fRO@Cgtoj%c@kI)Yv zq(9$;1h9pJ^k)ebhYO4J=XDTl3rFeCo9OEW`t!H+=dbC{UV1rAf8GZF>%w=?pGinW zg$ereCHnJc^yj<i&pYVP&(NQb(4Rl1KmU#X+)r?O_)~A}p!w9UR(RGjqlNtC1)j_T zPh^27fxm!#fq`FOz!w<k1qOJ5fn8ug7Z}I|25^CaTVTKz7^npXXn}!QU_ch?c@N2* z1&=r9^Z7>^iTSc%&?AI02GjhBFnA9klreY@ePs+jM+jvMeuh3V2ERa`7=tGWp^QN) zNi7(pvc7^r3egq}k^{P6ki>7nAQ}1vgQPwZ43Z9nG05_0;Q{LYZ)mjpsQbUd-J`HT zpT_CW`{~bH>CYGG4^`SOd>;)-rIQL@pg)u*zVI0uoI=M6H&OTOVc)pLWdlrtx4;U` z438L&JRw%C-xFGQpU8XI0oe7WrLbr?3%`0-%R}?_j#!U7^r+nEj#&S!K%--RS8HGD zmracX4ic0#qGO`jxEZ+xNC$>}2&rZJVfFl7*pG!bgDg+%h~CybL(Dr<1)s*2jL3Bl zn|M5rb5bnA`mvR4wyF%sM(l3PA64dAn40)X!0=F+<~l{C;R-_uoN?nroZIfbyFFM8 z`MbB*xSYObfG(ip+)H+4w;Lm9^9}c-#4HAovd0P^rfu3yV%(}Eq8l1F(mn<wKfZA6 z6p1D5h6+g%ter$f&ZS%UAVDxzpv~k6rH|tl^&$MCqb;rtlXDIx=Z3}PTnv-wCXUH} zJuoJJb5Kkcehn=K!{ZYp#p6B)kNbwj<GvUk(M=qW|9xOQ{?``(k4qi#IBrw+H|nRW zA!MGCs?WL`7Um>`sG`4HISmK6`jbL%KJmoSYPB4CGf#R8p%>K=D9S2kC=!i(@x1q7 zDm8`wN0od~zA`0yXNq|SGSn_k&yeQuL8F6yIzBo!z8Rm;E&UD%!Sm1jKp!x`W}0eQ z!mW4ez1*LY8Wru)0vLAn(v6QGoX|{Se%^bmO~s>P0E_;-cX<BN;}AZhOYk=eQqY;u zCGOG@TtE3XcWLIpqA2j;7_bO`)k}icOM=%+EqJw&if~7tou2ge$N$?u&2PZV0{-Ml z%5y&NrF9|5U0;om$M@i!yd3Lm1+3naR4J^^lr@x4aI4d3by{rb!{J7KIBYw6^!(8? zM@ihLGvVY*H#-cDdRON|yP~FXhq=<}qnAa2o6Tbuy>CXAkzzfEJ4d)eQg<Rpw@!6I KqZ6mTl=}Z#KJJzP literal 113662 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 diff --git a/sphinx/build/doctrees/V2_00.doctree b/sphinx/build/doctrees/V2_00.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a02d898a179287ed671e3bdafead36409f541cbe GIT binary patch literal 91322 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 ZS{7#xe}S~_Se8zm@_<G=PHisn{{jB!D;WR) literal 0 HcmV?d00001 diff --git a/sphinx/build/doctrees/environment.pickle b/sphinx/build/doctrees/environment.pickle index d79996cc2dc1fcce2c891e9786bfff6d78d3ff02..65268571e863d9342ee0fa784eac3fd30692c878 100644 GIT binary patch literal 44349 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 literal 34163 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 diff --git a/sphinx/build/doctrees/index.doctree b/sphinx/build/doctrees/index.doctree index cb401db703a6d6d80bebbf97698f89143bf15a97..1dbf9eed5986dabb16eb28ade9fa696f93d88e65 100644 GIT binary patch delta 1821 zcmZ{kOKcNY6ox%EW5>@KyP1?%V-q`Z5<=p*Bmp51iz=!b;i^#zRE3(vndW-%BaO$Z zq6P#DSdD_<42!BQ&_=w}Zm8AnQbkeMRr)}v8`yQxNEHZmgAn2zPds>HyqURk{&T+j zpF3Bla^TKE{@j+U-?ZQ3FWI+g?(}pqQ_jl;Rc8*(St^$2GP16{4@>qzXMVDz%5(6i z{l1W75=*d7=3reZ)}4aieG#D_W4nzQi?i;^KaTAjHvk;pCyb)>jy2sw>4&T3aDx9r zIE9~|SW~<wF!mAaA{w}yqueZ{oJYN?HOoI|WQ=(+yFgC(9M!=}C>&+S>coli6g%E? zUO%IEGoCq_>m)8t!hTnm09bL^$}Q0DiyP%OEX~(SHP?b#oSvLt&<VjxwK)5>`Ymd{ z_sY4*;NHGSGLanAFX$UvZi*v*$-1T4iVwBxW-E)<R!D5p%0f$0SVeio${nIsmS5Y7 z8?DZx&%xo%&8$I-d#A95m48@irb|C+znLzVtu9Gy;&R#DCp<>^KPxv#F4yZ_LfG?} z_to*ffUi8;xfk%WM-A|t&1NYNyA=n;B*g|d#HeX9fY9fr$#ttq5}TO(*V`-g7{K`E zy&~;sRf$o!dO63e*JBsl+p-JJ`kb%4D<g2pHzJJ~!2JzC)2@KvA!>jwu@ZypfoMnV z4x`r0?P-6nbj*N%*Z^-Ox8oG9a|?g@_tg25!54U2k`2U61H$wtA}VA08z+DMnm^Ro z1Rb!GjpOn#Ed_Q6mm6aNM+I~UQ#ceZ2=7X|vDuZz&2Tg*ixj5e0=)Qfozc5+THGVu zHEO?atgTIhR%G0UH8CpOG;+VgS9wag1@>TP9d8Aa!ER~A$XRX9laTkzYk9v0V|Ba- z@H7~g9vHm8oAcU`cb|AIHGg=PVfZ=}6mL+K@vEqdMHD(hidIF|ALWzKqt2%oRs43F ztyE?)<(Vai=4J{9R|)=qBO!$_327p|tb@CDWN#UN3bL)&22vV-G?`8$^ozQz`Lcyf zt~@P&n$5{29jB&}M2fPP9>et52VGKLj1k)K9mbs^up|wK+9_z>fa)k;m#zeRFy=6P zP;ATv=R)o9Lt6_Mho9PxbN!XTn_qI==aoBKhd3@?dAKdgwFPt8f}GCDg&CElbJ=`W z)sKkrA9sv$y&sT`6h2CtyD*uT)%jVpdPY}BNR`-DT$0RoS7vt(a53*jOX*y320PL` U({iRbH>qZe1wBQ+%2WL>0bQFRk^lez delta 1494 zcmZ{kT}V@57{~Wc&vy3x?NV8q)6K@FZsrQiyyydIFc8ZGlWJ<boiuTCeISMrUFE2J z7u1b?kTt@H*iC^UUPoCV(uL4fT?i6H5K&Ukv$M{2ByV=!{h#Ome}BARnYL^zH(7c+ z<9fl}P?{*AB~z-zNHX3(n4aoj&y+#-S-ETsQU`6sBCU&3@3d-%DFBL3RH%n~vp-5I z2x(we&d(i$(tbu%)mm(7&so?7Zk#&-fBUeY>xEGdtwSgCs}7M7mQZz*1lA0rq8`yf z&oC<7S?p$)ZB=gCT~zE!#^|w~SJD&dddg81RrkT*IHPJ0Hw})P=(XTXsk})6h9UM& z?c5ueZ1>Sd%~SdVgZ<T^pualQ6lzLeOXp)Z=@9l%2B`;SMuJSqA+fjx<N_b!7NNW# zLC(t{gPL-G0dgr1sX3e+x&(y5aDk96LCgmklmV2t64bmL3X5An*|mP|E0otIs5KeX zq;^zSfZAZcwH0K8Idx;Clr8FNG=h>S6yX0OqcMW=OQKnm(_nE6njXE6ug?Vv9*B3_ zVJihU3b}I=5qI;AK3HH9!c1-0&4)$T9&|~^$pr3QsNiuD+-%%dQ#ejg+zMme;N!c+ zz#|ey=VpwP#y}Cq0J~#s<_ARAX&HtYCXY!NorqzSPBj#17cP*BcEYe7hbGzv!~9i) z%g0`tVsOza%^f@wC%BcH0PdQQ%3)#Cthu*{C&P4>0G|=tpUQabV0#Qojahgk)*rwp z853sNoTaWPV}Y$&>iGq+XHk~nfQ;Aw&$wu<Ey`G7Ppn>kMa=jp%P514Wz5h>9IVyW zWWI;Z;)Ww?3Kq<5xt>cXUX<syPj%lw74%AlB9WxE!cSQbzBEy|{&AMIH`y)F1Ysup z6hCVJo*tLD;>_!qVecJwT@V_DX8dVk-yOqdHyTB#D#)o~qh(>M3q@(Ca!=c<vS~{_ zXeEV*GNNYtY}+;YCzg8HRc8+gWLKSc2^q_tFK;2llbx$@lkAtugG3d@Nh2)ivRQB# kP0(!<X(57B`Lah{jl`}U80;U3pBg(eaxNXkd6Kb)zq}K(?f?J) diff --git a/sphinx/build/html/Ohmpi.html b/sphinx/build/html/Ohmpi.html index 4efb23ca..2d545ab6 100644 --- a/sphinx/build/html/Ohmpi.html +++ b/sphinx/build/html/Ohmpi.html @@ -4,7 +4,8 @@ <html class="writer-html5" lang="en" > <head> <meta charset="utf-8"> - + <meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>OhmPi project — Ohmpi: open hardware resistivity-meter documentation</title> @@ -94,6 +95,7 @@ </li> <li class="toctree-l1"><a class="reference internal" href="V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li> <li class="toctree-l1"><a class="reference internal" href="V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li> +<li class="toctree-l1"><a class="reference internal" href="V2_00.html">OhmPi V 2.00 (64 or 128 électrodes)</a></li> </ul> @@ -159,9 +161,9 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - <div class="section" id="ohmpi-project"> + <section id="ohmpi-project"> <h1>OhmPi project<a class="headerlink" href="#ohmpi-project" title="Permalink to this headline">¶</a></h1> -<div class="section" id="partenaires"> +<section id="partenaires"> <h2><strong>Partenaires</strong><a class="headerlink" href="#partenaires" title="Permalink to this headline">¶</a></h2> <a class="reference internal image-reference" href="_images/logo_ohmpi.JPG"><img alt="Logo OhmPi" class="align-center" src="_images/logo_ohmpi.JPG" style="width: 350px; height: 250px;" /></a> <p>Authors:</p> @@ -194,13 +196,13 @@ <p>Creation date : Juillet 2020.</p> <p>Update : 21 août 2020.</p> <p>Status of document: In progress.</p> -<div class="section" id="citing-ohmpi"> +<section id="citing-ohmpi"> <h3><strong>Citing OhmPi</strong><a class="headerlink" href="#citing-ohmpi" title="Permalink to this headline">¶</a></h3> <p><em>Rémi Clement, Yannick Fargier, Vivien Dubois, Julien Gance, Emile Gros, et al.. OhmPi: An open</em> <em>source data logger for dedicated applications of electrical resistivity imaging at the small and laboratory</em> <em>scale. HardwareX, Elsevier, 2020, 8, 24 p. ff10.1016/j.ohx.2020.e00122ff.</em></p> -</div> -<div class="section" id="introduction-to-ohmpi"> +</section> +<section id="introduction-to-ohmpi"> <h3><strong>Introduction to OhmPi</strong><a class="headerlink" href="#introduction-to-ohmpi" title="Permalink to this headline">¶</a></h3> <p>This documentation presents the development of a low-cost, open hardware resistivity meter to provide the scientific community with a robust and flexible tool for small-scale experiments. Called OhmPi, this basic resistivity meterfeatures current injection and measurement functions associated with a multiplexer that allows performing automatic measurements with up to 32 electrodes.OhmPi’s philosophy is to provide a fully open source and open hardware tool / to the near surface scientific community.</p> @@ -208,9 +210,9 @@ to the near surface scientific community.</p> <p class="admonition-title">Note</p> <p>Everyone willing to get involved is welcome in OhmPi Project!.</p> </div> -</div> -</div> -</div> +</section> +</section> +</section> </div> diff --git a/sphinx/build/html/V1_01.html b/sphinx/build/html/V1_01.html index d7df85db..d44794b3 100644 --- a/sphinx/build/html/V1_01.html +++ b/sphinx/build/html/V1_01.html @@ -4,7 +4,8 @@ <html class="writer-html5" lang="en" > <head> <meta charset="utf-8"> - + <meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>OhmPi V 1.01 (limited to 32 electrodes) — Ohmpi: open hardware resistivity-meter documentation</title> @@ -116,6 +117,7 @@ </ul> </li> <li class="toctree-l1"><a class="reference internal" href="V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li> +<li class="toctree-l1"><a class="reference internal" href="V2_00.html">OhmPi V 2.00 (64 or 128 électrodes)</a></li> </ul> @@ -181,21 +183,21 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - <div class="section" id="ohmpi-v-1-01-limited-to-32-electrodes"> + <section id="ohmpi-v-1-01-limited-to-32-electrodes"> <h1>OhmPi V 1.01 (limited to 32 electrodes)<a class="headerlink" href="#ohmpi-v-1-01-limited-to-32-electrodes" title="Permalink to this headline">¶</a></h1> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p>This version corresponds to the version published in the Hardware X journal. However, we have corrected the bugs that existed on this version and explained the missing mounting points in detail below. -We invite you to refer to this document to assemble Ohmpi.</p> +We invite you to refer to this document to assemble Ohmpi V1.01.</p> </div> -<div class="section" id="the-philosophy-of-ohmpi"> +<section id="the-philosophy-of-ohmpi"> <h2>The philosophy of Ohmpi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Permalink to this headline">¶</a></h2> <p>The philosophy of Ohmpi V1.01 is to offer a multi electrode resistivity meter, from a set of commercially available electronic cards it is a resistivity meter limited to 32 electrodes only. It is limited to low-current injection, but suitable for small laboratory experiments and small field time monitoring</p> -</div> -<div class="section" id="technical-data"> +</section> +<section id="technical-data"> <h2>Technical data<a class="headerlink" href="#technical-data" title="Permalink to this headline">¶</a></h2> <table class="docutils align-default"> <colgroup> @@ -251,10 +253,10 @@ control system</p></td> </tr> </tbody> </table> -</div> -<div class="section" id="raspberry-pi-configuration"> +</section> +<section id="raspberry-pi-configuration"> <h2>Raspberry Pi configuration<a class="headerlink" href="#raspberry-pi-configuration" title="Permalink to this headline">¶</a></h2> -<div class="section" id="os-installation"> +<section id="os-installation"> <h3>OS installation<a class="headerlink" href="#os-installation" title="Permalink to this headline">¶</a></h3> <p>The first step is to start up the Raspberry Pi board, including installation of an OS (operating system). For this step, the installation instructions are well described on the Raspberry website</p> @@ -265,9 +267,9 @@ For this step, the installation instructions are well described on the Raspberry <div class="admonition note"> <p class="admonition-title">Note</p> <p>All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/raspbian_version.jpg"><img alt="alternate text" src="_images/raspbian_version.jpg" style="width: 800px; height: 400px;" /></a> -</div> +</figure> </div> <div class="admonition warning"> <p class="admonition-title">Warning</p> @@ -303,8 +305,8 @@ To ensure that the GPIOs are in Low position, you will need to modify the /boot/ <li><p>Press Ctrl +x to escap and return to the terminal</p></li> <li><p>Close the terminal</p></li> </ol> -</div> -<div class="section" id="virtual-environnement-and-packages"> +</section> +<section id="virtual-environnement-and-packages"> <h3>Virtual Environnement and packages<a class="headerlink" href="#virtual-environnement-and-packages" title="Permalink to this headline">¶</a></h3> <p>All dependencies are specified in requirements.txt</p> <div class="admonition note"> @@ -337,38 +339,38 @@ to leave the virtual environment simply type:</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">deactivate</span> </pre></div> </div> -</div> -<div class="section" id="activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi"> +</section> +<section id="activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi"> <h3>Activate virtual environnement on Thonny (Python IDE) (on Rapberry Pi)<a class="headerlink" href="#activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi" title="Permalink to this headline">¶</a></h3> <p>If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.</p> <p>1- Run the Thonny Python IDE software, Click on raspebrry acces <strong>menu > programming> Thonny pythonIDE</strong></p> <p>2- Thonny’s interface opens, Python runs on the Root (Python 3.7.3 (/usr/bin/python3))</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_first_interface.jpg"><img alt="alternate text" src="_images/thonny_first_interface.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>3-Click on <strong>Run>select interpreter</strong>, a new window opens click on interpret</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_option.jpg"><img alt="alternate text" src="_images/thonny_option.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>4-On the new open windows select <strong>alternative Pyhton3 or virtual environnement</strong></p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_interpreter.jpg"><img alt="alternate text" src="_images/thonny_interpreter.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>5- New buttons appeared, selected <strong>“locate another python executable “</strong></p> <p>6- A new window opens, find the folder where there is the python 3 file in the virtual environment folder previously created <strong>/home/pi/ohmpi/bin/python3</strong>.</p> <p>7- In the <strong>known interpreter</strong> tab the path of the virtual environnementshould appear</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_interpreter_folder.jpg"><img alt="alternate text" src="_images/thonny_interpreter_folder.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>8- Close the window by clicking on <strong>ok</strong>.</p> <p>9- Close thonny to save modifications</p> -</div> -</div> -<div class="section" id="assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"> +</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> -<div class="section" id="electrical-resistivity-measurements-board"> +<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> -<div class="section" id="a-description"> +<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 @@ -401,12 +403,14 @@ electric field in the ground, with the total input impedance value being estimat 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.</p> -<div class="align-center figure" id="id1"> +<figure class="align-center" id="id1"> <a class="reference internal image-reference" href="_images/schema_measurement_board.jpg"><img alt="alternate text" src="_images/schema_measurement_board.jpg" style="width: 800px; height: 400px;" /></a> -<p class="caption"><span class="caption-text">Measurement board</span><a class="headerlink" href="#id1" title="Permalink to this image">¶</a></p> -</div> -</div> -<div class="section" id="b-implementation"> +<figcaption> +<p><span class="caption-text">Measurement board</span><a class="headerlink" href="#id1" title="Permalink to this image">¶</a></p> +</figcaption> +</figure> +</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> @@ -422,14 +426,14 @@ it by following the steps described below and illustrated in the following figur \[coeff p2 = (R7 + R6) / R7\]</div> <div class="math notranslate nohighlight"> \[coeff p3 = (R9 + R8) / R9\]</div> -<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>36 -37 -38 -39 -40 -41 -42 -43</pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="sd">"""</span> +<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">36</span> +<span class="normal">37</span> +<span class="normal">38</span> +<span class="normal">39</span> +<span class="normal">40</span> +<span class="normal">41</span> +<span class="normal">42</span> +<span class="normal">43</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="sd">"""</span> <span class="sd"> hardware parameters</span> <span class="sd"> """</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> @@ -455,17 +459,21 @@ or stronger power supply, it would be possible to adjust the divider bridge valu 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> -<div class="align-center figure" id="id2"> +<figure class="align-center" id="id2"> <a class="reference internal image-reference" href="_images/measurement_board.jpg"><img alt="alternate text" src="_images/measurement_board.jpg" style="width: 800px; height: 500px;" /></a> -<p class="caption"><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> -</div> -<div class="align-center figure" id="id3"> +<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.jpg"><img alt="alternate text" src="_images/measurement_board-2.jpg" style="width: 800px; height: 700px;" /></a> -<p class="caption"><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p> -</div> -</div> -</div> -<div class="section" id="current-injection-board"> +<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 @@ -478,10 +486,12 @@ to the GPIO 7 on the Raspberry Pi and therefore activate simultaneously. The rol 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> -<div class="align-center figure" id="id4"> +<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> -<p class="caption"><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> -</div> +<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 @@ -489,20 +499,22 @@ purpose, it is necessary to solder together the two pins on the 4-channel relay 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> -<div class="align-center figure" id="id5"> +<figure class="align-center" id="id5"> <a class="reference internal image-reference" href="_images/installation_current_board.jpg"><img alt="alternate text" src="_images/installation_current_board.jpg" style="width: 800px; height: 700px;" /></a> -<p class="caption"><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Permalink to this image">¶</a></p> -</div> +<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> -</div> -<div class="section" id="frist-four-electrodes-resistivity-mesurement"> +</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> -</div> -</div> -<div class="section" id="multiplexer-implentation"> +</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 @@ -513,10 +525,12 @@ modules with 16 channels each. On the first board, on each MUX, 15 relays out of 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> -<div class="align-center figure" id="id6"> +<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> -<p class="caption"><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> -</div> +<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. @@ -525,10 +539,12 @@ As a final step, connect the cables to the correct connectors. This operation mu 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><div class="align-center figure" id="id7"> +<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> -<p class="caption"><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p> -</div> +<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. @@ -590,39 +606,43 @@ The next step consists of connecting the relay card inputs to the Raspberry Pi a <blockquote> <div><p>Connection of the GPIOs to each multiplexer</p> </div></blockquote> -</div> -<div class="section" id="electrode-connection"> +</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> -<div class="align-center figure" id="id8"> +<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> -<p class="caption"><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> -</div> +<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> <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" id="id9"> +<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> -<p class="caption"><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> -</div> +<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> +</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> -</div> -<div class="section" id="operating-instruction"> +</section> +<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"> +<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"> +</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 @@ -632,17 +652,17 @@ function may be adjusted/optimized depending on the measurement attributes. For 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"> +</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> -<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> +<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">27</span> +<span class="normal">28</span> +<span class="normal">29</span> +<span class="normal">30</span> +<span class="normal">31</span> +<span class="normal">32</span> +<span class="normal">33</span> +<span class="normal">34</span></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> @@ -653,178 +673,16 @@ are displayed on the screen. A measurement file is automatically created and nam </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 class="section" id="complete-list-of-components"> +</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">Table Title</span><a class="headerlink" href="#id10" title="Permalink to this table">¶</a></caption> -<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%" /> -</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 Canal 12V Relay Relais Module pour Arduino DSP AVR PIC ARM</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> -<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> -</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> -</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> -</tr> -<tr class="row-even"><td><p>Car Fuse 1.0 A</p></td> -<td><p>1</p></td> -<td><p>0.2</p></td> -<td></td> -<td><p>LITTELFUSE</p></td> -<td><p>LITTELFUSE</p></td> -</tr> -<tr class="row-odd"><td><p>Fuse holder (576-FHAC0002ZXJ)</p></td> -<td><p>1</p></td> -<td><p>4.96</p></td> -<td><p>4.96</p></td> -<td><p>LITTELFUSE</p></td> -<td><p>FHAC0002ZXJ</p></td> -</tr> -</tbody> -</table> -</div> -</div> +</section> +</section> </div> diff --git a/sphinx/build/html/V1_02.html b/sphinx/build/html/V1_02.html index 69f5cc21..23946db4 100644 --- a/sphinx/build/html/V1_02.html +++ b/sphinx/build/html/V1_02.html @@ -4,7 +4,8 @@ <html class="writer-html5" lang="en" > <head> <meta charset="utf-8"> - + <meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>OhmPi V 1.02 (limited to 32 electrodes) — Ohmpi: open hardware resistivity-meter documentation</title> @@ -37,6 +38,7 @@ <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="next" title="OhmPi V 2.00 (64 or 128 électrodes)" href="V2_00.html" /> <link rel="prev" title="OhmPi V 1.01 (limited to 32 electrodes)" href="V1_01.html" /> </head> @@ -115,6 +117,7 @@ <li class="toctree-l2"><a class="reference internal" href="#complete-list-of-components">Complete list of components</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="V2_00.html">OhmPi V 2.00 (64 or 128 électrodes)</a></li> </ul> @@ -180,19 +183,19 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - <div class="section" id="ohmpi-v-1-02-limited-to-32-electrodes"> + <section id="ohmpi-v-1-02-limited-to-32-electrodes"> <h1>OhmPi V 1.02 (limited to 32 electrodes)<a class="headerlink" href="#ohmpi-v-1-02-limited-to-32-electrodes" title="Permalink to this headline">¶</a></h1> <div class="admonition note"> <p class="admonition-title">Note</p> <p>In this version, we have improved the electronic measurement board. To upgrade from version 1.01 to 1.02, you just have to replace the measurement board by the new one proposed here.</p> </div> -<div class="section" id="the-philosophy-of-ohmpi"> +<section id="the-philosophy-of-ohmpi"> <h2>The philosophy of Ohmpi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Permalink to this headline">¶</a></h2> <p>The philosophy of Ohmpi V1.01 is to offer a multi electrode resistivity meter, from a set of commercially available electronic cards it is a resistivity meter limited to 32 electrodes only. It is limited to low-current injection, but suitable for small laboratory experiments and small field time monitoring</p> -</div> -<div class="section" id="technical-data"> +</section> +<section id="technical-data"> <h2>Technical data<a class="headerlink" href="#technical-data" title="Permalink to this headline">¶</a></h2> <table class="docutils align-default"> <colgroup> @@ -248,10 +251,10 @@ control system</p></td> </tr> </tbody> </table> -</div> -<div class="section" id="raspberry-pi-configuration"> +</section> +<section id="raspberry-pi-configuration"> <h2>Raspberry Pi configuration<a class="headerlink" href="#raspberry-pi-configuration" title="Permalink to this headline">¶</a></h2> -<div class="section" id="os-installation"> +<section id="os-installation"> <h3>OS installation<a class="headerlink" href="#os-installation" title="Permalink to this headline">¶</a></h3> <p>The first step is to start up the Raspberry Pi board, including installation of an OS (operating system). For this step, the installation instructions are well described on the Raspberry website</p> @@ -262,9 +265,9 @@ For this step, the installation instructions are well described on the Raspberry <div class="admonition note"> <p class="admonition-title">Note</p> <p>All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/raspbian_version.jpg"><img alt="alternate text" src="_images/raspbian_version.jpg" style="width: 800px; height: 400px;" /></a> -</div> +</figure> </div> <div class="admonition warning"> <p class="admonition-title">Warning</p> @@ -300,8 +303,8 @@ To ensure that the GPIOs are in Low position, you will need to modify the /boot/ <li><p>Press Ctrl +x to escap and return to the terminal</p></li> <li><p>Close the terminal</p></li> </ol> -</div> -<div class="section" id="virtual-environnement-and-packages"> +</section> +<section id="virtual-environnement-and-packages"> <h3>Virtual Environnement and packages<a class="headerlink" href="#virtual-environnement-and-packages" title="Permalink to this headline">¶</a></h3> <p>All dependencies are specified in requirements.txt</p> <div class="admonition note"> @@ -334,38 +337,38 @@ to leave the virtual environment simply type:</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">deactivate</span> </pre></div> </div> -</div> -<div class="section" id="activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi"> +</section> +<section id="activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi"> <h3>Activate virtual environnement on Thonny (Python IDE) (on Rapberry Pi)<a class="headerlink" href="#activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi" title="Permalink to this headline">¶</a></h3> <p>If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.</p> <p>1- Run the Thonny Python IDE software, Click on raspebrry acces <strong>menu > programming> Thonny pythonIDE</strong></p> <p>2- Thonny’s interface opens, Python runs on the Root (Python 3.7.3 (/usr/bin/python3))</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_first_interface.jpg"><img alt="alternate text" src="_images/thonny_first_interface.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>3-Click on <strong>Run>select interpreter</strong>, a new window opens click on interpret</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_option.jpg"><img alt="alternate text" src="_images/thonny_option.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>4-On the new open windows select <strong>alternative Pyhton3 or virtual environnement</strong></p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_interpreter.jpg"><img alt="alternate text" src="_images/thonny_interpreter.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>5- New buttons appeared, selected <strong>“locate another python executable “</strong></p> <p>6- A new window opens, find the folder where there is the python 3 file in the virtual environment folder previously created <strong>/home/pi/ohmpi/bin/python3</strong>.</p> <p>7- In the <strong>known interpreter</strong> tab the path of the virtual environnementshould appear</p> -<div class="align-center figure"> +<figure class="align-center"> <a class="reference internal image-reference" href="_images/thonny_interpreter_folder.jpg"><img alt="alternate text" src="_images/thonny_interpreter_folder.jpg" style="width: 600px; height: 450px;" /></a> -</div> +</figure> <p>8- Close the window by clicking on <strong>ok</strong>.</p> <p>9- Close thonny to save modifications</p> -</div> -</div> -<div class="section" id="assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"> +</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> -<div class="section" id="electrical-resistivity-measurements-board"> +<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> -<div class="section" id="a-description"> +<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 @@ -403,16 +406,18 @@ In version 1.02, we have improved the electronic board of measurement. we have a 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> -<div class="align-center figure" id="id1"> +<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> -<p class="caption"><span class="caption-text">Measurement board (Ohmpi version 1.02)</span><a class="headerlink" href="#id1" title="Permalink to this image">¶</a></p> -</div> +<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> -</div> -<div class="section" id="b-implementation"> +</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> @@ -428,14 +433,14 @@ it by following the steps described below and illustrated in the following figur \[coeff p2 = (R7 + R6) / R7\]</div> <div class="math notranslate nohighlight"> \[coeff p3 = (R9 + R8) / R9\]</div> -<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>36 -37 -38 -39 -40 -41 -42 -43</pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="sd">"""</span> +<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">36</span> +<span class="normal">37</span> +<span class="normal">38</span> +<span class="normal">39</span> +<span class="normal">40</span> +<span class="normal">41</span> +<span class="normal">42</span> +<span class="normal">43</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="sd">"""</span> <span class="sd"> hardware parameters</span> <span class="sd"> """</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> @@ -463,17 +468,21 @@ it by following the steps described below and illustrated in the following figur 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> -<div class="align-center figure" id="id2"> +<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> -<p class="caption"><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> -</div> -<div class="align-center figure" id="id3"> +<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> -<p class="caption"><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p> -</div> -</div> -</div> -<div class="section" id="current-injection-board"> +<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 @@ -486,10 +495,12 @@ to the GPIO 7 on the Raspberry Pi and therefore activate simultaneously. The rol 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> -<div class="align-center figure" id="id4"> +<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> -<p class="caption"><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> -</div> +<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 @@ -497,20 +508,22 @@ purpose, it is necessary to solder together the two pins on the 4-channel relay 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> -<div class="align-center figure" id="id5"> +<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> -<p class="caption"><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Permalink to this image">¶</a></p> -</div> +<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> -</div> -<div class="section" id="frist-four-electrodes-resistivity-mesurement"> +</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> -</div> -</div> -<div class="section" id="multiplexer-implentation"> +</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 @@ -521,10 +534,12 @@ modules with 16 channels each. On the first board, on each MUX, 15 relays out of 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> -<div class="align-center figure" id="id6"> +<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> -<p class="caption"><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> -</div> +<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. @@ -533,10 +548,12 @@ As a final step, connect the cables to the correct connectors. This operation mu 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><div class="align-center figure" id="id7"> +<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> -<p class="caption"><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p> -</div> +<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. @@ -598,39 +615,43 @@ The next step consists of connecting the relay card inputs to the Raspberry Pi a <blockquote> <div><p>Connection of the GPIOs to each multiplexer</p> </div></blockquote> -</div> -<div class="section" id="electrode-connection"> +</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> -<div class="align-center figure" id="id8"> +<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> -<p class="caption"><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> -</div> +<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> <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" id="id9"> +<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> -<p class="caption"><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> -</div> +<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> +</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> -</div> -<div class="section" id="operating-instruction"> +</section> +<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"> +<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"> +</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 @@ -640,16 +661,16 @@ function may be adjusted/optimized depending on the measurement attributes. For 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"> +</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"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 -2 -3 -4 -5 -6</pre></div></td><td class="code"><div class="highlight"><pre><span></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> +<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span> +<span class="normal">2</span> +<span class="normal">3</span> +<span class="normal">4</span> +<span class="normal">5</span> +<span class="normal">6</span></pre></div></td><td class="code"><div class="highlight"><pre><span></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> @@ -657,185 +678,16 @@ are displayed on the screen. A measurement file is automatically created and nam <span class="n">export_path</span><span class="o">=</span> <span class="s2">"home/pi/Desktop/measurement.csv"</span> </pre></div> </td></tr></table></div> -</div> -</div> -<div class="section" id="complete-list-of-components"> +</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> -<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%" /> -</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> -<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> -</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> -</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> -</tr> -<tr class="row-even"><td><p>Fuse 1.0 A</p></td> -<td><p>1</p></td> -<td><p>0.2</p></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> -</tr> -</tbody> -</table> -</div> -</div> +</section> +</section> </div> @@ -845,6 +697,8 @@ are displayed on the screen. A measurement file is automatically created and nam <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> + <a href="V2_00.html" class="btn btn-neutral float-right" title="OhmPi V 2.00 (64 or 128 électrodes)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> + <a href="V1_01.html" class="btn btn-neutral float-left" title="OhmPi V 1.01 (limited to 32 electrodes)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> diff --git a/sphinx/build/html/V2_00.html b/sphinx/build/html/V2_00.html new file mode 100644 index 00000000..67cb06f6 --- /dev/null +++ b/sphinx/build/html/V2_00.html @@ -0,0 +1,746 @@ + + +<!DOCTYPE html> +<html class="writer-html5" lang="en" > +<head> + <meta charset="utf-8"> + <meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>OhmPi V 2.00 (64 or 128 électrodes) — Ohmpi: open hardware resistivity-meter documentation</title> + + + + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + + + + + + + + <!--[if lt IE 9]> + <script src="_static/js/html5shiv.min.js"></script> + <![endif]--> + + + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script src="_static/jquery.js"></script> + <script src="_static/underscore.js"></script> + <script src="_static/doctools.js"></script> + <script src="_static/language_data.js"></script> + <script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script> + + <script type="text/javascript" src="_static/js/theme.js"></script> + + + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="search.html" /> + <link rel="prev" title="OhmPi V 1.02 (limited to 32 electrodes)" href="V1_02.html" /> +</head> + +<body class="wy-body-for-nav"> + + + <div class="wy-grid-for-nav"> + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="index.html" class="icon icon-home" alt="Documentation Home"> Ohmpi: + + + + </a> + + + + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="Ohmpi.html">OhmPi project</a></li> +<li class="toctree-l1"><a class="reference internal" href="V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li> +<li class="toctree-l1"><a class="reference internal" href="V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">OhmPi V 2.00 (64 or 128 électrodes)</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#the-philosophy-of-ohmpi">The philosophy of Ohmpi</a></li> +<li class="toctree-l2"><a class="reference internal" href="#technical-data">Technical data</a></li> +<li class="toctree-l2"><a class="reference internal" href="#raspberry-pi-configuration">Raspberry Pi configuration</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#os-installation">OS installation</a></li> +<li class="toctree-l3"><a class="reference internal" href="#virtual-environnement-and-packages">Virtual Environnement and packages</a></li> +<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> +</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> + + + + </div> + + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="index.html">Ohmpi:</a> + + </nav> + + + <div class="wy-nav-content"> + + <div class="rst-content"> + + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="index.html" class="icon icon-home"></a> »</li> + + <li>OhmPi V 2.00 (64 or 128 électrodes)</li> + + + <li class="wy-breadcrumbs-aside"> + + + <a href="_sources/V2_00.rst.txt" rel="nofollow"> View page source</a> + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="ohmpi-v-2-00-64-or-128-electrodes"> +<h1>OhmPi V 2.00 (64 or 128 électrodes)<a class="headerlink" href="#ohmpi-v-2-00-64-or-128-electrodes" title="Permalink to this headline">¶</a></h1> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>In this version, we have improved the electronic measurement board. To upgrade from version 1.01 to 1.02, +you just have to replace the measurement board by the new one proposed here.</p> +</div> +<section id="the-philosophy-of-ohmpi"> +<h2>The philosophy of Ohmpi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Permalink to this headline">¶</a></h2> +<p>The philosophy of Ohmpi V1.01 is to offer a multi electrode resistivity meter, from a set of commercially available +electronic cards it is a resistivity meter limited to 32 electrodes only. It is limited to low-current injection, +but suitable for small laboratory experiments and small field time monitoring</p> +</section> +<section id="technical-data"> +<h2>Technical data<a class="headerlink" href="#technical-data" title="Permalink to this headline">¶</a></h2> +<table class="docutils align-default"> +<colgroup> +<col style="width: 50%" /> +<col style="width: 32%" /> +<col style="width: 18%" /> +</colgroup> +<tbody> +<tr class="row-odd"><td><p><strong>Parameter</strong></p></td> +<td><p><strong>Specifications</strong></p></td> +<td><p>Units</p></td> +</tr> +<tr class="row-even"><td><p>Electrodes</p></td> +<td><p>32</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>Operating temperature</p></td> +<td><p>0 to 50</p></td> +<td><p>°c</p></td> +</tr> +<tr class="row-even"><td><p>Power consumption of CPU and +control system</p></td> +<td><p>18.5</p></td> +<td><p>W</p></td> +</tr> +<tr class="row-odd"><td><p>Voltage injection</p></td> +<td><p>9</p></td> +<td><p>V</p></td> +</tr> +<tr class="row-even"><td><p>Battery</p></td> +<td><p>12</p></td> +<td><p>V</p></td> +</tr> +<tr class="row-odd"><td><p>Current</p></td> +<td><p>0 to 50</p></td> +<td><p>mA</p></td> +</tr> +<tr class="row-even"><td><p>Min pulse duration</p></td> +<td><p>150</p></td> +<td><p>mS</p></td> +</tr> +<tr class="row-odd"><td><p>Input impedance</p></td> +<td><p>36</p></td> +<td><p>Mohm</p></td> +</tr> +<tr class="row-even"><td><p>Data storage</p></td> +<td><p>micro SD card</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>Resolution</p></td> +<td><p>O.O1</p></td> +<td><p>ohm</p></td> +</tr> +</tbody> +</table> +</section> +<section id="raspberry-pi-configuration"> +<h2>Raspberry Pi configuration<a class="headerlink" href="#raspberry-pi-configuration" title="Permalink to this headline">¶</a></h2> +<section id="os-installation"> +<h3>OS installation<a class="headerlink" href="#os-installation" title="Permalink to this headline">¶</a></h3> +<p>The first step is to start up the Raspberry Pi board, including installation of an OS (operating system). +For this step, the installation instructions are well described on the Raspberry website</p> +<ol class="arabic simple"> +<li><p>Watch the vidéo “how to set up your raspberry Pi†(<a class="reference external" href="https://www.youtube.com/watch?v=wjWZhV1v3Pk">https://www.youtube.com/watch?v=wjWZhV1v3Pk</a>)</p></li> +<li><p>The authors recommend installing the latest stable and complete version of Raspbian by using NOOBS (a simple-to-use operating system installer).</p></li> +</ol> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:</p> +<figure class="align-center"> +<a class="reference internal image-reference" href="_images/raspbian_version.jpg"><img alt="alternate text" src="_images/raspbian_version.jpg" style="width: 800px; height: 400px;" /></a> +</figure> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Once the OS has been installed, <strong>1-wire, spi and GPIO remote option</strong> must be deactivated via the Raspbian GUI settings menu. Failure to carry out this task may cause damage to the relay shield cards during measurements.</p> +</div> +<p>3. When the relays are connected to the GPIO, make sure that all the GPIOs are in the low position when the raspberry starts up. If not, the relays will activate unexpectedly. +To ensure that the GPIOs are in Low position, you will need to modify the /boot/config.txt file.</p> +<blockquote> +<div><p>Run the terminal, and write</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">boot</span><span class="o">/</span> +</pre></div> +</div> +</div></blockquote> +<ol class="arabic simple" start="4"> +<li><p>Open config.txt with GNU nano editor</p></li> +</ol> +<blockquote> +<div><div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">nano</span> <span class="n">config</span><span class="o">.</span><span class="n">txt</span> +</pre></div> +</div> +</div></blockquote> +<ol class="arabic simple" start="5"> +<li><p>At the end of the file write :</p></li> +</ol> +<blockquote> +<div><div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">gpio</span><span class="o">=</span><span class="mi">8</span><span class="o">=</span><span class="n">op</span><span class="p">,</span><span class="n">dl</span> +<span class="n">gpio</span><span class="o">=</span><span class="mi">7</span><span class="o">=</span><span class="n">op</span><span class="p">,</span><span class="n">dl</span> +</pre></div> +</div> +</div></blockquote> +<ol class="arabic simple" start="6"> +<li><p>Press Ctrl +O to save the modifications and press enter</p></li> +<li><p>Press Ctrl +x to escap and return to the terminal</p></li> +<li><p>Close the terminal</p></li> +</ol> +</section> +<section id="virtual-environnement-and-packages"> +<h3>Virtual Environnement and packages<a class="headerlink" href="#virtual-environnement-and-packages" title="Permalink to this headline">¶</a></h3> +<p>All dependencies are specified in requirements.txt</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>All instructions below should be typed in the terminal</p> +</div> +<p>It is first necessary to ensure that the libatlas-base-dev library is installed:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">libatlas</span><span class="o">-</span><span class="n">base</span><span class="o">-</span><span class="n">dev</span> +</pre></div> +</div> +<p>We strongly recommend users to create a virtual environment to run the code and installed all required dependencies. It can be done either in a directory gathering all virtual environments used on the computer or within the ohmpy directory.</p> +<p>Create the virtual environment:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">venv</span> <span class="n">ohmpy</span> +</pre></div> +</div> +<p>Activate it using the following command:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">source</span> <span class="n">ohmpy</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span> +</pre></div> +</div> +<p>Install packages within the virtual environment. Installing the following package should be sufficient to meet dependencies:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">RPi</span><span class="o">.</span><span class="n">GPIO</span> <span class="n">adafruit</span><span class="o">-</span><span class="n">blinka</span> <span class="n">numpy</span> <span class="n">adafruit</span><span class="o">-</span><span class="n">circuitpython</span><span class="o">-</span><span class="n">ads1x15</span> <span class="n">pandas</span> +</pre></div> +</div> +<p>Check that requirements are met using</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="nb">list</span> +</pre></div> +</div> +<p>You should run you code within the virtual environment +to leave the virtual environment simply type:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">deactivate</span> +</pre></div> +</div> +</section> +<section id="activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi"> +<h3>Activate virtual environnement on Thonny (Python IDE) (on Rapberry Pi)<a class="headerlink" href="#activate-virtual-environnement-on-thonny-python-ide-on-rapberry-pi" title="Permalink to this headline">¶</a></h3> +<p>If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.</p> +<p>1- Run the Thonny Python IDE software, Click on raspebrry acces <strong>menu > programming> Thonny pythonIDE</strong></p> +<p>2- Thonny’s interface opens, Python runs on the Root (Python 3.7.3 (/usr/bin/python3))</p> +<figure class="align-center"> +<a class="reference internal image-reference" href="_images/thonny_first_interface.jpg"><img alt="alternate text" src="_images/thonny_first_interface.jpg" style="width: 600px; height: 450px;" /></a> +</figure> +<p>3-Click on <strong>Run>select interpreter</strong>, a new window opens click on interpret</p> +<figure class="align-center"> +<a class="reference internal image-reference" href="_images/thonny_option.jpg"><img alt="alternate text" src="_images/thonny_option.jpg" style="width: 600px; height: 450px;" /></a> +</figure> +<p>4-On the new open windows select <strong>alternative Pyhton3 or virtual environnement</strong></p> +<figure class="align-center"> +<a class="reference internal image-reference" href="_images/thonny_interpreter.jpg"><img alt="alternate text" src="_images/thonny_interpreter.jpg" style="width: 600px; height: 450px;" /></a> +</figure> +<p>5- New buttons appeared, selected <strong>“locate another python executable “</strong></p> +<p>6- A new window opens, find the folder where there is the python 3 file in the virtual environment folder previously created <strong>/home/pi/ohmpi/bin/python3</strong>.</p> +<p>7- In the <strong>known interpreter</strong> tab the path of the virtual environnementshould appear</p> +<figure class="align-center"> +<a class="reference internal image-reference" href="_images/thonny_interpreter_folder.jpg"><img alt="alternate text" src="_images/thonny_interpreter_folder.jpg" style="width: 600px; height: 450px;" /></a> +</figure> +<p>8- Close the window by clicking on <strong>ok</strong>.</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"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">36</span> +<span class="normal">37</span> +<span class="normal">38</span> +<span class="normal">39</span> +<span class="normal">40</span> +<span class="normal">41</span> +<span class="normal">42</span> +<span class="normal">43</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="sd">"""</span> +<span class="sd"> hardware parameters</span> +<span class="sd"> """</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="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="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="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="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> +</td></tr></table></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> +<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%" /> +</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> +</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> +<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> +</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"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span> +<span class="normal">2</span> +<span class="normal">3</span> +<span class="normal">4</span> +<span class="normal">5</span> +<span class="normal">6</span></pre></div></td><td class="code"><div class="highlight"><pre><span></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> + <span class="n">export_path</span><span class="o">=</span> <span class="s2">"home/pi/Desktop/measurement.csv"</span> +</pre></div> +</td></tr></table></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> +</section> +</section> + + + </div> + + </div> + <footer> + + <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> + + + <a href="V1_02.html" class="btn btn-neutral float-left" title="OhmPi V 1.02 (limited to 32 electrodes)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> + + </div> + + + <hr/> + + <div role="contentinfo"> + <p> + + © Copyright 2020, INRAE, Rémi CLEMENT + + </p> + </div> + + + + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a + + <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> + + provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + + + + + + +</body> +</html> \ No newline at end of file diff --git a/sphinx/build/html/_sources/V1_01.rst.txt b/sphinx/build/html/_sources/V1_01.rst.txt index ecec8060..877b4bd6 100644 --- a/sphinx/build/html/_sources/V1_01.rst.txt +++ b/sphinx/build/html/_sources/V1_01.rst.txt @@ -5,7 +5,7 @@ OhmPi V 1.01 (limited to 32 electrodes) .. warning:: This version corresponds to the version published in the Hardware X journal. However, we have corrected the bugs that existed on this version and explained the missing mounting points in detail below. - We invite you to refer to this document to assemble Ohmpi. + We invite you to refer to this document to assemble Ohmpi V1.01. diff --git a/public/_sources/V2_00.rst.txt b/sphinx/build/html/_sources/V2_00.rst.txt similarity index 99% rename from public/_sources/V2_00.rst.txt rename to sphinx/build/html/_sources/V2_00.rst.txt index 8bc01da4..50400342 100644 --- a/public/_sources/V2_00.rst.txt +++ b/sphinx/build/html/_sources/V2_00.rst.txt @@ -1,14 +1,16 @@ ***************************************** -OhmPi V 1.02 (limited to 32 electrodes) +OhmPi V 2.00 (64 or 128 électrodes) ***************************************** -.. note:: - - In this version, we have improved the electronic measurement board. To upgrade from version 1.01 to 1.02, you just have to replace the measurement board by the new one proposed here. - + +.. note:: + + In this version, we have improved the electronic measurement board. To upgrade from version 1.01 to 1.02, + you just have to replace the measurement board by the new one proposed here. + The philosophy of Ohmpi ************************** The philosophy of Ohmpi V1.01 is to offer a multi electrode resistivity meter, from a set of commercially available diff --git a/sphinx/build/html/_sources/index.rst.txt b/sphinx/build/html/_sources/index.rst.txt index d2aaf848..eb2e4bcc 100644 --- a/sphinx/build/html/_sources/index.rst.txt +++ b/sphinx/build/html/_sources/index.rst.txt @@ -34,6 +34,7 @@ Contents: Ohmpi V1_01 V1_02 + V2_00 diff --git a/sphinx/build/html/_static/pygments.css b/sphinx/build/html/_static/pygments.css index 631bc92f..582d5c3a 100644 --- a/sphinx/build/html/_static/pygments.css +++ b/sphinx/build/html/_static/pygments.css @@ -1,5 +1,10 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } +.highlight { background: #f8f8f8; } .highlight .c { color: #408080; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #FF0000 } /* Error */ .highlight .k { color: #008000; font-weight: bold } /* Keyword */ diff --git a/sphinx/build/html/genindex.html b/sphinx/build/html/genindex.html index a36aeebe..b34a403e 100644 --- a/sphinx/build/html/genindex.html +++ b/sphinx/build/html/genindex.html @@ -85,6 +85,7 @@ <li class="toctree-l1"><a class="reference internal" href="Ohmpi.html">OhmPi project</a></li> <li class="toctree-l1"><a class="reference internal" href="V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li> <li class="toctree-l1"><a class="reference internal" href="V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li> +<li class="toctree-l1"><a class="reference internal" href="V2_00.html">OhmPi V 2.00 (64 or 128 électrodes)</a></li> </ul> diff --git a/sphinx/build/html/index.html b/sphinx/build/html/index.html index a6f0bead..a9bf70b7 100644 --- a/sphinx/build/html/index.html +++ b/sphinx/build/html/index.html @@ -4,7 +4,8 @@ <html class="writer-html5" lang="en" > <head> <meta charset="utf-8"> - + <meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>OHMPI: Open source and open hardware resitivity-meter — Ohmpi: open hardware resistivity-meter documentation</title> @@ -86,6 +87,7 @@ <li class="toctree-l1"><a class="reference internal" href="Ohmpi.html">OhmPi project</a></li> <li class="toctree-l1"><a class="reference internal" href="V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li> <li class="toctree-l1"><a class="reference internal" href="V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li> +<li class="toctree-l1"><a class="reference internal" href="V2_00.html">OhmPi V 2.00 (64 or 128 électrodes)</a></li> </ul> @@ -151,16 +153,16 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - <div class="section" id="ohmpi-open-source-and-open-hardware-resitivity-meter"> + <section id="ohmpi-open-source-and-open-hardware-resitivity-meter"> <h1>OHMPI: Open source and open hardware resitivity-meter<a class="headerlink" href="#ohmpi-open-source-and-open-hardware-resitivity-meter" title="Permalink to this headline">¶</a></h1> -<div class="sidebar"> +<aside class="sidebar"> <p class="sidebar-title">Summary</p> <dl class="field-list simple"> <dt class="field-odd">Release</dt> <dd class="field-odd"><p>open hardware resistivity-meter</p> </dd> <dt class="field-even">Date</dt> -<dd class="field-even"><p>Dec 21, 2020</p> +<dd class="field-even"><p>Jul 14, 2021</p> </dd> <dt class="field-odd">Date start</dt> <dd class="field-odd"><p>July 2016</p> @@ -175,7 +177,7 @@ <dd class="field-even"><p>some mature, some in progress</p> </dd> </dl> -</div> +</aside> <div class="topic"> <p class="topic-title">OhmPi Document Center</p> <ul class="simple"> @@ -214,9 +216,20 @@ <li class="toctree-l2"><a class="reference internal" href="V1_02.html#complete-list-of-components">Complete list of components</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="V2_00.html">OhmPi V 2.00 (64 or 128 électrodes)</a><ul> +<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#raspberry-pi-configuration">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> +</ul> +</li> </ul> </div> -</div> +</section> </div> diff --git a/sphinx/build/html/objects.inv b/sphinx/build/html/objects.inv index 24b41f4783bf0e931ce294070d61de4d320b133a..b9fc38a78a04c5cbb3ecb4ffbc562fc21525e4af 100644 GIT binary patch delta 245 zcmV<R01E%d0^<UZc7IDw!!Qtr_c_HZ%c4<i5JEixT~vuwsoToLquR*!M7B%mkvInz zBaVY`0KsnNe|$5ovV(>Y<wjBuYX)r+Y89<XW2a&8^o)J14(!;lGC2ul@&K$JBP*k= zjwm4#+;TuOwmnG<Hxq+@XYd~k{wISUn`XgC!ji%3F|xY918(xb_yfGZ6@U{u?IgZV z3?rV<B+93nLEAJ|U$OaAk!T-x-F5@*fDQtkeUBiV1WLOSUS5Pp@ECN|FFIb=79;w~ vlKkcNFxs<`;X9INgYy@K`%kUAMn!Jf4k&!Dmc^{)&OZB{IAQex%)hR$&;E3r delta 217 zcmV;~04D$A0>=W7c7M%o!Y~ZS?|lj%#{smK8&5C}sFfyhMWMDxrX;QsGvMuMnxd5t zv77z>_}R5~oq;I0LT+JRLY;(#7H8Ag80Z53P%Fi@+<lhQ<RDCwTPPQO<ii?ggb;*b zSpnI;9T+Lj21fPBsGb<rJH~;$@kr+ZW7VE)0^QWiTBou2i&Bl(CW-oM)2vrecjO`R zF|-8ABXHWa3V2e1AW$@7evMq_j)X$t7+>7(dV4f7e8YIOG=4F0|EV<>(d_TrkyL2) TeKBjf^PT-h9jLehH#wVtiT-S; diff --git a/sphinx/build/html/search.html b/sphinx/build/html/search.html index e7bba422..2e241351 100644 --- a/sphinx/build/html/search.html +++ b/sphinx/build/html/search.html @@ -87,6 +87,7 @@ <li class="toctree-l1"><a class="reference internal" href="Ohmpi.html">OhmPi project</a></li> <li class="toctree-l1"><a class="reference internal" href="V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li> <li class="toctree-l1"><a class="reference internal" href="V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li> +<li class="toctree-l1"><a class="reference internal" href="V2_00.html">OhmPi V 2.00 (64 or 128 électrodes)</a></li> </ul> diff --git a/sphinx/build/html/searchindex.js b/sphinx/build/html/searchindex.js index 97ec4d79..283a2879 100644 --- a/sphinx/build/html/searchindex.js +++ b/sphinx/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["Ohmpi","V1_01","V1_02","index"],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:["Ohmpi.rst","V1_01.rst","V1_02.rst","index.rst"],objects:{},objnames:{},objtypes:{},terms:{"100nf":2,"10v":2,"12v":[1,2],"1x0":[1,2],"1x1":[1,2],"1x10":[1,2],"24v":2,"50vdc":2,"5vcc":[1,2],"5vdc":[1,2],"7ah":[1,2],"ao\u00fbt":0,"case":[1,2],"final":[1,2],"function":[0,1,2],"h\u00e9l\u00e8ne":[0,3],"mm\u00b2":[1,2],"new":[1,2],"orl\u00e9an":0,"public":[1,2],"r\u00e9mi":[0,3],"return":[1,2],"switch":[1,2],"universit\u00e9":0,"vid\u00e9o":[1,2],ADS:[1,2],CMS:[1,2],For:[1,2],IGE:0,Its:[1,2],The:3,These:[1,2],With:[1,2],abmn:[1,2],abov:[1,2],acc:[1,2],access:[1,2],accord:[1,2],accur:[1,2],accuraci:[1,2],acid:[1,2],actual:[1,2],adafruit:[1,2],adapt:[1,2],adc:[1,2],add:[1,2],added:[1,2],adding:[1,2],addit:[1,2],address:[1,2],adjust:[1,2],ads1115:[1,2],ads115:[1,2],ads1x15:[1,2],after:[1,2],all:[1,2],allow:[0,1,2],alp:0,also:[1,2],altern:[1,2],amp:[1,2],amplifi:[1,2],analog:[1,2],ani:[1,2],anoth:[1,2],appear:[1,2],appli:[1,2],applic:0,apt:[1,2],arduino:1,arm:1,arrai:[1,2],articl:[1,2],asler:[1,2],assembl:3,assist:[1,2],associ:0,attent:[1,2],attribut:[1,2],author:[0,1,2,3],automat:[0,1,2],automobil:[1,2],avail:[1,2],avr:1,bank:[1,2],base:[1,2],basic:0,batteri:[1,2],been:[1,2],befor:[1,2],behavior:[1,2],being:[1,2],below:[1,2],between:[1,2],bin:[1,2],bit:[1,2],black:[1,2],blinka:[1,2],block:[1,2],blue:[1,2],boot:[1,2],both:[1,2],bottom:[1,2],bought:[1,2],bridg:[1,2],bug:1,build:[1,2],button:[1,2],c320c104k1:2,cabl:[1,2],calcul:[1,2],calibr:[1,2],call:0,can:[1,2],canal:1,cap:[1,2],capac:[1,2],capacitor:2,car:1,card:3,carri:[1,2],caus:[1,2],cedex:0,ceram:2,channel:[1,2],characterist:[1,2],charg:[1,2],check:[1,2],chosen:[1,2],circuit:[1,2],circuitpython:[1,2],circul:[1,2],clean:[1,2],clement:[0,3],click:[1,2],close:[1,2],code:[1,2],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],command:[1,2],commerci:[1,2],common:[1,2],commun:0,complet:3,compon:3,comput:[1,2],conduct:[1,2],config:[1,2],configur:3,congratul:[1,2],connect:3,connector:[1,2],consequ:[1,2],consist:[1,2],constitut:[1,2],construct:[1,2],consumpt:[1,2],contact:[1,2],contain:[1,2],content:3,control:[1,2],convers:[1,2],convert:[1,2],correct:[1,2],correspond:1,cost:[0,1,2],could:[1,2],cpu:[1,2],creat:[1,2],creation:0,crimp:[1,2],csv:[1,2],ctrl:[1,2],current:[0,3],damag:[1,2],data:[0,3],date:[0,1,2,3],dcconvert:2,deactiv:[1,2],dec:3,decid:[1,2],decoupl:2,dedic:0,delai:[1,2],deliv:[1,2],depend:[1,2],describ:[1,2],design:[1,2],desktop:2,despit:[1,2],detail:1,dev:[1,2],develop:[0,1,2,3],diagram:[1,2],differ:[1,2],digit:[1,2],din:[1,2],direct:[1,2],directli:[1,2],directori:[1,2],disconnect:[1,2],displai:[1,2],distanc:[1,2],disturb:[1,2],divid:[1,2],document:[0,1],done:[1,2],down:[1,2],download:[1,2],dsp:1,dual:[1,2],duboi:[0,3],durat:[1,2],dure:[1,2],dzwb4:[1,2],e00122ff:0,each:[1,2],editor:[1,2],eiffel:0,either:[1,2],electr:0,electrod:[0,3],electron:[1,2],elsevi:0,emil:0,enabl:[1,2],end:[1,2],energ:[1,2],enough:[1,2],ensur:[1,2],enter:[1,2],entir:[1,2],environ:[1,2],environnementshould:[1,2],equal:[1,2],equival:[1,2],ert:[1,2],escap:[1,2],estim:[1,2],everyon:0,evolv:[1,2],exampl:[1,2],excess:[1,2],execut:[1,2],exist:[1,2],experi:[0,1,2],explain:1,export_path:2,extra:[1,2],failur:[1,2],fargier:[0,3],fast:2,featur:[1,2],femal:[1,2],ferrul:[1,2],fewer:[1,2],ff10:0,fhac0002zxj:1,field:[1,2],fig:[1,2],figur:[1,2],file:[1,2],find:[1,2],first:[1,2],flexibl:0,florsch:[1,2],flow:[1,2],folder:[1,2],follow:[1,2],forquet:[0,3],framework:[1,2],franc:0,from:[1,2],full:[1,2],fulli:0,fuse:[1,2],gain:[1,2],ganc:[0,3],gather:[1,2],gener:[1,2,3],ger:0,get:[0,1,2],gitlab:[1,2],gnd:[1,2],gnu:[1,2],gpio:[1,2],grenobl:0,gro:0,ground:[1,2],gui:[1,2],guidelin:3,gustav:0,guyard:[0,3],h81k0bya:[1,2],h81k5bya:[1,2],had:[1,2],hand:[1,2],handl:[1,2],hardwar:[0,1,2],hardwarex:0,has:[1,2],have:[1,2],hazard:[1,2],header:[1,2],hear:[1,2],here:2,high:[1,2],higher:2,holder:[1,2],hole:[1,2],home:[1,2],horizont:[1,2],hous:[1,2],how:[1,2],howev:[1,2],http:[1,2],ifsttar:0,illustr:[1,2],imag:0,imped:[1,2],implent:3,improv:2,in1:[1,2],in2:[1,2],in3:[1,2],in4:[1,2],includ:[1,2],incom:[1,2],increas:[1,2],inde:[1,2],inject:[0,3],injection_dur:[1,2],input:[1,2],inra:0,insert:[1,2],insid:[1,2],instead:[1,2],instruct:3,instrument:[0,1,2],intens:[1,2],interfac:[1,2],interpret:[1,2],introduc:[1,2],invit:1,involv:0,ion:[1,2],iri:0,irstea:[1,2],its:[1,2],jason:2,journal:1,json:2,juillet:0,juli:3,julien:[0,3],just:2,kemet:2,keyboard:[1,2],known:[1,2],kohm:[1,2],laboratori:[0,1,2],last:2,lastli:[1,2],latest:[1,2],lead:[1,2],leav:[1,2],length:[1,2],less:[1,2],let:[1,2],libatla:[1,2],librari:[1,2],lie:[1,2],limit:3,line:[1,2],list:3,lithium:[1,2],littelfus:[1,2],littl:[1,2],lm358an:[1,2],lm358n:[1,2],locat:[1,2],logger:[0,1,2],low:[0,1,2],lr20:[1,2],lying:[1,2],lyon:0,made:[1,2],mai:[1,2],main:[1,2],make:[1,2],manag:[1,2],manual:[1,2],manufactur:[1,2],manuscript:[1,2],master:[1,2],matur:3,maximum:[1,2],measur:[0,3],mechan:[1,2],meet:[1,2],mega:[1,2],menu:[1,2],met:[1,2],meter:[0,1,2],meterfeatur:0,micro:[1,2],mimic:[1,2],min:[1,2],miss:1,mm2:[1,2],model:[1,2],modif:[1,2],modifi:[1,2],modul:[1,2],mohm:[1,2],monitor:[1,2],moreov:[1,2],mount:[1,2],mous:[1,2],multi:[1,2],multiplex:[0,3],multipli:[1,2],must:[1,2],mux:[1,2],name:[1,2],nano:[1,2],nb_electrod:[1,2],nbr_mea:[1,2],necessari:[1,2],need:[1,2],neg:[1,2],next:[1,2],nicola:[0,3],noob:[1,2],nopb:[1,2],normal:[1,2],note:[1,2],now:[1,2],number:[1,2],numer:[1,2],numpi:[1,2],obtain:[1,2],offcial:3,offer:[1,2],ohm:[1,2],ohmmet:[1,2],ohmpi_param:2,ohx:0,onc:[1,2],one:[1,2],onto:[1,2],open:[0,1,2],oper:3,optim:[1,2],option:[1,2],order:[1,2],orient:2,osf:[1,2],other:[1,2],our:[1,2],out:[1,2],output:[1,2],overh:2,pai:[1,2],panda:[1,2],part:[1,2],parten:0,partenair:3,pat1l:2,path:[1,2],pcb:[1,2],per:[1,2],perform:[0,1,2],permut:[1,2],philosophi:[0,3],pic:1,piec:[1,2],pin:[1,2],pip:[1,2],pitch:[1,2],place:[1,2],pleas:[1,2],plug:[1,2],point:[1,2],polar:[1,2],pole:[1,2],posit:[1,2],possibl:[1,2],potenti:[1,2],potentiomet:[1,2],pour:1,power:[1,2],practic:[1,2],precis:[1,2],prefer:[1,2],prepar:[1,2],present:[0,1,2],press:[1,2],prevent:2,previous:[1,2],print:[1,2],pro:[1,2],produc:[1,2],program:[1,2],progress:[0,3],project:3,propos:[1,2],protocol:[1,2],provid:[0,1,2],publish:1,puls:[1,2],purpos:[1,2],pyhton3:[1,2],python3:[1,2],pythonid:[1,2],quadripol:[1,2],quadrupol:[1,2],quantiti:[1,2],r10:[1,2],r11:[1,2],r12:[1,2],r_ref:[1,2],rail:[1,2],rang:[1,2],raspberri:3,raspbian:[1,2],raspebrri:[1,2],readm:[1,2],recommend:[1,2],red:[1,2],reduct:[1,2],refer:[1,2],relai:[1,2],releas:3,remain:[1,2],rememb:[1,2],remot:[1,2],repeat:[1,2],repetit:[1,2],replac:2,repositori:[1,2],repres:[1,2],requir:[1,2],research:3,resist:[0,3],resistor:[1,2],resolut:[1,2],respect:[1,2],result:[1,2],revers:[1,2],reversa:[0,1,2],robust:[0,1,2],role:[1,2],root:[1,2],rpi:[1,2],rro:0,run:[1,2],safeti:[1,2],sain:[1,2],sainsmart:[1,2],same:[1,2],samtec:[1,2],save:[1,2],scale:0,schemat:[1,2],scienc:[1,2],scientif:0,screen:[1,2],screw:[1,2],second:[1,2],section:[1,2],see:[1,2],select:[1,2],sequenc:[1,2],sequence_delai:[1,2],seri:[1,2],serv:[1,2],set:[1,2],setp:2,setup:[1,2],sever:[1,2],shield:[1,2],shortcut:[1,2],should:[1,2],show:[1,2],shown:[1,2],signal:[1,2],simpl:[1,2],simpli:[1,2],simultan:[1,2],singl:[1,2],slope:[1,2],small:[0,1,2],smaller:[1,2],smart:[1,2],softwar:[1,2],soil:[1,2],solder:[1,2],solut:[1,2],some:[1,2,3],sound:[1,2],sourc:[0,1,2],specif:[1,2],specifi:[1,2],spi:[1,2],ssw:[1,2],stabl:[1,2],stack:[1,2],stainless:[1,2],start:[1,2,3],statu:[0,3],steel:[1,2],step:[1,2],still:[1,2],storag:[1,2],strict:[1,2],strip:[1,2],strong:[1,2],stronger:[1,2],strongli:[1,2],stuck:[1,2],studi:[1,2],subject:[1,2],sudo:[1,2],suffici:[1,2],suggest:[1,2],suitabl:[1,2],sum:[1,2],suppli:[1,2],suppress:2,sure:[1,2],surfac:0,system:[1,2],tab:[1,2],tabl:2,target:3,task:[1,2],technic:3,temperatur:[1,2],ten:[1,2],termin:[1,2],test:[1,2],texa:[1,2],than:[1,2],the9:[1,2],thei:[1,2],them:[1,2],therefor:[1,2],thi:[0,1,2],thousand:[1,2],three:[1,2],through:[1,2],thu:[1,2],time:[1,2],togeth:[1,2],toler:2,tool:0,total:[1,2],track:[1,2],traco:2,tracopow:2,trn3:2,trn:2,tru:[1,2],turn:[1,2],tutori:3,two:[1,2],txt:[1,2],type:[1,2],typic:[1,2],under:[1,2],unexpectedli:[1,2],unit:[1,2],univ:0,unzip:[1,2],updat:0,upgrad:2,upping:[1,2],upw50b50rv:[1,2],use:[1,2],used:[1,2],user:[1,2,3],using:[1,2],usr:[1,2],valid:[1,2],valu:[1,2],variou:[1,2],velleman:[1,2],venv:[1,2],veri:2,version:[1,2],vertic:[1,2],via:[1,2],villeurbann:0,vivien:[0,3],voltag:[1,2],voltmet:[1,2],wai:[1,2],want:2,watch:[1,2],weaker:1,websit:[1,2],weidmul:[1,2],welcom:0,well:[1,2],were:[1,2],when:[1,2],where:[1,2],which:[1,2],whose:[1,2],willing:0,window:[1,2],wire:[1,2],within:[1,2],without:[1,2],wjwzhv1v3pk:[1,2],would:[1,2],wpm404:[1,2],write:[1,2],www:[1,2],yannick:[0,3],you:[1,2],your:[1,2],youtub:[1,2]},titles:["OhmPi project","OhmPi V 1.01 (limited to 32 electrodes)","OhmPi V 1.02 (limited to 32 electrodes)","OHMPI: Open source and open hardware resitivity-meter"],titleterms:{IDE:[1,2],The:[1,2],activ:[1,2],assembl:[1,2],board:[1,2],card:[1,2],center:3,cite:0,complet:[1,2],compon:[1,2],configur:[1,2],connect:[1,2],current:[1,2],data:[1,2],descript:[1,2],document:3,electr:[1,2],electrod:[1,2],environn:[1,2],four:[1,2],frist:[1,2],hardwar:3,implement:[1,2],implent:[1,2],initi:[1,2],inject:[1,2],instal:[1,2],instruct:[1,2],introduct:0,limit:[1,2],list:[1,2],measur:[1,2],mesur:[1,2],meter:3,multiplex:[1,2],ohmpi:[0,1,2,3],onli:[1,2],open:3,oper:[1,2],packag:[1,2],paramet:[1,2],partenair:0,philosophi:[1,2],preliminari:[1,2],procedur:[1,2],project:0,python:[1,2],rapberri:[1,2],raspberri:[1,2],resist:[1,2],resit:3,sourc:3,startup:[1,2],summari:3,tabl:1,technic:[1,2],thonni:[1,2],titl:1,virtual:[1,2]}}) \ 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":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:["Ohmpi.rst","V1_01.rst","V1_02.rst","V2_00.rst","index.rst"],objects:{},objnames:{},objtypes:{},terms:{"100nf":[2,3],"10v":[2,3],"12v":[2,3],"1x0":[],"1x1":[],"1x10":[],"24v":[],"50vdc":[2,3],"5vcc":[1,2,3],"5vdc":[1,2,3],"7ah":[],"\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],ADS:[1,2,3],CMS:[],For:[1,2,3],IGE:0,Its:[1,2,3],The:4,These:[1,2,3],With:[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],adafruit:[1,2,3],adapt:[1,2,3],adc:[1,2,3],add:[1,2,3],added:[1,2,3],adding:[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],all:[1,2,3],allow:[0,1,2,3],alp:0,also:[1,2,3],altern:[1,2,3],amp:[],amplifi:[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],arduino:[],arm:[],arrai:[1,2,3],articl:[1,2,3],asler:[],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:[],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],bridg:[1,2,3],bug:1,build:[1,2,3],button:[1,2,3],c320c104k1:[],cabl:[1,2,3],calcul:[1,2,3],calibr:[1,2,3],call:0,can:[1,2,3],canal:[],cap:[1,2,3],capac:[1,2,3],capacitor:[2,3],car:[],card:4,carri:[1,2,3],caus:[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],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,3],common:[1,2,3],commun:0,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],correct:[1,2,3],correspond:1,cost:[0,2,3],could:[1,2,3],cpu:[1,2,3],creat:[1,2,3],creation:0,crimp:[],csv:[1,2,3],ctrl:[1,2,3],current:[0,4],damag:[1,2,3],data:[0,4],date:[0,1,2,3,4],dcconvert:[2,3],deactiv:[1,2,3],dec:[],decid:[1,2,3],decoupl:[2,3],dedic:0,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],din:[1,2,3],direct:[1,2,3],directli:[1,2,3],directori:[1,2,3],disconnect:[1,2,3],displai:[1,2,3],distanc:[1,2,3],disturb:[1,2,3],divid:[1,2,3],document:[0,1],done:[1,2,3],down:[1,2,3],download:[1,2,3],dsp:[],dual:[1,2,3],duboi:[0,4],durat:[1,2,3],dure:[1,2,3],dzwb4:[1,2,3],e00122ff:0,each:[1,2,3],editor:[1,2,3],eiffel:0,either:[1,2,3],electr:0,electrod:[0,4],electron:[1,2,3],elsevi:0,emil:0,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],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],failur:[1,2,3],fargier:[0,4],fast:[2,3],featur:[1,2,3],femal:[1,2,3],ferrul:[],fewer:[1,2,3],ff10:0,fhac0002zxj:[],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],framework:[1,2,3],franc:0,from:[1,2,3],full:[1,2,3],fulli:0,fuse:[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],gpio:[1,2,3],grenobl:0,gro:0,ground:[1,2,3],gui:[1,2,3],guidelin:4,gustav:0,guyard:[0,4],h81k0bya:[],h81k5bya:[],had:[1,2,3],hand:[1,2,3],handl:[1,2,3],hardwar:[0,1,2,3],hardwarex:0,has:[1,2,3],have:[1,2,3],hazard:[1,2,3],header:[1,2,3],hear:[1,2,3],here:[2,3],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],ifsttar: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],instead:[1,2,3],instruct:4,instrument:0,intens:[1,2,3],interfac:[1,2,3],interpret:[1,2,3],introduc:[1,2,3],invit:1,involv:0,ion:[1,2,3],iri:0,irstea:[1,2,3],its:[1,2,3],jason:[2,3],journal:1,json:[2,3],juillet:0,jul:4,juli:4,julien:[0,4],just:[2,3],kemet:[],keyboard:[1,2,3],known:[1,2,3],kohm:[1,2,3],laboratori:[0,1,2,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:[],littl:[1,2,3],lm358an:[],lm358n:[1,2,3],locat:[1,2,3],logger:[0,1,2,3],low:[0,1,2,3],lr20:[],lying:[1,2,3],lyon:0,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:[],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],model:[1,2,3],modif:[1,2,3],modifi:[1,2,3],modul:[1,2,3],mohm:[1,2,3],monitor:[1,2,3],moreov:[1,2,3],mount:[1,2,3],mous:[1,2,3],multi:[1,2,3],multiplex:[0,4],multipli:[1,2,3],must:[1,2,3],mux:[1,2,3],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],nicola:[0,4],noob:[1,2,3],nopb:[],normal:[1,2,3],note:[1,2,3],now:[1,2,3],number:[1,2,3],numer:[1,2,3],numpi:[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,onc:[1,2,3],one:[1,2,3],onto:[1,2,3],open:[0,1,2,3],oper:4,optim:[1,2,3],option:[1,2,3],order:[1,2,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],pai:[1,2,3],panda:[1,2,3],part:[1,2,3],parten:0,partenair:4,pat1l:[],path:[1,2,3],pcb:[1,2,3],per:[1,2,3],perform:[0,1,2,3],permut:[1,2,3],philosophi:[0,4],pic:[],piec:[],pin:[1,2,3],pip:[1,2,3],pitch:[1,2,3],place:[1,2,3],pleas:[1,2,3],plug:[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:[],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],previous:[1,2,3],print:[1,2,3],pro:[],produc:[1,2,3],program:[1,2,3],progress:[0,4],project:4,propos:[1,2,3],protocol:[1,2,3],provid:[0,1,2,3],publish:1,puls:[1,2,3],purpos:[1,2,3],pyhton3:[1,2,3],python3:[1,2,3],pythonid:[1,2,3],quadripol:[1,2,3],quadrupol:[1,2,3],quantiti:[],r10:[1,2,3],r11:[1,2,3],r12:[1,2,3],r_ref:[1,2,3],rail:[1,2,3],rang:[1,2,3],raspberri:4,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,run:[1,2,3],safeti:[1,2,3],sain:[],sainsmart:[],same:[1,2,3],samtec:[],save:[1,2,3],scale:0,schemat:[1,2,3],scienc:[1,2,3],scientif:0,screen:[1,2,3],screw:[1,2,3],second:[1,2,3],section:[1,2,3],see:[1,2,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],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:[],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:[],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,3],still:[1,2,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],suppress:[2,3],sure:[1,2,3],surfac:0,system:[1,2,3],tab:[1,2,3],tabl:[1,2,3],target:4,task:[1,2,3],technic:4,temperatur:[1,2,3],ten:[1,2,3],termin:[1,2,3],test:[1,2,3],texa:[],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,total:[1,2,3],track:[1,2,3],traco:[2,3],tracopow:[],trn3:[2,3],trn:[],tru:[],turn:[1,2,3],tutori:4,two:[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],updat:0,upgrad:[2,3],upping:[1,2,3],upw50b50rv:[],use:[1,2,3],used:[1,2,3],user:[1,2,3,4],using:[1,2,3],usr:[1,2,3],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,vivien:[0,4],voltag:[1,2,3],voltmet:[1,2,3],wai:[1,2,3],want:[2,3],watch:[1,2,3],weaker:1,websit:[1,2,3],weidmul:[],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],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],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:{"\u00e9lectrod":3,IDE:[1,2,3],The:[1,2,3],activ:[1,2,3],assembl:[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,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],ohmpi:[0,1,2,3,4],onli:[1,2,3],open:4,oper:[1,2,3],packag:[1,2,3],paramet:[1,2,3],partenair:0,philosophi:[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],summari:4,tabl:[],technic:[1,2,3],thonni:[1,2,3],titl:[],virtual:[1,2,3]}}) \ No newline at end of file diff --git a/sphinx/source/V2_00.rst b/sphinx/source/V2_00.rst new file mode 100644 index 00000000..50400342 --- /dev/null +++ b/sphinx/source/V2_00.rst @@ -0,0 +1,542 @@ +***************************************** +OhmPi V 2.00 (64 or 128 électrodes) +***************************************** + + + + + +.. note:: + + In this version, we have improved the electronic measurement board. To upgrade from version 1.01 to 1.02, + you just have to replace the measurement board by the new one proposed here. + +The philosophy of Ohmpi +************************** +The philosophy of Ohmpi V1.01 is to offer a multi electrode resistivity meter, from a set of commercially available +electronic cards it is a resistivity meter limited to 32 electrodes only. It is limited to low-current injection, +but suitable for small laboratory experiments and small field time monitoring + + +Technical data +*************** ++-------------------------------+--------------------+-----------+ +| **Parameter** | **Specifications** | Units | ++-------------------------------+--------------------+-----------+ +|Electrodes |32 | | ++-------------------------------+--------------------+-----------+ +|Operating temperature |0 to 50 |°c | ++-------------------------------+--------------------+-----------+ +|Power consumption of CPU and |18.5 |W | +|control system | | | ++-------------------------------+--------------------+-----------+ +|Voltage injection |9 |V | ++-------------------------------+--------------------+-----------+ +|Battery |12 |V | ++-------------------------------+--------------------+-----------+ +|Current |0 to 50 |mA | ++-------------------------------+--------------------+-----------+ +|Min pulse duration |150 |mS | ++-------------------------------+--------------------+-----------+ +|Input impedance |36 |Mohm | ++-------------------------------+--------------------+-----------+ +|Data storage |micro SD card | | ++-------------------------------+--------------------+-----------+ +|Resolution |O.O1 |ohm | ++-------------------------------+--------------------+-----------+ + +Raspberry Pi configuration +****************************************** +OS installation +================ + +The first step is to start up the Raspberry Pi board, including installation of an OS (operating system). +For this step, the installation instructions are well described on the Raspberry website + +1. Watch the vidéo "how to set up your raspberry Pi" (https://www.youtube.com/watch?v=wjWZhV1v3Pk) + +2. The authors recommend installing the latest stable and complete version of Raspbian by using NOOBS (a simple-to-use operating system installer). + +.. note:: + All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian: + + .. figure:: raspbian_version.jpg + :width: 800px + :align: center + :height: 400px + :alt: alternate text + :figclass: align-center + + + +.. warning:: + Once the OS has been installed, **1-wire, spi and GPIO remote option** must be deactivated via the Raspbian GUI settings menu. Failure to carry out this task may cause damage to the relay shield cards during measurements. + + + + +3. When the relays are connected to the GPIO, make sure that all the GPIOs are in the low position when the raspberry starts up. If not, the relays will activate unexpectedly. +To ensure that the GPIOs are in Low position, you will need to modify the /boot/config.txt file. + + Run the terminal, and write + + .. code-block:: python + + cd /boot/ + +4. Open config.txt with GNU nano editor + + .. code-block:: python + + sudo nano config.txt + +5. At the end of the file write : + + .. code-block:: python + + gpio=8=op,dl + gpio=7=op,dl + +6. Press Ctrl +O to save the modifications and press enter +7. Press Ctrl +x to escap and return to the terminal +8. Close the terminal + + + +Virtual Environnement and packages +================================== + +All dependencies are specified in requirements.txt + +.. note:: + All instructions below should be typed in the terminal + +It is first necessary to ensure that the libatlas-base-dev library is installed: + +.. code-block:: python + + sudo apt-get install libatlas-base-dev + +We strongly recommend users to create a virtual environment to run the code and installed all required dependencies. It can be done either in a directory gathering all virtual environments used on the computer or within the ohmpy directory. + +Create the virtual environment: + +.. code-block:: python + + python3 -m venv ohmpy + +Activate it using the following command: + +.. code-block:: python + + source ohmpy/bin/activate + +Install packages within the virtual environment. Installing the following package should be sufficient to meet dependencies: + +.. code-block:: python + + pip install RPi.GPIO adafruit-blinka numpy adafruit-circuitpython-ads1x15 pandas + +Check that requirements are met using + +.. code-block:: python + + pip list + +You should run you code within the virtual environment +to leave the virtual environment simply type: + +.. code-block:: python + + deactivate + + +Activate virtual environnement on Thonny (Python IDE) (on Rapberry Pi) +======================================================================== + +If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it. + +1- Run the Thonny Python IDE software, Click on raspebrry acces **menu > programming> Thonny pythonIDE** + +2- Thonny's interface opens, Python runs on the Root (Python 3.7.3 (/usr/bin/python3)) + +.. figure:: thonny_first_interface.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center + +3-Click on **Run>select interpreter**, a new window opens click on interpret + +.. figure:: thonny_option.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center + +4-On the new open windows select **alternative Pyhton3 or virtual environnement** + +.. figure:: thonny_interpreter.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center + +5- New buttons appeared, selected **"locate another python executable "** + +6- A new window opens, find the folder where there is the python 3 file in the virtual environment folder previously created **/home/pi/ohmpi/bin/python3**. + +7- In the **known interpreter** tab the path of the virtual environnementshould appear + +.. figure:: thonny_interpreter_folder.jpg + :width: 600px + :align: center + :height: 450px + :alt: alternate text + :figclass: align-center + +8- Close the window by clicking on **ok**. + +9- Close thonny to save modifications + + +Assembly of the measuring/current injection cards, and connection with the Raspberry Pi +***************************************************************************************** + +Electrical resistivity measurements board +========================================== + +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. + + +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\sphinx\source\list - 1_02.csv + :widths: 30, 70, 70, 70, 70,70 + :header-rows: 1 + + diff --git a/sphinx/source/index.rst b/sphinx/source/index.rst index d2aaf848..eb2e4bcc 100644 --- a/sphinx/source/index.rst +++ b/sphinx/source/index.rst @@ -34,6 +34,7 @@ Contents: Ohmpi V1_01 V1_02 + V2_00 -- GitLab