Team Beta

From Hackteria Wiki
Jump to: navigation, search

Präsentation

File:DIY-MedTech_Team_Beta.pdf

Einleitung und Inputs

Kurzbeschrieb MedTech DIY

Das Modul verbindet Anwendungen der Medizintechnik mit Do It Yourself (DIY) Ansätzen. Dadurch wird das tiefere Verständnis von Medizintechnischen Geräten durch einen direkten, interdisziplinären und möglichst selbstgesteuerten Zugang gefördert. Basierend auf verschiedenen elektrophysiologischen Messmodulen (EMG, EKG, EOG, EEG) entwickeln die Studierenden im Team Ideen für innovative Projekte. Erste Prototypen werden mit den Mitteln der Digitalen Fabrikation hergestellt und getestet. (Modulbeschrieb HSLU, 2017)

Arbeitsplatz FabLab

FabLabs sind ein globales Netzwerk lokaler Labs. Das Ziel der FabLabs ist es einer breiten Masse den Zugang zu diversen digitalen Fabrikationsmaschinen zu bieten. In der Blockwoche Medizintechnik DIY kann das FabLab der Hochschule Luzern auf dem Campus in Horw genutzt werden. Es stehen 3D-Ducker, Laser-Cutter, kleine CNC-Maschinen und verschiedene elektronische Komponenten zur Verfügung.

Am ersten Tag erfolgte die Gruppeneinteilung. Im Anschluss konnte sich jedes Team seinen Arbeitsplatz selbst einrichten. Es soll dabei auf keinen Fall starr am eigenen Platz gearbeitet werden, sondern es ist erwünscht, sich mit anderen Teams auszutauschen und auch die Plätze zu wechseln, um den Wissensaustausch zu fördern. Durch einen Coronafall wurde der Arbeitsplatz gewechselt und so wurde die Küche zum neuen Arbeitsplatz.

Jede Person im FabLab trägt dazu bei, dass folgende Dinge eingehalten werden:

  • Sicherheit: weder Menschen noch Maschinen Schaden zufügen
  • Betrieb: helfen beim Putzen, Unterhalt und Verbesserung des Labs
  • Wissen: zu Dokumentation beitragen und Einführungen geben

Einführung in die "DIY-Kultur"

Am Montag Nachmittag besuchten wir den Gast-Vortrag von Herrn Urs Gaudenz. In diesem wurden uns die Vorteile von DIY, Open-Source und Digital Manifacturing nähergebracht. Durch die DIY-Kultur werden vielen Möglichkeiten geschaffen. In Kombination mit Open-Source ist es möglich viele Projekte in kurzer Zeit zu realisieren. Durch diese Kultur kann man einfach auf Wissen und Erfahrungen anderer zurückgreifen und muss das Rad nicht neu erfinden. Oftmals werden nicht nur die Bauteile geteilt, sondern auch der Source-Code. Somit haben auch Personen ohne Programmier-skills die Möglichkeit, komplexere Projekte zu realisieren. Auf dem Gaudishop von Herr Gaudenz bekommt man einen Einblick, wie vielseitig diese Projekte sein können.

Vortrag von Christian Gehringer

Am Dienstag hat sich Christian Geringer online zu uns geschalten und mit uns über seine Tätigkeiten und Projekte gesprochen. Christian hat zuerst Biologie studiert und später noch ein Medizinstudium angehängt. Aktuell arbeitet er als Hausarzt in Deutschland und ist Anhänger der DIY-Gemeinschaft.

Face Shields sind seit der Coronapandemie vielen Personen ein Begriff. Christian half mit, diese Shields so zu entwickeln und zu gestalten, dass sie mit einem 3D-Drucker ud einem Lasercutter schnell und günstig produziert werden konnten. Er nutze den 3D-Drucker auch um Proteinstrukturen zu drucken, um ein besseres Verständnis für diese zu vermitteln. Auch ohne 3D-Drucker kann man grossartige Projekte realisieren. So baute er aus einem defekten Board mit Elektromotoren und einem alten Playstation Controller einen Roboter, der Getränkekisten transportieren kann. Wichtig war ihm, wertlosen Dingen einen neuen Zweck zu geben.

