MedTechDIY20 Bananas In Pajamas



=Team= Bananas In Pajamas besteht aus drei Studierenden: Giona Adami, Dominic Bacher und Janick Marfurt. Das Team ist interdisziplinär aus Maschinentechnik, Medizintechnik und Wirtschaftsingenieur.

Mitglieder:

=Stundenplan=

=DIY Culture= Das Akronym DIY (Do It Yourself) bezeichnet die Selbst-Durchführung mit den eigenen Ressourcen eines Projekts. DIY ist eine Community von Personen, die um das Prinzip "Do it Yourself" Wissen, technische Lösungen, Ideen, Projekte usw. tauschen. Das DIY Ansatz fördert die Kreativität und die Lösungsfindung von Problemen mit gemeinverständliche Mitteln und Werkzeuge. Aus diesem Grund gleiche DIY Produkt-Ideen werden verschiedene Lösungsfindungen aufweisen. Die Vorteile von DIY sind das Wachstum eines Projekts durch das Tauschen von Entwicklungsinformationen in der Community. Viele DIY Projekte sind durch die DIY-Community von Enthusiasten oder Spezialisten verbessert worden (LINK zu Magicmirror). Ein anderer Vorteil ist, dass man durch DIY sehr viel lernt. Der Nachteil von DIY besteht in der Freiheit damit die Community das Wissen austauscht. Es gibt auch DIY-Waffenprojekte oder potenzielle DIY-Bösartige Projekte, die auch Teile der Community unterstützten (Defense Distributed).

Open-Source
Die Bezeichnung Open-Source wird für nichtlizenzierte Software angewendet und beschreibt diejenige Software, die frei von der Community modifiziert und weiterentwickelt werden können. Open-Source heisst, dass man freier Zugriff zum Source-Code besitzt. Heutzutage sind Open Source Programme sehr breit. Sie bieten semi-professionelle Lösungen um gewisse arbeiten durchzuführen. Bei CAD Workstation zählen viele Programme wie Siemens NX, CATIA und Autodesk Inventor. Das Open Source Konkurrent in diesem Fall ist FreeCAD. Diese Software ermöglicht fast alle grundliegenden Funktionen einer CAD Workstation.

=Skills Share Sessions= Bei den Skills Share Sessions (SSS) will man neues Wissen übermitteln. Die Teilnehmern der SSS bieten Crash-Kurse an, basierend aus persönlichen Kenntnissen oder Erfahrungen. Jeder Person kann sich in mehrere Kurse einschreiben und das Wissen der Veranstalter aufnehmen.

Eine Skill Share Session artikuliert sich in 4 Phasen:
 * Phase 1: In dieser Phase stellt man dar, den eigenen Lerninteressen beziehungsweise was man den anderen Teilnehmern beibringen kann,
 * Phase 2: Man bewertet die dargestellten Kurse, diejenigen mit den höchsten Bewertungen werden sortiert.
 * Phase 3: Die Teilnehmer schreiben sich in den ausgewählten sortierten Kurse ein.

Bananas in Pajamas hat einen Crash-Kurs der Dauer von einer Stunde über die Grundlagen der Elektrotechnik angeboten.

Elektrotechnik Crash-Kurs
Im Elektrotechnik Crash Kurs wird dem Lernenden ein kurzer Einblick in die Welt der Elektrotechnik gegeben. Als erstes wird ein Multimeter erklärt und wie man es richtig benutzt. Anschliessend werden diverse verschiedene Komponenten, wie zum Beispiel ein Kondensator oder eine Spule erklärt. Auch das Anwendern einer Leuchtdiode wird erklärt und auf was zu achten ist. Zum Schluss wird das Schema für das «Muscle Spiker Shteld» Board erklärt. Anschliessend konnten uns die Studierenden noch Fragen stellen und es gab einen Austausch zwischen den verschiedenen Problemen die mit dem Board entstanden sind.



Schweissen mit MAG- TIG- Elektrode
Im Skill share session hat man das Kurs "Schweissen", von Team G2020 angeboten, besucht. Es war sehr interessant und Gut gestaltet. Wir konnten die drei Schweissverfahren selber ausprobieren. Das Schweissen mit dem Elektrode war die schwierigste, da man zwei Parametern (Zusatzmaterial und Temperatur) mit dem Elektrode stuern muss. Die TIG Schweissverfahren sieht ähnliche wie löten, man wärmt das Metall auf und positioniert die Spitze des Zusatzmaterials in den aufgewärmte Zone. Das Zusatzmaterial schmilz auf die Metallspalte und verbindet die zwei Metallteile.

