Team Abartig
Geh zurück auf Medizintechnik DIY
Contents
Teamvorstellung
- Tobias Zgraggen (Medizintechnik)
- Dominik Märki (Medizintechnik)
- Olivier Hochstrasser (Medizintechnik)
- Daniel Niederberger (Maschinentechnik)
Einleitung
MEDTECH DIY Blockwoche
Das Team Abartig wurde zu Beginn der Blockwoche gegründet und besteht aus vier Teammitgliedern. Vom 12. bis 17.09.2022 fand die Blockwoche an der Hochschule Luzern Technik & Architektur statt. Viel Wert legte man auf die "Do It Yourself bzw. Together" Kultur. Dies bedeutet, dass die Studierenden ihre Vorkenntnisse oder Erkenntnisse mit den Anderen teilten. Hierzu plante man "Skill Share Sessions" ein, um den Austausch von Wissen zu fördern. Der Themenbereich wurde hierbei sehr offen gehalten, sodass man aus verschiedenen Fachgebieten etwas Neues lernen kann. Zusammen in der Gruppe erarbeitete man diverse Projektideen und realisiert diese.
FABLAB
Das FabLab ist an der Hochschule Technik & Architektur in Horw angesiedelt und ist für Alle zugänglich. Zu Beginn benötigt es allerdings eine Einführung durch das Fachpersonal. Weitere Informationen findet man unter: https://fablab-luzern.ch/
Tag | Öffnung | Schliessung |
---|---|---|
Dienstag | 10:00 Uhr | 21:00 Uhr |
Mittwoch | 10:00 Uhr | 21:00 Uhr |
Donnerstag | 10:00 Uhr | 21:00 Uhr |
Es sind folgende Geräte vorhanden:
- Laser Cutter
- 3D-Drucker
- CNC Fräse
Laser Cutter
Es sind zwei Laser Cutter vom Typ AKJ-6090 von Acctek im Einsatz. Die mögliche Bearbeitungsfläche beträgt 900 x 600 mm. Es können Bauteile in verschiedenen Materialien geschnitten, geritzt und graviert werden.
ACHTUNG!!
- Es gibt Materialien die nicht gut mit dem Laser geschnitten werden können. Verleimtes Sperrholz lässt sich meist nur bis ca. 3mm schneiden.
- Materialien mit einem Chloranteil dürfen nicht bearbeitet werden, da giftige Gase entstehen.
3D-Drucker
Im FabLab sind folgende 3D-Drucker vorhanden:
- 3 x Original+
- 4 x Ultimaker2+
CNC Fräsmaschine
Im FabLab ist folgende Portalfräsmaschine vorhanden:
- 1 x PA8050
Für genauere Infos:
https://www.millstep.de/cnc-fraesmaschinen-vom-hersteller/cnc-fraesmaschine-pa-serie-v3/
https://fablab-luzern.ch/cnc-frasmaschine/
Programm
Reflektion zu Readings / Input Vorlesungen
Hack 0
EMG SpikerShield Bord
Das EMG SpikerShield misst die elektronischen Impulse der Muskeln. Dieses Shield wurde als Einleitung in die Woche gebaut mit dem Ziel das Löten den Studierenden näher zu bringen. Durch das Programmieren von dem Arduino bekam man auch einen guten Einstig in die Welt des Programmierens
Zusammenbau
Um die Platine zum laufen zu bringen, mussten zuerst alle Bauteile eingelötet werden. Dabei gingen wir nach der Anleitung auf Backyardbrains. Da die meisten aus der Gruppe nicht zum ersten mal löteten ging es im Grossen und Ganzen zügig voran. Das grösste Problem war jedoch das die Lötspitze nicht mehr so neu war und deshalb den Lötzinn nicht annahm. Durch eine höher eingestellte Temperatur konnte jedoch das Problem etwas beseitig werden. Das Shield wurde am Ende auf das Arduino gesteckt. Dabei muss sehr genau geachtet werden, dass alle Pins verbunden werden.
Code
Der Code für das Arduino konnte von der Website "Backyardbrains" heruntergeladen werden. Im Prinzip wird die Spannung am Analogen Input A0 zehn mal eingelesen und daraus das Mittel gebildet. Dieser Wert wird anschliessend auf den 8 LEDs angezeigt.
Funktionstest
Um das Shield auszutesten, hat Oli die Elektroden an seinem Unterarm befestigt. Die Elektroden wurden dann über ein Kabel mit dem Shield verbunden. Sobald nun der Muskel angespannt wird, beginnen die LEDs zu leuchten. Zuerst war es viel zu sensitiv und hat ununterbrochen fest ausgeschlagen. Das Problem war, dass der Schalter noch nicht auf ENV gestellt war sondern auf RAW. Dabei wird das Signal nicht gefiltert und es ergibt keine klare Messung. In er Arduino IDE gibt es die Möglichkeit mit einem Plotter eine Kurve anzeigen zu lassen. Wir haben den Analogen Eingang, auf dem das Muskelsignal liegt, so visuell anzeigen können. Auf diesem sind die jeweiligen Ausschläge der Muskeln sehr gut zu erkennen.
Reflexion
Heart and Brain SpikerShield
Mit dem Heart and Brain SpikerShield haben wir die Augenbewegung auf horizontaler Ebene aufgezeichnet.
Das Auge wird durch vier Muskeln bewegt. Jeweils ein Muskel dreht das Auge nach oben, unten, links oder rechts. Genauere Informationen sind hier auffindbar. Wenn eine Elektrode an der Schläfe und die andere an der Nase befestigt wird, kann das elektrische Signal auf der horizontalen Ebene des Auges gemessen werden. Dies betrifft vorallem die Muskeln links und rechts vom Auge.
Im Diagramm ist dargestellt, wie sich die Spannung ändert, wenn das Auge in folgender Reihenfolge bewegt wird: mitte, links, mitte, rechts, mitte. Nur bei der Bewegung des Auges ist ein Signalausschlag erkennbar. Je nach dem ob der linke oder rechte Muskel bewegt wird, entsteht ein positives oder negatives Signal.
Die Software wurde von der Website backyardbrains übernommen oder kann hier: download zip direkt heruntergeladen werden.
Am Dienstag morgen war das Ziel sich gegenseitig etwas beizubringen. Unten sind die Themen aufgelistet, welche vorbereitet wurden.
SkillShare & Gruppe | Wann | Ort |
---|---|---|
DIY-MedTech - Pumpspeicherkraftwerk erklären | Mittwoch 09:15 | Fablab |
DIY-MedTech - ESP erklären | Mittwoch 09:15 | Fablab |
DIY-MedTech - Schlössli knacken | Mittwoch 10:15 | Fablab |
DIY-MedTech - "Female" pleasure ANATOMY | Mittwoch 10:15 | Fablab |
DIY-MedTech - Kartenspiel | Mittwoch 11:15 | Fablab |
DIY-MedTech - Aufbau Arduino | Mittwoch 11:15 | Fablab |
Hack 1
Idee
Das Team Abartig wollte die Signale, die mit dem EMG SpikeShield erfasst werden können für etwas verwenden. Das Team will die Bewegungen der Augen mit dem SpikeShield erfassen und damit eine Lampe in die entsprechende Richtung der Augen bewegen. Wenn nach links geschaut wird, soll eine Stirnlampe sich nach links bewegen. Wenn nach rechts geschaut wird, soll die Stirnlampe sich nach rechts bewegen. Das Ziel ist es, dass im Dunkeln immer dort Licht ist, wo gerade hingeschaut wird.
Sensoren
Lampe
Um im Dunkeln sehen zu können, wurde zuerst eine Lampe entwickelt. Als Leuchtmittel wurde im Fablab ein passender LED-Ring gefunden. Beim Ring handelt es sich um Neopixel-LEDs. Diese können wie herkömmliche RGBs angesteuert werden. Dazu wurden zuerst die Kontakte des Rings mit einem Kabel verlötet. Anschliessend wurde ein Lampenschirm gebaut, der das Licht in eine Richtung konzentrieren sollte. Dazu wurde ein glänzendes Blech zu einem Konus geformt und zusammengenietet. Der LED-Ring und der Lampenschirm wurden anschliessend auf eine Grundplatte verleimt. Die Grunplatte wurde zuvor mit dem Lasercutter aus einer MDF-Platte herausgeschnitten.
Programm Arduino
Das Programm wurde in der Arduino IDE geschrieben. Es wurden zwei verschiedene Librarys hinzugefügt. Eine um die Neopixel anzusteuern und eine um den Servo zu bedienen. Zudem wurde Online von der Website ".." den Code für das Heard and Brain SpikerShield genommen. Alle Codestücke anschliessend in einen grossen Code zu verbinden, war schwieriger als angenommen, da man nicht immer genau wusste wo das Problem lag, wenn etwas nicht funktionierte. Da die Arduino IDE auch keinen Debugger hat, wurde meist ein Teil des Codes auskommentiert und so nach den Ursachen der Fehler gesucht. Da das Shield nicht selber designt worden war, hatte man zudem noch oft das Problem, das gewisse Inputs und Outputs schon verwendet werden, obwohl man sie nicht dringend benötigt. Der fertige Code kann man unten ansehen.
#include <Servo.h> #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif #define PIN 11 #define NUMPIXELS 14 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); Servo myservo; // create servo object to control a servo int potpin = 0; // analog pin used to connect the potentiometer int pos; // variable to read the value from the analog pin int reading[10]; int finalReading; int multiplier = 1; unsigned int mittel = 0; int i = 0; unsigned int counterright = 0; unsigned int counterleft = 0; void setup() { Serial.begin(9600); //begin serial communications #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif pixels.begin(); pixels.clear(); pixels.setPixelColor(1, pixels.Color(255, 0, 0)); pixels.show(); myservo.attach(5); // attaches the servo on pin 9 to the servo object pos = 90; delay(1000); for(i = 0;i<50;i++){ 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; mittel = mittel+finalReading; delay(10); Serial.println(mittel); } mittel = mittel/50; Serial.print(mittel); Serial.print("\t"); delay(1000); pixels.clear(); for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.Color(255, 0, 255)); } pixels.show(); } 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; Serial.print(finalReading); Serial.print("\t"); if(finalReading > (mittel +100)&&counterright>30){ pos += 89; counterright = 0; } if(finalReading < (mittel-100)&&counterleft>30){ pos -= 89; counterleft = 0; } pos = constrain(pos, 1, 179); Serial.print(mittel); Serial.print("\t"); Serial.println(pos); myservo.write(pos); counterleft++; counterright++; for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.Color(255, 255, 255)); } pixels.show(); delay(40); }
Funktion
Hack 2
Verwendete Ressourcen
Anleitung Muscle SpikerShield: [1]
Weitere Infos zum Muscle SpikerShield: [2]
Interessante EKG Einführung: [3]