Weiter sprach er über zwei Projekte aus seinem Medizinstudium. Beim ersten Projekt war er in Gabun. Er untersuchte Blutwürmer mit den lokalen Laborvorrichtungen. Die Laborvorrichtungen mussten teils mit DIY-Skills aufgebessert werden und so entstand beispielsweise ein verbesserter Schüttler. Beim zweiten Projekt war Christian in Südafrika und untersuchte unter anderem, welchen Einfluss die Stromausfälle auf die Verletzungen von Kindern hat. Er konnte nachweisen, dass mehr Kinder ins Spital eingeliefert werden, wenn der Strom unterbrochen ist, da dann mit offenem Feuer gekocht wird.

Zum Schluss konnten die Interessierten in einer offenen Fragerunde ihre Fragen stellen.

Vortrag von Andreas Kopp

Am Freitag schaute Andreas Kopp online vorbei. Er ist seit 10 Jahren bei der «Maker Szene» dabei und zeigte uns was er bereits in diesem Zusammenhang erlebt hat. Ursprünglich hatte Andreas ein BWL-Studium gemacht, welches mit Maschinenbau verknüpft war. Er bezeichnet sich selber als "gar nicht der Unternehmenstyp" und landete zunächst in der Kunstszene. Er entwickelte eine Kiste, welche ein Foto macht und dieses dann verpixelt ausdruckt. Vor einigen Jahren gründete Andreas den Erfindergarten. Hierfür mietete er sich in München in einem Raum ein. Der Raum ist einem FabLab nachempfunden. Später verschob er seinen Erfindergarten auf einen ausgemusterten Viehhof. Weiter setzt sich Andreas dazu ein, dass jeder auch zuhause zum «Maker» werden kann. Er stellte eine Werkzeug Bibliothek auf, damit Werkzeug ausgeliehen werden kann. Nach dieser Einführung über sich und wie er zum «Maker» wurde, erzählte Andreas noch einiges über seine Projekte, bei denen er mitwirkte.

Besonders mit der Coronakrise kamen in der «Maker-Szene» viele neue Ideen auf. FFP2-Masken waren eine erste Idee, doch diese sind eher schwierig herzustellen und daher wurde das Face Shield entwickelt. Das erste Produkt dauerte vom Design bis zur Herstellung nur drei Tage. Andreas selbst hat dann dieses Face Shield als Vorlage genommen und dieses verbessert. Durch die Verbesserung konnten die Face Shields schneller, günstiger und qualitativ besser hergestellt werden. Weitere Projekte im Zusammenhang mit Corona waren Projekte wie Maskenhalter zur Entlastung der Ohren oder CO2-Ampeln für Schulen, die die CO2-Konzentration im Schulzimmer überwachen.

Wichtige Punkte in der «Maker-Szene sind:

  • Keep it simple
  • Vorhandene Ressourcen nutzen
  • Horizontal denken und skalieren
  • Immer den nächsten Schritt nicht verpassen
  • Für den next big Step sind Zertifikate und Normen wichtig
  • Langfristig denken und gleichzeitig schnell sein

Teammitglieder

Benjamin Zuber

Studiengang: Maschinenbau
Benjamin Zuber

Semester 7
Alter: 26 Jahre
Ausbildung: Physiklaborant

Patrick Stadelmann

Studiengang: Medizintechnik
Patrick Stadelmann

Semester 7
Alter: 24 Jahre
Ausbildung: Elektroinstallateur

Fabian Kaiser

Studiengang: Medizintechnik
Fabian Kaiser

Semester 7
Alter: 25 Jahre
Ausbildung: Polymechaniker



Coronafall und Umstellung

