Konzept: magische Uhr (wo ist meine Familie grade?)

Begonnen von Rince, 10 März 2016, 10:47:02

Vorheriges Thema - Nächstes Thema

Rince

Projektstatus:
=> Konzept
Einzelprojekte definieren
=> Planung
=> Beschaffung
Programmierung


Zeitplanung:
bis Sommer 2016

Kosten:
je nachdem was man schon hat, oder was man vielleicht mit Hilfe von FHEM-Mitstreitern günstig herstellen lassen kann (CNC-Fräse für Acrylglas anyone?), denke ich, sollten 50-100€ nicht unrealistisch sein (halt mit längeren Lieferzeiten aus China...)




Hi,

nach dem letzten erfolgreichen Projekt (Müllabfuhr als Gemälde mit LED Anzeige) und einer kurzen Spinnerei (Kuckucksuhr zur Müllabfuhrvisualisierung) habe ich beschlossen, ein anderes Projekt Wirklichkeit werden zu lassen:

Die magische Uhr von Molly Weasley, die anzeigt, wo ihre  Familienmitglieder sind.

Diese Idee wurde schon öfter umgesetzt:
http://magicclock.de
http://www.themagicclock.com

Gemeinsamkeiten der beide Projekte:
Die Zeiger sind an Röhrchen befestigt, die ineinander laufen. So wird der klassische Look einer Uhr erzeugt, nur dass eben mehr "Uhrzeiger" zur Verfügung stehen können.
Die Zeiger werden von kleinen Servos angetrieben, mit einer 2:1 Umsetzung um aus den 180° des Servos 360° zu bekommen.



Mein Ziel ist es, das Design möglichst universell zu halten, so dass man durch "weglassen" eine einfachere Uhr bekommt (weglassen ist imho immer einfacher als "dazu zu konstruieren"

Von da her möchte ich hier ein Maximaldesign.

6 Uhrzeiger, die Servos in einer sternförmigen Anordnung um die "Weiserstange" (wer weniger braucht, lässt einfach die Löcher für die übrigen Servos leer)


Mit LEDs im Zifferblatt will ich nicht spielen, ich halte Bilder der Personen für "Stilechter"

Aber:
Evtl wäre ein kleines Display cool, welches auf Wunsch einen QR-Code anzeigt; der QR-Code könnte dann ein Smartphone dazu bewegen, mit Google Maps den Standort anzuzeigen; dazu bräuchten wir also noch 6 Push-Buttons (oder ein Drehpotentiometer; dann könnte man einen Zeiger auf ein Foto drehen; wenn der Zeiger dann ruhig steht, könnte das Display den Code für einige Sekunden anzeigen)
(sinnvoll z.B. dann wenn die Uhr auf "unterwegs" steht)
Evtl so ein Display?
https://www.adafruit.com/products/2088
(In Farbe könnte man vielleicht vor dem QR Code noch ein Bild der gesuchten Person anzeigen)
Edit:
Tendentiell ist auch denkbar, die Display Sache auszulagern


Weiterhin ziehe ich einen Aufbau mit "Standardbauteilen" vor. Also lieber ein Breadboard MB102 mit Stromversorgung http://artofcircuits.com/wp-content/uploads/2014/04/MB102-3V3-5V-3.jpg als eine eigens entworfene Platine nebst Netzteil; ich möchte, dass so wenig bastlerisches Geschick wie nötig benötigt wird. Das macht das ganze zwar sicher etwas teurer, aber dafür einfacher im Nach/Mitbau)

Ansteuerung:
Hier beginnen die ersten grundlegenden Fragen
Das ganze soll natürlich fhem als Server für die Standortdaten nutzen, so viel wie möglich sollte aber autark laufen

Netzwerk (WLAN?)
6 PWM Kanäle für die Servos
6 Inputs für Push-Buttons (oder einen analogen Eingang für das Poti)
Möglichkeit ein Display anzuschließen, Bilder müssen flexiebel austauschbar sein (wobei ein QR-Code-Bild theoretisch auch als URL gesendet werden könnte)

Welche Plattform?
Arduino?
ESP8266?
Kompletter Raspberry?

Daran anschließend:
Welches Protokoll? Was kommt von fhem an? Wie wird der QR-Code erzeugt?



Ring frei :)

(PS:
Sollten sich tatsächlich Mithelfer finden, werde ich eine Projektseite im Wiki anlegen, das ist schöner zu gliedern als ein Thread :) )
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

schnitzelbrain

#1
Super Idee.