=Hack 0= Hier werden Experimente durchgeführt, um die Anwendung des DIY Muscle SpykerShield kennezulernen. Den DIY Muscle SpykerShield ist einen mit Arduino kompatible Messplatine von Backyard Brains, die die Messung von elektrische Spnannungen im Körper mithilfe von Elektroden ermöglicht. D kommt in einem DIY-Kit und muss selbst montiert und gelötet werden.



Elektrische Aktivität des Muskels messen
Mit dieses Experiment misst man die elektrische Impulse des Unterarmmuskel und stellt die Intensität des Impuls mit eine Reihe von 6 LEDs dar. Die Software ist unter Backyard Brains - DIY Muscle SpykerShield verfügbar.

Beobachtungen und Erkenntnisse
Das Experiment hat gut funktioniert. Man konnte die elektrische "Aktivität" des Muskels auf dem Serial-Monitor und auf die LEDs beobachten. Durch die Verkürzung des Muskels entsteht ein elektrischen Impuls, das gemessen werden kann. In einem Muskel die Kraft wird durch die Frequenz der Muskelfaser-Zuckungen gesteuert. Je die Frequenz höher ist, desto mehrere Muskelfasern sich verkürzen. Mit dem DIY Muscle Spyker Shield sieht man diese Frequenzen nicht, da es sich um hochfrequenzen handelt. Bei dieser Experiment tritt einen Störsignal auf, der eine Schwingung in der Messung verursacht. Man hat eine Verminderung des Störsignals beobachtet, bei das Austecken von das PC-Lädegerät.



Die LEDs zeichnen die elektrische Aktivität des Muskels.

Musik mit den Muskeln machen
Mit diesem Experiment werden durch Muskelkontraktionen Töne erzeugt. Das Experiment ist ähnlich aufgebaut wie das vorherige. Anstelle der LEDs wird jedoch ein Lautsprecher angeschlossen. Durch verschieden starke Kontraktion der Muskeln können verschiedene Töne erzeugt werden, somit verwandelt sich der Unterarm zu einem Musikinstrument. Der Versuchs Aufbau ist sehr simpel und es macht spass



Die Anleitung zum Versuch findet ihr hier.

Beobachtungen und Erkenntnisse
Wie in dem vorherigen Beispiel tritt hier auch einen Rauschsignal auf. Es könnte eine Netz-Störung von 50 Hz sein. Im Fablab sind verschiedene Maschinen wie Lasercutters, 3D Drucker, Luftreinigungssystem vorhanden. Diese Anlagen besitzen Motoren, die magnetische Felder erzeugen und also auch Funkstörungen.

=Hack 1: DIY Digital Candle= Das erste Hack ist eine digitale Kerze. Die Idee ist eine moderne Lampe zu basteln, die wie eine konventionelle Kerze angezündet wird. Mittels eine Licht-abhängige-Widerstand (Light dependent Resistor "LDR") ist man in der Lage das verursachte Licht der Flamme eines Feuerzeug zu detektieren.



Demo of the candle

Funktionsweise
Das Prinzip dieser Projekt ist sehr simpel. Man will eine Lampe mithilfe von einem Feuerzeug wie eine Kerze einschalten. Die Lampe wird anhand einer Licht-abhängige Widerstand eingeschaltet und solange das Licht der Lampe auf die Widerstand kommt schlatet die Kerze nicht ab. Um die Digital Candle abzuschalten ist es nötig die Licht abhängige Widerstand vor Licht decken. Die Steuerung wird mit Arduino gewährleistet und ein modernen und effizienten SMD LEDs-Ring wird als Lichtquelle benutzt. Dieses Hack stellt einen Kontrast zwischen alte und neue Technologien dar. Eine mögliche Weiterentwicklung für medizintechnische Zwecke dieser digitalen Kerze besteht in der Anwendung von Photoresistoren um die Sauerstoff im Blut mittels Messung der Lichtabsorption durchzuführen.

