def __init__(self, buss_id, address): self.gyro = Gyroscope(buss_id, address) self.gyro_full_scale = 245 self.acc = Accelerometer(buss_id, address) self.acc_full_scale = 2 self.fifo = Fifo(buss_id, address) self.temp = Temperature(buss_id, address)
def run(self): index = 0 max = len(self.file_list) for file in self.file_list: index = index + 1 self.config_dict['accelerometer'].update({ 'index': index, 'max': max }) accelerometer_featurizer = Accelerometer( file, self.config_dict['accelerometer']) df_feature_windows, df_acc = accelerometer_featurizer.run_feature_extraction( ) df_feature_windows.to_csv( os.path.join(self.out_dir, 'acc_' + os.path.basename(file))) return 1
class Minimu: VERSION = 'minimu9v5' def __init__(self, buss_id, address): self.gyro = Gyroscope(buss_id, address) self.gyro_full_scale = 245 self.acc = Accelerometer(buss_id, address) self.acc_full_scale = 2 self.fifo = Fifo(buss_id, address) self.temp = Temperature(buss_id, address) def enable(self, odr=104): self.gyro.enable(odr) self.gyro_full_scale = self.gyro.get_full_scale_selection() self.acc.enable(odr) self.acc_full_scale = self.acc.get_full_scale_selection() self.fifo.enable(odr) def disable(self): self.gyro.disable() self.acc.disable() self.fifo.disable() def read_fifo_raw(self): data = np.array(self.fifo.get_data(), dtype=np.int) return data def read_fifo(self): data = np.array(self.fifo.get_data(), dtype=np.double) try: data[:, :3] *= 1 except IndexError: sleep(0.1) data = np.array(self.fifo.get_data(), dtype=np.double) data[:, :3] *= self.gyro_full_scale data[:, -3:] *= self.acc_full_scale data[data > 0] /= 32767 data[data < 0] /= 32768 return data def read_temperature(self): return self.temp.get_temperature()
dTmDiff = errorSignal[2, 0] - errorSignal[0, 0] #get time diff drvt = getDerivative(errorSignal[0, 1], errorSignal[2, 1], dTmDiff) #PID control equation PID = ((0.2) * errorSignal[1, 1] + (0.2) * agrInteg + (0.2) * drvt) + 1 # print (errorSignal) # print ("________") return PID, agrInteg #------------program system start------------# #sensor objects acc = Accelerometer() alt = Altimeter() #start clock count tm = time.time() #make dir to record flight data root = "/home/pi/Documents/Flight Data/" stamp = time.asctime(time.localtime(time.time())) os.makedirs(root + stamp) #to store max values for use in determining when to initiate controls vMax = 0 hMax = 0 #for the storage of the error signals of previous cycles || structure: index | time, error
# dev = True import machine # from umqtt.simple import MQTTClient from accelerometer import Accelerometer import config import array from rollingaverage import RollingStats import mannet drumstick_id = config.id # See wiki for pinout: https://github.com/jackosx/CAMP/wiki/ESP32-Hardware # TODO: Make high or low in config to support 2 sticks stick = Accelerometer(scl=config.accel_scl, sda=config.accel_sda) buzz = machine.Pin(config.buzz_pin, machine.Pin.OUT) buzz.value(0) striking = False g_thresh = config.threshold queue_len = 100 strike_avg = RollingStats(10, 10) debounce_count = 0 buzz_count = 0 led_count = 0 # TODO for LEDs on strike
from accelerometer import Accelerometer from barometer import Barometer from gps import GPSSensor import numpy as np from time import sleep # Initialise the i2c bus I2CBUS_NUMBER = 1 bus = SMBus(I2CBUS_NUMBER) # Initialise the gyroscope gyroscope1 = Gyroscope(bus) # Initialise the accelerometer accelerometer1 = Accelerometer(bus) # Initialise the barometer barometer1 = Barometer(bus) barometer1.calibrate() # Initialise the GPS gps1 = GPSSensor() gps1.initialise() # Initialise the server server = com.ServerSocket() server.connect() try: while True:
import machine from umqtt.simple import MQTTClient from accelerometer import Accelerometer import config import array from rollingaverage import RollingStats drumstick_id = config.id # client = MQTTClient("drumstick-{}".format(config.id), "manatee.local") # client.connect() # See wiki for pinout: https://github.com/jackosx/CAMP/wiki/ESP32-Hardware # TODO: Make high or low in config to support 2 sticks stick = Accelerometer() striking = False g_thresh = config.threshold queue_len = 100 hit_queue = array.array("H", [0] * queue_len) hit_idx = 0 hit_count = 0 strike_avg = RollingStats(10, 10) debounce_count = 0 prev_x, prev_y, prev_z = 0, 0, 0 # For debugging. Allows dev to adjust touch_thresh in REPL
class MesureWindow(Screen): mesureState = ObjectProperty(None) acc = Accelerometer() analysisBtn = ObjectProperty(None) analyse = ObjectProperty(None) image_analyse = ObjectProperty(None) count = NumericProperty(1) image_command = ObjectProperty(None) def on_pre_enter(self): self.image_analyse.source = str(Path(os.path.abspath(__file__)).parent.joinpath("posture_img").joinpath("blank.png")) self.image_command.source = str(Path(os.path.abspath(__file__)).parent.joinpath("posture_img").joinpath("command.png")) def on_enter(self): self.click = 0 self.acc.stop = False def mesure_Btn(self): self.click+=1 if self.click == 1 : self.image_command.source = str(Path(os.path.abspath(__file__)).parent.joinpath("posture_img").joinpath("blank.png")) t2 = Thread(target=self.acc.save_data) t2.start() self.mesureState.text = "[color=000000]Currently analyzing your posture...[/color]" self.analysisBtn.text = "Stop analysis" self.analysisBtn.background_color = (1,0,0,1) self.countdown() if self.click ==2 : self.event.cancel() self.acc.stop = True self.mesureState.text = "[color=000000]Posture analysis is completed[/color]" self.analysisBtn.text = "See the results" self.analysisBtn.background_color = (0,0,0,1) self.image_analyse.source = str(Path(os.path.abspath(__file__)).parent.joinpath("posture_img").joinpath("blank.png")) if self.click == 3 : self.analyse.get_possible_file() try: day = self.acc.date except: pass else: self.analyse.available_session(day) session = self.analyse.sessions[-1] self.analyse.confirmDate.text = day self.analyse.btnSession.text = session self.analyse.btnSession.background_color = 0,1,0,1 kv.current = "analyse" def on_leave(self): self.analysisBtn.text = "Start analysis" self.analysisBtn.background_color =0,1,0,1 self.mesureState.text = "" def countdown(self): self.event = Clock.schedule_interval(self.update_label,0.5) def update_label(self,time_limit): #Function update_label is called every .5 sec, and the stickmans positions is updated by selecting the next image self.count+=1 self.image_analyse.source = str(Path(os.path.abspath(__file__)).parent.joinpath("posture_img").joinpath("stickmans").joinpath(str(self.count)+".png")) if self.count ==28: self.count = 0
from accelerometer import Accelerometer from sounds import Taunter from consumer import KnockDetectingConsumer reader = Accelerometer() taunter = Taunter() consumer = KnockDetectingConsumer(reader, taunter.taunt) if __name__ == "__main__": consumer.loop()
import time from pirc522 import RFID from tags import WeightTag from display import Display from accelerometer import Accelerometer from log import log import http rf = RFID() display = Display() accel = Accelerometer() tagWeight = 0 def handle_tag(tag): # tag.weight = 20 global tagWeight weightRead = tag.weight if weightRead and weightRead != tagWeight: display.show(weightRead) if weightRead: tagWeight = tag.weight def get_tag(): rf.request() err, uid = rf.anticoll() if not err: # log('Tag read, UID:', uid) tag = WeightTag(rf, uid)
import numpy as np import sys from accelerometer import Accelerometer from line_us import LineUs # Open LineUs robot my_line_us = LineUs('line-us.local') time.sleep(1) # Set speed my_line_us.g94(30) # Open camera cap = cv2.VideoCapture(0) # Open acceleromenter accel = Accelerometer("/dev/ttyACM0") # Create windows img = np.zeros((int(1125 / 2), int(2000 / 2), 3)) cv2.namedWindow('Drawing image') cv2.namedWindow('Camera') x = 0 y = 0 # Main loop while (1): time.sleep(0.001) # Get camera frame ret, gray = cap.read()
sd = SD() os.mount(sd, '/sd') csv_file = open('/sd/data.csv', 'a') log_file = open("/sd/log.txt", 'a') logging.basicConfig(level=logging.DEBUG, filename=log_file) logger = logging.getLogger("RoomMonitor") logger.debug("Main loop starting") comms = Comms() wifi = WiFiManager() comms.add_manager(0, wifi) manager = DataManager(csv_file=csv_file) acc = Accelerometer( py, config.manager_mqtt_user + "/feeds/" + config.manager_mqtt_name + ".acceleration") manager.add_sensor(acc) light = Light( py, config.manager_mqtt_user + "/feeds/" + config.manager_mqtt_name + ".light-1", config.manager_mqtt_user + "/feeds/" + config.manager_mqtt_name + ".light-2") manager.add_sensor(light) press = Pressure( py, config.manager_mqtt_user + "/feeds/" + config.manager_mqtt_name + ".pressure") manager.add_sensor(press) temphum = TempHum( py, config.manager_mqtt_user + "/feeds/" + config.manager_mqtt_name + ".temperature", config.manager_mqtt_user + "/feeds/" + config.manager_mqtt_name + ".humidity")