Inhalte zur Vorlesungswoche #5, Entwicklung fehlertoleranter Software für eingebettete Echtzeitsysteme im Wintersemester 2024/25
(EN google-translate)
(PL google-translate)
Beschäftigung im Falle einer Verspätung wie gehabt:
|
Nutzen Sie chatGPT, um sich die Programme erklären zu lassen.
Sammeln Sie Fragen zur Programmentwicklung mit Processing.
|
78_Processing/02_Erste_Schritte
|
|
10_Informatik1/05_Softwareentwicklung/03_Objektorientierung
|
10_Informatik1/01_day_by_day/06_LV_06_05_2024
Themen heute:
|
1 Quiz
|
2 Präsentation und Diskussion zu 5 Minimize Human Interaction und 6 Maximize Human Participation, GRUPPE: D
|
3 Theorie zur Umsetzung des Beschleunigungsvektors in zwei orthogonale Winkel
96_Arduino/30_Arduino_33_nano_IoT/02_Snippet_Winkelpaar
4 ÜBUNG: Umsetzung der Bestimmung und Anzeige des Winkelpaares
siehe 96_Arduino/30_Arduino_33_nano_IoT/02_Snippet_Winkelpaar
Musterlösung
WiFi_IMU_Proc003_ALPHA_BETA.zip
WiFi_IMU_Proc004_WUERFEL.zip -- Eckpunkte eines Würfels werden gedreht.
double alpha=0.0;
double beta=0.0;
void draw()
{
...
//Berechnung von alpha und beta:
double x = werte[0];
double y = werte[1];
double z = werte[2];
if(Math.sqrt(x*x+z*z)>0.0)
{
double alpha_neu = Math.acos(z/Math.sqrt(x*x+z*z));
if(x<0.0) alpha_neu = -alpha_neu;
alpha = alpha_neu*180.0/Math.PI;
}
/*
//Ungünstige Wahl der Ebene
if(Math.sqrt(x*x+y*y)>0.0)
{
double beta_neu = Math.acos(x/Math.sqrt(x*x+y*y));
if(y<0.0) beta_neu = -beta_neu;
beta = beta_neu*180.0/Math.PI;
}
*/
//Funktioniert besser:
if(Math.sqrt(z*z+y*y)>0.0)
{
double beta_neu = Math.acos(z/Math.sqrt(z*z+y*y));
if(y<0.0) beta_neu = -beta_neu;
beta = beta_neu*180.0/Math.PI;
}
text("alpha="+alpha,100,40);
text("beta="+beta,100,80);
}
Code 0-1: Ergänzte Codeteile.