Skip to content
Snippets Groups Projects
Verified Commit 4599c6cc authored by Andrea Trentini's avatar Andrea Trentini
Browse files

monitor + fanloop

parent 4de0204a
Branches
No related tags found
No related merge requests found
......@@ -30,10 +30,11 @@ volatile long timestamp=0;
volatile long durata=0;
volatile long durataMedia=0; // media mobile (molto corta, a 2 elementi)
long durataDesiderata=50; // inverso velocità
long durataDesiderata=180; // inverso velocità (10 fin troppo veloce, 180 limite di lentezza)
float duty=.3; // %
int periodpwm=1000; //millis
boolean dutyOn=false;
#define MIN .2 // sotto diventa troppo instabile
// TaskScheduler
#include <TaskScheduler.h>
......@@ -43,7 +44,7 @@ void pwmDeiPovery();
Task pwmDeiPoveryTask(periodpwm*(1-duty), TASK_FOREVER, pwmDeiPovery);
void plot();
Task plotTask(50*TASK_MILLISECOND, TASK_FOREVER, plot);
Task plotTask(200*TASK_MILLISECOND, TASK_FOREVER, plot);
void pwmDeiPovery() {
//Task pwmDeiPoveryTask(periodpwm*(1-duty), TASK_FOREVER, [](){
......@@ -63,12 +64,14 @@ void pwmDeiPovery() {
dutyOn=!dutyOn;
// "strategia" LOOPBACK!
duty+=(durataMedia-durataDesiderata)*.01;
//duty+=(durataMedia-durataDesiderata)*.01;
duty+=(durataMedia-durataDesiderata)*.001;
//duty+=(durataMedia-durataDesiderata)*.001;
//Serial.println(duty);
// capping
if(duty>=1) duty=1.0;
if(duty<0.2) duty=.2;
if(duty>=1) duty=1.0; // in ogni caso più di 100% non ha senso, il relé resta attivo sempre
if(duty<MIN) duty=MIN; // troppo lento, si ferma ventola
//});
}
......
......@@ -23,22 +23,26 @@ sudo stty -F $COM 115200
DIR=Studenti
echo "(dir studenti: $DIR)"
TOUT="15.0s"
TOUT="5"
echo "(timeout: $TOUT)"
processaLinee(){
while
LINEE=100
echo "(linee di output: $LINEE)"
mqtt(){
mosquitto_pub -h atrent.it -t SistEmbed/arduino-cli$2 -m "$1"
}
processaSerial(){
sed '/^\s*$/d' $COM | head -n $LINEE |nl| while
read line
do
if
test -n $line
then
echo "[$dir] $line"
fi
done
mqtt "$line" "/$dir"
done | tee $dir/$SKETCH.run
}
compila(){
compilaLancia(){
echo ___ $1 ___
if
arduino-cli compile --fqbn arduino:avr:uno $1
......@@ -46,25 +50,25 @@ compila(){
if
arduino-cli upload -p $COM --fqbn arduino:avr:uno $1
then
echo SUCCESS, lanciare monitor con timeout
mqtt $dir /running
timeout $TOUT cat $COM | processaLinee | tee $dir/$SKETCH.run
#echo SUCCESS, lanciare monitor con timeout
#timeout -v $TOUT processaSerial
processaSerial
#cat $COM
fi
fi
}
mqtt(){
mosquitto_pub -h atrent.it -t SistEmbed/arduino-cli$2 -m "$1"
}
while
echo === $(date) ===
do
for dir in $(find $DIR -type d |grep $SKETCH|grep -v '\.st')
do
echo +++ $dir +++
compila $dir
compilaLancia $dir
#mqtt senzatopic
#mqtt "contopic sadlkjasldk asldj asldj alskdj" /TOPIC
done
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment