def detect_arduino(self): try: self.arduino_board_comboBox.clear() self.board = pyfirmata2.Arduino(pyfirmata2.Arduino.AUTODETECT) board_port = [str(self.board)] self.arduino_board_comboBox.addItems(board_port) it = pyfirmata2.util.Iterator(self.board) it.start() self.led = self.board.get_pin("d:3:p") # set led pin of arduino self.oc_channel_comboBox.setEnabled(True) self.cfg_properties() self.exp_groupBox_1.setEnabled(True) self.exp_spinBox_1.setEnabled(True) self.frames_groupBox.setEnabled(True) self.delay_spinBox.setEnabled(True) self.interval_spinBox.setEnabled(True) self.Pulses_spinBox.setEnabled(True) self.led_groupBox.setEnabled(True) self.led_start_pwr_spinBox.setEnabled(True) self.led_pwr_inc_spinBox.setEnabled(True) self.save_groupBox_rec.setEnabled(True) self.rec_Button.setEnabled(True) # set info with default values self.frame_values_changed() self.led_values_changed() except KeyError: print("No Arduino Found")
def __init__( self, port, steps_per_rev, dir_pin, step_pin, low_alert_pin, high_alert_pin, min_delay=2000, ): self.stepsPerRevolution = steps_per_rev self.minDelay = min_delay self.isRunning: bool = False try: self.board = pyfirmata2.Arduino(port, baudrate=115200) except: print('Błąd otwarcia portu Arduino') else: # Konfiguracja Arduino self.tempString = 'd:' + str(step_pin) + ':o' self.stepPin = self.board.get_pin('d:' + str(step_pin) + ':o') self.tempString = str('d:' + str(dir_pin) + ':o') self.dirPin = self.board.get_pin(self.tempString) self.tempString = str('d:' + str(low_alert_pin) + ':i') self.lowAlertPin = self.board.get_pin(self.tempString) self.tempString = str('d:' + str(high_alert_pin) + ':i') self.highAlertPin = self.board.get_pin(self.tempString) self.it = pyfirmata2.Iterator(self.board) self.it.start() print('Board init OK')
def __init__(self): self.port = py.Arduino.AUTODETECT self.board = py.Arduino(self.port) self.digital_out = self.board.get_pin('d:2:o') self.analog_out = self.board.get_pin('d:3:p') self.HIGH = 1 self.LOW = 0
def validar(self): try: puerto = pyfirmata2.Arduino.AUTODETECT self.arduino = pyfirmata2.Arduino(puerto) self.mensaje['text'] = ("Estado: Conectado") self.mensaje['fg'] = ("green") except: self.mensaje['text'] = ("Estado: Desconectado") self.mensaje['fg'] = ("red") pass
def __init__(self): self.port = py.Arduino.AUTODETECT #initialize the port connecting to the board self.board = py.Arduino( self.port) #initialize the board with corresponding port self.board.samplingOn( ) #be able to sample analog data (default is 19 ms) self.dig_in = self.board.get_pin( 'd:2:i') #initialize digital pin 2 as an input pin self.dig_in.enable_reporting( ) #allow for values (voltages) to be processed from the input pin self.dig_out = self.board.get_pin( 'd:3:o') #initialize digital pin 3 as an output pin self.HIGH = 1 self.LOW = 0
def updating_first_arduino(data_temp_pressure_array=data_temp_pressure_array): while True: try: for chan_ind in range(6): data_temp_pressure_array[chan_ind] = 0 board = pyfirmata2.Arduino('/dev/ard_temp') board.samplingOn(100) analog_0 = board.get_pin('a:0:i') analog_1 = board.get_pin('a:1:i') analog_2 = board.get_pin('a:2:i') analog_3 = board.get_pin('a:3:i') analog_4 = board.get_pin('a:4:i') analog_5 = board.get_pin('a:5:i') time.sleep(0.5) while True: try: data_temp_pressure_array[0] = float(analog_0.read()) data_temp_pressure_array[1] = float(analog_1.read()) data_temp_pressure_array[2] = float(analog_2.read()) data_temp_pressure_array[3] = float(analog_3.read()) data_temp_pressure_array[4] = float(analog_4.read()) data_temp_pressure_array[5] = float(analog_5.read()) # print(analog_0.read()) # print([round(5*x, 3) for x in data_temp_pressure_array[0:6]]) time.sleep(1) board.digital[13].write(1) board.digital[13].write(0) except TypeError: print('trying again Ard 1') time.sleep(1) continue except: print('Something is wrong, connecting Arduino 1 again') time.sleep(1) continue
def arduino_serial_check(): try: serial_number1 = values['-IN-'] window['output_2'].update(">>", background_color='#D7DBDD', text_color='orange') window['output_3'].update(">>", background_color='#D7DBDD', text_color='green') # Clear variable window['-SER2-'].update(serial_number1) window['output_4'].update("-- Serial Port Testing --") print(f'Serial Number : {serial_number1}') board = pyfirmata2.Arduino('/dev/ttyUSB0') it = pyfirmata2.util.Iterator(board) it.start() analog_result = (analog_read_ao()) window['timer'].update("11") window.Refresh() except serial.SerialException: print("Serial Port not available") window.FindElement('[ Start ]').Update(disabled=False) sg.PopupError('[ 0002 - Serial Port problem! Call Support ]') # Shows red error button window['-IN-'].update("") # clear variable IN print("################ FAILED #################################") window.Refresh() window['timer'].update("12") window.Refresh()
def updating_second_arduino(data_temp_pressure_array=data_temp_pressure_array): while True: try: for chan_ind in range(6, 12): data_temp_pressure_array[chan_ind] = 0 board = pyfirmata2.Arduino('/dev/ard_pres') board.samplingOn(100) analog_0 = board.get_pin('a:0:i') analog_1 = board.get_pin('a:1:i') analog_2 = board.get_pin('a:2:i') analog_3 = board.get_pin('a:3:i') analog_4 = board.get_pin('a:4:i') analog_5 = board.get_pin('a:5:i') time.sleep(0.015011) while True: try: data_temp_pressure_array[6] = float(analog_0.read()) data_temp_pressure_array[7] = float(analog_1.read()) data_temp_pressure_array[8] = float(analog_2.read()) data_temp_pressure_array[9] = float(analog_3.read()) data_temp_pressure_array[10] = float(analog_4.read()) data_temp_pressure_array[11] = float(analog_5.read()) # print('pressure ard signal') # print([round(5*x, 3) for x in data_temp_pressure_array[10:11]]) time.sleep(1) board.digital[13].write(1) board.digital[13].write(0) except TypeError: print('trying again Ard2 (pres)') time.sleep(1) continue except: print('Something is wrong, connecting Arduino 2 again') time.sleep(1) continue
def updating_first_arduino(both_arduinos_analog_pins=both_arduinos_analog_pins): while True: try: for chan_ind in range(6): both_arduinos_analog_pins[chan_ind] = 0 board = pyfirmata2.Arduino('/dev/tty.usbmodem14201') board.samplingOn(100) analog_0 = board.get_pin('a:0:i') analog_1 = board.get_pin('a:1:i') analog_2 = board.get_pin('a:2:i') analog_3 = board.get_pin('a:3:i') analog_4 = board.get_pin('a:4:i') analog_5 = board.get_pin('a:5:i') time.sleep(0.5) while True: try: both_arduinos_analog_pins[0] = float(analog_0.read()) both_arduinos_analog_pins[1] = float(analog_1.read()) both_arduinos_analog_pins[2] = float(analog_2.read()) both_arduinos_analog_pins[3] = float(analog_3.read()) both_arduinos_analog_pins[4] = float(analog_4.read()) both_arduinos_analog_pins[5] = float(analog_5.read()) # print(analog_0.read()) time.sleep(1) board.digital[13].write(1) board.digital[13].write(0) except TypeError: print('trying again') time.sleep(1) continue except: print('Something is wrong, connecting Arduino 1 again') time.sleep(1) continue
#word.append(dict_morsedecoder[letter]) print letter, '\n' letter = '' continue letter += recording[i] if i == len(recording) - 1: #word.append(dict_morsedecoder[letter]) debug_letter = dict_morsedecoder[letter] word.append(debug_letter) return word try: #setting up the digital pins board = pfm.Arduino( pfm.Arduino.AUTODETECT ) # this line detects the COM on which the arduino is connected PIN_Button = int(raw_input("please input the pin number for the Button: ")) PIN_LED = int(raw_input("please input the pin number for the LED: ")) PIN_PIEZO = board.get_pin('d:6:p') # set digital pin 6 to PWM mode PIN_Rotator = 0 threshold_rotator = 0.8 it = pfm.util.Iterator(board) # required for all reading it.start() # required for all reading din_button = board.digital[PIN_Button] din_button.mode = pfm.INPUT # alternative way to set the reading/writing mode dout_light = board.digital[PIN_LED] din_rotator = board.analog[PIN_Rotator] din_rotator.enable_reporting() #required for reading
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Warning: this code won't provide precise timing as it's using a # delay opertation. import pyfirmata2 # Adjust that the port match your system, see samples below: # On Linux: /dev/tty.usbserial-A6008rIF, /dev/ttyACM0, # On Windows: \\.\COM1, \\.\COM2 # PORT = '/dev/ttyACM0' PORT = pyfirmata2.Arduino.AUTODETECT # Creates a new board board = pyfirmata2.Arduino(PORT) print("Setting up the connection to the board ...") # default sampling interval of 19ms board.samplingOn() # Setup the digital pin digital_0 = board.get_pin('d:6:i') digital_0.enable_reporting() while (True): if str(digital_0.read()) == 'True': print("Button pressed") elif str(digital_0.read()) == 'False': print("Button not pressed") else: print("Button has never been pressed")
import time import pyfirmata2 import serial import Motor board = pyfirmata2.Arduino('COM4') print(board) # DirPinMotor2 = 10 # StepPinMotor2 = 11 DirPinMotor2 = board.get_pin('d:10:o') StepPinMotor2 = board.get_pin('d:11:o') MinDelayMotor2 = 0.001 # us print('Kierunek prawo') DirPinMotor2.write(1) # Kierunek prawo tempDelay = MinDelayMotor2 for i in range(0, 1600): StepPinMotor2.write(1) # time.sleep(0.001) StepPinMotor2.write(0) # time.sleep(0.0001) print('Kierunek lewo') DirPinMotor2.write(0) # Kierunek lewo for i in range(0, 1600): StepPinMotor2.write(1) # time.sleep(0.0001) StepPinMotor2.write(0) # time.sleep(0.00001) print('FINISH')
''' I.O.Test IO Test ''' import pyfirmata2 import time board = pyfirmata2.Arduino(pyfirmata2.Arduino.AUTODETECT) def test2(equipmentName): board.digital[equipmentName].write(1) time.sleep(1) board.digital[equipmentName].write(0) time.sleep(1) board.digital[equipmentName].write(1) time.sleep(1) board.digital[equipmentName].write(0) time.sleep(1) pass houseLight = 2 leverLeft = 3 leverRight = 4 feeder = 5
parser = argparse.ArgumentParser() #initiate the argparse object (parser) parser.add_argument("INP", help="Input pin (0-3)\n") #add 1st argument parser.add_argument("thr", help="threshold (0 ~ 1)\n") #add 2nd argument parser.add_argument( "duration", help="Duration of reading (positive float)\n") #add 3rd argument args = parser.parse_args() # call parse_args to parse the argument strings #assgining arguments to other variables and convert to proper variable type INP = int(args.INP) thr = np.float(args.thr) duration = np.float(args.duration) #define the Arduino port board board = pfm.Arduino(pfm.Arduino.AUTODETECT) print("Initializing Arduino Board (%s)" % board.name) it = pfm.util.Iterator(board) #necessary for analog reading it.start() #necessary for analog reading p = board.analog[INP] #initiate the analog pin to read p.enable_reporting() #need to enable to get reading, otherwise return None print "Attempt to read from %s (A%d)\n" % (board.name, INP) c = core.Clock() #initiate a clock for timing #setting up numpy array to store timing and values when flip of screen occur samplet_rec = np.zeros(int(duration * 2000) + 1) #store for time
def analog_read_ao(): # ***************************Start internal variable**************************** out_of_loop = 0 # **************************** End of global loop ************************** while out_of_loop <= 2: if out_of_loop == 0: print("Serial Port is available...") window['output_4'].update(">>", background_color='#D7DBDD', text_color='red') # Clear variable window['output_3'].update(">>", background_color='#D7DBDD', text_color='green') # Clear variable window['output_2'].update("[ --Testing-- ]", background_color='yellow', text_color='black') window['-SER2-'].update(serial_number) window['-IN-'].update("") # clear variable IN sg.OneLineProgressMeter('Testing Voltage PCB', out_of_loop + 1, 3, 'key') window.Refresh() print("Reading all voltages...") board = pyfirmata2.Arduino('/dev/ttyUSB0') it = pyfirmata2.util.Iterator(board) it.start() analog_input0 = board.get_pin('a:0:i') analog_input1 = board.get_pin('a:1:i') analog_input2 = board.get_pin('a:2:i') sleep(2) """ ****************** Analog port - A0 *************************""" analog_value0 = analog_input0.read() sleep(0.2) volts = float(5) out_a0_volts = ((analog_value0 * volts) / 1) print(f'Voltage port A0: {"%.2f" % out_a0_volts}') time.sleep(0.2) """ ****************** Analog port - A1 *************************""" analog_value1 = analog_input1.read() volts = float(5) out_a1_volts = ((analog_value1 * volts) / 1) print(f'Voltage port A1: {"%.2f" % out_a1_volts}') time.sleep(0.2) """ ****************** Analog port - A2 *************************""" analog_value2 = analog_input2.read() volts = float(5) out_a2_volts = ((analog_value2 * volts) / 1) print(f'Voltage port A2: {"%.2f" % out_a2_volts}') time.sleep(0.2) """ ********************* Ending Analog port ************************""" out_of_loop += 1 if out_of_loop == 1: print(f'Measure Volts checking: ..33 %') if out_of_loop == 2: print(f'Measure Volts checking: ..65 %') window['output_2'].update("Closing data...", background_color='yellow', text_color='black') window.Refresh() if out_of_loop == 3: window['output_2'].update(">") print(f'Measure Volts checking: ..100 %') window['output_2'].update(">>", background_color='#D7DBDD', text_color='orange') window['output_3'].update("[ - -PASS- - ]", background_color='#58D68D', text_color='black') window.Refresh() if out_of_loop == 3: a0 = float("%.2f" % out_a0_volts) a1 = float("%.2f" % out_a1_volts) a2 = float("%.2f" % out_a2_volts) print("Measures Voltage Done !") window.FindElement('[ Start ]').Update(disabled=False) window.FindElement('[ Close FCT ]').Update(disabled=False) window.Refresh() print("################ Final Test ###########################") return a0, a1, a2 else: print("Reading Voltage code: 001")