Hatte ich auch schon im Kopf und mit Familie angesprochen, der "mechanische" Aufwand war mir dann doch zuviel.

Als Ersatz benutze ich fhem mit dem geofency modul und die zugehörige Software auf dem iPhone.

Der Status wo sich die Person befindet wird mit Icons angezeigt.

Haus - zuhause
Auto - unterwegs
Schreibblock - Arbeit
Uni Hut - Universität
Frau Symbol - Mutter
Usw.

Läuft problemlos und kann jederzeit erweitert werden.

Dazu halt die app gekauft und fhem über https erreichbar gemacht.

Edit: Alles auf der Raspi

Rince

#2
* Diesen Post date ich up *


Links zum ansehen

####
Google Maps

Hier eine Beschreibung, wie man eine Google Maps URL konstruiert (weiß aber nicht, ob die noch gültig ist)
http://stackoverflow.com/questions/6018060/google-maps-url-i-want-to-create-a-url-to-google-maps-i-want-to-show-search-ne

###
Roommate
locationMap in QR-Code umwandeln

###
Standort am Handy
EgiGeoZone, kann Standort direkt an fhem senden.
Dann reicht ein simples DOIF, um den Standortdummy auf die passende "Uhrzeit" (also die Soll-Position des Zeigers) zu setzen und per MQTT zu publishen
(Manche Standorte könnten so auch auf der Uhr gleich aussehen; verschiedene Supermärkte z.B., wenn man es genau will gibt es ja den QR Code)

Leider kann es kein Live-Tracking. Ich denke ich muss im Forum mal bitten, dass das wieder kommt ;)
http://rpi.spdns.eu/egigeozone/index.php?topic=51.0
###
Bilder per MQTT verschicken

https://developer.ibm.com/recipes/tutorials/sending-and-receiving-pictures-from-a-raspberry-pi-via-mqtt/

Idee:
Wenn Poti eine Zeit still steht, Mit dem Inkrementalgeber drehen, drücken zum auswählen. Dann gibt es eine Nachricht mit der Zielperson (generisch am simpelsten Wohl die Nummern 1-6) an fhem
Das nimmt die letzten bekannten Koordinaten der Person, baut eine URL für Google Maps,
macht aus der URL einen QR-Code
sendet das Bild zurück zur Uhr
diese stellt es für 30 Sekunden am Display dar


###
QR Code seriell an Arduino + Display

Hier wird ein QR Code am Rechner erzeugt, seriell an den Arduino übertragen und angezeigt
http://www.instructables.com/id/The-useless-but-mazing-QR-clock/step2/The-software/


###
QR Code lokal am Rechner per CLI erzeugen
https://wiki.ubuntuusers.de/qrencode/

###
Befestigung der Servos
http://www.erlebniswelt-segelfliegen.de/berichte/servorahmen-im-selbstbau/
Ist nicht exakt was mir vorschwebt, aber so ähnlich (nur etwas weniger komplex) => dieses Holzteil lässt sich bestimmt easy an jeder beliebigen Stelle einfach festschrauben. Sowohl was den genauen Abstand vom Zahnrad betrifft, als auch was die exakte Höhe angeht

Z-Profile wären eine Alternative, aber da müßte man die exakten Höhen wissen; von der Stange habe ich nix gefunden, selber kanten kann ich nicht und machen lassen ist zu teuer.


Hat sich als unpraktikabel herausgestellt.
=> Distanzbolzen M3 sind das Mittel der Wahl :)

Abmessungen des Servos
http://www.arduinoos.com/2016/02/sg90-servo-part-1/


Shops für Material
(Sammlung)

#Messingrohre
http://shop.strato.de/epages/61433551.sf/de_DE/?ObjectPath=/Shops/61433551/Categories
(hatten alle Rohre vorrätig, und ich war grade in der Ecke)


#Sicherungsscheiben
http://www.schraubenking.at/Sicherungsscheiben
(noch unklar)


#Billige Displays ( <5€ / Stück)
=> nicht getestet!
Memo: der Anschluss für die Hintergrundbeleuchtung ist PWM fähig, so kann man es bequem dimmen (so grau leuchtende Displays machen jede Optik kaputt)

Beide verwenden als Controller einen ST7735 (aber in verschiedenen Revisionen)

http://www.ebay.de/itm/261652370910
http://www.ebay.de/itm/380809480973


