Difference between revisions of "MedTechDIY20 Another Team"

From Hackteria Wiki
Jump to: navigation, search
(geführte Übung (15min))
(geführte Übung (15min))
Line 47: Line 47:
  
 
<pre>
 
<pre>
 
+
byte leds[] = {13, 12, 11, 10, 9, 8};       //initialize variables
 
+
int k = 0;                        
byte leds[] = {13, 12, 11, 10, 9, 8};
 
int k = 0;
 
 
int wait = 50;
 
int wait = 50;
  
void setup(){ // put your setup code here, to run once:
+
void setup(){                               // put your setup code here, to run once:
   for(k; k < 6; k++){ //initialize LEDs as outputs
+
   for(k; k < 6; k++){                       // initialize LEDs as outputs
 
     pinMode(leds[k], OUTPUT);
 
     pinMode(leds[k], OUTPUT);
 
   }
 
   }
Line 61: Line 59:
 
void loop(){
 
void loop(){
 
    
 
    
   for(k; k < 6; k++){
+
   for(k; k < 6; k++){                       // turn off all LEDs
 
     digitalWrite(leds[k], LOW);
 
     digitalWrite(leds[k], LOW);
 
     delay (wait);
 
     delay (wait);
 
   }
 
   }
 
    
 
    
   for(k; k >= 0; k--){
+
   for(k; k >= 0; k--){                     // turn on all LEDs
 
     digitalWrite(leds[k], HIGH);
 
     digitalWrite(leds[k], HIGH);
 
     delay (wait);
 
     delay (wait);
Line 72: Line 70:
 
    
 
    
 
}
 
}
 
 
 
</pre>
 
</pre>
  
Line 80: Line 76:
  
 
<pre>
 
<pre>
 
 
byte leds[] = {13, 12, 11, 10, 9, 8};
 
byte leds[] = {13, 12, 11, 10, 9, 8};
 
int k = 0;
 
int k = 0;
Line 112: Line 107:
 
   }
 
   }
 
}
 
}
 
 
</pre>
 
</pre>
  

Revision as of 11:40, 4 February 2020

go back to Medizintechnik DIY

Abstract

Team

Another Team besteht aus den drei Studierenden Claude Portmann, Simon Schmitter und Louis Schibli der Hochschule Luzern. Im Rahmen der Blockwoche DIY Medizintechnik formierte sich das Team, um interaktiv an den grossen Problemen unserer Zeit zu arbeiten. Aufgrund der Interdisziplinarität des Teams (Simon und Claude studieren Maschinentechnik, Louis studiert Medizintechnik) sind bis Ende der Woche bahnbrechende Lösungen zu erwarten.

Einleitung

Kurzbeschrieb MedTech DIY

In der Blockwoche Medizintechnik DIY (DO IT YOURSELF) soll in interdisziplinären Gruppen gearbeitet werden. Nach kurzen Einführungen sollen die Gruppen selbstständig und kreativ eigene innovative Projekte planen und durchführen. Als erstes wurde von unserer Gruppe das Projekt #Backyard Brains durchgeführt.

FABLAB

Die Blockwoche Medizintechnik DIY wurde zum grössten Teil im FABLAB durchgeführt. Das FABLAB ist mit verschiedenen Anlagen und Maschinen ausgestattet wie zB. Laser-Cutter, 3D-Drucker, CNC-Fräsmaschine und Heissdraht-Schneidgeräten. Das FABLAB lädt ein zum DO IT YOURSELF Spirit (transdisziplinäres Peer-Learning) und ist dadurch der ideale Ort um Experimente auszuarbeiten und durchzuführen.

Skillshare ARDUINO TUTORIAL

Vorbereitung

Alle Teilnehmer haben die Arduino Desktop IDE auf ihrem Laptop installiert, ein Arduino UNO inklusive USB Kabel und das orange Board von Backyard Brains dabei.

Ablauf Skillshare

Arduino UNO (5min)
Arduino bezeichnet eine Gruppe von Microcontrollern der gleichnamigen italienischen Firma Arduino. Da die PCBs (Leiterplatten) als open source zur Verfügung stehen gibt es viele Drittanbieter, welche ihre eigenen Arduino-ähnlichen Boards und Erweiterungen herstellen und verkaufen. Diese dürfen jedoch nicht Arduino genannt werden, da der Name geschützt ist.
Die Innovation der Firma Arduino besteht einerseits aus den diversen Microcontroller Boards, als auch aus der entwickelten Programmierumgebung, der Arduino IDE, welche das Programmieren von Microcontrollern erheblich vereinfacht hat. Zuvor mussten ähnliche AVR Microcontroller über Adapter programmiert werden.

Arduino Code (5min)
Die Arduino Desktop IDE ist eine Java Applikation die als ein Programmcode Editor und Compiler dient und auch in der Lage ist Firmware seriell zum Board zu senden. Die Entwicklungsumgebung basiert auf Processing, eine IDE entwickelt um das Programmieren Künstlern näher zu bringen, die normalerweise nicht viel Kontakt mit Programmierumgebungen haben. Die Programmiersprache basiert auf Wiring, eine C ähnlichen Sprache.

Der grundlegende Aufbau der Arduino Programmiersprache ist relativ einfach und teilt sich in mindestens zwei Teile auf. Diese zwei benötigten Teile oder Funktionen umschliessen Blöcke von Anweisungen.

void setup()
{
  anweisungen;
}
void loop() {
  anweisungen;
}

geführte Übung (15min)

byte leds[] = {13, 12, 11, 10, 9, 8};       //initialize variables
int k = 0;                         
int wait = 50;

void setup(){                               // put your setup code here, to run once:
  for(k; k < 6; k++){                       // initialize LEDs as outputs
    pinMode(leds[k], OUTPUT);
  }
}

void loop(){
  
  for(k; k < 6; k++){                       // turn off all LEDs
    digitalWrite(leds[k], LOW);
    delay (wait);
  }
  
  for(k; k >= 0; k--){                      // turn on all LEDs
    digitalWrite(leds[k], HIGH);
    delay (wait);
  } 
  
}



byte leds[] = {13, 12, 11, 10, 9, 8};
int k = 0;
int illum = 0;

void setup() {
  Serial.begin(9600);
  // put your setup code here, to run once:
  for(k; k < 6; k++){ //initialize LEDs as outputs
    pinMode(leds[k], OUTPUT);
  }
}

void loop() {
  
  while(Serial.available() > 0){
    illum = Serial.parseInt();
      if(illum > 6){          //falls grösser als 6, = max 6
        illum = 6;
      }
  
  int range = map(illum, 1, 6, 8, 13);
  digitalWrite(range, HIGH);
      
  delay(500);    //1s warten
  
  for(k=0; k < 6; k++){  //write all LEDs low
    digitalWrite(leds[k], LOW);
  }
  
  }
}


freies Üben (15min)

Einführung

Inputs

Experiments

Backyard Brains

Wir haben den Bausatz gemäss den Instructions auf der Webseite fertiggestellt. Danach haben wir den default code so angepasst, dass nur die gemessene spannung nach der verstärkung über serial ausgegeben wird. dazu musste zwei zeilen code auskommentiert werde da mehrere Variablen auf dem Serial monitor ausgegeben werden.

Damit kann der Serial Plotter die Muskelkontraktionen graphisch darstellen.


#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.println(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);
}


download unaltered code

Serialplot anotherteam pic1.png