geraetschaften:elektronik:winkekatze
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
geraetschaften:elektronik:winkekatze [2020-09-19 17:07] – angelegt schuballaa | geraetschaften:elektronik:winkekatze [2022-11-17 22:34] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== |
|**Inventarnummer** |g????| | |**Inventarnummer** |g????| | ||
- | |Benutzbar für|Mitglieder/ | + | |Ort|Elektrowerkstatt| |
- | |Einweisung benötigt|Ja/ | + | |Eigentümer|Marco| |
- | |Ort|???| | + | |
- | |Eigentümer|Verein/# | + | |
===== Ansprechpartner ===== | ===== Ansprechpartner ===== | ||
- | * … | + | * Daniel Stingl |
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Entstehung ===== | ||
+ | |||
+ | Hierbei handelt es sich um eine modifizierte Winkekatze. | ||
+ | Die Idee hierzu hatte ich, als sich der Begriff China-shop bezüglich | ||
+ | Marcos doch beträchtliche Auswahl an China Elektronik eingebürgert hat. | ||
+ | |||
+ | Ursprünglich hatte ich geplant einen Sensor an die Schublade wo Marco | ||
+ | die Teile lagert anzubringen. Nachdem ich aber dann bemerkt hatte, dass | ||
+ | mit dieser Lösung die Katze nur einige Minuten/ | ||
+ | ich die Katze mit einem PIR Bewegungssensor ausgestattet. | ||
+ | |||
+ | Seither winkt die Katze, wenn Marco (oder jemand anderes) auf ,, | ||
+ | sitzt. | ||
+ | |||
+ | * Im Hackerspace gibt es natürlich keine feste Sitzordnung, | ||
+ | lediglich um seinen Lieblingsplatz! | ||
+ | |||
+ | ===== Technische Umsetzung ===== | ||
+ | Die Steuerung des Winkens wurde ursprünglich mit AA Zellen und einem an/aus Schalter umgesetzt . | ||
+ | |||
+ | Ich habe die Stromversorgung um Wartungsfreien/ | ||
+ | mit einer 18615 Li-Ion zelle und einem Charging modul ausgestattet. | ||
+ | |||
+ | Das Winken steuert ein Ardoino pro mini 3,3 V 8 MHZ. | ||
+ | |||
+ | Bei Bewegungsmeldung des PIR' | ||
+ | schaltet nach einer kurzen Verzögerung ein Mosfet die Winkekatze an. | ||
+ | |||
+ | Wenn eine gewisse Zeit keine Bewegung gemeldet wurde, stellt die Katze das Winken wieder ein. | ||
+ | |||
+ | Die Winkstärke kann am Poti (Boden) eingestellt werden, leider ist die Poti wahl nicht so gut | ||
+ | meinerseits ausgefallen, | ||
+ | |||
+ | Eine Verbesserung wäre, das Poti gegen ein geeigneteres zu ersetzten, | ||
+ | |||
+ | Wer das und/oder Softwareänderungen vornehmen möchte, kann den nachfolgenden Quellcode benutzten/ | ||
+ | |||
+ | Programmiert werden, kann die Katze wie folgt: | ||
+ | |||
+ | Mittels USB-Serial Wandler (TLL), den Anschluss (am Boden) verbinden. | ||
+ | {{: | ||
+ | |||
+ | ===== Source Code ===== | ||
+ | < | ||
+ | #include " | ||
+ | |||
+ | < | ||
+ | // Winkekatze | ||
+ | // promini Nano 3,3 V | ||
+ | |||
+ | const int WinkePin = 3; | ||
+ | const int Sensor = 2; // Der Taster wurde an Pin 2 angeschlossen | ||
+ | volatile int PIRStatus = 0; // Variable die den Status des Taster ausliest, wird der sog. " | ||
+ | volatile int WinkePinStatus = 0; | ||
+ | int winkOnDelay = 5; | ||
+ | int winktimeout = 30; | ||
+ | int winken = 0; | ||
+ | |||
+ | int winkOnDelaycounter = 0; | ||
+ | int winktimeoutcounter = 0; | ||
+ | |||
+ | // Taster Anschluss an Pin 2 entspricht dem Vektor 0 (hier der Fall) | ||
+ | // Taster Anschluss an Pin 3 entspricht dem Vektor 1 | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(Sensor, | ||
+ | pinMode(WinkePin, | ||
+ | Serial.begin(9600); | ||
+ | Serial.println(" | ||
+ | digitalWrite(WinkePin, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
- | {{ :logo.png?250}} | + | PIRStatus = digitalRead(Sensor); |
+ | WinkePinStatus = digitalRead(WinkePin); | ||
- | ===== Verbrauchsmaterial ===== | + | if (PIRStatus |
+ | winktimeoutcounter | ||
+ | if (winkOnDelaycounter >= winkOnDelay && winken | ||
+ | Serial.println(" | ||
+ | winkOnDelay | ||
+ | digitalWrite(WinkePin, | ||
+ | winken | ||
+ | } else { | ||
+ | if (winkOnDelaycounter < winkOnDelay) { | ||
+ | winkOnDelaycounter++; | ||
+ | } | ||
+ | } | ||
+ | } else { | ||
+ | if (winktimeoutcounter < winktimeout) { | ||
+ | winktimeoutcounter++; | ||
+ | if (winkOnDelaycounter > 0) { | ||
+ | winkOnDelaycounter--; | ||
+ | } | ||
+ | } | ||
+ | } | ||
- | | + | |
+ | Serial.println(" | ||
+ | digitalWrite(WinkePin, | ||
+ | winken = 0; | ||
+ | } | ||
- | ===== Dokumentation ===== | + | Serial.print(" |
+ | Serial.println(WinkePinStatus); | ||
+ | Serial.print(" | ||
+ | Serial.println(winken); | ||
+ | Serial.print(" | ||
+ | Serial.println(PIRStatus); | ||
+ | Serial.print(" | ||
+ | Serial.println(winkOnDelaycounter); | ||
+ | Serial.print(" | ||
+ | Serial.println(winktimeoutcounter); | ||
- | TODO | + | delay(100); |
+ | Serial.println(" | ||
+ | delay(100); | ||
+ | LowPower.powerDown(SLEEP_8S, | ||
+ | delay(100); | ||
- | ===== Weiterführende Links ===== | + | } |
- | * … | + | </ |
\\ | \\ | ||
geraetschaften/elektronik/winkekatze.1600528065.txt.gz · Zuletzt geändert: 2022-11-17 22:34 (Externe Bearbeitung)