Team Avengers

From Hackteria Wiki
Revision as of 11:02, 11 February 2022 by Wdfrunz (talk | contribs) (Hardware)
Jump to: navigation, search


Einleitung

Herzlich willkommen auf der offiziellen Seite vom Team "Avengers". Nach dem Intergalaktischen Krieg mit Thanos und seiner Armee sind wir zurück in der Blockwoche "Medizintechnik DIY 2022". Die Daten und Journals unserer Projekte werden hier zur Verfügung gestellt, wenn man diese nachbauen möchte.

Team

Medtech sabrina.jpg Medtech sarah.jpg Medtech noel.jpg Medtech pascal.jpg
Sabrina Schmitz

B.Sc. Medizintechnik

Sarah Frunz

B.Sc. Medizintechnik

Noel Palmgrove

B.Sc. Medizintechnik

Pascal Tschümperlin

B.Sc. Medizintechnik

Reflektion Readings und Videos

Die folgenden Materialien bildeten die Grundlage für das MedTech DIY Modul.

Articles

FabLabs

Die FabLabs sind ein global Netzwerk von selbst aufgebauten Labors, geeignet für digitale Produktion von Prototypen. Die Labs sind auch Orte wo verschiedene Individueen mit verschiedenen Skills zusammen kommen um diverse Projekte zu realisieren. Es strahlt also das Konzept vom DIWO - Do it with others. Wichtig auch untereinander ist es Spass zu haben, Sicherheit und Sauberheit im Fab Lab zu gewährleisten und das Wissen zu dokumentieren und für andere zugänglich machen.

Biotechnology for All / DIY in Bioanalytics: Doing grasping it yourself

In Bezug auf die SATW-Publikation eröffnen "Do-it-yourself"-Strategien ein Wissensgebiet, das traditionell von Experten besetzt war. Garagenlaboratorien mit Waagen, Mischern, Kühlschränken und Brutschränken sind im Kommen. DIY-Biologen bauen aus Einzelteilen Labormaterialien wie Spektrometer. Im Internet findet jeder eine Anleitung, wie man aus einer Webcam für ein paar Euro ein Mikroskop bauen kann. Billige, hochmoderne Geräte, die für den Massenmarkt produziert werden, können für neue Funktionen mit Laborfähigkeiten modifiziert werden. Die Strategie des "Hacking" ist ein wesentlicher Bestandteil dieses Prozesses. SATW Pub2015

The Art of Free and Open Science

In Bezug auf den MCD 68 gibt Marc Dusseiller Antworten auf mehrere wichtige Fragen, die Klarheit über das Thema und den Bereich von Hackteria schaffen. Hackteria ist ein Netzwerk von Menschen, die DIY-Biologie praktizieren und ein Interesse an Kunst, Design und interdisziplinärer Zusammenarbeit haben. Das Netzwerk wurde 2009 von Yashas Shetty, Andy Gracie und Marc Dusseiller gegründet und umfasst heute nicht nur Wissenschaftler, Ingenieure und Künstler, wie man erwarten würde, sondern auch Philosophen, Unternehmer und sogar Foodies und Köche. Hackteria ist weltweit tätig und stützt sich auf eine Webplattform und ein Wiki für den Wissensaustausch, die es jedem ermöglichen, verschiedene Methoden des Hackens lebender Systeme zu erlernen und zu testen. Hackteria ist nicht an einem physischen Ort angesiedelt und hat zum Ziel, Künstlern, Wissenschaftlern und Hackern die Möglichkeit zu geben, zusammenzuarbeiten und verschiedene Biohacking- und Biokunsttechniken außerhalb der offiziellen Labors und Kunstinstitutionen zu erproben, im Grunde überall auf der Welt. MCD 68

Videos

Greg Gage Ted

In diesem Video demonstriert Greg Gage seine Technologie zur Messung und Weiterleitung von Elektrischen Signalen in Motorischen Endplatten von menschlichen Muskeln. Dabei werden mit Elektroden an Versuchsperson Nummer 1 die Muskelsignale gemessen, und über einen Verstärker an Versuchsperson 2 weitergeleitet. Dabei werden bei Versuchsperson 2 die Muskeln stimuliert, welche von Versuchsperson 1 aktiviert wurden. Dadurch entstehen bei Versuchsperson 2 die gleichen Bewegungen wie bei Versuchsperson 1, einfach ohne dass diese dies kontrollieren kann.

Open Source Lego

Es handelt sich um das Rezept eines beliebigen Werks, das gemeinsam genutzt wird und für jedermann frei zugänglich ist. Der Begriff stammt ursprünglich von Open-Source-Software. Heute ist Open Source nicht mehr nur im Bereich der Software aktiv. Der Austausch von Wissen und die Vernetzung bringen viele Vorteile mit sich. Unternehmen wie RedHat und Websites wie Thingiverse sind beliebte Anbieter, bei denen Nutzer Zugang zu kostenlosen und Open-Source-Dateien für weitere Projekte erhalten. Die Arbeit im FabLab und während des Moduls Medtech DIY wird mit Open-Source-Software durchgeführt.

Arduino

Das Arduino ist ein open-source und programmierbare Elektronikbauteil für das Ausführen schneller Prozesse. Es besteht aus Mikrocontroller, zum einen für die Berechnungsgeschwindigkeit und zum anderen für die Kommunikation mit der Software. Die Elektronik kann per USB oder 9V DC Netzteil betrieben werden. Es beinhaltet einen Spannungsregulator zu 5V, Power pins für das Betreiben anderer Schaltungen und digitale Inputs und Outputs.

Wichtig: Beim Starten der Software, unter "Tools: Boards" sollte das entsprechende Arduino Board ausgewählt werden (Standard: Arduino Uno) und den Kommunikationskanal unter "Port" ausgewählt werden. Um das Setup auszutesten, kann man unter "File: Examples: Basics: Blink" ein Programm laufen lassen um eine einfache LED in verschiedenen Intervallen blinken zu lassen. Der untenstehende Code wurde leicht angepasst um 6 LEDs abwechselnd blinken zu lassen. Der erste Loop initialisiert die LED_BUILTIN Pins als digitaler Output wo die LEDs installiert sind. Der zweite Loop funktioniert so um die LEDs ein- oder auszuschalten je nach zeitintervall (im Beispiel: 1000 ms EIN und 500 ms AUS). Desweiteren haben wir die globale Variable LED_BUILTIN zu den digitalen Pins geändert, wo die LEDs installiert sind, und laufen so in einem Loop von Pin 8 oder LED 8 zu Pin 13 oder LED 13.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  for(int i = 8; i <=13; i++)
  {
    pinMode(i, OUTPUT);
  }
}

// the loop function runs over and over again forever
void loop() {
  for(int i = 8; i <=13; i++)
  {
    digitalWrite(i, HIGH);
    delay(1000);
    digitalWrite(i, LOW);
    delay(500);
  }
}

Journal

Montag

Intro Medtech DIY FabLab

Die Do-it-yourself-Kultur beschreibt eine Strategie, die es zum Ziel hat, das Wissen einfacher zugänglich zu machen. Gute Geräte, um Unbekanntes zu erforschen sind meist sehr teuer. Mithilfe der DIY-Kultur soll es möglich sein, diese Geräte günstiger nachzubauen, sodass mehr Menschen in der Lage sind, sich diese zu leisten. Mit Geräten wie selbstgebauten Mikroskopen oder EMG-Messgeräten können mehr Menschen forschen und sich weiterbilden. Das Wissen und Erforschen ist somit nicht nur mit sehr teurem Equipment in einem Labor möglich, sondern auch mit einfachem Zubehör in der Garage Team Chihuahua hs21.

Urs Gaudenz

Am Montagnachmittag, hat Urs Gaudenz eine kurze Vorlesung zu den Themen Open Source und Do It Yourself gehalten. Bei Do It Yourself geht es nicht unbedingt darum, etwas alleine zu tun, weshalb synonym auch gerne Do It Together verwendet wird. Viel mehr geht es darum, sich in einer Community auszutauschen, Entwicklungen kostenlos von anderen Mitglieder zu übernehmen und weiterzuentwickeln. Das Ziel von Open Source besteht darin, Daten der Öffentlichkeit zur Verfügung zu stellen, wie man es zum Beispiel vom bekanntesten Beispiel 'Wikipedia' kennt.

Wiki Intro