Nachdem der erste Tag normal verlief, wurden wir in der Nacht auf Dienstag von einem Mail überrascht. Marc hatte sich trotz Impfung das Coronavirus eingefangen. Benjamin und Patrick hatten diese Mail nicht früh genug gesehen und waren bereits vor Ort. Sie arbeiteten im FabLab bis am Mittag weiter an den Hacks 0, 1 und 2. Zeitgleich beschäftigte sich Fabian mit dem Wiki und brachte dies auf einen guten Stand. Ab Mittwoch wurde für den Rest der Woche bei Benjamin zu Hause gearbeitet. Er hat einen eigenen 3D-Drucker und ist auch im Bereich Elektronik sehr gut ausgerüstet. Das restliche Material, was wir noch benötigten, holten wir am Morgen aus dem FabLab ab. Bei der Präsentation am Samstag war jeder alleine bei sich zuhause.

Hack 0

Löten

Benajmin beim "lötle"

Beim Löten haben wir uns an die Anweisungen auf der Verpackung des Muscle Spiker Shields gehalten. Gleichzeitig haben wir noch die Webseite von Backyard Brains aufgerufen und mit der Anleitung für die Version 2.11 gearbeitet. Zu Beginn hatten wir eine alte Version aufgerufen. Unbedingt auf die Versionsnummer auf der Verpackung achten. Bei weiteren Unklarheiten haben wir uns die Vorgängermodelle angeschaut. Durch die Arbeitsteilung von Plan lesen, stecken und löten war das Shield schnell einsatzbereit, obwohl bei einem Widerstand (R6) war man sich nicht sicher und hatte ihn im Anschluss entfernt. Der Grund für das entfernen war, dass wir an der falschen Stelle den Widerstand angebracht haben und dadurch kein Platz blieb für andere Bauteile, welche auch noch benötigt wurden. Andere Muscle Spiker Shields hatten diesen Widerstand auch nicht und daher haben wir den Widerstand R6 nicht angebracht. Weiter gab es ein kurzes Problem bei einem 8-Pin female header, da beim Löten dieses Teil nicht gut festgehalten wurde rutschte es etwas durch und das Bauteil war nicht bündig auf der Printplatte. Mit zwei Lötkolben und vier Händen konnte das Bauteil bündig auf der Printplatte befestigt werden. Jetzt konnte das Muscle Spiker Shields auf das Arduion gesteckt werden. Hier darauf achten, dass die Anschlüsse ineinandergreifen. Mit der korrekten Programmierung ist das Muscle Spiker Shield einsatzbereit.

Muscle spiker

Control Machines with your Brain - LED Stip

LED-Strip Test
LED Strip Test.jpeg

Zur qualitativen Erfassung der Muskelkontraktionsspannung wurde die zuvor zusammen gelötete Platine "Muscle Spikeshield DIY v2.11" auf dem Arduino montiert. Anschliessend wurde das Arduino Uno zur Stromversorgung mit einem Laptop verbunden. Das entsprechende Skript wurde von der Homepage "DIY.Backyardbrains.com" heruntergeladen und mit dem USB-Kabel und der Arduinosoftware auf das Arduino überführt. Danach wurden drei Elektroden gemäss der Anleitung von "Backyardbrains" an der entsprechenden stelle Positioniert und mit dem Inputanschluss verbunden. Die sechs LED's zeigen zeigen jeweils die Muskelkontraktionen an. Die Anzahl der leuchtenden LED's korrliert mit dem Spannungspotenzial der Muskelkontraktion. Das heisst, je fester man den Muskel anspannt, desto mehr LED's leuchten.


Das Arduinoskript ist Opensource und steht unter BACKYARDBRAINS zum Download bereit. Das heruntergeladene Arduinoskript ist nachfolgend aufgeführt:

#define NUM_LED 6  //sets the maximum numbers of LEDs
#define MAX 150     //maximum posible reading. TWEAK THIS VALUE!!
int reading[10];
int finalReading;
byte litLeds = 0;
byte multiplier = 1;
byte leds[] = {8, 9, 10, 11, 12, 13};

