Difference between revisions of "Team Abartig"

From Hackteria Wiki
Jump to: navigation, search
(Elektroschocker)
(Elektroschocker)
Line 303: Line 303:
 
===Elektroschocker===
 
===Elektroschocker===
  
<gallery mode="packed" widths=500px heights=400px>
+
<gallery mode="packed" widths=400px heights=300px>
 
File:Elekroschocker.gif|Elektroschocker Funktion
 
File:Elekroschocker.gif|Elektroschocker Funktion
 
</gallery>
 
</gallery>

Revision as of 10:08, 16 September 2022


Geh zurück auf Medizintechnik DIY

Willkommen zu diesem abartigen Wiki

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

Aufzeichnung Augenbewegung

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.

SkillShare Session 2022:

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

Nach den diversen Arbeiten wie dem Erstellen der Komponenten, ging es darum die Teilsysteme zusammenzubauen und in Betrieb zu nehmen.

Hack 2

Heisser Draht

Am Freitag Morgen begann das Team Abartig mit ihrem zweiten Projekt. Da die Blockwoche bereits dem Ende naht, entschied das Team ein kleineres Projekt zu starten bei dem ein spielerischer Anteil dabei ist.

Hack 3

Elektroschocker

Verwendete Ressourcen

Anleitung Muscle SpikerShield: [1]

Weitere Infos zum Muscle SpikerShield: [2]

Interessante EKG Einführung: [3]

FabLab Homepage: [4]

Wiki-Codes: [5], [6]