Team Do It 2023

From Hackteria Wiki
Jump to: navigation, search
Logo: Team Do It 2023

Einleitung

MEDTECH DIY Blockwoche

Willkommen auf der Website von Team Do It 2023. Das Team wurde für die Blockwoche Medtech DIY gegründet, um zusammen diverse kleine Projekte zu erarbeiten. Die Blockwoche wurde vom 11.09.2023 bis 16.09.2023 an der Hochschule Luzern Technik & Architektur in Horw durchgeführt.

In der Blockwoche werden diverse Prototypen im FabLab entwickelt, um den Studierenden die Schnittstelle zwischen Technik und Medizin näher zu bringen. Die Leiter der Blockwoche geben den Studierenden fortlaufend Inputs, wie z.B. gelötet wird, ein Arduino funktioniert oder wie ein 3D-Drucker verwendet wird.

FabLab

Das FabLab an der Hochschule Luzern Technik & Architektur in Horw ist für alle Personen zugänglich. Das Fachpersonal gibt den jeweiligen Personen eine Einführung. Das FabLab gibt es nicht nur in Luzern. FabLabs entstehen überall auf der Welt. In westlichen Städten sowie in Afghanistan oder Afrika. Im weltweiten Netzwerk tauscht man sich über Kontinente hinweg aus und teilt so Erfahrungen, Fragen und Ideen mit anderen Spezialisten aus. Weitere Informationen findet man unter: https://fablab-luzern.ch/ (Die untenstehende Bilder sind aus dem Internet)

Team Mitglieder

Das Team besteht aus drei Mitgliedern aus unterschiedlichen Studiengängen, um das Interdisziplinäre Arbeiten zu stärken.

Dennis

Dennis studiert Medizintechnik im 5. Semester

Thorben

Thorben studiert Wirtschaftsingenieur im 5. Semester

Julian

Julian studiert Maschinenbau im 7. Semester.

Montag

Einführung

Der Startpunkt für diese Blockwoche war am Montag um 09:00. Es gab am Anfang eine kurze Vorstellungsrunde von allen Teilnehmer. Einige Studenten kannten sich bereits, aber es waren auch Personen dabei von anderen Studiengängen dabei und eine Austauschstudentin. Jede Person hat bei der Vorstellungsrunde einen Gegenstand in die Hand genommen, stellte sich kurz vor und hat dann begründet, warum dieser Gegenstand gewählt wurde. Nach der Vorstellungsrunde wurden dann die Gruppen aufgeteilt. Jedes Team wurde aus unterschiedlichen Studiengängen zusammengestellt, sodass man mit neue Personen zusammen arbeitet und nicht nur mit bekannten Gesichter.

Anschliessend gab uns Marc eine Führung durch das FabLab. Er zeigte uns die diversen Geräte und Materialien, die vorhanden sind und welche wir in der Blockwoche verwenden dürfen. Nach der Führung hatten wir noch Zeit bis zum Mittag, um die Pflichtlektüre zu erarbeiten. Zusätzlich wurde uns noch der Stundenplan für die Woche präsentiert.

Studenplan

In den kommenden Tagen folgen wir einem gut durchdachten Stundenplan, der sicherstellt, dass wir das volle Potenzial dieses Kurses ausschöpfen. Dieser strukturierte Zeitplan dient als Orientierung für die aufregenden Aktivitäten, Diskussionen und Lerneinheiten, die vor uns liegen. Im untenstehenden Bild ist der Stundenplan ersichtlich.

Bildschirmfoto 2023-09-12 um 14.05.47.png

Präsentationen

Am Nachmittag trafen wir uns direkt im Zimmer E202 für zwei Präsentationen. Die erste Präsentation wurde von Lina Lopes geleitet. Sie erzählte uns einige Interessante Sachen über ihre Vergangenheit und Projekte an denen Sie gearbeitet hat. Lina ist eine Unternehmerin, Beraterin und Künstlerin, welche Kunst und Technologie miteinander verbindet. Sehr interessant war der implantierbarer "Chip" an dem Lina gearbeitet hat. Mit dem Chip kann man Daten abrufen oder sogar ein technisches Musikinstrument spielen.

Der zweite Vortrag wurde von Marc geleitet. Er gab uns eine kurze Einführung in das Wiki-Tool und zeigte uns, wie man eine Wiki-Website erstellen kann. Dies war für uns sehr wichtig, weil wir sämtliche Projekte und Experimente auf dieser Website dokumentieren im Verlauf der Blockwoche.

Hack 0 - Löten und Experimentieren

Nach den Vorträgen begaben wir uns zurück ins FabLab und bekamen eine Einführung auf Arduino. Am späteren Nachmittag versuchten wir uns am Hack 0. Dieser beinhaltete den Aufbau vom Schaltkreis eines Spannungsteilers, bei welchem der eine Wiederstand der Hand gemessen wurde. Mit einem Arduinocode konnten die Kurven auf einem PC angezeigt werden. Das Schaltbild des Spannungsteilers wird in der unteren Abbildung dargestellt.

Dienstag

Hack 0 - Löten und Experimentieren

Zu Beginn des Morgens wurde kurz im Plenum besprochen wie der Stand ist bei den einzelnen Gruppen. Die Inputs von den anderen Gruppen halfen uns die Probleme besser zu verstehen, die wir am Vortag erlebt haben. Shih Wei Chieh war als Gast anwesend, er stellte sich kurz vor und unterstützte diverse Gruppen im Verlauf des Tages.

Nach der Besprechung bekamen wir am Morgen Zeit um diverse Experimente durchzuführen. Als erstes wurde das Experiment vom Vortag noch fertiggestellt. Es gab noch einige Fehlermeldungen die wir beheben mussten. Der Output der Hautwiderstandsmessung wurde nicht angezeigt, doch in kurzer Zeit konnten wird dieses Problem beheben. Danach wurde eine EMG und EKG Messung durchgeführt.

Für die EMG Messung wurde uns einen Programmcode zur Verfügung gestellt. Die Elektroden konnten ohne Probleme mit dem Arduino und Schaltbrett angeschlossen werden. Für diesen Versuch haben wir noch einen Amplifier benötigt, um das Signal zu stärken, weil die Signale sonst zu schwach sind. Nach dem Anschluss gemäss den Angaben konnten wir den Versuch erfolgreich durchführen. Zu beginn wurden die Messungen noch zu schnell durchgeführt, es war schwierig zu erkennen, wie das Signal aussieht. Nachdem wir die Zeit im Programmcode angepasst haben wurde das Signal deutlicher und langsamer dargestellt. Die Abbildung zeigt den elektrische Aktivität im Muskel an von der Testperson.

Als Zweitversuch wurde ein EKG durchgeführt. Uns wurde ebenfalls der Programmcode und das Schaltbild vorgegeben. Nachdem wir die Zeit angepasst haben, wurde ein Signal auf dem Bildschirm angezeigt. Rein optisch gesehen sieht die Messung wie bei einem echten EKG aus. Beim EGK (Elektrokardiogramm) werden die elektrische Aktivitäten der Herzmuskulatur gemessen. Das EKG-Signal wiederholt sich periodisch nach jedem Pumpzykus. Am Anfang des Signals gibt es eine kleine Erhebung. Dort beginnt die Vorhofkontraktion undam Ende dieser Erhebung beginnt die Überleitung an der Herzkammer. Kurz vor dem grossen Signalausschlag beginnt die Kontraktion der Herzkammern. Nach der Kontraktion wird das Signal wieder schwächer, dort beginnt die Entspannungsphase des Herzes. Die einzelnen Wellen sind auf dem EKG Bild nicht gut ersichtlich. Trotzdem ist uns aufgefallen, dass die Signale periodisch aufgenommen werden. Somit sind wir uns sicher, dass die Messung erfolgreich durchgeführt wurde.

Zusätzlich nach den EMG und EKG Messungen haben wir als Experiment einen Lautsprecher mit einem Bluetooth Modul und einem Battery-Pack. Dies funktionierte sehr gut, man konnte das Mobiltelefon mit den Lautsprechern verbinden und Musik abspielen.

Fab Share

Beim FabShare wurden und diverse Geräte im FabLab vorgestellt von den Dozenten und Betreuer. Von Noah wurde uns der 3D-Drucker vorgestellt, dabei handelt es sich um den Ultimaker 2+. Ein 3D-Drucker ist ein Gerät, das dreidimensionale Objekte schichtweise aufbaut, indem es Materialien (in diesem Fall PLA-Filament) schmilzt oder verfestigt. Er zeigte uns wie man die Software bedient und welche Einstellungen zu beachten sind. Am wichtigsten zu beachten ist, dass die erste Schicht 0.15mm hoch sein muss und die Oberfläche mit einem Haftungsmittel beschichten werden muss für eine optimale Haftung. Beim 3D-Druck muss man logisch mitdenken, wie ein Teil gedruckt werden muss, in welcher Ausrichtung und welche Füllstruktur man wählt.

Als zweites wurde uns der Lasecutter vorgestellt. Ein Laser Cutter ist eine maschinelle Vorrichtung, die einen gebündelten Laserstrahl verwendet, um präzise und saubere Schnitte oder Gravuren in verschiedenen Materialien durchzuführen. Am meisten wird im FabLab MDF-Platten in verschiedenen Dicken (3,4, und 6mm) verwenden, aber es besteht auch die Möglichkeit andere Materialen zu lasern. Uns wurde detailliert erklärt, wie die Software funktioniert. Dort ist wichtig zu beachten, dass man die Reihenfolge von Gravuren und durchschneiden beachten, weil sonst der Lasercutter Probleme haben wird. Beim Lasercutter selbst muss der Fokuspunkt richtig gewählt werden, dies darf auf keinen Fall vergessen gehen. Im Gegensatz zum 3D-drucken ist der Lasercutter viel schneller und gleichzeitig auch sehr genau (0.1mm). Daher muss man Sicht immer überlegen, ob man ein Bauteil Lasern oder drucken soll.

Referat

Um 17:00 hatten wir Referat von Shih Wei Chieh. Er stellte sich vor und hat uns diverse Projekte vorgestellt. Er ist ein Künstler, der sich auf tragbare Kunst, E-Textilien und Laser-Audiovisuelles spezialisiert hat. Sehr spannend zu sehen war das "Laser Dye Project. Es ist eine innovative Methode für den Textildruck mit Laserprojektion und Cyanotypie-Lösungen. Aktuell arbeitet er an großformatigen, mit natürlichen Farbstoffen sensitivierten Solargläsern, die Energie erzeugen und als intelligente Schnittstelle für künstlerischen Klang dienen.

Kulturbeitrag / Apero

Nach der Präsentation gab es noch ein kleines Apero. Vielen Dank an Marc für das Organisieren. Parallel zum Apero gab es eine visuelle Lasershow von Shih Wei Chieh. Die Lasershow war interessant, jedoch war die zugehörige Musik eher Speziell.

Mittwoch

Hack 1

Am Morgen haben wir uns als Gruppe in der Sofaecke eingefunden und haben etwas Brainstorming für den Hack 1 gemacht. Beim Brainstorming sind verschiedene Ideen gesammelt worden. Zum Beispiel ein Tragbares EGK, Halterung für einen PS5-Controller, Handyhalterung, Sensor gegen das Einschlafen am Lenkrad und. Schlussendlich kam raus, dass wir einen Medikamentenorganizer produzieren wollen. Der Medikamentenorganizer soll mit einem Überwachungssystem ausgestattet sein. Dieses soll in Form von LEDs umgesetzt werden. Als Grundgerüst haben wir eine Box aus einer 3mm dicken MDF Platte gelasert und zusammengebaut. Die Box hat acht Unterteilungen. Sieben davon sind für eine Woche Tablettenversorgung vorgesehen und in eine der Unterteilungen soll die Elektronik verbaut werden.

Zu Beginn benötigten wir eine Hülle als Grundgerüst für unser Prototyp. Wir haben uns dabei entschieden eine Kiste zu Lasern aus MDF-Platten. Die einfachste Lösung für uns war eine Kiste herunterzuladen auf der Website MakerCase. Die Webseite bietet die Möglichkeit Länge/Breite/Höhe anzupassen und die Einteilung der einzelnen Fächer (Teiler-Reihen und Teiler-Spalten auf der Website). Die Kiste wurde dann als DXF-Datei exportiert und auf dem Computer vom FabLab hochgeladen. Dort wurde dann die DXF-Datei in einem speziellen Programm für das Lasercutter hochgeladen. Die Datei musste noch bearbeitet werden (Reiehnfolge definieren, Nullpunkt auswählen und Teile zusammenschreiben, sodass das Lasern effizienter ist). Das Lasern an sich selbst braucht nicht sehr lange (ca. 4 min) und schlussendlich konnten wir unsere Kiste zusammenkleben mit Ducktabe. Wir wollten zu beginn nicht die Kiste verkleben, da es sich lediglich um den ersten Prototyp handelt und der sich wahrscheinlich noch ändern wird.

Als nächstes programmierten wird das Arduino UNO, dass die 7 LED-Lichter angesteuert werden können. Es gab dort einige Probleme zu beginn. Es war das erste mal, dass wir mit einem Arduino programmieren. Wir suchten im Internat nach verschiedenen Lösungen, wie wir es programmieren könne. Zum Start haben wir versucht nur 1 LED-Licht anzusteuern, dies gelingt uns schlussendlich auch. Der nächste Schritt war dann alle 7 LEDs anzusteuern. Alle Kabel und LEDs wurde vom Arduino auf ein Steckbrett montiert um das ganze zu testen. Als nächstes wollten wir alles so verkabeln, sodass es das Steckbrett nicht mehr benötigt, sondern das die LEDs inkl. Kabel direkt am Arduino verbunden werden. Dazu mussten wir an jedem LED 2 Kabel anlöten inkl. einen Widerstand auf der richtigen Seite. Die einte Seite wird direkt am Arduino verbunden und die zweite an unserer Ground-Liste. Die LEDs werden per Knopfdruck aktiviert und dann leuchtet das aktuelle Medikamentenfach für den entsprechenden Tag. Mit dem Real-Time-Switch weiss das Programm dann, um welchen Tag es sich handelt.

Skillsharing

Am späteren Morgen sind alle Teilnehmer der Blockwoche zusammengekommen und es wurden Themen gesammelt, welche die Teilnehmer gerne in der Blockwoche lernen würden. Anschliessend konnte jede Person auf einen Zettel schreiben, welchen Skill er oder sie den anderen Teilnehmer gerne beibringen würde. Fünf Skills kamen in die engere Auswahl und jedes der fünf Teams konnte eines der meist gewählten Skills auswählen. Wir haben uns als Gruppe für Jonglieren und Handstand entschieden.


Donnerstag

Skillsharing

Am Donnerstag morgen wurde das Skillsharing durchgeführt. Um 9:15 haben wir uns getroffen, um die Grundlagen von Schach kennenzulernen. Dies wurde von der Gruppe Capybara erklärt. Sie haben uns sehr detailliert erklärt welche Figuren es auf dem Schachbrett gibt, welche Spielzüge die Figuren ausführen können und was für verschiedene Schach-Opener es gibt. Danach wurde uns noch eine Schachpartie von Anfang bis Schluss erklärt und was die Überlegungen bei den verschiedenen Züge waren. Zum Schluss gab es noch die Möglichkeit eine Schachtpartie gegen einen Mitstudenten zu spielen. Auch wenn das Schach nicht viel mit der Blockwoche zu tun hat war es eine sehr spannende Angelegenheit.