void setup(){
  Serial.begin(9600); //begin serial communications
  for(int i = 0; i < NUM_LED; i++){ //initialize LEDs as outputs
    pinMode(leds[i], OUTPUT);
  }
}

void loop(){
  for(int i = 0; i < 10; i++){    //take [ten] readings in ~0.02 seconds
    reading[i] = analogRead(A0) * multiplier;
    delay(2);
  }
  for(int i = 0; i < 10; i++){   //average the ten readings
    finalReading += reading[i];
  }
  finalReading /= 10;
  for(int j = 0; j < NUM_LED; j++){  //write all LEDs low
    digitalWrite(leds[j], LOW);
  }
  Serial.print(finalReading);
  Serial.print("\t");
  finalReading = constrain(finalReading, 0, MAX);
  litLeds = map(finalReading, 0, MAX, 0, NUM_LED);
  Serial.println(litLeds);
  for(int k = 0; k < litLeds; k++){
    digitalWrite(leds[k], HIGH);
  }
  //for serial debugging, uncomment the next two lines.
  //Serial.println(finalReading);
  //delay(100);
}
    


Das System funktionierte extrem schnell. Es gab kaum Probleme mit dem Hack 0. Es war jedoch streng alle Lämpchen über längere Zeit leuchten zu lassen. Der Startimpuls war meist immer sehr stark. Mit dem Potentiometer auf dem Muscle Spiker Shield konnte die Empfindlichkeit des Systems eingestellt werden.


Advanced NeuroProsthetics: Take Someone's Free Will

Wir hätten dieses Experiment sehr gerne durchgeführt. Leider standen uns nicht alle benötigten Materialien zur Verfügung und wir haben uns stattdessen mehr auf den Hack 1 und Hack 2 fokusiert.

Hack 1

Fiebermesser

Fiebermesser mit LED-Anzeige

Wer kennt es nicht, professionelle Fiebermesser sind teuer und werden im Privatgebrauch nur selten verwendet. Aus diesem Grund haben wir uns entschieden einen DIY-Fiebermesser zu entwerfen. Dieser Zeigt mit LEDs an, ob man Fieber hat oder nicht. Durch die Signalisierung mit den 3 LEDs (grün=i.O.; blau=Unterkühlung; rot=Fieber) ist die Anwendung des Fiebermesser intuitiv und einfach. Besonders in der Pandemie kann es sinnvoll sein, seine Temperatur öfters zu messen. Mit dem DIY-Fiebermesser können auf einfachste Weise unnötig grosse Kosten vermieden werden.

Die ideale Körpertemperatur beträgt ca 36°C. Diese schwankt jedoch um einige zehntel Grad oder sogar Grad und daher wird der Bereich i.O mit 35,0 – 37.0°C beschrieben. Alles was darüber ist wird bei unserem Model bereits als Fieber gewertet. Normalerweise gibt es weitere Abstufungen wie z.B. erhöhte Temperatur, leichtes Fieber, Fieber und hohes Fieber. Für weitere DIY-Projekte kann das Fiebermessgerät erweitert werden. Unter der Marke von 35°C kann auch noch weiter differenziert werden. So deckt der Begriff Unterkühlung auch noch den Begriff Untertemperatur ab. Entscheidend ist auch der Ort der Messung. Üblich sind die Messungen im Mastdarm, Mund, Achselhöhle und Ohr. Aus Hygienegründen verzichten wir auf die Option Mastdarm. Das Ohr ist nicht möglich, da dort die Temperatur meist kontaktlos gemessen wird. Bei der Achselhöhle ist die Messung unzuverlässig. Aufgrund dieser Tatsache entschieden wir uns für die Messung im Mund. Unter der Zunge liegt die Temperatur etwas tiefer als die tatsächliche Körpertemperatur. Sie weicht um 0,3 – 0.5°C ab. Daher könnten die Werte noch nach unten korrigiert werden. Wir setzten die Werte der Einfachheit halber wie folgt fest:

  • Fieber ab 37,1°C (rotes Licht)
  • i.O ab und mit 35,1°C und bis und mit 37,0°C (grünes Licht)
  • Unterkühlung unter 35.0°C (blaues Licht)
Endprodukt Fiebermessgerät
Template:Rotate


Bei der Umsetzung haben wir mit dem Programmieren gestartet. Das Skript ist hier zu sehen und hat für ein besseres Verständnis Kommentare integriert.

//Skript Thermometer, Team Beta, 17.09.2021                             // Skriptnamen

const int sensorPin=A0;                                                 // Zuweisung Datentyp INT: -32768 bis 32767, Pinzuweisung A0 (Analogpin)
const float baselineTemp=35;                                            // Eingabe der minimalen Körpertemperatur [°C], Datentyp float --> Gleitkommazahl

void setup() {
 Serial.begin(9600);                                                    // Festlegung der Datenrate 9600 [Bit/s], Serial.begin() ermöglicht Verfolgung in Plottfunktion auf Laptop
 for(int pinNumber=2; pinNumber<5;pinNumber++){                         // Pinzuweisung mit For-Schleife (durchläuft Pin 2-4) --> schnellere Alternative zu pinMode()
  pinMode(pinNumber, OUTPUT);                                          
  digitalWrite(pinNumber, LOW);                                   
  
 }

}

void loop() {
 int sensorVal=analogRead(sensorPin);                                   // sensorVal--> Speicherung des Sensormesswertes
                                                                        // Funktion analogRead --> nimmt Argument an, von welchem Pin die Spannung gelesen werden soll
 
 Serial.print("Sensor Value: ");                                        // Serial.print schickt Informationen von Arduino zu Laptop
 Serial. print(sensorVal);
 float voltage=(sensorVal/1024.0)*5.0;                                  // Spannungswert liegt zwischen 0 und 5V, Werte müssen in float-Variable gespeichert werden
                                                                        
 Serial.print(",Volts: ");                                              // Serial.print schickt Informationen von Arduino zu Laptop
 Serial.print(voltage);

 Serial.print(", degrees C: ");
 float temperature = (voltage - 0.5)*100;                               // Berechnung gemäss Datenblatt des Sensors: dV 10mV --> dT 1°C, Messung < 0°C möglich
 Serial.println(temperature);

 if (temperature < baselineTemp){                                       // Zustandsmaschine mit IF-Schlaufen, drei Zustände programmiert
  digitalWrite(2,HIGH);                                                 // T < 35°C --> Unterkühlung
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
}else if(temperature>=baselineTemp&&temperature<baselineTemp+2){        // 37°C > T > 35°C --> Normalzustand
  digitalWrite(2,LOW);
  digitalWrite(3,HIGH);
  digitalWrite(4,LOW);
}else if(temperature>=baselineTemp+2){                                  // T>37°C --> Fieber
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,HIGH);

  delay(1);                                                             // Verzögerung [ms]
  
  
 }

}
    

Hardwaretechnisch haben wir zu Beginn die benötigten Bauteile wie Thermoelement, Arduino und verschiedene LED's auf einem Klemmbrett befestigt, um die Funktionalität zu testen. Nachdem das System funktionierte, musste es Gebrauchstauglich gemacht werden. Hierfür wurde im Simens NX (CAD) ein auf das Projekt abgestimmtes Gehäuse gezeichnet und anschliessend gedruckt. Damit das Arduino an den richtigen Stellen befestigt werde kann, wurde über die Webseite GRABCAD eine CAD-Vorlage für das Arduino heruntergeladen. Ein Platz für eine Batterie wurde auch eingeplant im Gehäuse. Auf dem Deckel werden die LED’s neben der Beschriftung des entsprechenden Zustands eingeklebt. Zusätzlich wird noch ein Schalter eingebaut, damit das System ein- und ausgeschalten werden kann. Die Anschlüsse des Thermoelements werden mit Kabel verlängert und im Anschluss werden die Lötstellen mit Schrumpfschlauch und Heisskleber Wasserdicht gemacht. Jetzt ist das System nach Laden des Programmes einsatzbereit. Nimmt man das Thermoelement in den Mund, so weiss man nach ca.2 Minuten Wartezeit, ob man Fieber hat, unterkühlt ist oder alles in Ordnung ist.