#Servomotoren
4 Stück < 8 €
http://www.ebay.de/itm/252022445306
Sollten von 3V - 7,2V funktionieren, also allem was man vermutlich eh an Spannung da hat :)
Ich hab mal welche zum spielen besorgt.


#Billige Plastikzahnräder
http://www.bastel-dehs.de/de/Modellbau-Zahnr%C3%A4der/Zahnr%C3%A4der-Gr%C3%BCn-Modul-1

Anfertigen der Trägerplatte CNC/Lasercut
=> Hilfe gesucht
https://forum.fhem.de/index.php/topic,50681.0.html


#Treiber für Servomotoren
PCA9685 (bitte googeln)

Material dazu
https://learn.adafruit.com/16-channel-pwm-servo-driver

Ist ein I2C Interface für 16 PWM Ausgänge. 6 davon für die Servos, 1 für das Dimmen der Hintergrundbeleuchtung vom TFT. Kostet bei eBay D 10€, aus China 5€. Ist nicht so teuer, aber wohl eine vernünftige Sache.
Hinweis:
In der Adafruit Library wird öfter von LCD Screen gesprochen, davon nicht irritieren lassen

Weitere Beispiele für die Adafruit Library:
http://blog.biicode.com/moving-servos-with-arduino-pca9685-and-a-nunchuk/
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

Klingt nicht unspannend. Muss mal eine zerlegen.
Defekte Radios sollten sich in einem Haushalt mit Kindern finden lassen ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

#5
//Edit:
50 Zahnräder statt 40 => Überschwingen
//


"Getriebe":
Nach einigen Zeichenentwürfen habe ich mich für Zahnräder mit Modul 1 entschieden. Die sind ziemlich groß.

Das kleine Zahnrad hat mit 20 Zähnen schon 20mm Wellenabstand
Bei Bastel-Dehs kostet 1 Stück 24 Cent.

Die Idee ist, diese Zahnräder jetzt auf den jeweiligen Wellendurchmesser aufzubohren.


Das große Zahnrad mit 40 Zähnen hat einen Wellenabstand von 40mm!
Kostet 30 Cent / Stück bei Bastel-Dehs...
Wie ich das auf den Servo bekomme, weiß ich noch nicht. Muss das Zeug wohl erst mal in die Hände nehmen können.


Habe aber ernste Sorgen, ob die kleinen Servomotörchen die Räder wuppen ;)
Evtl. brauche ich sie ne Ecke größer  ::)

Der große Vorteil von den Rädern mit dem Modul 1 ist in meinen Augen der:
Die sternförmig angeordneten Motoren können mit der Welle weg von der zentralen Weiserstange angeordnet werden. Das macht die Konstruktion kompakter. Außerdem hoffe ich, so die Mechanik auch mit meinen eher grobmotorisch veranlagten Fähigkeiten hinzubekommen.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

ernst1024

Ich musste etwas schmunzeln, angesiedelt irgendwo zwischen Dingen die kein Mensch braucht und Big Brother, mit freundlicher Unterstützung der NSA.

Aber die technische Umsetzung ist bestimmt spannend, wenn mich der Teufel reitet bin ich sogar eventuell u.U vielleicht dabei.

Verstehe ich das richtig dass die Materialbeschaffung da wo sinnvoll koordiniert wird? Also so dass nicht jeder 6 Messingröhren a 1M kaufen muss wo er jeweils vielleicht 10 cm braucht?
Gruß Ernst

Rince

Hi Ernst,

ich denke so viele Nachbauer wird es nicht geben  8)
Ich freue mich aber über jeden, der nachbaut und ggfs. auch die ein oder andere Codezeile beisteuert  ::)

ZitatVerstehe ich das richtig dass die Materialbeschaffung da wo sinnvoll koordiniert wird? Also so dass nicht jeder 6 Messingröhren a 1M kaufen muss wo er jeweils vielleicht 10 cm braucht?
Wenn wer Interesse bekundet, logisch :)

Wäre nur sinnvoll, dass frühzeitig kund zu tun, da ich sonst halt eher bestelle, was ich brauche.

Wenn du willst, mache ich gerne eine Liste, was ich übrig habe, bzw. wo es gleich noch sinnvoll ist, mehr zu bestellen wegen besserem Porto.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

#8
So,
mal ein Update und was mir so im Kopf rumschwirrt:

