def __init__(self): self.subscriber = rospy.Subscriber('kamigami_cmd', KamigamiCommandMsg, self.send_cmd) self.publisher = rospy.Publisher('imu/data_raw', Imu, queue_size=10) self.accelerometer_data = [] i2c = busio.I2C(board.SCL, board.SDA) self.sensor = LSM6DS33(i2c) self.motor_standby = DigitalOutputDevice(17) self.motor_right_pwm = PWMOutputDevice(13) self.motor_left_pwm = PWMOutputDevice(18) self.motor_right_forward = DigitalOutputDevice(27) self.motor_right_backward = DigitalOutputDevice(22) self.motor_left_forward = DigitalOutputDevice(24) self.motor_left_backward = DigitalOutputDevice(23) self.pins_on() self.deg_to_rad = (math.pi / 180) # self.motor_left = Motor(12, 18) # self.motor_right = Motor(13, 19) rospy.on_shutdown(self.shutdown)
import time import board import busio # pylint:disable=no-member,unused-import from adafruit_lsm6ds import LSM6DS33, LSM6DSOX, ISM330DHCX, Rate, AccelRange, GyroRange i2c = busio.I2C(board.SCL, board.SDA) sensor = LSM6DS33(i2c) # sensor = LSM6DSOX(i2c) # sensor = ISM330DHCX(i2c) sensor.accelerometer_range = AccelRange.RANGE_8G print("Accelerometer range set to: %d G" % AccelRange.string[sensor.accelerometer_range]) sensor.gyro_range = GyroRange.RANGE_2000_DPS print("Gyro range set to: %d DPS" % GyroRange.string[sensor.gyro_range]) sensor.accelerometer_data_rate = Rate.RATE_1_66K_HZ # sensor.accelerometer_data_rate = Rate.RATE_12_5_HZ print("Accelerometer rate set to: %d HZ" % Rate.string[sensor.accelerometer_data_rate]) sensor.gyro_data_rate = Rate.RATE_1_66K_HZ print("Gyro rate set to: %d HZ" % Rate.string[sensor.gyro_data_rate]) while True: print( "Accel X:%.2f Y:%.2f Z:%.2f ms^2 Gyro X:%.2f Y:%.2f Z:%.2f radians/s" %
import busio from adafruit_lsm6ds import LSM6DS33, AccelRange, GyroRange import adafruit_lps2x import adafruit_lis3mdl from math import pi rad2deg = 180 / pi thumb = False bag = BagIt(Pickle) hz = 20 # rate = Rate(hz) i2c = busio.I2C(board.SCL, board.SDA, 100000) # 'RANGE_1000_DPS', 'RANGE_125_DPS', 'RANGE_2000_DPS', 'RANGE_250_DPS', 'RANGE_4000_DPS', 'RANGE_500_DPS' imu = LSM6DS33(i2c) imu.accelerometer_range = AccelRange.RANGE_2G # pylint: disable=no-member imu.gyro_range = GyroRange.RANGE_1000_DPS lps = adafruit_lps2x.LPS22(i2c) lis = adafruit_lis3mdl.LIS3MDL(i2c) # 155 Hz, 4 gauss, continuous lis.data_rate = adafruit_lis3mdl.Rate.RATE_560_HZ start = time.monotonic() last = start cnt = 0 m, p, t = 0, 0, 0 try: while True: # ts = time.time()
import time import board import busio from adafruit_lsm6ds import LSM6DS33 i2c=busio.I2C(board.SCL, board.SDA) # IMU lsm6=LSM6DS33(i2c) while True: print("Acceleration: X:%.2f, Y:%.2f, Z:%.2f m/s^2"%(lsm6.acceleration)) print("Gyro: X:%.2f, Y:%.2f, Z:%.2f degrees/s"%(lsm6.gyro)) time.sleep(0.5)
# Enable Water Temperature sensor GPIO.output(27, GPIO.HIGH) # Set GPIO 27 to HIGH to enable SCL GPIO.output(22, GPIO.HIGH) # Set GPIO 22 to HIGH to enable SDA sleep(0.5) waterSensor = tsys01.TSYS01() # Make new object for water thermometer waterSensor.init() # Initialize water thermometer sleep(0.5) # Disable Water Temperature Sensor communication GPIO.output(27, GPIO.LOW) GPIO.output(22, GPIO.LOW) # Use Pi I2C i2c = busio.I2C(board.SCL, board.SDA) # Create an IMU I2C connection sensor_IMU = LSM6DS33(i2c) # Create an ADC I2C connection #sensor_ADC = ADS.ADS1015(i2c) # Uncomment if using the ADS1015 ADC #sensor_ADC = ADS.ADS1115(i2c) # Uncomment if using the ADS1115 ADC # Create channel for ADC. here ADS.P0 is A0 on the ADS #adc_chan = AnalogIn(ads, ADS.P0) # Uncomment if adding either ADC # Sets file up for logging Sensors (not IMU) # -- Latitude, Longitude -> degrees # -- Temperatures -> Degrees Centigrade # -- Time -> 24hr clock # -- Date -> MM/DD/YYYY data_File = open("/media/GPS_Temp.csv", "a") if os.stat("/media/GPS_Temp.csv").st_size == 0:
gegg_sprite = displayio.TileGrid(gegg_bmp, pixel_shader=displayio.ColorConverter()) splash.append(gegg_sprite) # Draw a label text_group = displayio.Group(max_size=1, scale=2, x=10, y=220) text = "Current & Max Acceleration" text_area = label.Label(terminalio.FONT, text=text, color=0x0000FF) text_group.append(text_area) # Subgroup for text scaling splash.append(text_group) # display everything so far board.DISPLAY.show(splash) # connect to the accelerometer sensor = LSM6DS33(board.I2C()) # highest range for impacts! sensor.accelerometer_range = AccelRange.RANGE_16G # we'll read at about 1KHz sensor.accelerometer_rate = Rate.RATE_1_66K_HZ # Instead of raw accelerometer data, we'll read the *change* in acceleration (shock) sensor.high_pass_filter = AccelHPF.SLOPE sensor.high_pass_filter_enabled = True # and make a lil buzzer buzzer = pulseio.PWMOut(board.SPEAKER, variable_frequency=True) buzzer.frequency = 1000 max_slope = 0 egg_ok = True while True: