def read(self): Memory.set_bit(self.base_addr, Accelerometer.CTRL_REG, Accelerometer.READ_BIT, True) while not Memory.read_bit(self.base_addr, Accelerometer.CTRL_REG, Accelerometer.READ_BIT): time.sleep(0.000001) # Wait for a microsecond read_regs = [ Accelerometer.X_REG, Accelerometer.Y_REG, Accelerometer.Z_REG ] accel_vals = Memory.read_bulk(self.base_addr, read_regs) Memory.set_bit(self.base_addr, Accelerometer.CTRL_REG, Accelerometer.READ_BIT, False) return accel_vals
def ctrl_handler(data): _id, val = data if _id == 'KILLSWITCH': print('KILLSWITCH TRIGGERED') Memory.write_to_mem(ADDR_KILLSWITCH, 0, 0x0) if _id == 'ROT': ball_x, ball_y = val Memory.write_to_mem(ADDR_CAM, 0, ball_x) Memory.write_to_mem(ADDR_CAM, 4, ball_y)
def read(self): Memory.set_bit(self.base_addr, Gyroscope.CTRL_REG, Gyroscope.READ_BIT, True) while not Memory.read_bit(self.base_addr, Gyroscope.CTRL_REG, Gyroscope.READ_BIT): time.sleep(0.000001) # Wait for a microsecond read_regs = [Gyroscope.X_REG, Gyroscope.Y_REG, Gyroscope.Z_REG] gyro_vals = Memory.read_bulk(self.base_addr, read_regs) Memory.set_bit(self.base_addr, Gyroscope.CTRL_REG, Gyroscope.READ_BIT, False) return gyro_vals
def set_on(self): Memory.set_bit(self.base_addr, self.register, self.bit, True)
def set_off(self): Memory.set_bit(self.base_addr, self.register, self.bit, False)
def set_duty_cycle(self, value): self.__validate_duty_cycle(value) Memory.write_to_mem(self.base_addr, PWM.DUTY_CYCLE_REG, value)
def set_period(self, value): self.__validate_period(value) Memory.write_to_mem(self.base_addr, PWM.PERIOD_REG, value)
def get_pwm4_status(): duty_cycle = Memory.read_from_mem(ADDR_PWM4, PWMStreams.REG_DUTY_CYCLE) return int(duty_cycle)