From ab64653456601e71f33d65a05582f27e8d88e2c8 Mon Sep 17 00:00:00 2001
From: Clement Remi <remi.clement@irstea.fr>
Date: Mon, 26 Aug 2019 12:21:10 +0200
Subject: [PATCH] Upload New File

---
 ohmpy_v_1_01.py | 160 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 160 insertions(+)
 create mode 100644 ohmpy_v_1_01.py

diff --git a/ohmpy_v_1_01.py b/ohmpy_v_1_01.py
new file mode 100644
index 00000000..28b61bc4
--- /dev/null
+++ b/ohmpy_v_1_01.py
@@ -0,0 +1,160 @@
+"""
+23/08/2019
+OHMPY_code is a program to control the low-cost and open source resistivity meter
+OHMPY, it has been developed by Rémi CLEMENT, Nicolas FORQUET (IRSTEA) and Yannick FARGIER (IFSTTAR).
+Version 1.00 23/08/2019 modified by Remi CLEMENT
+multiplexer development for electrode selection for each quadripole
+from the quadripole file ABMN.txt
+"""
+
+#!/usr/bin/python
+import RPi.GPIO as GPIO
+import time
+import board
+import busio
+import numpy
+import os
+import adafruit_ads1x15.ads1115 as ADS
+from adafruit_ads1x15.analog_in import AnalogIn
+print('Import library')
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setwarnings(False)
+ 
+#i2c = busio.I2C(board.SCL, board.SDA)
+# Create the ADC object using the I2C bus
+#ads = ADS.ADS1115(i2c)
+#chan = AnalogIn(ads, ADS.P0)
+"""
+Initialization of multiplexer channels
+"""
+pinList = [12,16,20,21,26,18,23,24,25,19,2,3,4,17,27,22,10,9,11,5] # List of GPIOs enabled for relay cards (electrodes)
+for i in pinList: 
+    GPIO.setup(i, GPIO.OUT) 
+    GPIO.output(i, GPIO.HIGH)
+"""
+Measurement settings
+"""
+injection_time = 5 # Current injection time in second
+nbr_meas= 900 # Number of times the quadrupole sequence is repeated
+sequence_delay= 30 # Delay in Second between 2 sequences
+stack= 1 # repetition of the current injection for each quadrupole
+
+"""
+Reading the quadrupole file
+"""
+N=numpy.loadtxt("ABMN4.txt", delimiter=" ",dtype=int) # load quadripole file
+M=open("ABMN4.txt",'r') # open quadripole file
+listM=list(M) # Transform M as a list
+M.close() # Close M
+
+for g in range(0,nbr_meas): # for time-lapse monitoring
+  
+    """
+    Selection electrode activées pour chaque quadripole
+    """
+    for i in range(0,len(listM)): # boucle sur les quadripôles, qui tient compte du nombre de quadripole dans le fichier ABMN
+
+        for j in range(0,4):
+                if j == 0: # electrode A
+                    n1=12; n2=16; n3=20; n4=21; n5=26
+                elif j==1: # electrode B
+                    n1=18; n2=23; n3=24; n4=25; n5=19 # à modifier
+                elif j==2: # electrode M
+                    n1=2; n2=3; n3=4; n4=17; n5=27 # à modifier
+                elif j==3: # electrode N
+                    n1=22; n2=10; n3=9; n4=11; n5=5 # à modifier
+
+
+                if N[i][j]==1:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW); GPIO.output(n5, GPIO.LOW);   
+                elif N[i][j]==2:            
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW); GPIO.output(n5, GPIO.HIGH);       
+                elif N[i][j]==3:            
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==4:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==5:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==6:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.HIGH);
+                elif N[i][j]==7:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);
+                elif N[i][j]==8:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==9:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==10:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==11:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==12:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==13:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.LOW);   
+                elif N[i][j]==14:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==15:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==16:
+                    GPIO.output(n1, GPIO.HIGH);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==17:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW); GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==18:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW); GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==19:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==20:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==21:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==22:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==23:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==24:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.HIGH);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==25:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==26:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==27:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==28:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.HIGH); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);    
+                elif N[i][j]==29:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==30:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.LOW);GPIO.output(n5, GPIO.LOW);   
+                elif N[i][j]==31:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.HIGH);    
+                elif N[i][j]==32:
+                    GPIO.output(n1, GPIO.LOW);GPIO.output(n2, GPIO.LOW);GPIO.output(n3, GPIO.LOW); GPIO.output(n4, GPIO.HIGH);GPIO.output(n5, GPIO.LOW);    
+        
+        time.sleep(injection_time);  
+        n1=22; n2=10; n3=9; n4=11; n5=5 # à modifier
+        GPIO.output(12, GPIO.HIGH); GPIO.output(16, GPIO.HIGH); GPIO.output(20, GPIO.HIGH); GPIO.output(21, GPIO.HIGH); GPIO.output(26, GPIO.HIGH)              
+        GPIO.output(18, GPIO.HIGH); GPIO.output(23, GPIO.HIGH); GPIO.output(24, GPIO.HIGH); GPIO.output(25, GPIO.HIGH); GPIO.output(19, GPIO.HIGH) 
+        GPIO.output(2, GPIO.HIGH); GPIO.output(3, GPIO.HIGH); GPIO.output(4, GPIO.HIGH); GPIO.output(17, GPIO.HIGH); GPIO.output(27, GPIO.HIGH)
+        GPIO.output(22, GPIO.HIGH); GPIO.output(10, GPIO.HIGH); GPIO.output(9, GPIO.HIGH); GPIO.output(11, GPIO.HIGH); GPIO.output(5, GPIO.HIGH)
+    
+    time.sleep(sequence_delay);
+
+'''
+Showing results
+'''
+
+
+'''
+Save result in txt file
+'''
+
+ 
+
+
+    
+
+
+
+
+
-- 
GitLab