Ein Lob an DHL

Mit meinen Weihnachtsgeschenken war ich teilweise etwas spät dran. Am 23.12.2014 nachmittags habe ich dann noch ein Paket zur Post gebracht. Das Paket sollte von Nordholz nach Fehmarn reisen. Eigentlich hatte ich damit gerechnet, dass es frühestens am 27.12.2014 beim Empfänger ankommt. Aber es war schon am 24.12. vormittags da!

krone

Man soll ja nicht immer nur meckern, sondern auch mal was Positives schreiben.

icon-bf1

Bremsstellschraube M10

Gestern ist meine Stellschraube für eine Bremse abhanden gekommen. Vermutlich war sie schon zu weit rausgedreht und hat sich dann durch Vibration ganz gelöst. So auf die Schnelle bekommt man kein neue Stellschraube und ohne lässt wird nicht genügend Druck auf die Bremse aufgebaut.

Was also tun. Eine neue habe ich bestellt. Die kommt aber erst in den nächsten Tagen. Ich habe mir eine Stellschraube erstellt und dann in Nylon ausgedruckt.

Adjustment Screw

Wie man auf dem Bild sehen kann, hat es funktioniert 🙂

Die CAD Daten für eine M10 Stellschraube habe ich bei ShapeDo hochgeladen.
http://community.shapedo.com/guin/brake_adjustment_screw

Ein Licht, sie alle zu finden

Auch wenn die Tage mittlerweile wieder länger werden, sind sie immer noch sehr kurz. Mein Hundeblinklicht-Projekt schreitet voran. Der momentane Prototyp ist schon recht gut. Mit Ein-Aus-Schalter und einem Taster zum Umschalten der beiden Modi – Blinken und Dauerlicht.

Beim Blinken blinken die LEDs sehr hell. Das stört und blendet etwas, wenn der Hund an der Leine ist und ganz dicht neben einem läuft. Dafür ist der Dauerlicht-Modus. Hier leutet nur eine LED schwach.

Gehäuse für das Hundeblinklicht
Gehäuse für das Hundeblinklicht
Blinklicht in Aktion
Blinklicht in Aktion

So ganz bin ich mit dem Gehäuse nicht zufrieden. Es ist nun im Gegensatz zur Vorgängerversion 10 mm länger und 1 mm breiter geworden. Dafür ist es nun mit 13 mm recht flach geworden, aber ich habe noch kein gutes Konzept, wie ich das Licht sicher am Geschirr der Hunde befestigen kann. Auch die beiden seitlichen Arme werde ich noch einmal umkonstruieren. Den fertigen 6 mm außendurchmessenden Schlauch werde ich durch einen gedruckten Nylonschlauch ersetzen. So mein Plan jedenfalls. Ich habe noch nicht versucht, einen langen schmalen Schlauch zu drucken.

Im Innern des Schlauches soll eine LED leuchten und so den ganzen Schlauch erleuchten. Wenn es so läuft, wie ich es mir denke… Dann sitzen weiterhin an den Enden noch jeweils eine LED, so dass ich dann auf insgesamt 5 statt 3 externe LEDs komme.

Die CAD-Daten und den Arduino-Sketch zur aktuellen Version könnt ihr hier bekommen.
http://community.shapedo.com/guin/flashlight_for_my_dogs

Ein Hunde-Blinklicht, um sie alle zu sehen

Mittlerweile bin ich beim dritten Prototypen. Der zweite Prototyp war schon recht gut. Nur war dieser auf die Schnelle zusammengelötet.

flashlights_for_dogs_003

 

This is how my flashlight could look linke on the back of a dog

Momentan arbeite ich daran, das Gehäuse flacher und dichter zu bekommen. Irgendwie muss ein Taster und ein Schalter möglichst wasserdicht untergebracht werden. Den Taster kann man durch den Gehäusedeckel hindurch drücken. Das wäre also schon einmal erledigt, aber der Schalter bereitet mir noch ein wenig Kopfzerbrechen.

Blinklicht für Hunde

Es ist dunkel. Wenn man nicht vor 16 Uhr mit den Hunden draußen war, muss man selber für Licht sorgen. Unsere Hunde haben ein kleines Licht an ihrem Geschirr hängen. Nur wird dieses Licht durch das lange Fell überdeckt und das Licht ist auch nicht von allen Seiten sichtbar.  Wäre schön, wenn man das ändern könnte, damit die Hunde von anderen Verkehrsteilnehmern besser wahrgenommen werden können.

Ich habe hier noch einige LED rumliegen, auch ein paar Arduino-Klone habe ich noch auf Lager. Also schnell ein kleines Gehäuse ausgedruckt und die Elektrik reingequetscht. Als Spannungsquelle nutze ich einen kleinen 300 mAh Lithuim-Akku. Bei meiner gegenwärtigen Konfiguration hält dieser 3 Stunden durch. Das ist ausreichend für einen Spaziergang. Die Spannung des Akkus (3.6V -4.2V) wird durch einen Pololu 5V Step-Up Schaltregler (U1V11F5) auf 5V gebracht. Damit funktioniert der Bladuino, der eine Betriebsspannung von 5V bis 12V hat.

