MedTechDIY20 Another Team
go back to Medizintechnik DIY
Contents
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
Vorbereitung
Alle Teilnehmer haben die Arduino Desktop IDE auf ihrem Laptop installiert, ein Arduino UNO (zb vom Backyard Brains Spiker Shield set) inklusive USB Kabel und ein Servo oder Sensor dabei den sie ansteuern oder auslesen wollen.
Einführung
Arduino bezeichnet eine Gruppe von Microcontrollern der gleichnamigen italienischen Firma Arduino. Da die PCBs Open Source sind, gibt es viele Dritt Anbieter, welche ihre eigenen Arduino kompatiblen Boards 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.
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); }