Zahnräder 40 / 20:
Habe ich da. Ist aber evtl nicht ganz schlau:
Zum einen haben die Servos vermutlich eher 170°, zum anderen dürfte ein "Überschwingen" optisch sehr reizvoll aussehen. Also langsam anfahren, bis zum Ziel beschleunigen, langsamer werden, stoppen, zurück... so 4-5 Mal vielleicht.
Das geht aber nur dann, wenn der Servo noch Drehreserve hat.
Ergo habe ich mal zusätzlich Zahnräder mit 50 Zähnen geordert, das sollte reichen.

Bezüglich der Ansteuerung der Servos:
Da gibt es ne hübsche Platine mit I2C Interface, 16 Kanäle, auch für PWM LED geeignet. Eine Bibliothek gibt es von Adafruit ebenfalls, angeblich auch ESP kompatibel. Beim Chinesen für nen 5er, in Deutschland für nen 10er.
Ich denke, das ist schlauer. So hat der Microcontroller den Kopf frei und muss nicht in Software PWM Signale emulieren.

Spannende Frage, ob der ESP das mit SPI (Servoshield) und I2C (Display) gleichzeitig hinbekommt.

Die Servos werde ich in kleine Holzhüllen stecken. Das kann man bequemer festschrauben, vor allem auf unterschiedliche Höhen.

Weiterhin überlege ich, einen Teil der Servos "über Kopf" zu montieren: so würde man einige cm Höhe bzw. Breite einsparen. Weiterhin erübrigt sich dann evtl. das CNC Fräsen der Mittelplatte.

Außerdem könnte das so von der Ansteuerung her schlau sein:
Wie kalibriere ich die Servos/Zeiger?
Ich dachte in etwa so:
Alle fahren vor dem Einbau auf ca. -80° (bei -90° bis +90° Spielraum)
Dann montiere ich die Zeiger alle auf 1 Uhr. So sollte es (mit Hilfe der Über-Kopf Montage) gehen, dass alle gleich angesteuert werden können. Also ein Befehl wie 10° weiter im Uhrzeigersinn von allen Servos identisch interpretiert wird.

Plattform:
Ich schwanke zwische RasPi mit Python und ESP mit Arduino.
Der große Wurf wäre das ganze per MQTT zu steuern. Zur Not ginge auch HTTP. Aber warum mit HTTP frickeln anfangen, wenn MQTT schon fertig existiert?
(letztlich wäre ein Grund, weil ich von MQTT keine Ahnung habe. Aber das kann man ja ändern)

Ach ja, Röhrchen habe ich mittlerweile auch. Eines läuft auf 1m etwas schwer, muss evtl ein bisserl schleifen und mit Silikon leichtgängiger machen.

Ansonsten warte ich weiter auf China-Post :)



Übertragung:
Ich dachte, ich unterteile die Scheibe in 12 Bereiche, das kennt man von einer Uhr :)
Zu übermitteln sollte dann sein:
Der Name der Person (als Nummer von 1-6) und die "Uhrzeit" von 1-12
Mehr ist es ja nicht.
Der Inkrementalgeber (mit PushButton) soll einen Publish der Person (also der Nummer) machen, so dass fhem dann einen QR Code erzeugen kann, den per FTP oder HTTP oder MQTT auf den SPIFFs Speicher schreibt, und dann eine Nachricht sendet, dass der QR Code fertig ist, so dass dieser angezeigt werden kann.

Soweit meine (optimistische) Vorstellung :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich denke werde das auch nachbauen kommt aber auf meine sehr knapp bemessene Freizeit an :'(

hab mir auch über die mittelplatte den Kopf zerbrochen...
was hältst du davon einfach in einen dünnen Karton die löcher für die Servos auszuschneiden und das ganze dann mit Harz und Glasfasermatten zu verstärken das wird steinhart.

Was hast du jetzt als Röhrchen genommen?

Silikonöl hab ich da kann ich dir etwas schicken wenn du willst...

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

#10
GFK, klingt nicht schlecht. Habe ich noch nie probiert. Ich hätte noch 2k Acrylglas rumliegen. Geht das auch? (Dann einfach die Platte gießen mit Aussparung für die Servos)

Röhrchen habe ich Messingrohre genommen. Der Spaß hat knappe 25€ gekostet, reicht für mindestens 10 Uhren ;)
Die Antenne funktioniert nicht so gut: die haben eine Bremse drin. Wenn man die rausnimmt, wackelt es ziemlich. Außerdem muss man die Zahnräder auf den Durchmesser der Stäbe aufbohren. Den kennen wir jetzt exakt, und ich habe die passenden Bohrer :) Stelle ich mir bei der Antenne schwierig vor.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich hab noch etwas über die Servos nachgedacht 170° sind sehr wenig natürlich lässt sich alles mit Zahnrädern hinbiegen aber was hältst du von Schrittmotoren und Potis zur Positionsbestimmung da gibt es sogar welche die sich mehrere runden drehen lassen...

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