Der zweite Skillshare wurde von unserer Gruppe erklärt. Es ging um das Jonglieren mit 3 und 4 Bällen. Es wurde wie gefolgt erklärt: Das Erlernen des Jonglierens erfordert Geduld, Koordination und Übung. Zunächst sollten geeignete Jonglierbälle und ein angemessener Übungsraum bereitgestellt werden. Die Grundlagen des Jonglierens bestehen darin, Bälle in einer parabelförmigen Flugbahn von einer Hand zur anderen zu werfen. Der Einstieg erfolgt durch das Einhand-Jonglieren, gefolgt von der schrittweisen Integration von zwei Bällen und schließlich von drei Bällen. Fortgeschrittene Techniken können erkundet werden, sobald die Grundlagen beherrscht werden. Geduld und regelmäßiges Üben sind unerlässlich, da das Jonglieren eine Fertigkeit ist, die Zeit benötigt, um sie zu beherrschen. Die anderen Studenten hatten ihren Spass beim Jonglieren und viele hatten schnell den dreh raus. Insgesamt gibt es beim Jonglieren nicht viel zu erklären, es ist eher ein "learning by doing", deswegen wurde bei uns nicht die vollständige Zeit ausgeschöpft.

Der letzte Skillshare war ein besonders guter. Es ging drum, wie man einen richtigen Mojito zusammenwischt. Dazu kippt man zuerst einen guten Löffel Rohrzucker in ein Glas. Darüber werden einige Limettenstücke gelegt und anschliessend mit einem Stampfer kleingemacht. Zum Schluss werden Mineralwasser und Rum in dem Glas gemischt und als Decko kann Minze dazu gegeben werden. Am Schluss des Morgens sassen alle Studenten der Blockwoche zufrieden mit einem Becher Mojito in der Hand in einem Kreis. Was für ein gelungener Morgen!

Hack 1

Am Donnerstag Nachmittag mussten wir noch unser Medikamentenbox fertigstellen, da uns am Mittwoch die Zeit nicht genügte. Wir mussten noch ein paar LEDs löten, alles verkabeln und denn Real-Time-Switch implementieren. Dies benötigte beinahe den ganzen Nachmittag, aber schlussendlich hat es einigermassen gut geklappt. Die LEDs leuchten konstant am entsprechenden Wochentag und dank den Real-Time-Switch wechselt das LED-Licht automatisch im 24h Takt und dann weiss mann immer aus welchem Fach man die Medikamenten nehmen muss.

Herausforderungen:

  • Da es das erste mal war, das wir mit dem Arduino UNO programmiert haben, gab es dort Startschwierigkeiten. Doch dank der Hilfe von Noah und ChatGPT konnten wir einen Code funktionierenden programmieren.
  • Beim Lasercutter waren wir uns am Anfang unsicher, sich nach 1-2 mal Nachfragen konnten wir die Kiste erfolgreich Lasern.

Bildbeschreibung:

  • Bild Links: Testversuch, ob alle LEDs leuchten. Zu Beginn gab es ein Fehler bei der Verkabelung, dies konnten wir schlussendlich beheben.
  • Bild Rechts: Fertige Medikamentenbox. Jetzt ist ersichtlich, dass nur ein LED aufleuchtet. Im Tagesrhythmus werden dann die andere LEDs angesteuert.

Das Programm sieht wie folgt aus:

#include <Wire.h>
#include <RTClib.h>

RTC_DS3231 rtc;

const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Anschlusspins für die LEDs