An die PWM Ausgänge (Pin 3, 5, 6, 9, 10 und 11) habe ich jeweils eine LED angeschlossen. Diese lassen sich nun bequem mit digitalWrite(LED, VALUE); in der Helligkeit regeln.  Dies ist auch wichtig, da die Ausgänge mit 5 V laufen. Die LED haben eine Betriebsspannung von ca 2,6V. Da ich die LED ohne Vorwiderstand eingelötet habe, fließt bei maximaler Helligkeit ein zu hoher Strom, der die Lebensdauer der LED herabsetzt.

 

Geschlossener Blinker
Geöffneter Blinker ohne Akku.

In dem Video habe ich einen größeren Akku angeschlossen, da der kleine nach 3 Stunden Dauertest erst mal wieder aufgeladen werden musste.

Hier das Programm, was ich zur Zeit nutze.

/*
hundeblink
@autor: Marcus Guin Kluetmann

Für die Funktion des Buttons wurde das „Debounce“ Beispiel

http://www.arduino.cc/en/Tutorial/Debounce
created 21 November 2006
by David A. Mellis
modified 30 Aug 2011
by Limor Fried
modified 28 Dec 2012
by Mike Walters

genutzt und angepasst.

*/
int PWM1 = 3; // PWM LED
int PWM2 = 5; // PWM LED
int PWM3 = 6; // PWM LED
int PWM4 = 9; // PWM LED
int PWM5 = 10;// PWM LED
int PWM6 = 11;// PWM LED
int LED1 = 4;
int LED2 = 7;
int LED3 = 12;
int LED4 = 13;
long flash;
long blinki = 4000; // Flash-Intervall
int hell = 250; // Maximalhelligkeit der PWM LED
int dunkel = 2; // Minimalhelligkeit der PWM LED
int mittel = 10;// Mittlere Helligkeit nach dem Blitz für PWM LED
int buttonPin = 2;
int buttonState; // the current reading from the input pin
int lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggled
long debounceDelay = 50; // the debounce time; increase if the output flickers
int ledState = LOW;

// the setup function runs once when you press reset or power the board
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // interner PullUp Widerstand wird genutzt.
pinMode(PWM1, OUTPUT);
pinMode(PWM2, OUTPUT);
pinMode(PWM3, OUTPUT);
pinMode(PWM4, OUTPUT);
pinMode(PWM5, OUTPUT);
pinMode(PWM6, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
flash = millis();
}

// the loop function runs over and over again forever
void loop() {
// read the state of the switch into a local variable:
int reading = digitalRead(buttonPin);

// check to see if you just pressed the button
// (i.e. the input went from LOW to HIGH), and you’ve waited
// long enough since the last press to ignore any noise:

// If the switch changed, due to noise or pressing:
if (reading != lastButtonState) {
// reset the debouncing timer
lastDebounceTime = millis();
}

if ((millis() – lastDebounceTime) > debounceDelay) {
// whatever the reading is at, it’s been there for longer
// than the debounce delay, so take it as the actual current state:

// if the button state has changed:
if (reading != buttonState) {
buttonState = reading;

// only toggle the LED if the new button state is HIGH
if (buttonState == HIGH) {
ledState = !ledState;
off(); // beim Statuswechsel werden alle LEDs ausgeschaltet.
}
}
}

// set the LED-Mode
if (ledState) normalBlink();
else licht();
// save the reading. Next time through the loop,
// it’ll be the lastButtonState:
lastButtonState = reading;
}

void off(){
// Vor dem Umschalten von Blinken auf Dauerlicht sollen alle LED dunkel sein.
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(PWM1, LOW);
digitalWrite(PWM2, LOW);
digitalWrite(PWM3, LOW);
digitalWrite(PWM4, LOW);
digitalWrite(PWM5, LOW);
digitalWrite(PWM6, LOW);
}

void licht(){
// Die 4 nicht PWM LEDs werden eingeschaltet.
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);

}

void normalBlink(){
if(millis()-flash>blinki){
if(millis()-flash>(blinki+10)) flash = millis(); // Nach 10 Millisekunden soll der Blitz wieder ausgehen
analogWrite(PWM1, hell);
analogWrite(PWM2, hell);
analogWrite(PWM3, hell);
analogWrite(PWM4, hell);
analogWrite(PWM5, hell);
analogWrite(PWM6, hell);
}else if(millis()-flash>(blinki/4)){
// Nach dem Blitz leuchten die PWM LEDs etwas heller,
// danach werden sie auf ein Minumum abgedunkelt.
analogWrite(PWM1, dunkel);
analogWrite(PWM2, dunkel);
analogWrite(PWM3, dunkel);
analogWrite(PWM4, dunkel);
analogWrite(PWM5, dunkel);
analogWrite(PWM6, dunkel);
}else {
analogWrite(PWM1, mittel);
analogWrite(PWM2, mittel);
analogWrite(PWM3, mittel);
analogWrite(PWM4, mittel);
analogWrite(PWM5, mittel);
analogWrite(PWM6, mittel);
}
}

Den Taster zum Umschalten von Blink- auf Dauerlicht habe ich nicht dauerhaft angeschlossen.

Als nächstes muss ich ein stabiles Gehäuse für den Ausseineinsatz ausdrucken.