#12
Den Gedanken hatte ich recht früh verworfen, aus mehreren Gründen:

Die 6 Achsen sitzen ja ineinander. Daher muss man sie eh über eine Art Zahnrad antreiben. Oder nen Zahnriemen.
Ob man da jetzt Übersetzt, Untersetzt oder 1:1 anbindet, bleibt sich egal.

Servo Steuerung erfolgt über 1 Pin, für nen Schrittmotor artet das gleich in eine Kabelorgie aus. Dann braucht man je Motor ein Shield. Kostet je Motor 5€ (nagle mich nicht drauf fest, aber sowas um den Dreh war das)

Dann muss ein Stepper referenziert werden. Entweder per Lichtschranke oder per Taster. Das erschien mir etwas arg aufwendig. Sowohl von der Bastelseite, als auch von der Programmierung. Ich bin eher Grobmotoriker, daher auch Modul 1 bei den Zahnrädern und nicht 0,5 oder noch weniger. (und diese großen Teile sind bei Bastel-Dehs richtig billig)

Letztlich sah ich keinen Kostenvorteil, ebensowenig bei der Komplexität. Tausche Nulldurchlauf-Feature gegen Referenzierungs-Problem.

Der einzige echte Nachteil sind die fehlenden 360°. Ein Nulldurchlauf geht nicht. Das ist aber Programm technisch abfangbar. Wenn man die Zeiger animiert fahren will (langsam anfangen, schneller werden, Überschwingen) braucht man diese Logik eh, da man die Richtung kennen muss.

Und, hey, ein Servo kostet keine 2€  ;)

Update:
Die ersten SG90 Servos sind angekommen :) Hi, sind die winzig :)
Und sie passen vom Anschluss her 1:1 auf das Interface Board. Sehr schön.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

#13
Erste Überlegungen zur Hardware / Software:

Ich würde erste Versuche mit einem ESP8266 (auf NodeMCUDev Board) machen.
Dazu dachte ich an die Arduino Software, in Verbindung mit dem Basic-Setup von Pf@nne.
https://forum.fhem.de/index.php/topic,50238.0.html

Sowohl für das Display als auch für die Servoplatine gibt es fertige Bibliotheken:
Display:
http://www.esp8266.com/viewtopic.php?f=29&t=8428
https://github.com/sumotoy/TFT_ST7735/tree/1.1b1

Servomotor:
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library

Die Ansteuerung dann entsprechend mit MQTT



Update:
Mit der Arduino IDE 1.6.8 lassen sich das Basic-Setup (von Pf@nne) sowie Demo Sketche für den Servo und das Display schon mal fehlerfrei kompilieren :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Mir geht die Mittelplatte nicht mehr aus dem Kopf :-\ Die brauchen wir doch gar nicht!
Wir können die Servos doch mit Hilfe eines kleinen Abstandshalter zb aus Holt direkt an das Ziffernblatt kleben, Abstandshalter für erster Servo 5mm für den zweiten 10mm dick und so weiter

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

#15
Jetzt wo du es sagst  ;D

Stimmt eigentlich. Mit dem Verpacken der Servos in Holzschächtelchen sollte das von der Stabilität her völlig ok sein.

Dann hätten wir:

1 Rückplatte:
3 Servos drauf
1 Aufnahme für die 3mm Welle

1 Vorderplatte:
3 Servos drauf
1 Loch für die 8mm Welle

Zusätzlich:
4 Löcher in den Ecken, um die Platten mit 4 langen Metallschrauben und Muttern vom Abstand her zu fixieren.

Geschätzt würde ich von 14x14cm Grundfläche ausgehen (evtl. etwas weniger, aber größer sicher nicht)
Frage:
Welches Material?
5mm Furniersperrholz? Oder reichen 3mm?
(Keine Preisfrage, es geht um die Stabilität, der Möglichkeit fest Schrauben reindrehen zu können und der Dicke der Gesamtkonstruktion andererseits)

Ich denke morgen kommen die Zahnräder mit 50 Zähnen (und die Reduzierhülsen von 3mm auf 2mm, dann versuche ich mal so ein Zahnrad direkt (auf einen Servoarm) in einen Servo zu schrauben. Wenn das hält, messe ich die Höhe.
Dann können wir fast anfangen die Höhe Holzhalterungen zu berechnen :)

