final designs and code fixes of remote controller
This commit is contained in:
parent
572cb13f97
commit
30fd638cb1
BIN
designs/cad/box_top.FCStd
Normal file
BIN
designs/cad/box_top.FCStd
Normal file
Binary file not shown.
BIN
designs/cad/remote.20250125-170345.FCBak
Normal file
BIN
designs/cad/remote.20250125-170345.FCBak
Normal file
Binary file not shown.
Binary file not shown.
BIN
designs/cad/remote_box.20250125-170552.FCBak
Normal file
BIN
designs/cad/remote_box.20250125-170552.FCBak
Normal file
Binary file not shown.
Binary file not shown.
BIN
designs/stl/box_top.stl
Normal file
BIN
designs/stl/box_top.stl
Normal file
Binary file not shown.
BIN
designs/stl/impeller_larger_6_blade.stl
Normal file
BIN
designs/stl/impeller_larger_6_blade.stl
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -15,7 +15,7 @@
|
||||||
// WiFi stuff
|
// WiFi stuff
|
||||||
const char* ssid = "sirening";
|
const char* ssid = "sirening";
|
||||||
const char* pwd = "alarm_11735";
|
const char* pwd = "alarm_11735";
|
||||||
const IPAddress ip(192, 168, 4, 201);
|
const IPAddress ip(192, 168, 4, 203);
|
||||||
const IPAddress gateway(192, 168, 4, 1);
|
const IPAddress gateway(192, 168, 4, 1);
|
||||||
const IPAddress subnet(255, 255, 0, 0);
|
const IPAddress subnet(255, 255, 0, 0);
|
||||||
|
|
||||||
|
|
@ -33,7 +33,7 @@ AiEsp32RotaryEncoder ampEncoderButton = AiEsp32RotaryEncoder(33, 25, 26, -1, 4);
|
||||||
float frequency = 0;
|
float frequency = 0;
|
||||||
float amplitude = 0;
|
float amplitude = 0;
|
||||||
const int ports = 6;
|
const int ports = 6;
|
||||||
const int motorIndex = 0;
|
const int motorIndex = 2;
|
||||||
|
|
||||||
// Display Defs
|
// Display Defs
|
||||||
#define I2C_ADDRESS 0x3C
|
#define I2C_ADDRESS 0x3C
|
||||||
|
|
@ -49,11 +49,11 @@ void killAll() {
|
||||||
updateAmp(0.0);
|
updateAmp(0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
float hzToRads(int freq){
|
float hzToRads(float freq){
|
||||||
return freq * TWO_PI / ports;
|
return freq * TWO_PI / ports;
|
||||||
}
|
}
|
||||||
|
|
||||||
float rpmToRads(int rpm){
|
float rpmToRads(float rpm){
|
||||||
return (rpm / 60) * TWO_PI;
|
return (rpm / 60) * TWO_PI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -81,11 +81,17 @@ void setupOSC(){
|
||||||
});
|
});
|
||||||
|
|
||||||
OscWiFi.subscribe(settings_port, "/freq", [](const OscMessage& m) {
|
OscWiFi.subscribe(settings_port, "/freq", [](const OscMessage& m) {
|
||||||
updateFreq(m.arg<float>(0));
|
float input = m.arg<float>(0);
|
||||||
|
if(input < 500.0 && input >= 0.0){
|
||||||
|
updateFreq(input);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
OscWiFi.subscribe(settings_port, "/amp", [](const OscMessage& m) {
|
OscWiFi.subscribe(settings_port, "/amp", [](const OscMessage& m) {
|
||||||
updateAmp(m.arg<float>(0));
|
float input = m.arg<float>(0);
|
||||||
|
if(input < 500.0 && input >= 0.0){
|
||||||
|
updateAmp(input);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,19 +110,21 @@ void setupEncoderButton(AiEsp32RotaryEncoder& eb, char* val){
|
||||||
} else {
|
} else {
|
||||||
eb.setup(readAmpEncoderISR);
|
eb.setup(readAmpEncoderISR);
|
||||||
}
|
}
|
||||||
eb.setBoundaries(0, 4000, false);
|
eb.setBoundaries(0, 5000, false);
|
||||||
eb.setAcceleration(1000);
|
eb.setAcceleration(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
//This needs to be more sophisticated. Moving on if it disconnects...
|
//This needs to be more sophisticated. Moving on if it disconnects...
|
||||||
void initWiFi() {
|
void initWiFi() {
|
||||||
|
int attempts = 0;
|
||||||
WiFi.mode(WIFI_STA);
|
WiFi.mode(WIFI_STA);
|
||||||
WiFi.begin(ssid, pwd);
|
WiFi.begin(ssid, pwd);
|
||||||
WiFi.config(ip, gateway, subnet);
|
WiFi.config(ip, gateway, subnet);
|
||||||
Serial.println();
|
Serial.println();
|
||||||
Serial.print("Connecting to WiFi ..");
|
Serial.print("Connecting to WiFi ..");
|
||||||
while (WiFi.status() != WL_CONNECTED) {
|
while (WiFi.status() != WL_CONNECTED && attempts < 5) {
|
||||||
Serial.print('.');
|
Serial.print('.');
|
||||||
|
attempts += 1;
|
||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
Serial.println(WiFi.localIP());
|
Serial.println(WiFi.localIP());
|
||||||
|
|
|
||||||
|
|
@ -63,12 +63,12 @@ void setupOSC(char* path){
|
||||||
float amplitude = m.arg<float>(2);
|
float amplitude = m.arg<float>(2);
|
||||||
if(frequency != frequencies[motorIndex]){
|
if(frequency != frequencies[motorIndex]){
|
||||||
frequencies[motorIndex] = frequency;
|
frequencies[motorIndex] = frequency;
|
||||||
freqEncoderButton.setEncoderValue(frequency * 10.0);
|
//freqEncoderButton.setEncoderValue(frequencies[sirenSelect] * 10.0);
|
||||||
updateDisplay();
|
updateDisplay();
|
||||||
}
|
}
|
||||||
if(amplitude != amplitudes[motorIndex]){
|
if(amplitude != amplitudes[motorIndex]){
|
||||||
amplitudes[motorIndex] = amplitude;
|
amplitudes[motorIndex] = amplitude;
|
||||||
ampEncoderButton.setEncoderValue(amplitude * 10.0);
|
//ampEncoderButton.setEncoderValue(amplitudes[sirenSelect] * 10.0);
|
||||||
updateDisplay();
|
updateDisplay();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -142,6 +142,8 @@ void encoderButtonUpdate(AiEsp32RotaryEncoder& eb, bool& buttonState, char* val)
|
||||||
if (!eb.isEncoderButtonDown() && buttonState) {
|
if (!eb.isEncoderButtonDown() && buttonState) {
|
||||||
if(val == "freq"){
|
if(val == "freq"){
|
||||||
sirenSelect = (sirenSelect + 1) % 3;
|
sirenSelect = (sirenSelect + 1) % 3;
|
||||||
|
freqEncoderButton.setEncoderValue(frequencies[sirenSelect] * 10.0);
|
||||||
|
ampEncoderButton.setEncoderValue(amplitudes[sirenSelect] * 10.0);
|
||||||
} else {
|
} else {
|
||||||
killAll();
|
killAll();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue