Difference between revisions of "Team Beta-Blocker"
(→Problem:) |
(→Hack 2) |
||
Line 142: | Line 142: | ||
# Den Programm-code auf das Arduino laden. (Falls dies nicht funktioniert, kontrollieren ob das richtige COM-PORT UND Arduino Version ausgewählt wurde. | # Den Programm-code auf das Arduino laden. (Falls dies nicht funktioniert, kontrollieren ob das richtige COM-PORT UND Arduino Version ausgewählt wurde. | ||
# Die Kommentare neben Programmcodes beachten und die Werte gemäss Bedarf ändern. | # Die Kommentare neben Programmcodes beachten und die Werte gemäss Bedarf ändern. | ||
+ | ===Programmcode:=== | ||
+ | {| class="wikitable" border="1" | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | const int ledPin = 12; /* write the pin number of the arduino, where the LED is placed */ | ||
+ | |||
+ | const int ldrPin = A0;/* write the pin number of the arduino, where the LDR is placed */ | ||
+ | |||
+ | void setup() { | ||
+ | |||
+ | Serial.begin(9600); | ||
+ | |||
+ | pinMode(ledPin, OUTPUT); /* only OUTPUT AND INPUT(below line) NAMES CAN BE CHANGED */ | ||
+ | |||
+ | pinMode(ldrPin, INPUT); | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | int ldrStatus = analogRead(ldrPin); | ||
+ | |||
+ | if (ldrStatus >= 800) { /* change the value on the right to adjust the sensetivity to light. test with smaller and bigger value then 700 */ | ||
+ | |||
+ | digitalWrite(ledPin,LOW); | ||
+ | |||
+ | Serial.print("Its DARK, Turn ON the LED, CRITICAL!: "); | ||
+ | |||
+ | |||
+ | |||
+ | } else { | ||
+ | |||
+ | digitalWrite(ledPin, HIGH); | ||
+ | |||
+ | Serial.print("Its BRIGHT, Turn OFF the LED,NORMAL! "); | ||
+ | |||
+ | Serial.println(ldrStatus); | ||
+ | |||
+ | Serial.println(ldrStatus); | ||
+ | tone(3, 3000); /* tone(pin number, frequency). frequency range and pin number can be changed */ | ||
+ | tone(3, 3000, 500);/* tone(pin number, frequency, duration). frequency range, pin number and duration can be changed. change in frquency and duration can change the tone as well*/ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |- | ||
== Wochenjournal == | == Wochenjournal == |
Revision as of 16:04, 11 February 2022
Contents
Abstract
Dies ist die Wiki Seite des Teams Beta-Blocker aus der Blockwoche "Medizinprodukt DIY" im Herbst 2021. Die Blockwoche "Medizintechnik DIY" verbindet Anwendungen der Medizintechnik mit Do It Yourself (DIY) Ansätzen. Arbeiten und Lernen in Skill-Share Sessions. Basierend auf verschiedenen elektrophysiologischen Messmodulen (EMG, EKG, EOG, EEG) werden innovative Produktideen entwickelt. Erste Prototypen werden mit den Mitteln der Digitalen Fabrikation hergestellt.
Team
Marco Giger | Daniela Gasser | Neroja Baskaran | Hamidullah Ali |
Das Team besteht aus Daniela Gasser, Hamidullah Ali,Marco Giger und Neroja Baskaran. Alle Teammitglieder studieren Medizintechnik an der HSLU in Horw.
Theorie
FabLab
Da das FabLab Luzern an das weltweite FabLab-Netzwerk angeschlossen ist, können BenutzerInnen Konzepte gemeinsam entwickeln und Wissen und Erfahrungen teilen. Meistens wird in einem FabLab auf dem Computer gezeichnet, konstruiert und dann gelasert, gefräst oder 3D gedruckt. Auch gibt es Handwerkzeug, Handmaschinen und viel Platz zum Bauen und Basteln. Um Prototypen mit Sensoren, Motoren oder Licht auszustatten gibt es eine kleine Elektronikabteilung.
3D Drucker
Um ein Objekt zu drucken muss dies zuerst in Digitaler Art vorliegen. dazu kann man entweder bestehende Dateien aus dem Internet verwende wie beispielsweise von thingiverse oder man kreiert seine eigenen Zeichnungen mittels CAD. Mittels einem Slicing Programm wird das File nun vorbereitet und als STL datei dem 3D-Drucker weitergegeben. nun müssen die Druckeinstellungen vorbereitet werden. Der Slicer konvertiert das Modell in eine Reihe von dünnen Schichten und erzeugt eine G-Code Datei mit Anweisungen, die auf einen bestimmten Druckertyp zugeschnitten sind.
Open Source
Open Source geht ursprünglich auf Open Source-Software zurück. Dabei geht es um Code, der der Öffentlichkeit zugänglich ist. Dadurch das Wissen gegenseitig geteilt wird, können viele Projekte auf bereits vorhandene Projekte aufgebaut oder verändert werden. Open Source Software wird dezentral und kollaborativ entwickelt und stützt sich auf Peer-Review und Community-Produktion. Diese Software ist oft günstiger, flexibler und langlebiger als «hauseigene» Produkte.
Lasercutter
Der Laser-Cutter (AKJ-6090) kann auf drei verschiedene Arten bearbeitet werden:Schneiden | Ritzen | Gravieren | |
---|---|---|---|
Bearbeitungsarten | durchgebrannt | Kerbe | oberflächlich abgetragen |
Vorlage | Liniendaten | Pixel-Bilder Flächen | Pixel-Bilder Flächen |
Es können verschiedenste Materialien wie Plexiglas, Kunststoffe, Holz…auf dem Laser-Cutter bearbeitet werden. Zuerst braucht man ein Design um etwas auf dem Lasercutter zu bearbeiten. Das Design muss man in RDWorks V8 importieren und als .rd File auf einen USB-Stick speichern. Den USB steckt man am Laser-Cutter (AKJ-6090) und man kann mit dem Lasern beginnen.
Hack 0
In diesem Experiment werden die Aktionspotenziale in den Muskeln am Unterarm gemessen und über eine LED Anzeige und den Arduino Serien Monitor ausgegeben.Für das Experiment mit dem Muscle SpikerShield, musste zuerst das Board mit den enthaltenen Einzelteilen auf die Platine gelötet werden, dazu verwendeten wir die Anweisungen der Webseite Backyard Brains Anleitung Version 2.11. Leider stellte sich heraus das die LEDs falsch gelötet wurde, die Anoden wurden mit den Kathoden verwechselt. Nach dem erneuten Löten wurde das Muscle SpikerShield auf das Arduino UNO gesteckt und die Hardware war bereit. Von hier an folgten wir die Anweisungen von der Website Backyard Brains Kapital Experiment: Control Machines with your Brain. Bevor das Experiment gestartet werden konnte, musste die Software Arduino IDE installiert werden und der entsprechende Programmcode auf das Arduino geladen werden. Nun wurden zwei Elektroden auf die Haut an der Innenseite des Unterarms geklebt und mit dem Inputanschluss verbunden gemäss Anleitung. Die LEDs zeigen die Muskelkontraktionen an, dabei korreliert die Anzahl der leuchtenden LED mit dem Spannungspotenzial der Muskelkontraktion. Mit dem Potenziometer konnte die Empfindlichkeit noch eingestellt werden.
Bei einem zweiten Versuch wollte wir einen externen Greifer anschliessen und diesen mittels unserer Muskelbewegung steuern. Für das mussten zusätzlich einen Spannungswandler und einen zusätzlichen Anschluss an löten und für den Server eine externe Batterie 9V anschliessen. Durch den Spannungswandler wurden die 9V der Batterie in 5V umgewandelt, welche von der Platine verarbeitet werden können. Trotz Batterie muss der Arduino trotzdem noch mit einer Stromquelle versorgt werden.
Sobald alles lief, konnte der Greifarm angeschlossen und die Elektroden am Arm angebracht werden. Leider funktionierte der erste Greifarm nicht, aber dann der zweite. Durch die Muskelbewegungen wurde ein Signal an den Greifarm gesendet, sodass sich dieser öffnet und schliesst. Leider schloss sich der Greifarm nicht vollständig. Eine Erklärung dafür wäre, dass der Motor nicht eine genug grossen Radius an Drehung schaffte, um die Zahnräder vollständig zu drehen.
Hack 1
Materialien
- 2 Arduino
- 2 Muscle SpikerBox + Elektroden
- 9 volt Batterie
- 2 Servomotoren (Kontinuierlich)
- 2 Räder
- 1 360 grad Rad
- Mehrere Verbindungskabel
Der erste Hack unserer Gruppe war ein Auto zu entwickeln, welches mittels der Muskelbewegung gesteuert werden kann.
Für einen ersten Prototypen wurden eine reckteckige und Platte und mehrere Räder lasergecuttet. Um die Räder wurden Gummis angebracht, sodass das Rad einen besseren Grip zum Boden hat. Die Räder wurden über ein Verbindungsteil mit dem Heissleim an die Servo-Motoren angebracht. Die Servo-Motoren wurden wieder um an die Holzplatte, welches das Auto simulieren sollte, angeleimt. Vorne wurde ein einzelnes Rad angeklebt.
Die Verkabelung gestaltete sich etwas schwieriger. Leider konnten wir die zwei Platinen nicht gleichzeitig mit einem Arduino verbinden und mussten somit auf zwei Arduinos und zwei Computer ausweichen, was die ganze Sache Material aufwändiger machte. Wir konnten aus dem Hack 0 einige Materialien übernehmen, wie auch den Code zum Servo-Motor ansteuern.
Wenn alles korrekt verkabelt und angeschlossen ist, muss man seine Muskeln zur Kontraktion bringen und das Signal bringt über den Mikrocontroller das "Auto" zum laufen.
Hack 2
Hack2_Patientector
Problem:
In Spitälern dürfen einige Patienten das Bett nicht verlassen. Falls die Patienten doch das Bett verlassen, wird momentan mit Hilfe einer Trittmatte vor dem Bett detektiert, ob der Patient das Bett verlässt. Doch leider sind manche Patienten auf dem Boden gefallen oder sind zu weit gelaufen bevor die Krankenschwester die Alarme erhalten(Abbildung :Aufstehenschritten Schritt 4). Dies ist kritisch für Patienten.
Lösung:
Eine optimale Lösung wäre ein Gerät (Patientector), das die Bewegungen von Patienten gerade vor dem Verlassen des Bettes detektiert und die Zentrale informiert (Abbildung Aufstehenschritten Schritte 1 bis 3). Dafür wird eine Lichtquelle am Bett des Patienten angebracht und ein LDR (Fotowiderstand) auf der anderen Seite des Bettes. Falls der Patient aufsteht, blockiert er das Lichtsignal und LDR detektiert dies und meldet dies an die Zentrale weiter, indem es entweder eine akustische Warnung oder LED angibt. Vorteile von Patientector ist, es ist portable, viel leichter als eine Matratze und einfach zu montieren.
Materialien:
Entwicklerboard | LDR | LED | Widerstand 10k Ohm | Widerstand 220 Ohm | Arduino | Lausprecher | Verbindungskabeln |
Verfahren, um Patientector herzustellen:
- Kontrollieren, ob Arduino funktioniert mit der Funktion Blink, in dem man unter File--> Examples-->Basics -->Blink
- Gemäss Anleitungen von [Webseite https://create.arduino.cc/projecthub/tarantula3/using-an-ldr-sensor-with-arduino-807b1c] die Steckbrückenkabel zwischen Arduino und Entwicklerboard verbindet.
- Lautsprecher am pin 3 und GND(*Ground) von Arduino verbinden.
- Den Programm-code auf das Arduino laden. (Falls dies nicht funktioniert, kontrollieren ob das richtige COM-PORT UND Arduino Version ausgewählt wurde.
- Die Kommentare neben Programmcodes beachten und die Werte gemäss Bedarf ändern.
Programmcode:
const int ledPin = 12; /* write the pin number of the arduino, where the LED is placed */ const int ldrPin = A0;/* write the pin number of the arduino, where the LDR is placed */ void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); /* only OUTPUT AND INPUT(below line) NAMES CAN BE CHANGED */ pinMode(ldrPin, INPUT); } void loop() { int ldrStatus = analogRead(ldrPin); if (ldrStatus >= 800) { /* change the value on the right to adjust the sensetivity to light. test with smaller and bigger value then 700 */ digitalWrite(ledPin,LOW); Serial.print("Its DARK, Turn ON the LED, CRITICAL!: ");
} else { digitalWrite(ledPin, HIGH); Serial.print("Its BRIGHT, Turn OFF the LED,NORMAL! "); Serial.println(ldrStatus); Serial.println(ldrStatus); tone(3, 3000); /* tone(pin number, frequency). frequency range and pin number can be changed */ tone(3, 3000, 500);/* tone(pin number, frequency, duration). frequency range, pin number and duration can be changed. change in frquency and duration can change the tone as well*/
} } |