Frage:
Aus welchem Material wollen wir die Uhrzeiger machen?
Und wie dick?

Zu bedenken:
Sie sollten sich nicht verbiegen (sonst stoßen die Zeiger aneinander an)
Sie sollten etwas Abstand zueinander haben
Ggfs. brauchen wir eine Sicherungsscheibe, die ein verrutschen der Stangen verhindert (oder macht man das auf der Rückseite?) (Bild: die Teleskopstangen dürfen nicht in und auseinanderrutschen)
Wir müssen die Zeiger an den Messingröhrchen befestigen können
Je weiter die Zeiger voneinander Abstand haben, desto schlechter sieht es aus (bei 1mm und 6 Zeigern haben wir schon ein 6mm dickes Zeigerwerk

Möglichkeiten in meinem Kopf:
Messingplatte 0,3mm
Stabilität: keine Ahnung
Bearbeitung: Elektrisch ätzen, mit Tonertransfer Umriss übertragen (da wo Toner ist, ätzt es nicht) (Batterie, + Pol am Messing, ein unedleres Metall an den - Pol, Rückseite lackieren und dann Strom)
Nachteilig:
Aufwendig, gibt ne große Sauerei und Sondermüll
Vorteil: könnte sehr stylische Zeiger ergeben (feine Strukturen und so)

Pappe
Muss man wohl händisch ausschneiden mit nem Skalpell.
Für nen einfach 4-Eck Zeiger bestimmt ok, aber sieht wohl nicht gut aus
Nicht besonders stabil
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich werde die Servos auch nicht in Holzschächtelchen verpacken sondern mit Heisskleber gut festkleben ;D

Ich denke das auch 3 mm ausreichen sollte so stabiel muss es auch wieder nicht sein und mit Schrauben wird das auch bei 10 mm nichts Ordentliches ich setze auf Kleben soll doch für die Ewigkeit sein.

Die Stangen können doch gar nicht verrutschen sie werden doch von den Zahnrädern fixiert.

Zeiger selber machen klingt auch spannend ich hätte einfach welche gekauft...

wenn es Metall Zeiger sind kann man sie vielleicht an löten.

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

ZitatDie Stangen können doch gar nicht verrutschen sie werden doch von den Zahnrädern fixiert.

Überleg...
Stimmt. Das 3mm Röhrchen hinten sitzt in einer Aufnahme, dann kommt schon das erste Zahnrad um die 3mm Welle.
Nach vorne stößt es an 4mm an.
Das geht so weiter.
Das 8mm Röhrchen steht dann auf der vorderen Platte an.

Du hast Recht  :)

Machen wir hinten zwischen Rädchenunterkante und Unterkante nächstes Rad 1cm? Die Rädchen sind 6,09mm dick. Dann haben wir etwas Spiel wenn ein Rad nicht 100% auf dem Servo sitzt und eiert?

Dann hätten wir fast die fertige Rohrlänge (zzgl. noch Zeigerbreite + Sicherheitsbeiwert)

Wie viel würdest du an Zeigerbreite kalkulieren?


PS:
Pf@nne ist klasse. Ich hab ihn um eine Erläuterung seiner Arduino Bibliothek gebeten. Ich glaube, das ist eine der ausführlicheren Erläuterungen, die je im fhem Forum geschrieben wurden!
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich würde an deiner stelle die rohre noch nicht abschneiden sondern warten bis du die Zeiger hast, nichts ist ärgerlicher als um einen cm zu kurz abgeschnitten zu haben...


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

Stimmt.
ZitatMachen wir hinten zwischen Rädchenunterkante und Unterkante nächstes Rad 1cm? Die Rädchen sind 6,09mm dick. Dann haben wir etwas Spiel wenn ein Rad nicht 100% auf dem Servo sitzt und eiert?
Passt das?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich bin mir nicht sicher aber hört sich nicht so schlecht an das entscheide ich aber kurzfristig wenn ich beim zusammenbauen bin jetzt ohne servo und Zahnräder ist es etwas schwierig...


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

#21
Die Uhr (also das Gehäuse) ist da. Vorletztes Wochenende auf Ebay geschossen :)


Grundfläche für die Bodenplatte muss sein:
(gemessen mit 50 Zähnen - 20 Zähnen - 50 Zähnen in einer Reihe)
12,5 cm x 12,5 cm

Die Holzstäbchen vorne und hinten am Servo müssen 12mm breit sein, dann passt der Servo exakt dazwischen.