Inspiration
Photoresistoren sind Licht-abhängige Widerstände. Mit diese ist man in der Lage Lichtdifferenzen zu messen und zu detektieren. Die Inspiration kommt von der schweizerische Artillerie-Systeme. Bei den Panzerhaubitzen gibt das Gefahr, dass einen Feuer im Fahrzeug ausgelöst wird. Die Feuermelder im Panzerhaubitze funktionieren mit der Licht. Man will den gleichen Konzept für den Operationsäle anwenden. Im Operationssal benutzt gefährliche Stoffe wie Sauerstoff und eine Austritt könnte eine schwerwiegende Explosion verursachen. Man könnte deswegen Photoresistoren oder ähnliche Komponenten anwenden um einen Feuerlösch-System rechtzeitig zu aktivieren.

Do the digital candle yourself!
What do you need for this project:
 * A Photoresistor (LDR)
 * A 110 ohms resistor
 * Arduino Uno or equivalent
 * Some cables
 * One cylindrical piece of wood
 * A LED's ring

The electrical draw below shows the cable connections, please note that the 110 ohms resistors is required to guarantee a difference of voltage in the analog input of arduino by differents light intensities!

Electrical connections
Here the electrical scheme of the photoresistor; You can program the LED's Ring by following the tutorial:

Adafruit 24 RGB LED Ring tutorial



Source Code
The program of the digital candle is listed below.

