sensor data
This commit is contained in:
169
sensor/sensor_simplerNew.py
Normal file
169
sensor/sensor_simplerNew.py
Normal file
@@ -0,0 +1,169 @@
|
||||
|
||||
import serial
|
||||
import serial.tools.list_ports
|
||||
import pandas as pd
|
||||
import os
|
||||
from pynput import keyboard
|
||||
from datetime import datetime
|
||||
from time import sleep
|
||||
import sys
|
||||
import numpy as np
|
||||
|
||||
#import termios
|
||||
import tkinter as tk
|
||||
|
||||
|
||||
# COMPORT = "/dev/cu.usbmodem11301"
|
||||
COMPORT = "COM10"
|
||||
SAMPLES=200
|
||||
|
||||
# print([port.device for port in serial.tools.list_ports.comports()])
|
||||
arduino = serial.Serial()
|
||||
|
||||
class App:
|
||||
|
||||
# def forward(self, x):
|
||||
# A = 43.20978
|
||||
# B = 0.286
|
||||
# C = 1.0373300741204
|
||||
# K = 900.0010210040905
|
||||
# v = 0.1
|
||||
# real = A + (K - A)/ (1 + np.exp(-1 * B(x-C)))**(1/v)
|
||||
|
||||
def inverse(self, y):
|
||||
# A = 43.20978
|
||||
# B = 0.286
|
||||
# C = 1.0373300741204
|
||||
# K = 900.0010210040905
|
||||
# v = 0.1
|
||||
A = -9.824360913609562
|
||||
K = 871.4744633266955
|
||||
B = 0.2909366235093304
|
||||
C = 4.3307594408159495
|
||||
v = 0.2822807132259202
|
||||
y = float(y)
|
||||
#print(y)
|
||||
real = C - (1.0 / B) * np.log((( (K - A) / (y - A) ) ** v) - 1.0)
|
||||
return real
|
||||
|
||||
def __init__(self):
|
||||
self.running = True
|
||||
self.paused = False
|
||||
self.snap = False
|
||||
self.counter = 0
|
||||
self.dist = False
|
||||
|
||||
self.current_dist = 1
|
||||
self.dataset = {}
|
||||
self.trialNumber = 0
|
||||
|
||||
self.arduino = serial.Serial(port=COMPORT, baudrate=115200, timeout=5)
|
||||
|
||||
def run_machine(self):
|
||||
with keyboard.Listener(on_press=self.on_press) as listener:
|
||||
while self.arduino.is_open and self.running:
|
||||
try:
|
||||
data = self.arduino.readline().decode(errors='ignore')
|
||||
except:
|
||||
print("Triggered Termination")
|
||||
break
|
||||
|
||||
if self.paused:
|
||||
## PILOT--SENDING INPUTS, SWITCHING SENSOR INDEX
|
||||
sleep(0.1)
|
||||
#termios.tcflush(sys.stdin, termios.TCIOFLUSH)
|
||||
msg = input("Enter message: ").strip()
|
||||
self.arduino.write(bytes(msg, 'utf-8'))
|
||||
self.paused = False
|
||||
sleep(0.5)
|
||||
|
||||
elif self.dist:
|
||||
sleep(0.1)
|
||||
#termios.tcflush(sys.stdin, termios.TCIOFLUSH)
|
||||
msg = input("Enter dist: ")
|
||||
self.current_dist = float(msg)
|
||||
self.dataset[self.current_dist] = []
|
||||
junk = self.arduino.read_all()
|
||||
self.dist = False
|
||||
|
||||
else:
|
||||
try:
|
||||
data = self.arduino.readline().decode(errors='ignore')
|
||||
if self.snap and self.counter < SAMPLES:
|
||||
if (self.counter == 0):
|
||||
self.dataset[self.current_dist] = []
|
||||
real = data.strip()
|
||||
#real = self.inverse(real)
|
||||
# print( self.inverse(real) )
|
||||
print(real)
|
||||
self.dataset[self.current_dist].append(real)
|
||||
self.counter += 1
|
||||
# if (self.counter == SAMPLES):
|
||||
# temp = 0
|
||||
# for value in self.dataset[self.current_dist] :
|
||||
# temp += float(value)
|
||||
# temp = temp / 99
|
||||
# print("Average distance guessed", self.inverse(temp))
|
||||
|
||||
else:
|
||||
self.snap = False
|
||||
self.counter = 0
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("Triggered Termination")
|
||||
break
|
||||
|
||||
print("Arduino Disconnected!")
|
||||
print("====")
|
||||
print(self.dataset)
|
||||
df = pd.DataFrame(self.dataset)
|
||||
#lb is taped
|
||||
df.to_csv(r'C:\Users\k28ad\OneDrive\Documents\sensor\dataSensor3New.csv')
|
||||
|
||||
listener.stop()
|
||||
arduino.close()
|
||||
return
|
||||
|
||||
def on_press(self, key):
|
||||
try:
|
||||
if key.char == 'p':
|
||||
self.paused = True
|
||||
|
||||
elif key.char == 's':
|
||||
self.snap = True
|
||||
|
||||
elif key.char == 'd':
|
||||
self.dist = True
|
||||
# def submit_slider1():
|
||||
# value = slider1.get()
|
||||
# self.current_dist = value
|
||||
|
||||
# def update_label1(val):
|
||||
# label1.config(text=f"Value: {val}")
|
||||
|
||||
# # Create main window
|
||||
# root = tk.Tk()
|
||||
# root.title("Slider Example")
|
||||
# root.geometry("300x200")
|
||||
|
||||
# # Slider 1
|
||||
# slider1 = tk.Scale(root, from_=0, to=3, orient=tk.HORIZONTAL, command=update_label1)
|
||||
# slider1.pack()
|
||||
# label1 = tk.Label(root, text="Value: 0")
|
||||
# label1.pack()
|
||||
# button1 = tk.Button(root, text="Submit Slider 1", command=submit_slider1)
|
||||
# button1.pack()
|
||||
|
||||
# root.mainloop()
|
||||
|
||||
except:
|
||||
if key == keyboard.Key.esc:
|
||||
print("are you here??")
|
||||
self.running = False
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
app = App()
|
||||
app.run_machine()
|
||||
Reference in New Issue
Block a user