Problem:
Die Revisionsöffnung hinten ist um 2cm zu schmal. Innen ist genug Platz. Vermutlich muss ich die Vorderseite demontieren um rein zu kommen. Mal sehen.



Zur Montage:
Werde die Bodenleiste etwas länger machen und an den Platten festschrauben. So kann man sie (=die Holzaufnahmen mit den Servos drin) auf dieser Schiene exakt auf den richtigen Abstand schieben, dann festschrauben.


Thema Schrauben:
2,5mm Holzschraube für Servokopf ist zu dick.

Werde es mit 2mm versuchen (Zahnrad mit Reduzierung auf 2mm auf Servo schrauben)


Zusägen lassen im Hagebau ist gefloppt, die sägen so klein nicht  :o

Hab jetzt 26x26cm, hat 48 Cent gekostet  ;) (3mm HDF)

Edit
Display ist auch da :)

Montag werde ich die Zahnräder aufbohren und die Platten fertig sägen
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

Dieses Display ist da:
http://www.ebay.de/itm/380809480973
(grün/blaue Platine)

Gem. Aufdruck auf Platine J1 gebrückt für Betrieb an 3,3V


Verdrahtung an NodeMCU V1 Dev-Kit:


Display  => NodeMCU

1 - RST  => D2
2 - CS   => D0
3 - D/C  => D1
4 - DIN  => D7
5 - CLK  => D5
6 - VCC  => 3,3 V
7 - BL   => einstweilen auch an 3,3V
8 - GND  => GND


Demosketch (ESP8266 => Benchmark) läuft :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Mein Uhrengehäuse ist auch schon gekommen und es ist genug Platz ;D

Die original Zeiger sind aus dünnem Blech ausgestanzt vielleicht ist es sogar möglich
selber welche mit einer kleinen Schere aus einem ähnlichem Blech auszuschneiden.

Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

Sehr schön :)
Dann müssen wir uns entscheiden, mit welcher Plattform wir die Uhr betreiben wollen :)

ESP oder Raspberry?

Ich würde es zunächst mit nem ESP versuchen. Da stellt sich die Frage:
Sming oder Arduino IDE?

Als Protokoll würde ich erst mal auf MQTT setzen.

Was meinst du?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich dachte wir nehmen das ESP8266 WIFI Internet Development  Module CH340G
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

#26
Ja. Das ist die Idee.
Aber es gibt mehrere Möglichkeiten, die Software dafür zu schreiben. Mit der Arduino IDE (und Pf@nnes Basic ESP) oder mit Eclipse (und Sming (für das Pf@nne evtl. auch ein Basic ESP schreibt)).
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich würde das bestehende System verwenden, Arduino IDE (und Pf@nnes Basic ESP) da wissen wir das es bereits Funktioniert 8)

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

Gut.

Dann müssen wir Topics publishen und subscribenfür MQTT

Subscriben müssen wir:
UserNumber [1-6]
UserTime [1-12]
QRUploadFinish [true/ false]
Ring => weiß noch nicht wozu, meine Uhr hat eine Glocke, die könnte man läuten lassen ;)

Publishen:
UserLocationRequest [UserNumber 1-6]

Soweit richtig?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

ZitatRing => weiß noch nicht wozu, meine Uhr hat eine Glocke, die könnte man läuten lassen
Warum nicht das i2c Modul kann doch 16 Kanäle ansteuern wenn wir alle über fhem zugänglich machen
sind wir auch in Zukunft ohne großen Aufwand in der Lage extras einzubauen...
zb. mit so etwas hier zum nur ein/aus schalten http://www.ebay.de/itm/Turnigy-TX-receiver-Controlled-on-off-relay-Switch-airplane-quadcopter-fpv-leds-/262359230186?hash=item3d15d426ea:g:y2AAAOSwUV9Wp7MR


ZitatSoweit richtig?
Ich denke schon
Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

Ist nicht so wichtig, das geht zur Not zum nachrüsten :)

Einigen wir uns zunächst auf eine Version der IDE und Pf@nne´s Basic?



Schaust du dir bitte folgende Tutorials an:

https://learn.adafruit.com/multi-tasking-the-arduino-part-1
http://www.roboternetz.de/community/threads/65187-Tutorial-Erstellen-einer-Arduino-Bibliothek

Ich möchte letztlich eine Bibliothek haben, die den Servo auf die passende Uhrzeit stellt.



