From 810e5312295a7ecfb162649b91740246f9535896 Mon Sep 17 00:00:00 2001 From: "remi.clement@inrae.fr" <remi.clement@inrae.fr> Date: Wed, 26 Oct 2022 10:11:39 +0200 Subject: [PATCH] add some hardware test dev file --- test.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ test_dps.py | 22 ++++++++++++++++++++++ test_relays.py | 22 ++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 test.py create mode 100644 test_dps.py create mode 100644 test_relays.py diff --git a/test.py b/test.py new file mode 100644 index 00000000..9048f56e --- /dev/null +++ b/test.py @@ -0,0 +1,51 @@ +from ohmpi import OhmPi +import matplotlib.pyplot as plt +import numpy as np + +k = OhmPi(idps=True) +k.rs_check() + +x = [] +for i in range(1): + out = k.run_measurement(injection_duration=0.5, nb_stack=1, tx_volt=0, autogain=True, best_tx_injtime=0.2) + x.append(out['R [ohm]']) + + +data = out['fulldata'] +inan = ~np.isnan(data[:,0]) + +if True: + plt.plot(data[inan,2], data[inan,0], '.-', label='current [mA]') + plt.plot(data[inan,2], data[inan,1], '.-', label='voltage [mV]') + plt.legend() + plt.show() + + +if False: + from numpy.fft import fft, ifft + + x = data[inan, 1][10:300] + t = np.linspace(0, len(x)*4, len(x)) + sr = 1/0.004 + + X = fft(x) + N = len(X) + n = np.arange(N) + T = N/sr + freq = n/T + + plt.figure(figsize = (12, 6)) + plt.subplot(121) + + plt.stem(freq, np.abs(X), 'b', \ + markerfmt=" ", basefmt="-b") + plt.xlabel('Freq (Hz)') + plt.ylabel('FFT Amplitude |X(freq)|') + #plt.xlim(0, 10) + + plt.subplot(122) + plt.plot(t, ifft(X), 'r') + plt.xlabel('Time (s)') + plt.ylabel('Amplitude') + plt.tight_layout() + plt.show() diff --git a/test_dps.py b/test_dps.py new file mode 100644 index 00000000..d52462fb --- /dev/null +++ b/test_dps.py @@ -0,0 +1,22 @@ +import board # noqa +import busio # noqa +import time +import adafruit_ads1x15.ads1115 as ads # noqa +from adafruit_ads1x15.analog_in import AnalogIn +from adafruit_mcp230xx.mcp23008 import MCP23008 # noqa +import digitalio # noqa +from digitalio import Direction # noqa +from gpiozero import CPUTemperature # noqa +import minimalmodbus + +#Initialisation du module d'injection de current +DPS = minimalmodbus.Instrument(port='/dev/ttyUSB0', slaveaddress=1) # port name, slave address (in decimal) +DPS.serial.baudrate = 9600 # Baud rate 9600 as listed in doc +DPS.serial.bytesize = 8 # +DPS.serial.timeout = 1 # > a 0.5 pour que cela fonctionne +DPS.debug = False # +DPS.serial.parity = 'N' # No parity +DPS.mode = minimalmodbus.MODE_RTU # RTU mode + +DPS.write_register(0x0001, 40, 0) # (last number) 0 is for mA, 3 is for A +DPS.write_register(0x0000, 5, 0) self.DPS.write_register(0x0000, tx_volt, 2) \ No newline at end of file diff --git a/test_relays.py b/test_relays.py new file mode 100644 index 00000000..9d5f1356 --- /dev/null +++ b/test_relays.py @@ -0,0 +1,22 @@ +import board # noqa +import busio # noqa +import time +from adafruit_mcp230xx.mcp23008 import MCP23008 # noqa +from digitalio import Direction # noqa + + +i2c = busio.I2C(board.SCL, board.SDA) +mcp = MCP23008(i2c, address=0x20) + +pin0 = mcp.get_pin(0) +pin0.direction = Direction.OUTPUT +pin1 = mcp.get_pin(1) +pin1.direction = Direction.OUTPUT + + +pin0.value = False +pin1.value = False + +pin0.value = True +pin1.value = False +time.sleep(2) -- GitLab