//--- //DIGITAL CANDLE SOURCE CODE //This is an Open Source code, feel free to modify and/or share it. //--- Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int sensorPin = A0; int sensorValue = 0; bool schalter = false; void setup { clock_prescale_set(clock_div_1); // declare the ledPin as an OUTPUT: pinMode(sensorValue, OUTPUT); Serial.begin(9600); pixels.begin; /*--*/   pixels.setPixelColor(0, pixels.Color(0, 0, 0)); pixels.setPixelColor(1, pixels.Color(0, 0, 0)); pixels.setPixelColor(2, pixels.Color(0, 0, 0)); pixels.setPixelColor(3, pixels.Color(0, 0, 0)); pixels.setPixelColor(4, pixels.Color(0, 0, 0)); pixels.setPixelColor(5, pixels.Color(0, 0, 0)); pixels.setPixelColor(6, pixels.Color(0, 0, 0)); pixels.setPixelColor(7, pixels.Color(0, 0, 0)); pixels.setPixelColor(8, pixels.Color(0, 0, 0)); pixels.setPixelColor(9, pixels.Color(0, 0, 0)); pixels.setPixelColor(10, pixels.Color(0, 0, 0)); pixels.setPixelColor(11, pixels.Color(0, 0, 0)); pixels.setPixelColor(12, pixels.Color(0, 0, 0)); pixels.setPixelColor(13, pixels.Color(0, 0, 0)); pixels.setPixelColor(14, pixels.Color(0, 0, 0)); pixels.setPixelColor(15, pixels.Color(0, 0, 0)); pixels.setPixelColor(16, pixels.Color(0, 0, 0)); pixels.setPixelColor(17, pixels.Color(0, 0, 0)); pixels.setPixelColor(18, pixels.Color(0, 0, 0)); pixels.setPixelColor(19, pixels.Color(0, 0, 0)); pixels.setPixelColor(20, pixels.Color(0, 0, 0)); pixels.setPixelColor(21, pixels.Color(0, 0, 0)); pixels.setPixelColor(22, pixels.Color(0, 0, 0)); pixels.setPixelColor(23, pixels.Color(0, 0, 0)); pixels.show; /**/ } void loop { if(analogRead(sensorPin)>SOL) {     schalter = true; }   else if(analogRead(sensorPin)<30) {     schalter = false; pixels.clear; }   sensorValue=analogRead(sensorPin); Serial.println(sensorValue); delay(1000); if(schalter==true) {   pixels.setPixelColor(0, pixels.Color(255, 255, 255)); pixels.setPixelColor(1, pixels.Color(255, 255, 255)); pixels.setPixelColor(2, pixels.Color(255, 255, 255)); pixels.setPixelColor(3, pixels.Color(255, 255, 255)); pixels.setPixelColor(4, pixels.Color(255, 255, 255)); pixels.setPixelColor(5, pixels.Color(255, 255, 255)); pixels.setPixelColor(6, pixels.Color(255, 255, 255)); pixels.setPixelColor(7, pixels.Color(255, 255, 255)); pixels.setPixelColor(8, pixels.Color(255, 255, 255)); pixels.setPixelColor(9, pixels.Color(255, 255, 255)); pixels.setPixelColor(10, pixels.Color(255, 255, 255)); pixels.setPixelColor(11, pixels.Color(255, 255, 255)); pixels.setPixelColor(12, pixels.Color(255, 255, 255)); pixels.setPixelColor(13, pixels.Color(255, 255, 255)); pixels.setPixelColor(14, pixels.Color(255, 255, 255)); pixels.setPixelColor(15, pixels.Color(255, 255, 255)); pixels.setPixelColor(16, pixels.Color(255, 255, 255)); pixels.setPixelColor(17, pixels.Color(255, 255, 255)); pixels.setPixelColor(18, pixels.Color(255, 255, 255)); pixels.setPixelColor(19, pixels.Color(255, 255, 255)); pixels.setPixelColor(20, pixels.Color(255, 255, 255)); pixels.setPixelColor(21, pixels.Color(255, 255, 255)); pixels.setPixelColor(22, pixels.Color(255, 255, 255)); pixels.setPixelColor(23, pixels.Color(255, 255, 255)); pixels.show; }   else {   pixels.setPixelColor(0, pixels.Color(0, 0, 0)); pixels.setPixelColor(1, pixels.Color(0, 0, 0)); pixels.setPixelColor(2, pixels.Color(0, 0, 0)); pixels.setPixelColor(3, pixels.Color(0, 0, 0)); pixels.setPixelColor(4, pixels.Color(0, 0, 0)); pixels.setPixelColor(5, pixels.Color(0, 0, 0)); pixels.setPixelColor(6, pixels.Color(0, 0, 0)); pixels.setPixelColor(7, pixels.Color(0, 0, 0)); pixels.setPixelColor(8, pixels.Color(0, 0, 0)); pixels.setPixelColor(9, pixels.Color(0, 0, 0)); pixels.setPixelColor(10, pixels.Color(0, 0, 0)); pixels.setPixelColor(11, pixels.Color(0, 0, 0)); pixels.setPixelColor(12, pixels.Color(0, 0, 0)); pixels.setPixelColor(13, pixels.Color(0, 0, 0)); pixels.setPixelColor(14, pixels.Color(0, 0, 0)); pixels.setPixelColor(15, pixels.Color(0, 0, 0)); pixels.setPixelColor(16, pixels.Color(0, 0, 0)); pixels.setPixelColor(17, pixels.Color(0, 0, 0)); pixels.setPixelColor(18, pixels.Color(0, 0, 0)); pixels.setPixelColor(19, pixels.Color(0, 0, 0)); pixels.setPixelColor(20, pixels.Color(0, 0, 0)); pixels.setPixelColor(21, pixels.Color(0, 0, 0)); pixels.setPixelColor(22, pixels.Color(0, 0, 0)); pixels.setPixelColor(23, pixels.Color(0, 0, 0)); pixels.show; delay(500); } }
 * 1) include 
 * 2) ifdef __AVR__
 * 3) include 
 * 4) endif
 * 5) define PIN       6
 * 6) define NUMPIXELS 24
 * 1) define DELAYVAL 250
 * 2) define SOL 125
 * 1) if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
 * 1) endif

=Hack 2: DIY Crane Arm Picker= Im Hack zwei werden nochmals neue Ideen gesammelt. Es wird geschaut das wir uns möglichst in eine andere Richtung als der Hack eins begeben. Im Hack zwei hat sich das Team Bananas in Pyjamas eine Kralle überlegt, die mithilfe der Muskelanspannung eines Menschen gesteuert werden kann. Diese Zange könnte in der Medizinaltechnik für Leute mit Rückenprobleme eingesetzt werden. So muss sich der Patient zum Aufnehmen eines Gegenstandes nicht mehr bücken, sondern kann mit Hilfe der Zange diverse Gegenstände vom Boden aufnehmen.



Demo of the Crane Arm Picker