In einer halbstündigen Einführung, wurde uns die Handhabung von Wikis erklärt. Das wohl bekannteste Beispiel für Wikis ist die Webplattform Wikipedia. Wikis kann jeder registrierter Nutzer lesen sowie auch direkt bearbeiten. Es ist somit möglich Wissen und Erfahrungen gemeinschaftlich zu sammeln und zu teilen. Es wurde uns gezeigt, wie man Bilder hinzufügen oder Webseiten verlinken kann. Es gibt ein Wiki für alle Teilnehmer der Blockwoche, diese heisst Medizintechnik DIY. Auf dieser Seite sind dann die Links zu den Wikis der einzelnen Teams zu finden.More info

Dienstag

Skill Share Session

Am Dienstagnachmittag schrieben alle Studenten zwei ihrer individuellen Fähigkeiten auf und klebten sie an die braune Tafel (gelbe Klebezettel). Sie wurden dann in ähnliche Kategorien wie Kunst und digitales Design, Hobbys, Programmieren usw. eingeteilt. Dann schrieb jeder Student zwei Interessen auf, die er hat, und klebte sie auf die braune Tafel (grüne Klebezettel). Ziel dieser Sitzung war es, Fähigkeiten zu ermitteln, die die Studierenden weitergeben und anderen Interessierten beibringen können. Unsere Gruppe sollte am Mittwochmorgen einen Beitrag zur Herstellung von Zahnspangen leisten.

WhatsApp Image 2022-02-08 at 21.51.07.jpeg

Chris Obrist

Am Dienstagnachmittag gab Chris Obrist einen Input zu Lasercutter. Beim Lasercutter werden Platten aus verschiedenen Materialien wie Holz, Karton, Plexiglas, Kunststoff, Leder, ect. mit einem Hochleistungslaser durchtrennt oder graviert. Mit einem Zeichnungsprogramm werden die 2D Pläne erstellt oder von vorhandenen OpenSource Daten übernommen und angepasst. Wenn die Pläne bereitstehen, werden diese mittels Stick auf den Lasercutter übertragen, da werden die Pläne gelasert. Eines der Vorteile ist der schnelle Herstellungsprozess, so können zum Beispiel hochwertige Gehäuse für Prototypen hergestellt werden. Im FabLab in Horw stehen zwei von Acctek (AKJ6090 und AKJ9060).

Andreas Kopp

Am Dienstagnachmittag gab Andreas Kopp einen Einblick in den 3D-Druck. Das FabLab verfügt über drei originale Ultimaker 3D-Drucker mit einer Düse von 0,8 mm und vier neuere Versionen mit einer Düse von 0,4 mm. Der 3D-Druckprozess beginnt mit der Entwicklung eines CAD-Modells. Nach der Fertigstellung des Entwurfs wird dieser als STL-Datei exportiert, dem Standard-Dateityp für den 3D-Druck. Die STL-Datei verwendet eine Reihe von Dreiecken, um die Oberflächengeometrie des Modells nachzubilden. Beim Exportieren wird eine hohe Auflösung gewählt, um die Oberflächen des Modells anzunähern. In dieser Woche werden im Sinne des Hackings Open-Source-STL-Dateien verwendet, damit die Gruppe Zeit für die Arbeit an anderen Teilen des Projekts hat. Danach wird die STL-Datei durch einen Prozess namens "Slicing" in Maschinensprache (G-Code) umgewandelt und ist bereit zum Drucken. Hier wird Cura verwendet. Ein Roboterarm druckt den flüssigen Kunststoff und nach dem Abkühlen sind die Objekte fertig. Im Vergleich zum Laserschneider ist der 3D-Drucker extrem langsam, was bei der Planung berücksichtigt werden muss.

Ewen Chardronnet

Makery Media of Labs - Followed and made books: Revolution of medical tech interests, covid 19 first wave: actions by makers or fablabs - Art4med: haptic device connected to smartphone (cheaper, open source). Event consisting of small smart devices (prosthetics, fluidic, art and media) - Symposiums: finland, slowenia, Amsterdam, Denmark - A. Knouff: space tech, hormone converter in suit - Quorum sensing: expand vocabulary olfactory systems for disease prevention - Unborn 019: echo stethoscope by Ultrasound hacking - Marine biology: ingest algae and keeps it in leaf - Melissa, life support system