void setup() {
  Serial.begin(9600);
  rtc.begin();

  // Initialisiere die LEDs als Ausgang
  for (int i = 0; i < 8; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  DateTime now = rtc.now();

  // Schalte die LED entsprechend dem Tag des Monats ein (1 bis 31)
  int dayOfMonth = now.day();
  
  // Überprüfen Sie, ob der Tag des Monats innerhalb des gültigen Bereichs der LED-Pins liegt
  if (dayOfMonth >= 1 && dayOfMonth <= 8) {
    int ledIndex = dayOfMonth - 1; // Da Arrays bei 0 beginnen, subtrahieren Sie 1
    digitalWrite(ledPins[ledIndex], HIGH);
  }

  // Hier können Sie zusätzlichen Code hinzufügen, um andere Aufgaben auszuführen.

  delay(1000); // Eine Sekunde warten, um die Belastung auf den RTC-Chip zu reduzieren
}

Zwischenexperiment

Als Zwischenexperiment wollten wir unsere Kenntnisse im 3D-Drucken vertiefen. Dazu haben wir uns entschieden eine Handyhalterung zu drucken. Die STL-Datei für die Handyhalterung wurde aus dem Internet (Thingyverse) heruntergeladen. Es ging uns nicht um das Modellieren im CAD sonder lediglich um die Bedienung eines 3D-Druckers. Wir folgten die Schritte, die uns bei der Einführung erklärt wurden und konnten erfolgreich die Teile drucken. Danach haben wir die Handyhalterung zusammengebaut.

Freitag

Hack 2 - Teil 1

Am späten Donnerstag Nachmittag und die erste Stunde am Freitag morgen wollten wir noch mittels einem EMG einen Greifarm ansteuern. Am Greifarm war ein Motor montiert (3 Kabel). Der Motor wurde mit dem Arduino verbunden und die Kabel für das EMG ebenfalls. Für das EMG benötigten wir wie zur beginn der Woche einen Bio-Amplifier. Die Verkabelung des EMG ist im Schema auf dem unteren Bild ersichtlich. Nachdem wir alles angeschlossen haben, erstellten wir mittels ChatGPT einen Programmcode für unser Prototyp. Dies war schwieriger als gedacht. Der Motor funktioniere mit dem Code, doch das Ansteuern mit der elektrischen Muskelaktivität geling uns nicht. Schlussendlich hat unsere Gruppe die Entscheidung getroffen, diesen Prototyp im unfertigen Zustand abzuschliessen und nicht mehr weiter zu verfolgen. Trotzdem war es eine Interessante lehrreiche und Interessante Angelegenheit.

Hack 2 - Teil 2

Als letztes Projekt in dieser Blockwoche wollten wir mit den elektrischen Muskelaktivitäten (EMG Signale) einen Motor ansteuern um einen kleinen Modellstuhl anzuheben. Die Einzelteile des Modellstuhs wurden mit dem 3D-Druck verfahren hergestellt. Der Schrittmotor wurde an einem Steuerungschip angeschlossen und am Arduino. Die Verkabelung für das EMG erfolgt identisch wie bei den vorherigen Experimenten (3 Kabel, BioAmplifier, Elektroden, Anschluss am Arduino). Der Programmcode wurde aus dem Internet heruntergeladen und von uns angepasst. Am Anfang gab es Schwierigkeiten bei der Verkabelung und beim Programmcode. Letzteres bereitete uns grosse Schwierigkeiten. Wir brauchten einige Stunden um den Programmcode zum laufen zu bringen. Die Idee war 2 Programmcode kombinieren: 1x Der Programmcode für die Motoransteuerung und 1x Der Programmcode für die Auswertung der EMG-Signale. In der Theorie war das Kombinieren von den Codes nicht sehr schwierig, doch es gab immer wieder Probleme. Zusätzlich war das EMG Signal ziemlich schwach zu beginn, bis wir die Verkabelung gewechselt haben. Dann war das Signal stärker. Mit der Hilfe von Marc und Shih Wei Chieh konnten wir schlussendlich den Programmcode zum laufen bringen. Somit konnten wir dieses Experiment erfolgreich abschliessen.

Das Programm sieht wie folgt aus:

#include <TinyStepper.h>

#define SAMPLE_RATE 100
#define BAUD_RATE 115200
#define INPUT_PIN A0
#define BUFFER_SIZE 128
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
#define HALFSTEPS 4096  // Number of half-steps for a full rotation

TinyStepper stepper(HALFSTEPS, IN1, IN2, IN3, IN4);

const int emgPin = A0;
const int emgThreshold = 400; // Passen Sie den Schwellenwert an Ihre EMG-Hardware an
const unsigned long motorStopDelay = 10;
int circular_buffer[BUFFER_SIZE];
int data_index, sum;

void setup() {
	// Serial connection begin
	Serial.begin(BAUD_RATE);
   stepper.Enable();
  pinMode(13, OUTPUT);
//  analogReadResolution(12);
}

void loop() {
	// Calculate elapsed time
	static unsigned long past = 0;
	unsigned long present = micros();
	unsigned long interval = present - past;
	past = present;

	// Run timer
	static long timer = 0;
	timer -= interval;

	// Sample and get envelop
	if(timer < 0) {
		timer += 1000000 / SAMPLE_RATE;
		int sensor_value = analogRead(INPUT_PIN);
		int signal = EMGFilter(sensor_value);
		int envelop = getEnvelop(abs(signal));
//		Serial.print(signal);
//		Serial.print(",");
		Serial.println(envelop);

    if (envelop > 10 & envelop <15) {
      digitalWrite(13, HIGH);
      stepper.Move(10);
    }  
    else digitalWrite(8, LOW);
	}
}

// Envelop detection algorithm
int getEnvelop(int abs_emg){
	sum -= circular_buffer[data_index];
	sum += abs_emg;
	circular_buffer[data_index] = abs_emg;
	data_index = (data_index + 1) % BUFFER_SIZE;
	return (sum/BUFFER_SIZE) * 2;
}

// Band-Pass Butterworth IIR digital filter, generated using filter_gen.py.
// Sampling rate: 500.0 Hz, frequency: [74.5, 149.5] Hz.
// Filter is order 4, implemented as second-order sections (biquads).
// Reference: 
// https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.butter.html
// https://courses.ideate.cmu.edu/16-223/f2020/Arduino/FilterDemos/filter_gen.py
float EMGFilter(float input)
{
  float output = input;
  {
    static float z1, z2; // filter section state
    float x = output - 0.05159732*z1 - 0.36347401*z2;
    output = 0.01856301*x + 0.03712602*z1 + 0.01856301*z2;
    z2 = z1;
    z1 = x;
  }
  {
    static float z1, z2; // filter section state
    float x = output - -0.53945795*z1 - 0.39764934*z2;
    output = 1.00000000*x + -2.00000000*z1 + 1.00000000*z2;
    z2 = z1;
    z1 = x;
  }
  {
    static float z1, z2; // filter section state
    float x = output - 0.47319594*z1 - 0.70744137*z2;
    output = 1.00000000*x + 2.00000000*z1 + 1.00000000*z2;
    z2 = z1;
    z1 = x;
  }
  {
    static float z1, z2; // filter section state
    float x = output - -1.00211112*z1 - 0.74520226*z2;
    output = 1.00000000*x + -2.00000000*z1 + 1.00000000*z2;
    z2 = z1;
    z1 = x;
  }
  return output;
}

Reflexion

Mit dem Ende der Blockwoche von Medtech geht eine Woche zuende, die wir nicht vergessen werden. Wir haben viel Neues dazu gelernt und konnten diverse Ideen in die Tat umsetzen. Wir haben alle zum Ersten mal mit Muskelsignalen gearbeitet und gesehen was damit alles möglich ist. Die Ausrüstung und Möglichkeiten vom FabLab hat uns sehr gefallen. Durch die vielen ausgestellten Modelle von 3D-Druckerzeugnissen und gelaserten Teilen konnten wir uns ein Bild machen was in der heutigen kreativen Bastelwelt alles möglich ist. Die Einführung an den Maschinen haben wir sehr geschätzt und können dadurch auch mal ausserhalb dieser Blockwoche ins Fablab gehen und uns verwirklichen. Wir haben auch alle zum Erstem Mal mit einem Arduino gearbeitet und haben die Einführung wie auch den weiterführende Kurs von Noah sehr nützlich gefunden. Bei unseren Hacks, an denen wir gearbeitet haben, ging es uns primär um die gewünschte Funktion und weniger um ein perfektes Design. Den Freiraum den wir dafür bekamen hat uns allen sehr zugesagt und wir hatten genügend Zeit um an unseren Ideen zu basteln. Der Umgang mit den Mitstudierenden und Betreuenden Personen war sehr angenehm und wir können jedem/r der diese Blockwoche in Betracht zieht empfehlen.