Das Gehäuseunterteil mussten wir zweimal drucken, da beim ersten Mal die Halterung für das Arduino vergessen gegangen ist. Auch beim zweiten Versuch stellten wir einen Fehler fest. Die genutzte Arduino-UNO Vorlage von GRABCAD war fehlerhaft und die Halterungen passten nicht. Zwei Schrauben konnten aber dennoch angebracht werden, was für unsere Anwendung gut genug war. Ansonsten funktioniert das System wunderbar. Einziger Nachteil ist, dass man beim Messen nicht weiss, wie hoch das Fieber ist. Theoretisch könnte man innerlich kochen und das System zeigt einfach nur Fieber an.

3D-Druck

Die Teile aus dem CAD sind unten zu sehen. Wir hatten uns eine lustige Beschriftung überlegt, da aber der 3D-Drucker nicht so klein Drucken konnte entstand ein kleiner "Fail". Nach entfernen dieser Beschriftung klappte das Ganze wunderbar. Hier ist der Link zu den STL-Files für den Deckel und das Unterteil.



Hack 2

Blindenwarnsystem

Stellen Sie sich folgende Situation vor: Eine Sehbehinderte Person möchte die Strasse überqueren. Leider gibt es in der nähe keinen Zebrastreifen, die Person muss also alle ihre Sinne einsetzen. Weil sie die Strasse möglichst schnell überqueren will läuft die Person mit zügigem Schritt über die Strasse und sucht dabei mit dem Langstock (Blindenstock) den Randstein auf der anderen Strassenseite. Durch die Eile stösst sie ihren Kopf an einem Strassenschild. Genau diese Situation widerfuhr mir (Fabian Kaiser) in London. Auch wenn die genannte Person leicht alkoholisiert war denken wir, dass dies nicht eine Ausnahmesituation war. Deshalb wollten wir im Hack 2 ein Produkt entwickeln, dass in solchen Situationen Abhilfe schafft. Mittels einem Ultraschallsensor soll der Bereich vor dem Kopf gescannt werden und via Audiosignal wird ein Warnsignal abgegeben, falls ein Hindernis in dem Bereich liegt.

Nachfolgend ist das Arduino-Skript aufgeführt. Es ist ebenfalls wieder mit Kommentaren versehen, damit es etwas nachvollziehbarer ist:

// Skript Hack 2, Blockwoche Medtech DIY, Gruppe Beta
//15.09.2021


# include <stdio.h>                              //Da die switch-Abfrage sich nicht auf einzelne Werte, sondern auf einen Wertebe­reich bezieht, muss die Biblio­thek stdio.h importiert werden.
# define LAUTSPRECHER 4                          //Zuweisung der Variablen mit define
# define LED 5 
# define SENDEN 6 
# define ECHO 7



void setup() {                                   // Definition der vier Ein- und Ausgänge

  pinMode(ECHO, INPUT);                            
  
  pinMode(SENDEN, OUTPUT);                        
  pinMode(LAUTSPRECHER, OUTPUT);                   
  pinMode(LED, OUTPUT);                          // LED Signal, muss nicht zwingend sein, hilft aber das akustische Signal zu verstehen und defekte komponenten zu lokalisieren

}