Funktionsweise
Eine Zange, die mithilfe eines Servos der über die Muskulatur funktioniert, ist an einer Schnur mit einem Motor festgemacht. Der DC Motor wickelt die Schnur auf und ab und lässt dadurch die Zange nach oben oder nach unten. Als erstes muss ein Taster betätigt werden. Anschliessend bewegt sich die Zange nach unten. Ziel ist es den Gegenstand mithilfe der angespannten Muskeln zu Greifen. Anschliessend fährt der Motor automatisch wieder nach oben.

Greifer
Die einzelnen Teile des Greifers wurden aus dem 3D Drucker gedruckt und anschliessend mit Schrauben zusammengeschraubt. Die Datei für den Drucker wurde auf DIY 3D Teile gefunden. Das Greiffprinzip funktioniert mit einem Servo. Dieser wird über das Arduino angesteuert. Mit Hilfe von Elektroden wird die Spannung der Muskeln gemessen. Durch das Anspannen der Muskeln öffnet sich der Greifer. Sobald die Muskulatur entspannt ist, schliesst sich der Greifer und kann so einen beliebigen Gegenstand greifen.

Hebesystem
Das Hebesystem hat die Funktion, den Greifen runter zu fahren und wieder aufzuheben. Man hat sich für einen DC Motor, der durch Umdrehungsgeschwindigkeit und ZEit gesteuert ist. Ein Arduino UNO mit einem Adafruit Motor Shield v2.0 ist zuständig für die Steuerung der Greiferhöhe. Ein Schalter gibt den Impuls an wann man den Greifer runterfahren will.



Der Schalter ist mit zwei Federn aufgebaut und gibt einen Impuls auf die digitale Eingang von Arduino wenn dies betätigt wird.

Die elektrische Schaltung ist in der nächste Abbildung dargestellt:



Elektrische Schaltung:



Do the DIY Crane Arm Picker yourself!
What do you need:
 * The DIY 3D printed Claw
 * A Stepper Motor
 * A DC Motor
 * Two Arduino UNO or equivalents
 * A Button (Actually you can use a DIY button DIY Button)
 * Electrodes
 * DIY Muscle Spyker Shield
 * Adafruit Motor Shield v2.0
 * A bunch of cables
 * Hope, luck and perseverance

Claw driver
/* *   * Backyard Brains 2015 * Muscle SpikerShield Arduino UNO Code for Control of Robotic Gripper * * Code monitors amplitude of EMG envelope, displays EMG strength on LED bar and controls * robotic gripper by controlling servo motor. *  * V1.0 * Written by Marcio Amorim * Updated by Stanislav Mircic * * Tested with Muscle SpikerShield V2.31 *  */  #include     #define GRIPPER_STATE_BUTTON_PIN 4          //pin for button that switches defult state of the gripper (opened/closed) #define SERVO_PIN 2                        //pin for servo motor #define SENSITIVITY_BUTTON_PIN 7           //pin for button that selects sesitivity #define NUM_LED 6                          //number of LEDs in LED bar #define GRIPPER_MINIMUM_STEP 5                //5 degree dead zone (used to avoid aiming oscilation) #define OPEN_MODE 1                        //default gripper state is opened #define CLOSED_MODE 2                      //default gripper state is closed #define MINIMUM_SERVO_UPDATE_TIME 100      //update servo position every 100ms Servo Gripper;                                //servo for gripper byte ledPins[] = {8, 9, 10, 11, 12, 13};   //pins for LEDs in LED bar //EMG saturation values (when EMG reaches this value the gripper will be fully opened/closed) int sensitivities[] = {200, 350, 520, 680, 840, 1000}; int lastSensitivitiesIndex = 2;            //set initial sensitivity index int emgSaturationValue = 0;                //selected sensitivity/EMG saturation value int analogReadings;                        //measured value for EMG byte ledbarHeight = 0;                     //temporary variable for led bar height unsigned long oldTime = 0;                 //timestamp of last servo angle update (ms) int oldDegrees = 0;                        //old value of angle for servo int newDegree;                             //new value of angle for servo unsigned long debouncerTimer = 0;          //timer for button debouncer int gripperStateButtonValue = 0;           //temporary variable that stores state of button int userReleasedButton = 1;                //flag that is used to avoid multiple button events when user holds button int currentFunctionality = OPEN_MODE;      //current default position of claw

