def static_tests_sweep(num_bits=7, offset=0.5, tau=6, plot_decision_tree=False, bucketsize=20, steps=None): datasize = int(bucketsize * 2**num_bits) input_axis = np.linspace(0, 2**num_bits, datasize) output_axis = np.zeros(shape=(datasize, ), dtype=int) output_axis2 = np.zeros(shape=(datasize, ), dtype=int) counter = 0 while counter < datasize: adcinstance = ADC(tau=tau, num_bits=num_bits) adc2 = ADC(tau=tau, num_bits=num_bits) #adcinstance.set_fsm_steps(weird_steps) adc2.set_fsm_steps(steps) inputvoltage = input_axis[counter] + offset adcinstance.run_1_adc_sample(vin=inputvoltage) adc2.run_1_adc_sample(vin=inputvoltage) plots = adcinstance.return_transient_results() plots2 = adc2.return_transient_results() output = int(adcinstance.return_output()) output2 = int(adc2.return_output()) if (plot_decision_tree): print(output) helper.plot_transients(plots, vin=None) helper.plot_transients(plots2, vin=None) output_axis[counter] = output output_axis2[counter] = output2 counter = counter + 1 adc_eval.eval_adc_from_arrays(input_axis, output_axis) adc_eval.eval_adc_from_arrays(input_axis, output_axis2)
def ADC_init(self): from adc import ADC self._A0 = ADC(0) self._A1 = ADC(1) self._A2 = ADC(2) self._A3 = ADC(3) self._A4 = ADC(4) self._A0.DEBUG = 'error' self._A1.DEBUG = 'error' self._A2.DEBUG = 'error' self._A3.DEBUG = 'error' self._A4.DEBUG = 'error'
def __init__(self, unix_socket_path, *args, **kwargs): self.unix_socket_path = unix_socket_path self.connection = None self.welcome_socket = None spi = SPI(0, 0) spi.msh = 2000000 spi.mode = 1 self.chs = [0, 1, 2, 3] self.ADC0 = ADC("P9_24", spi) self.ADC1 = ADC("P9_26", spi) self.ADC2 = ADC("P9_28", spi) self.ADC3 = ADC("P9_30", spi)
def __init__(self, gp): # Global Parameters self.gp = gp # RRAM Parameters self.ron = gp.rram.ron self.roff = gp.rram.roff self.rvar = gp.rram.rvar self.rp = gp.rram.rp self.vdiff = gp.rram.von - gp.rram.voff self.n_bit = gp.rram.n_bit self.rlsb = (self.roff - self.ron) / (2**self.n_bit - 1) self.glsb = (1 / self.ron - 1 / self.roff) / (2**self.n_bit - 1) self.x = gp.rram.size_x self.y = gp.rram.size_y # Resistance values self.arr = np.empty([self.y, self.x]) # Digital values self.dig_arr = np.empty([self.y, self.x]) # ADC self.adc = ADC(gp, self.n_bit, gp.mvm.active_rows,\ self.ron, self.roff, self.rvar, self.vdiff) # Energy self.e_read = 0
def __init__(self): self.logger_setup() self.speaker_volume = 70 self.capture_volume = 100 tmp = self.power_type sleep(0.01) # when arduino open debug, sleep(> 0.3) self.adc = ADC(5) # Power voltage channel: 5 self._debug('Init PiSmart object complete')
def get_data_dict(adc_inputs): adc = ADC(adc_inputs) data_dict = get_time_dict() data_dict.update(temp()) _, adc_dict = adc.read_addresses() data_dict.update(adc_dict) ultrasonic = Ultrasonic(trigger=3, echo=5) data_dict.update(ultrasonic.read_distance()) return data_dict
def time_domain_probe(num_bits=10, offset=0.5, tau=6, vin=0, steps=None): adcinstance = ADC(tau=tau, num_bits=num_bits) adc2 = ADC(tau=tau, num_bits=num_bits) # adcinstance.set_fsm_steps(weird_steps) adc2.set_fsm_steps(steps) inputvoltage = vin + offset adcinstance.run_1_adc_sample(vin=inputvoltage) adc2.run_1_adc_sample(vin=inputvoltage) plots = adcinstance.return_transient_results() helper.plot_transients(plots, inputvoltage) plots2 = adc2.return_transient_results() helper.plot_transients(plots2, inputvoltage) output = int(adcinstance.return_output()) output2 = int(adc2.return_output()) print('output is ' + str(output)) print('adjusted output is ' + str(output2))
def __init__(self, id, minc, maxc, m, c): self.id = id # Connection to ADS1115 self.adc = ADC() # Threshold curves self.min_curve = minc self.max_curve = maxc # Linear approximation of ADC conversion to curve in degrees # angle = (adc_value - offset)/gradient self.gradient = float(m) self.offset = float(c)
def get_data_dict(adc_inputs): adc = ADC(adc_inputs) data_dict = get_time_dict() data_dict.update(temp()) _, adc_dict = adc.read_addresses() data_dict.update(adc_dict) ultrasonic = Ultrasonic(trigger=trigger_pin, echo=echo_pin) u_distance = ultrasonic.read_distance() if u_distance['u_distance'] <= 20: turn_camera_flash(True) else: turn_camera_flash(False) data_dict.update(u_distance) return data_dict
def adc_test(): tb = TB(adc_p) adc = ADC(adc_p, tb) tb.submodules += adc # cd_dsp4 = ClockDomain("dsp4", reset_less=True) # tb.clock_domains += cd_dsp4 def run(tb): dut = tb yield tb.i_sdoa.eq(1) yield tb.i_sdob.eq(1) yield yield tb.i_sdob.eq(0) yield tb.i_sdoc.eq(1) yield tb.i_sdod.eq(1) yield yield tb.i_sdoc.eq(0) yield yield tb.i_sdod.eq(0) yield yield dut.o_bitslip.eq(1) yield yield dut.o_bitslip.eq(0) for i in range(3): yield yield dut.o_bitslip.eq(1) for i in range(3): yield yield dut.o_bitslip.eq(0) yield # yield dut.bitslip_done.eq(1) # yield dut.i_start.eq(1) yield from dut.iter_vals("{:04b}".format(12), "{:04b}".format(2), "{:04b}".format(1), "{:04b}".format(7)) run_simulation( tb, run(tb), vcd_name="adc_test.vcd", clocks={ "sys": (8, 0), # "dsp4": (2, 0), }, )
from adc import ADC adc = ADC(11, mosi=10, miso=9, ss=8) for i in range(5): print adc.read(0) import Adafruit_GPIO.SPI as SPI # # spi = SPI.SpiDev(0,0) # spi.open() # spi.set_clock_hz(5000) # spi.set_mode(0) # spi.set_bit_order(0)
def __init__(self, address): self.adc = ADC([address])
times_g = [] lats = [] lat_err = [] lons = [] lon_err = [] alts = [] alt_err = [] print("Station %i Trial %i \nPress enter to collect data:" % (i, j)) pause = input('') print("Collecting data...") g_data.append(GPS()) t0 = time.time() voltages = ADC() t1 = time.time() g_data.append(GPS()) for g in g_data: t_g = g[0] t_g = str(t_g).split(' ')[1] t_g = str(t_g).split('-')[0] times_g.append(t_g) lats.append(g[1][0]) lat_err.append(g[1][1]) lons.append(g[2][0]) lon_err.append(g[2][1])
def readADC(): adc = ADC([0]) return adc.read_addresses()
def main(args=None): sw = switch_4() smb = I2C() par = parse() adc = ADC() pers = _8bitIO() port = _16bitIO() parser = par.get_parser() args = parser.parse_args(args) #inspect the command line err_flag = False if ((args.i2c0 and not args.i2c1) or (args.i2c1 and not args.i2c0)): try: data = smb.parse_func(args.data[0]) except: err_flag = True raise print('Error parsing or invalid syntax, use "-h" for help') if not err_flag: if i2c.w_found and not i2c.r_found: try: smb.write(data[0], data[1], not args.i2c0) # data[0] is data_i, data[1] is data_w print('ACK') except IOError: print('NACK...confirm you are transacting with the correct bus') except: raise print('Invalid Syntax') if not i2c.w_found and not i2c.r_found: try: smb.detect(data[0], not args.i2c0) print('ACK') except: print('NACK...confirm you are transacting with the correct bus') if i2c.r_found and not i2c.w_found: try: smb.read(data[0], data[2], not args.i2c0) except IOError: print('NACK...confirm you are transacting with the correct bus') except: raise print('Invalid Syntax') if i2c.r_found and i2c.w_found: smb.write_read(data[0], data[2], data[1], not args.i2c0) elif args.gpio and 'getall' in args.data: try: os.system('raspi-gpio get') except: print('Invalid syntax') elif args.gpio and 'get' in args.data: try: os.system('raspi-gpio get ' + args.data[1]) print('Success') except: print('Invalid syntax') elif args.gpio and 'set' in args.data: if len(args.data) == 3: try: os.system('raspi-gpio set ' + args.data[1] + ' ' + args.data[2]) print('Success') except: print('Invalid syntax') if len(args.data) == 4: try: os.system('raspi-gpio set ' + args.data[1] + ' ' + args.data[2] + ' ' + args.data[3]) print('Success') except: print('Invalid syntax') if len(args.data) == 5: try: os.system('raspi-gpio set ' + args.data[1] + ' ' + args.data[2] + ' ' + args.data[3] + ' ' + args.data[4]) print('Success') except: print('Invalid syntax') elif args.adc: if args.data[0] == 'raw' and len(args.data) == 2: try: adc.raw_adc(args.data[1]) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif args.data[0] == 'volt' and len(args.data) == 2: try: print(adc.volt_adc(args.data[1])) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') else: print('Invalid syntax') elif args.per: if(args.data[0] == 'config'): try: pers.configPorts() print('Success') except IOError: print('NACK...confirm device is powered on') except: print('Fail!') elif(args.data[0] == 'arm'): try: pers.arm(args.data[1], False) print('Success') except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif(args.data[0] == 'disarm'): try: pers.arm(args.data[1], True) print('Success') except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif(args.data[0] == 'read'): try: pers.read_inputs() print('Success') except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif args.port: if(args.data[0] == 'config'): try: port.configPorts() print('Success') except IOError: print('NACK...confirm device is powered on') except: print('Fail!') elif args.data[0] == 'readall': try: port.zone_readall(args.data[1]) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif args.data[0] == 'read': try: port.zone_read(args.data[1], args.data[2]) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif args.data[0] == 'led': try: port.led_toggle(args.data[1], args.data[2], args.data[3]) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') else: print('Invalid syntax') elif args.switch: if args.data[0] == 'write': try: sw.ch_write(args.data[1], args.data[2], args.data[3]) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif args.data[0] == 'readint': try: sw.read_int(args.data[1]) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') elif args.data[0] == 'read': try: sw.read_dat(args.data[1], args.data[2]) except IOError: print('NACK...confirm device is powered on') except: print('Invalid syntax') else: print('Invalid syntax')
def __init__(self, channel): self.channel = channel self.adc = ADC()