def main(): #vehicle = connect('udp:192.168.1.177:14554', baud=57600, wait_ready=True) #vehicle = connect('udp:10.42.0.1:14555', baud=57600, wait_ready=True) #vehicle = connect('udp:127.0.0.1:14553', baud=57600, wait_ready=True) arduino = PyMata("/dev/ttyUSB0") arduino.sonar_config(3, 4) arduino.sonar_config(5, 6) arduino.sonar_config(7, 8) def signal_handler(signal, frame): if arduino != None: arduino.reset() sys.exit(0) signal.signal(signal.SIGINT, signal_handler) while True: arduino.digital_write(13, 1) data = arduino.get_sonar_data() sonarS = data[3][1] sonarL = data[5][1] sonarR = data[7][1] print sonarS, sonarR, sonarL time.sleep(.05) #vehicle.mode = VehicleMode("LAND") #vehicle.close() arduino.close()
import signal from PyMata.pymata import PyMata # create a PyMata instance board = PyMata("/dev/ttyACM0", verbose=True) # you may need to press ctrl c twice def signal_handler(sig, frame): print('You pressed Ctrl+C') if board is not None: board.reset() board.close() sys.exit(0) signal.signal(signal.SIGINT, signal_handler) # Configure the trigger and echo pins board.sonar_config(12, 12) time.sleep(1) # Create a forever loop that will print out the sonar data for the PING device while 1: data = board.get_sonar_data() print(str(data[12][1]) + ' centimeters') time.sleep(.2)
def cb_ping(data): # time.sleep(2) print(str(data[2]) + ' centimeters') # if data[2] < 5: # print('检测到物体') # else: # print('no') # you may need to press control-c twice to exit 使用两次contloc来进行程序的退出 def signal_handler(sig, frame): print('You pressed Ctrl+C!!!!') if board is not None: board.reset() board.close() sys.exit(0) signal.signal(signal.SIGINT, signal_handler) # Configure Trigger and Echo pins # Using default of 50 ms ping interval and max distance of 200 cm. data = board.sonar_config(12, 12, cb_ping) # Example of changing ping interval to 100, and max distance to 150 # board.sonar_config(12, 12, cb_ping, 100, 150) time.sleep(20) board.close()
from PyMata.pymata import PyMata # create a PyMata instance board = PyMata("/dev/ttyACM0", verbose=True) # you may need to press ctrl c twice def signal_handler(sig, frame): print('You pressed Ctrl+C') if board is not None: board.reset() board.close() sys.exit(0) signal.signal(signal.SIGINT, signal_handler) # Configure the trigger and echo pins board.sonar_config(12, 12) time.sleep(1) # Create a forever loop that will print out the sonar data for the PING device while 1: data = board.get_sonar_data() print(str(data[2]) + ' centimeters') time.sleep(.2)
# pymata_ultrasonic_ping.py # ultrasonic sensor test # FirmataPlus is required on Arduino. import time from PyMata.pymata import PyMata PORT = '/dev/ttyACM0' board = PyMata(PORT,verbose=True) pinNo = 12 trig=echo=pinNo board.sonar_config(trig,echo) time.sleep(1) while True: data = board.get_sonar_data() dist = data[pinNo] print 'distance: {} cm'.format(dist[1]) time.sleep(.1)
# Ping callback function def cb_ping(data): print(str(data[2]) + ' centimeters') # Create a PyMata instance board = PyMata("/dev/ttyACM0", verbose=True) # you may need to press control-c twice to exit def signal_handler(sig, frame): print('You pressed Ctrl+C!!!!') if board is not None: board.reset() board.close() sys.exit(0) signal.signal(signal.SIGINT, signal_handler) # Configure Trigger and Echo pins # Using default of 50 ms ping interval and max distance of 200 cm. board.sonar_config(12, 12, cb_ping) # Example of changing ping interval to 100, and max distance to 150 # board.sonar_config(12, 12, cb_ping, 100, 150) time.sleep(10) board.close()
# ultrasonic_ping_2ch_callback.py # callback function is tested import time from PyMata.pymata import PyMata PORT = '/dev/ttyACM0' board = PyMata(PORT,verbose=True) trig=8 echo=9 def callback(res): print 'callback:{}'.format(res) board.sonar_config(trigger_pin=trig,echo_pin=echo,cb=callback,ping_interval=33) time.sleep(1) while True: data = board.get_sonar_data() dist = data[trig] print 'distance: {} cm'.format(dist[1]) time.sleep(.5)
# instantiate PyMata firmata = PyMata("/dev/ttyACM0") time.sleep(2) # configure a group of pins to control 8 LEDs firmata.set_pin_mode(46, firmata.OUTPUT, firmata.DIGITAL) firmata.set_pin_mode(47, firmata.OUTPUT, firmata.DIGITAL) firmata.set_pin_mode(48, firmata.OUTPUT, firmata.DIGITAL) firmata.set_pin_mode(49, firmata.OUTPUT, firmata.DIGITAL) firmata.set_pin_mode(50, firmata.OUTPUT, firmata.DIGITAL) firmata.set_pin_mode(51, firmata.OUTPUT, firmata.DIGITAL) firmata.set_pin_mode(52, firmata.OUTPUT, firmata.DIGITAL) firmata.set_pin_mode(53, firmata.OUTPUT, firmata.DIGITAL) # configure 4 pins for 4 SONAR modules firmata.sonar_config(6, 6) time.sleep(.1) firmata.sonar_config(7, 7) time.sleep(.1) firmata.sonar_config(37, 37) time.sleep(.1) firmata.sonar_config(39, 39) time.sleep(1) # create a forever loop that will sequentially turn on all LEDS, # then print out the sonar data for the 4 PING devices # then sequentially turns off all LEDS and print PING data again print firmata.get_digital_response_table() while 1: for i in range(46, 54): time.sleep(.1)
# instantiate PyMata firmata = PyMata("/dev/ttyACM0") time.sleep(2) # configure a group of pins to control 8 LEDs firmata.set_pin_mode(46,firmata.OUTPUT,firmata.DIGITAL) firmata.set_pin_mode(47,firmata.OUTPUT,firmata.DIGITAL) firmata.set_pin_mode(48,firmata.OUTPUT,firmata.DIGITAL) firmata.set_pin_mode(49,firmata.OUTPUT,firmata.DIGITAL) firmata.set_pin_mode(50,firmata.OUTPUT,firmata.DIGITAL) firmata.set_pin_mode(51,firmata.OUTPUT,firmata.DIGITAL) firmata.set_pin_mode(52,firmata.OUTPUT,firmata.DIGITAL) firmata.set_pin_mode(53,firmata.OUTPUT,firmata.DIGITAL) # configure 4 pins for 4 SONAR modules firmata.sonar_config(6,6) time.sleep(.1) firmata.sonar_config(7,7) time.sleep(.1) firmata.sonar_config(37,37) time.sleep(.1) firmata.sonar_config(39,39) time.sleep(1) # create a forever loop that will sequentially turn on all LEDS, # then print out the sonar data for the 4 PING devices # then sequentially turns off all LEDS and print PING data again print firmata.get_digital_response_table() while 1: for i in range(46,54): time.sleep(.1)