Mittwoch

Skill Share Session

Für den Vormittag wurden am Vortag verschiedene Skill Mentoren unter den Studierenden und den Dozenten definiert mit ihrem Lieblingsthema, dass Sie beibringen/vortragen wollten.

Zahnspange Herstellung

Sabrina Schmitz, eine gelernte Zahntechnikerin, von den Avengers hat uns durch verschiedene Zahnspangen/Prothesen und deren Materialien eingeführt. Zahnspangen benötigen speziellen Dentaldraht welcher je nach Anwendung eine unterschiedliche Eigenschaft aufweisen. Die Retentionsdrähte werden durch einen Zahntechniker genaust möglich an Zähne angepasst um ein best möglichen Halt zu gewährleisten. Äusserst spannend war wie detailliert das Biegen war. Nur so können Zahnspangen und Prothesen am Ende fest genug sitzend damit ein herausfallen vermieden werden kann.

Brainstorming

Am Mittwochnachmittag nahm sich das Team etwas Zeit, um Ideen für Hack 1 zu sammeln. Die Absicht war, etwas zu entwickeln, das Arduino, Lasercut und 3D-Druck beinhaltet, aber auch die Zeit, die für die Umsetzung der Idee notwendig ist. Die Idee, die sich entwickelte, war ein 3D-Hologramm, das anatomische Bilder für medizinisches Personal auf einem elektronischen Gerät wie einem iPad anzeigen würde. Ein weiterer Schritt besteht darin, dass sich das Gerät mit Hilfe eines Muskelspitzenschutzes dreht, d. h. mit einem Arduino, der so programmiert ist, dass er sich dreht, wenn die Person, die das Gerät benutzt, ihre Hände in einer bestimmten Position bewegt, wobei das Signal über Elektrodenbahnen übertragen wird. Die Hologrammstruktur wird auf dem Gerät platziert und das gesamte System dreht sich. Die Idee wurde inspiriert von Instructurable crafts.

Donnerstag

Hack 1

Am Donnerstagmorgen arbeitete das Team an der Fertigstellung von Hack 1. Es gab Herausforderungen mit dem Material... TBD

- bild und spiegel - first material was not stable, had dents and affected the quality of the image. - the second prototype was more precise and projected the image better.

Brainstorming für Hack 2

blind person stick, with a vibration sensor and distant berechnung. challenges: löten von kabel

Freitag

Am Freitagmorgen arbeitete das Team an der Fertigstellung von Hack 1 & 2. Es gab Herausforderungen mit... TBD

Samstag

presentation of Hack 1 & 2

Hacks

Hack 0: Muscle Shield

Als Erster Hack wird in diesem Modul ein Kit zur Erkennung von Muskelströmungen zusammengebaut.

Teile

Parts Muscle Shield.jpeg

Instruktionen

Die Anleitung zum Zusammenbau dieses Kits sind vom Kit-Hersteller auf dessen Seite zur Verfügung gestellt. Die korrekte Version ist untenstehend verlinkt. Das Kit selbst ist auch verlinkt.

Kit

Muscle Shield Instruction v2.11

Prozess

Soldering.jpeg

Top down view.jpeg

Code

Dieser Code wird für das Kit verwendet. Er wird ebenfalls vom Hersteller zur Verfügung gestellt.

/*
* ----------------------------------------------------------------------------------------------------
* Backyard Brains 2015
* Muscle SpikerShield Arduino UNO Code for Human-Human-Interface
*
* Code monitors amplitude of EMG envelope, displays EMG strength on LED bar and controls 
* relay that turns on/off a TENS (Transcutaneous Electrical Nerve Stimulation) device.
* 
* V1.0
* Written by Marcio Amorim
* Updated by Stanislav Mircic
*
* Tested with Muscle SpikerShield V2.31
* ----------------------------------------------------------------------------------------------------
*/  
  
#define RELAY_PIN 3                         //pin for relay that controls TENS device
#define SENSITIVITY_BUTTON_PIN 7            //pin for button that selects sesitivity
#define NUM_LED 6                           //number of LEDs in LED bar
#define RELAY_THRESHOLD 4                   //defines sensitivity of relay

byte ledPins[] = {8, 9, 10, 11, 12, 13};    //pins for LEDs in LED bar
 