int EntfernungMessen()                           // Funktion, die die Entfernung misst
{ 
  long Entfernung = 0;                           // long --> -2,147,483,648 bis 2,147,483,647

                                                 // Sender kurz ausschalten um Störungen des Signal zu vermeiden 
  digitalWrite(SENDEN, LOW); 
  delay(5);

                                                 // Signal senden 
  digitalWrite(SENDEN, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(SENDEN, LOW);  

                                                 // pulseIn → Zeit messen, bis das Signal zurückkommt 
  long Zeit = pulseIn(ECHO, HIGH);   

                                                 // Entfernung in cm berechnen --> 0.03432 [cm/µs] entspricht der Schallgeschwindigkeit in Luft bei "Normalbedingungen"
  Entfernung = (Zeit / 2) * 0.03432;             // Faktor 2 da hin und Rückweg
  return Entfernung;                             // Zeit [µs]
}



void loop() {
 
                                                 // Funktion aufrufen 
  long Entfernung = EntfernungMessen();

  
  if (Entfernung < 100)                          // Ultraschallsensor misst nur Mist > 100cm  
  {  
    switch (Entfernung)                          // Zustandsmaschine mit 6 verschiedenen Cases. Distanzen von 2-100 cm werden erfasst und unterschiedlich akustisch ausgewertet.
    {  
      case 86 ... 100:                           // Case 86 -100 cm Abstand zu Objekt
        tone(LAUTSPRECHER, 1000, 2);             // Ausgabe Ton bei Piezolautsprecher mit 1000 Hz ( hörbarer Bereich 20 Hz bis 20 kHz) und einer Dauer von 2 ms
        digitalWrite(LED, HIGH);                 // LED ein
        delay(50);                               // 50ms warten
        digitalWrite(LED, LOW);                  // LED aus  
        delay(500);                              // 500ms warten
        break;   

      case 76 ... 85:   
        tone(LAUTSPRECHER, 1000, 2);   
        digitalWrite(LED, HIGH); 
        delay(50);   
        digitalWrite(LED, LOW);  
        delay(400); 
        break; 

      case 66 ... 75:  
        tone(LAUTSPRECHER, 1000, 2);   
        digitalWrite(LED, HIGH);  
        delay(50);  
        digitalWrite(LED, LOW);   
        delay(300); 
        break;   
 
       case 56 ... 65: 
         tone(LAUTSPRECHER, 1000, 2); 
         digitalWrite(LED, HIGH); 
         delay(50); 
         digitalWrite(LED, LOW); 
         delay(200); 
         break; 

       case 36 ... 55: 
         tone(LAUTSPRECHER, 1000, 2);
         digitalWrite(LED, HIGH);
         delay(50); 
         digitalWrite(LED, LOW); 
         delay(100); 
         break;

       case 2 ... 35:                            // Ultraschallsensor misst nur Mist < 2 cm
         tone(LAUTSPRECHER, 1000); 
         digitalWrite(LED, HIGH); 
         break;     
    }
  }
}
    


3D-Druck

Die Halterung für den Ultraschallsensor wurde mit einem Open Source STL-File hergestellt.

Auch das Case wurde mit einem Open Source STL-File hergestellt.

Sensorhalter

Als Sensorhalterung wurde die Innenausstattung eines Baustellenhelmes ausgebaut und entsprechend mit dem 3D-Druckteil modifiziert.

Alphatest

In diesem Video ist der erste Test mit diesem System zu sehen. Das Case für das Arduino fehlt hier noch, das Arduine wie auch das steckbord wurden provisorisch auf die Helmhalterung gelegt.

Betatest

Im Beta Test untersuchten wir unteranderem den Tragekonfort des Blindenwarnsystems. Im laufe der Tests traten jedoch immer wieder Probleme auf, das Signal des Sensors wird nicht "gekillt" (Wenn der Sensor eine Distanz misst wird diese nicht überschrieben bis ein anderes Signal kommt). Dies führt dazu, dass bei einem Wackelkontakt die sehbeeinträchtigte Person einen falschen Eindruck der Umgebung bekommt. Dies kann bei zukünftigen Prototypen umgangen werden, indem die Steckverbindungen gelötet werden.

Reflexion/Zusammenfassung

Mit grosser Spannung und vielen Fragezeichen sind wir in die Blockwoche gestartet. Durch das Wiki der anderen Gruppen aus früheren Durchführungen wussten wir aber schnell, was uns ca. erwarten wird. Mit nur 12 Studenten war es eine kleine Durchführung und daher sehr angenehm. Der erste Tag verlief wie geplant. Es war toll mal wieder vor Ort zu sein. Die Teams konnten frei gewählt werden und wir kannten uns bereits ein bischen von der Berufsmatura respektive der Zugfahrt. Wir hatten ein ausgewogenes Team, in welchem jeder so seine eigenen Skills hatte und man sich insgesamt super ergänzte. Leider endete die Freude abrupt mit dem Mail, dass es durch den Coronafall von Marc für unser Team nicht mehr vor Ort weiter geht. Wir hatten Glück, dass Benjamin zu Hause top ausgerüstet ist und arbeiteten mehrheitlich bei ihm zu Hause an unseren Projekten. Durch die gute Arbeitsaufteilung war es uns möglich, sogar einen dritten Hack zu erarbeiten.

Im Hack 0 (Muscle Spiker) hatten wir vieles abgeschaut und kopiert. Dieser Hack hat uns vor allem geholfen, wieder in die Arduino Programmierung hinein zu kommen. Wir versuchten das Programm zu verstehen und googelten diverse Befehle, die uns unbekannt waren. Da wir schon lange nicht mehr gelötet hatten, waren die ersten Lötstellen noch etwas schlecht. Mit ein bisschen Übung und gegenseitigem Helfen hat das dann aber gut geklappt. Der Versuch mit den Elektroden und den LED's hat bei uns von Anfang an geklappt. Wir waren sehr begeistert und erstaunt, dass das so funktionierte.

Im Hack 1 (Fiebermesser) steigerten wir uns und entwickelten bereits beinahe alles alleine. Wobei der Schwierigkeitsgrad noch nicht so hoch war. Patrick konnte seine CAD-Skills wieder auffrischen und Benjamin Arbeitete sich in die Arduino Programmierung ein. Fabian half an beiden Orten mit, druckte die gezeichneten Teile aus und begann mit dem Zusammensetzen der Hardware. Unklarheiten und Probleme konnten durch gegenseitiges Helfen schnell beseitigt werden. Bei Diesem Projekt konnten wir das Skript nicht mehr auf das Arduino laden. Nach langem Ausprobieren haben wir herausgefunden, dass dies am Slicer-Programm Ultimaker Cura liegt. Erst nach dem Schliessen dieses Programmes funktionierte der Upload wieder.

Beim Hack 2 (Blindenwarnsystem) kamen dann alle DIY-Ansätze zusammen. Die Schwierigkeitsstufe wurde etwas erhöht. Vor allem das Programmieren des Arduinos war bei diesem Hack für uns eine Herausforderung. Gemeinsam und durch Nachschauen der entsprechenden Funktionen auf der Arduino-Homepage konnten wir dann ein für uns passendes Arduino-Skript erstellen. Als Basis nutzten wir das Innenleben eines alten, verstaubten Bauhelmes aus dem Keller. Bei den 3D-Druckteilen bedienten wir uns ausschliesslich aus dem Internet und druckten die Vorlagen aus. So konnten wir uns auf das Wichtigste fokussieren und ein tolles Projekt gestalten. Die stetige Weiterentwicklung der Teammitglieder mit jedem weiteren Projekt war zu erkennen. Unser Blindenwarnsystem wird aktuell in der Primarschule Hübeli in Emmenbrücke genutzt, um den Schülern der dritten Klasse zu zeigen, wie sich Fledermäuse im Dunkeln orientieren.

Neue Dinge konnten gelernt werden und alte Dinge konnten durch die Blockwoche aufgefrischt werden. Uns hat das Basteln angesteckt und andere noch nicht entworfene Ideen schwirren im Kopf umher. Genau das war das Ziel der Blockwoche, das Flair für DIY zu entwickeln und dies ist bei uns angekommen. Wobei einer hatte das schon vor der Blockwoche entdeckt😉.