//--- //   Setup servo, inputs and outputs // -- void setup{ //init servo Gripper.attach(SERVO_PIN); //init button pins to input pinMode(GRIPPER_STATE_BUTTON_PIN, INPUT); pinMode(SENSITIVITY_BUTTON_PIN, INPUT); //initialize all LED pins to output for(int i = 0; i < NUM_LED; i++){ pinMode(ledPins[i], OUTPUT); }   //get current sensitivity emgSaturationValue = sensitivities[lastSensitivitiesIndex]; }

//--- //   Main loop // //   - Checks state of sesitivity button //  - Checks state of default-gripper-state button //  - Measure EMG //  - Shows EMG strength on LED bar //  - Sets angle of servo based on EMG strength and current mode (open/closed) // -- void loop {       //---  Switch sensitivity //check if button is pressed (HIGH) if (digitalRead(SENSITIVITY_BUTTON_PIN)) {            //turn off all the LEDs in LED bar for(int j = 0; j < NUM_LED; j++) {               digitalWrite(ledPins[j], LOW); }           //increment sensitivity index lastSensitivitiesIndex++; if(lastSensitivitiesIndex==NUM_LED) {             lastSensitivitiesIndex = 0; }           //get current sensitivity value emgSaturationValue = sensitivities[lastSensitivitiesIndex]; //light up LED at lastSensitivitiesIndex position for visual feedback digitalWrite(ledPins[lastSensitivitiesIndex], HIGH); //wait user to release button while (digitalRead(SENSITIVITY_BUTTON_PIN)) {               delay(10); }                  //whait a bit more so that LED light feedback is always visible delay(100); }       //  Switch gripper default position open/close //check if enough time has passed for button contact to settle down if((millis - debouncerTimer) > 50) {           gripperStateButtonValue = digitalRead(GRIPPER_STATE_BUTTON_PIN); //if button is pressed if(gripperStateButtonValue == HIGH) {               //if last time we checked button was not pressed if(userReleasedButton) {                   debouncerTimer = millis; //block button events untill user releases it                   userReleasedButton = 0; //toggle operation mode if(currentFunctionality == OPEN_MODE) {                     currentFunctionality = CLOSED_MODE; }                   else {                     currentFunctionality = OPEN_MODE; }               }             }             else {               userReleasedButton = 1; }       }

//- Measure EMG --- analogReadings = analogRead(A0);//read EMG value from analog input A0       //-- Show EMG strength on LED -- //turn OFF all LEDs on LED bar for(int j = 0; j < NUM_LED; j++) {           digitalWrite(ledPins[j], LOW); }       //calculate what LEDs should be turned ON on the LED bar analogReadings= constrain(analogReadings, 30, emgSaturationValue); ledbarHeight = map(analogReadings, 30, emgSaturationValue, 0, NUM_LED); //turn ON LEDs on the LED bar for(int k = 0; k < ledbarHeight; k++) {         digitalWrite(ledPins[k], HIGH); }

// Drive Claw according to EMG strength - //set new angle if enough time passed if (millis - oldTime > MINIMUM_SERVO_UPDATE_TIME) {             //calculate new angle for servo if(currentFunctionality == OPEN_MODE) {                 analogReadings = constrain(analogReadings, 40, emgSaturationValue); newDegree = map(analogReadings, 40 ,emgSaturationValue, 190, 105); }             else {               analogReadings = constrain(analogReadings, 120, emgSaturationValue); newDegree = map(analogReadings, 120 ,emgSaturationValue, 105, 190); }             //check if we are in servo dead zone if(abs(newDegree-oldDegrees) > GRIPPER_MINIMUM_STEP) {                //set new servo angle Gripper.write(newDegree); }             oldTime = millis; oldDegrees = newDegree; } }

DC Motor
//--- // DC MOTOR MANAGER - //This is an Open Source code, feel free to modify and/or share it. //--- Adafruit_MotorShield AFMS = Adafruit_MotorShield; Adafruit_DCMotor *myMotor = AFMS.getMotor(1); int knopf = 0; void setup { AFMS.begin; Serial.begin(9600); pinMode(PIN, INPUT); myMotor->setSpeed(0); myMotor->run(BRAKE); knopf = LOW; } void loop { myMotor->setSpeed(0); myMotor->run(BRAKE); delay(100); knopf = LOW; knopf =digitalRead(PIN); Serial.println(knopf); if( knopf== HIGH) { myMotor->setSpeed(150); myMotor->run(BACKWARD); delay(3500); myMotor->run(FORWARD); delay(5000); knopf = LOW; } }
 * 1) include 
 * 2) include 
 * 3) include "utility/Adafruit_MS_PWMServoDriver.h"
 * 1) define PIN 6