//EMG saturation values (when EMG reaches this value the TENS relay will be activated)
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


//-----------------------------------------------------------------------------------
//   Setup inputs and outputs
// ----------------------------------------------------------------------------------
void setup(){

  //init button pin to input                                
  pinMode(SENSITIVITY_BUTTON_PIN, INPUT); 
  //init relay pin to output    
  pinMode(RELAY_PIN, OUTPUT); 
  digitalWrite(RELAY_PIN, LOW);
  //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
//   - Measure EMG
//   - Shows EMG strength on LED bar
//   - Turns ON or OFF the relay for TENS device
// ----------------------------------------------------------------------------------
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);        
      }
        

      //-----------------------------  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);
      }
        
        
      //----------------------- Turn ON/OFF relay for TENS ---------------------------------------
        
      //Turn ON relay if EMG is greater than threshold value
      //(threshold is expressed in LED bar height units)
      if(ledbarHeight>RELAY_THRESHOLD)
      {
        digitalWrite(RELAY_PIN, HIGH);
        delay(50);
      }
      else
      {
        digitalWrite(RELAY_PIN, LOW);
      }
}

Resultat

Alles zusammengebaut und programmiert werden die Elektroden angeschlossen. Eine am oberen Unterarm, zwei am unteren. Dieses werden wie auf den Bildern gezeigt mit dem Kit verbunden.

Connections.jpeg ConnectionToBoard.jpeg

Dies führt dazu dass die Muskelströme gemessen werden können und auf dem Kit angezeigt werden.

Hack 1: MediGram

Beschreibung

Als Hack 1 wird die Steuerung des Muscle Shields aus Hack 0 verwendet um ein eine Plattform zu bewegen, mit der ein Hologramm gesteuert werden kann. Dabei werden zwei Muscleshields und zwei kontinuierliche Servomotoren verwendet. Dabei steuert je ein Muscleshield einen Servomotor. Die Ansteuerung der Motoren wird so realisiert, das die Bewegung in beide Richtungen gesteuert werden kann.

WhatsApp Image 2022-02-09 at 16.51.33.jpeg

Hardware

Hardware.jpeg

Eine Schraube wurde 3D-gedruckt, um die Plattform für das iPad zu stabilisieren.

WhatsApp Image 2022-02-10 at 15.01.13.jpeg

WhatsApp Image 2022-02-10 at 17.13.57.jpeg

WhatsApp Image 2022-02-11 at 09.47.28.jpeg

Code

Dieser Code wird für Hack 1 verwendet. Er wird ebenfalls vom von Spike shield angepasst.

/*
* ----------------------------------------------------------------------------------------------------
* Backyard Brains 2015
* Muscle SpikerShield Arduino UNO Code for Human-Human-Interface
*
* Code monitors amplitude of EMG envelope, displays EMG strength on LED bar and controls 
* relay that turns on/off a TENS (Transcutaneous Electrical Nerve Stimulation) device.
* 
* V1.0
* Written by Marcio Amorim
* Updated by Stanislav Mircic
*
* Tested with Muscle SpikerShield V2.31
* ----------------------------------------------------------------------------------------------------
*/  
  
#include <Servo.h>
#define MAX 700                         //maximum possible reading. Tweak This Value!!

int reading_0[10];
int reading_1[10];
int finalReading_0;
int finalReading_1;
int value;
int send_value_0;
int send_value_1;
byte multiplier = 1;

Servo servo1;
Servo servo2;

//-----------------------------------------------------------------------------------
//   Setup inputs and outputs
// ----------------------------------------------------------------------------------

void setup(){
  Serial.begin(9600); //begin serial communications
  servo1.attach(5);
  servo2.attach(2);
  }
  
//-----------------------------------------------------------------------------------
//   Main loop
//
//   - Checks state of sesitivity button
//   - Measure TBD
//   - Shows EMG strength on LED bar---- TBD
//   - Turns ON or OFF the relay for TENS device---- TBD
// ----------------------------------------------------------------------------------