Was muss sie können?
Den jeweiligen Servo ansteuern
Aus der Uhrzeit den Winkel berechnen (0-180°)
Den alten Winkel gespeichert haben
Die Differenz alter / neuer Winkel berechnen, um die Geschwindigkeit des Zeigers und das Übersteuern zu bestimmen (wenn der Zeiger von 9 Uhr auf 10 Uhr fährt, wird er langsamer sein, als wenn er von 9 Uhr auf 3 Uhr fährt; dementsprechend sollte das Überschwingen natürlich jeweils unterschiedlich sein)


Worauf müssen wir uns noch einigen?
Auf die Kalibrierung der Servos / Zeiger, damit die Winkelberechnung für alle Servos immer gleich bleibt.

Vorschlag:
Einbau der Servos in Mittelstellung (90° = 1,5ms Impuls)
Dann fixieren der Zeiger an der jeweiligen Welle auf 12 Uhr

Das bedeutet, dass wir (ohne Zahnräder) von 9 Uhr bis 3 Uhr über 12 Uhr fahren können
Mit der Zahnradübersetzung von 40:20 dementsprechend von kurz nach 6 Uhr bis kurz vor 6 Uhr, wieder über 12 Uhr natürlich
Mit Übersetzung von 50:20 auch etwas über 6 Uhr jeweils in der anderen Richtung hinaus...

Ist das so für dich ok?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Hallo Rince

Ich habe mit Arduinos noch keine Erfahrung da verlasse ich mich ganz auf dich :P
Aber dein Konzept klingt ganz gut 8)

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

#32
War heute mal basteln.
Ich denke ich habe einen Weg gefunden, die Zahnräder ordentlich am Servo zu befestigen.

Diese grünen Zahnräder sind in der Fläche deutlich dünner als außen und innen. Ich habe daher innen auf einer Seite mit nem Dreml diese "Wulst" weggefräst. Jetzt liegen die Zahnräder sauber auf den Servohörnern auf. Kleben und schrauben muss ich noch, dann ist das fertig.

Damit kann ich endlich die Höhe messen und die Breite des Uhrwerks berechnen :)

Edit sagt:
3,7cm ist der SG90 mit Servohorn und dem grünen Zahnrad (mit weggedremeltem Wulst) hoch.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

#33
Änderungen:

4mm Abstand ist zu viel. Das muss weniger werden.
Idee:
Über die kleinen Zahnräder (ca. 2cm Durchmesser) kommt jeweils 1 Scheibe (sowas wie ne MiniCD) mit 3-4cm Durchmesser
=> die verhindert, dass das große Zahnrad versehentlich ein falsches kleines Zahnrad erwischt, weil es schlicht nicht mehr eiern kann.

Damit verringert sich die Höhe unserer Konstruktion kräftig. Knappe 3mm/Zeiger


Der Rest des Postings ist eher als Memo to self zu lesen

Hätte ich in Mathe mal besser aufgepasst  :o

Unser Servo hat theoretisch 0-180°

180° * 2,5 = 450°
450° - 360° = 90°

90° / 2 = 45° Überschwingen von links und rechts

Jetzt stellt sich ein Gedankenblitz ein :)

Ich rechne die UhrZeiten schon um, nicht die Winkel.

1 Uhr wird zu 7 Uhr etc...

Jetzt muss ich nur noch berücksichtigen, dass der Nullpunkt vom Servo nicht bei 6 Uhr ist, sondern bei 4:30 Uhr liegt.

Winkel = (NeueUhrZeit * 30) + 30
Dieses Ergebnis teilen wir nun noch durch 2,5.

Kann das so funktionieren?

pulslength = map (Winkel, 0, 180, SERVOMIN, SERVOMAX)


Theorie:
SERVOMIN und SERVOMAX sind die Pulsweiten, bei denen der Servo nicht gegen sein Endpunkte donnert.
Wenn er also auf 180° fahren soll, könnte es sein, dass er 2ms gar nicht verträgt. Das klingt dann recht unschön und macht den Servo kaputt.

Die Reserve links/rechts beträgt durch die 2,5:1 Übersetzung 18° statt 0° und 162° statt 180. (45° / 2,5 = 18°)
Kommt noch das Überschwingen dazu. 1h entspricht 12°.
Bleiben also übrig 6° und 174° als maximale Positionen, die vom Servo in dem Programm angefordert werden.

Kan man da davon ausgehen, dass diese Parameter von jedem Servo eingehalten werden? Dann muss man nicht erst "seine" Servos kalibrieren.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)