=Wochenjournal=

Tag 1
Wir haben uns alle am Montagmorgen im FabLab versammelt und die Blockwoche mit einer kurzen Vorstellungsrunde eingeläutet. Kurz darauf gab es einen kleinen Rundgang durch das FabLab und eine Übersicht über den Wochenablauf. Nach einer kurzen Pause konnten wir und in die verschiedenen Gruppen einteilen und unsere Arbeitsplätze einrichten. Nach dem Mittagessen gab es ein Vortrag zum Thema DIY-Kultur. Anschliessend konnten wir mit dem Zusammenbau des DIY Muscle SpykerShields beginnen und erste Experimente damit durchführen.

Tag 2
Den Dienstag haben wir im Zimmer E200 gestartet. Nach einer kurzen Einführung über die Erwartungen der Skill Share Sessions konnte jeder etwas notieren was er gerne lernen und was gerne beibringen möchte. Anschliessend wurden die Vorschläge im Plenum kategorisiert und zusammengefasst. Danach konnte jede Gruppe sich für ein Themengebiet einschreiben, welches es gerne beibringen möchte. Nach der Gruppeneinteilung konnten wir mit den Experimenten wiederfahren. Das Resultat haben wir am Nachmittag jeweils den anderen Gruppen vorgestellt und uns über aufgetretene Probleme ausgetauscht. Anschliessend hatten wir noch zeit unsere Skill Share Lektionen vorzubereiten. Am Abend gab es noch einen Kulturbeitrag in Form eines Konzerts von Simon Berz - "Sediment" mit anschliessendem Apero.

Tag 3
Der Mittwochmorgen war reserviert für die Skill Share Sessions wo jeder individuell verschiedene Kurse besuchen konnte. Es gab spannende Vorträge und Inputs zu verschiedenen Themen. Am Nachmittag war der Start off von Hack 1, wo wir selbst ein erstes Projekt realisieren konnten. Beim Durchstöbern der Elektrotechnikecke im FabLab sind wir auf einen Photoresistor gestossen. Wir entschieden für den Hack 1 etwas mit Licht zu realisieren. Gleichzeitig wollten wir erste Erfahrungen mit dem 3D-Drucker und dem Arduino machen. Das Projekt der Digitalen Kerze hat diese drei Disziplinen gut vereint und lag zeitlich in einem realisierbaren Ramen.

Tag 4
Am Donnerstag hatten wir den ganzen Tag Zeit, um an unseren eigenen Projekten zu arbeiten. Kurz vor dem Mittag haben wir einander unsere Ideen und Projekte vom Hack 1 vorgestellt und uns über Probleme ausgetauscht. Am Nachmittag gab es einen Vortrag von Dr. Christian Gehringer. Anschliessend konnten wir mit dem Hack 2 starten. Durch einen Input von Urs kamen wir auf die Idee unsere Kerze zu einem Pulsoxygenmeter aufzurüsten. Da wir nicht sicher wahren ob dies mit den vorhandenen Materialien machbar ist, haben wir parallel schon Tests für eine Muskelgesteuerte Greifkralle durchgeführt. Da wir keine Passenden LED gefunden haben und der Photowiderstand nicht sensitiv genug war, haben wir und aus zeitlichen Gründen für die Greifkralle entschieden. Diese hat den Vorteil, dass wir noch ein Projekt mit Motoren verwirklichen konnten.

Tag 6
=Reflexion=

Das Team Bananas in Pajamas hat sich super ergänzt, da die Studierenden interdisziplinär aus verschiedenen Studiengänge sind. Auch das Arbeitsklima untereinander war sehr angenehm. Wir konnten viel voneinander lernen. Die grössten Schwierigkeiten waren das Programmieren mit Arduino, den vom Team hatte nur jemand gewisse Erfahrungen in diesem Gebiet. Am besten hat uns das freie Arbeiten gefallen, den wir konnten unserer Kreativität freien lauf lassen. Ein grosses Highlight war der Musiker, der uns einen Einblick in seinen künstlerischen Alltag gab.

Return to: DIY Medizintechnik