void loop()
{
 for(int i = 0; i < 10; i++){    //take ten readings in ~0.02 seconds
    reading_0[i] = analogRead(A0) * multiplier;
    delay(2);
  }
  for(int i = 0; i < 10; i++){    //take ten readings in ~0.02 seconds
    reading_1[i] = analogRead(A1) * multiplier;
    delay(2);
  }
  for(int i = 0; i < 10; i++){   //average the ten readings
    finalReading_0 += reading_0[i];
  }
  for(int i = 0; i < 10; i++){   //average the ten readings
    finalReading_1 += reading_1[i];
  }
  finalReading_0 /= 10;
   finalReading_1 /= 10;
  Serial.print(finalReading_1);
  Serial.print("\t");

  send_value_0 = map(finalReading_0, 0, MAX, 65, 180);
  send_value_1 = map(finalReading_1, 0, MAX, 65, 180);

if(send_value_0 <= 85 && send_value_0 >= 110)
{
  send_value_0 = 90;
}
if(send_value_1 <= 85 && send_value_1 >= 110)
{
  send_value_1 = 90;
}
  Serial.print("\n");
  Serial.print("calc value");
  Serial.print("\t");
  Serial.print(send_value_0);
  Serial.print("\t");
  Serial.print(send_value_1);
  Serial.print("\n");

  servo1.write(send_value_0);
  servo2.write(send_value_1);
  //for serial debugging, uncomment the next two lines.
  //Serial.println(finalReading);
  delay(100);
}

End product

Hack 2:

Beschriebung

blind person stick with a vibration sensor that detects the distance.

Hardware

Im fabLab wurden zwei Holzstöcke gefunden, die die Grundlage und Struktur des Stocks bilden sollten.

WhatsApp Image 2022-02-10 at 15.55.07.jpeg

Die beiden Stöcke wurden mit einem kleinen Stück Gussholz zusammengefügt und auf jeder Seite mit zwei Schrauben festgenagelt. Anschließend wurde der Stock auf die gewünschte Länge zugeschnitten. Der Griff wurde mit dem Gussholz hergestellt. Er wurde erhitzt und dann um den oberen Teil des Stocks gelegt und nach den Händen eines Teammitglieds geformt. Die gesamte Struktur wurde dann für ein elegantes Aussehen sprühlackiert.

WhatsApp Image 2022-02-10 at 17.13.49.jpeg


In diesem Bild ist der Arduino zu sehen. Das erste Bauteil, das von links angeschlossen ist (die beiden runden Augen), ist der Distanzsensor, der auf 80 cm eingestellt ist. Das nächste Bauteil ist der Vibrator. Diese Komponente befindet sich im Griff des Stocks und vibriert, wenn sich ein Objekt weniger als 80 cm vom Stock entfernt befindet. Das letzte Bauteil ist der Tongenerator und funktioniert ähnlich wie der Vibrator.

WhatsApp Image 2022-02-11 at 10.42.33.jpeg

Code

/*
 
 DistanzSensor2
 
 Code for Ultrasonic sensor HC–RS04 
 created by Rui Santos, https://randomnerdtutorials.com

 Distance display with status LED's (green, yellow, red)
 for checking the fill level e.g. of a Meischenfass 

 modified 21.11.18
 by Chris Obrist


 */
 
int trigPin = 11;    // Trigger
int echoPin = 12;    // Echo
int vibrator_pins[] = {2};
int num_vibrators = 1;
long duration, cm;
 
void setup() {
  //Serial Port begin
  Serial.begin (9600);
  //Define inputs and outputs
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

  for(int i = 0; i < num_vibrators; i++)
  {
    pinMode(vibrator_pins[i], OUTPUT);
    digitalWrite(vibrator_pins[i], LOW);
  }
}
 
void loop() {

cm = readSensorDist();

if(cm < 80) {
  for(int i = 0; i < num_vibrators; i++)
  {
    digitalWrite(vibrator_pins[i], HIGH);
  }
}
else
{
   for(int i = 0; i < num_vibrators; i++)
  {
    digitalWrite(vibrator_pins[i], LOW);
  }
}


  Serial.print(cm);
  Serial.print("cm");
  Serial.println();


delay(10);
  
}


int readSensorDist() {

  // The sensor is triggered by a HIGH pulse of 10 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  // Read the signal from the sensor: a HIGH pulse whose
  // duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
 
  // Convert the time into a distance
  return (duration/2) / 29.1;     // Divide by 29.1 or multiply by 0.0343

  
  delay(250);


}

End Product