Forum: Projekte & Code Steuerung für höhenverstellbaren Schreibtisch


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Borislav B. (boris_b)


Angehängte Dateien:

Lesenswert?

*Hallo zusammen!*
Hiermit möchte ich euch mein aktuelles (und gerade fertig gestelltes) 
Projekt „DeskControl“ vorstellen. Dabei handelt es sich um einen kleinen 
Controller zur Steuerung von höhenverstellbaren Schreibtischen. 
Unterstützt werden alle Modelle, die eine LogicData Compact 
Motorsteuerung (oder kompatibel) verwenden.
Siehe auch: 
http://www.logicdata.at/produkte/logic-office/steuerungseinheiten/compacteco.html

Projektidee
Wenn ich an meinem höhenverstellbaren Schreibtisch arbeite, nutze ich 
gerne drei verschiedene Höhen: Arbeiten im Stehen, „dynamisches“ Sitzen 
auf einem Sitzball sowie einen gewöhnlichen Bürostuhl. Jede der drei 
Höhen muss recht umständlich über den Handschalter des Schreibtischs 
angefahren werden.
Daher meine Idee: die Höhen sollen komfortabel über ein Desktop-Widget 
ausgewählt und dann automatisch angefahren werden können.

Der Controller
Die hier vorgestellte Steuerung des Schreibtisches sitzt zwischen dem 
Motor-Controller und dem Handschalter. Sie ist so zu sagen ein 
„Man-in-the-middle“. Ihre Aufgaben sind:
- Auslesen der übertragenen Höheninformationen
- Simulation von tastendrücken zum Hoch-und Runterfahren
- Durchleiten der Signale zwischen Handschalter und Motorsteuerung, 
damit nach wie vor eine manuelle Bedienung möglich ist
- Kommunikation mit dem PC per USB
Das Herzstück des Controllers ist ein Arduino Pro Micro. Daran sind 
direkt die Stecker angeschlossen (eine eigene Platine ist also nicht 
nötig). Ein Bild der Platine inkl. Verkabelung habe ich diesem Post 
angehängt. Auch den Arduino-Code des Controllers findet ihr oben.

Die App zur Ansteuerung
Diese ist eine Windows „Metro“ Anwendung (siehe oben), geschrieben in C# 
und WPF. Sie zeigt die aktuelle Höhe an, und hat drei Buttons, über die 
direkt die entsprechende Höhe angefahren werden kann. Die Kommunikation 
mit dem Controller läuft ganz einfach über einen virtuellen COM-Port. 
Die Sourcen der App sind ebenfalls oben zu finden.

Fazit
Das Projekt ist nun schon seit zwei Wochen an meinem Arbeitsplatz in 
Betrieb. Bis jetzt gab es keinerlei Probleme oder Aussetzer. Und es ist 
wirklich so praktisch, wie ich mir das vorgestellt hatte

von Robert N. (metrux)


Lesenswert?

Hm, daran arbeite ich auch gerade nur für die IKEA Tische.
Was sprechen die denn für ein Protokoll?

: Bearbeitet durch User
von Borislav B. (boris_b)


Lesenswert?

Robert N. schrieb:
> Was sprechen die denn für ein Protokoll?

Zum Glück ein Einfaches :-)

Die Motorsteuerung sendet Datenpakete an den Handschalter, in denen die 
Höhe codiert ist. Siehe hier:
Beitrag "Protokoll entschlüsseln"

Der Handschalter zieht lediglich zwei Leitungen (Hoch + Runter) auf 
High, um den Tisch zu bewegen.

von M. H. (thorax)


Lesenswert?

Stark! Gleich mal einen Arduino bestellen.
Leider fehlt mir in deiner Verkabelung noch der Hinweis, ob man von vorn 
oder von hinten auf die Buchse/den Stecker blickt.
Ansonsten ein super Projekt :)

von Borislav B. (boris_b)


Lesenswert?

M. H. schrieb:
> Leider fehlt mir in deiner Verkabelung noch der Hinweis, ob man von vorn
> oder von hinten auf die Buchse/den Stecker blickt

Der soll hiermit nachgeliefert werden: Buchse und Stecker sind von vorne 
zu sehen. Also aus "Anwendersicht". Danke für den Hinweis!

M. H. schrieb:
> Stark! Gleich mal einen Arduino bestellen.

Sehr schön, dann hat sich meine Projektvorstellung ja gelohnt :-)
Viel Erfolg!

von ffff (Gast)


Lesenswert?

Coole Idee.
Um die Sache aber vielleicht auch für *nix Benutzer ausführbar zu 
machen, wäre es vielleicht noch nett zu sagen was du per USB-Seriell an 
den Controller verschickst. Dann braucht man nämlich nicht(faul wie ich 
bin) das aus der ino rauslesen ;)

von Udo S. (urschmitt)


Lesenswert?

Das ist ja eigentlich eine prima Idee, nur diese Relaisierung:

Boris P. schrieb:
> Daher meine Idee: die Höhen sollen komfortabel über ein Desktop-Widget
> ausgewählt und dann automatisch angefahren werden können.

gefällt mir eher nicht. Für alles muss es eine App oder sonst was geben. 
Also braucht man immer das Handy mit passender App, den 
Computer/Notebook/Tablet um etwas verstellen zu können.
Ein µC der einfach 3 Taster abfragt und dann auf eine der 3 
vorprogrammierten Höhen einstellt wäre deutlich praktischer, für die 
Handy Anbindung kann man sich ja immer noch für die Konfiguration 
austoben :-)

von Borislav B. (boris_b)


Lesenswert?

Udo S. schrieb:
> gefällt mir eher nicht. Für alles muss es eine App oder sonst was geben.
> Also braucht man immer das Handy mit passender App, den
> Computer/Notebook/Tablet um etwas verstellen zu können.

Da das ganze an meinem Arbeitsplatz installiert ist, läuft dort sowieso 
immer ein PC.
Falls der doch mal aus sein sollte, kann der Tisch ja immer noch manuell 
über den Handschalter verstellt werden.

Wer mag kann auch gern noch ein paar taster an den Arduino löten ;-)

von Jay (Gast)


Lesenswert?

Ich verwende dafür voll-cool ein Analogsystem, einschließlich analoger 
Regelschleife!

Auf den Tischbeinen sind mit farbigem Isolierband meine gewünschten 
Höhen markiert. Zum Anfahren einer Einstellung trete ich einen vom 
Schritt zurück, Finger an den Auf-Ab Schaltern und schaue auf die 
Tischbeine. Durch Beobachtung und Auswertung der aktuellen Position und 
Vergleich mit der markierten Sollposition bestimme ich die 
Anfahrrichtung und betätige den entsprechenden Schalter. Bei Erreichen 
der gewünschten Endposition lasse ich ihn wieder los. Eventuelle 
Ungenauigkeiten der Endposition werden durch Betätigungen der Schalter 
mit variabler Dauer, bei gleichzeitiger Beobachtung der Tischbeine, 
ausgeregelt.

Alles Arduinofrei.

von Borislav B. (boris_b)


Lesenswert?

Jay schrieb:
> Ich verwende dafür voll-cool ein Analogsystem, einschließlich analoger
> Regelschleife!

Na dann:  ran an den Lötkolben :-)

von Sven T. (bb78)


Lesenswert?

Hallo.

Ich werde mir in den nächsten 2 Wochen einen höhenverstellbaren 
Schreibtisch bauen.

Dieser kann dann auch nur hoch runter.

Bin also sehr an dieser Steuerung interessiert.

Habe mir die Teile schonmal zusammen gesucht.

Nur stoße ich auf ein Problem.

Die Metro App ist ja nur bis Windows 8 funktionell.

Wie bekomme ich das auf Windows 10 zum laufen?

Der zusammenbau, löten usw sind kein Problem nur kann ich nicht 
programmieren.

Hat da vielleicht einer schon eine Lösung für Windows 10?

Auch an einer möglichkeit das ohne Windows zu steuern wäre eine 
möglichkeit.

Wie sieht die Analog Steuerung aus was brauche ich dafür?

MfG Sven

: Bearbeitet durch User
von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


Lesenswert?

Sven T. schrieb:
> Die Metro App ist ja nur bis Windows 8 funktionell.

Wieso?

von Sven T. (bb78)


Lesenswert?

Da bei Windows 10 Metro Apps abgeschafft wurden.

von Borislav B. (boris_b)


Lesenswert?

Sven T. schrieb:
> Die Metro App ist ja nur bis Windows 8 funktionell.
> Wie bekomme ich das auf Windows 10 zum laufen?

Die ist ebenso unter Windows 10 lauffähig. Just in diesem Moment fahre 
ich nämlich meinen SChreibtisch damit hoch ;-)


Zur Erklärung:
Das ist eine ganz normale Desktop-Anwendung, die nur mit einem Theme in 
Metro-Optik aufgehübscht ist (verwendet MahApps Metro).

von Sven T. (bb78)


Lesenswert?

Hmm.

Hab jetzt Visual Studio drauf und frage mich wie ich mit der Datei die 
App raus bekomme.

So ganz ohne Ahnung von der Materie wird das wohl nichts.

Hab die sln mit VS geöffnet wie gehts weiter?

von Borislav B. (boris_b)


Lesenswert?

Hi Sven,
versuch mal im Menü "Build -> Build Solution". Im Output-Fenster steht 
dann entweder 1 Succeeded, oder es hagelt Fehler ;-)

Wenn alles geklappt hat, findest du im Ordner bin/Debug bzw. bin/Release 
die .exe-Datei.

von Martin (Gast)


Lesenswert?

So ein Mist. Ich hab gerade eine Woche lang das gleiche programmiert und 
jetzt finde ich diese Seite.. wie ärgerlich..

von Sven T. (bb78)


Lesenswert?

Wie ich geschrieben habe leider gar keine Ahnung was ich da mach.

Hab den Arduino geflasht.

Weiß auch an welchen com port (4) er ist. Meldet sich als Arduino 
Leonardo an. Baudrate 9600 sollte wie ich gesehen habe auch passen

Wo trage ich den com port in VS ein?

Sources/Serial da muß es doch sein Ardiono Connector oder 
SerialportWrapper.

Ich hab keine Ahnung wo ich da was eintragen muß.

Kann es sein das Du den Code leer gelassen hast was den Com Port angeht?

Beim debugen gibt es com port fehler.

Menü Build habe ich nicht es ist eine Deutsche Community Version von VS
Gar nicht so leicht die Geburt. Mein Kompetenz liegt leider ganz 
woanders.


MfG

: Bearbeitet durch User
von Borislav B. (boris_b)


Lesenswert?

Sven T. schrieb:
> Wo trage ich den com port in VS ein?
>
> Sources/Serial da muß es doch sein Ardiono Connector oder
> SerialportWrapper.
>
> Ich hab keine Ahnung wo ich da was eintragen muß.
>
> Kann es sein das Du den Code leer gelassen hast was den Com Port angeht?

Hi,
der COM port wird dem Programm beim Start als Parameter übergeben. Er 
ist nicht im Code fest vorgegeben.

- Also einfach eine Verknüpfung zu der .exe auf den Desktop oder die 
Taskleiste legen
- Rechtsklick -> Eigenschaften
- Z.B. "COM4" als Parameter eintragen
- Das Programm mit diesem Shortcut starten

Sven T. schrieb:
> Gar nicht so leicht die Geburt. Mein Kompetenz liegt leider ganz
> woanders

Nicht verzagen :-)

: Bearbeitet durch User
von Sven T. (bb78)


Lesenswert?

Hi.

So es ist soweit alles was ich versuche funktioniert nicht auch com4 
eintragen.

Ich gebe auf. Werde versuchen mir Hilfe hier aus der Gegend zu besorgen.

Habe keine lust mich wegen so einer kleinen Steuerung mich mit 
programmieren und Visual Studio zu befassen.

Ist den aufwand nicht wert.

Trotzdem Danke für die Hilfe und Geduld.

MfG Sven

von salamander (Gast)


Lesenswert?

Super Idee. Hasst du vielleicht noch die Typen von Stecker und Buchse, 
damit ich nicht die falschen kaufe...

von Borislav B. (boris_b)


Lesenswert?

salamander schrieb:
> Super Idee. Hasst du vielleicht noch die Typen von Stecker und Buchse,
> damit ich nicht die falschen kaufe...

Ich hatte die bei Reichelt bestellt:

MAS 70S
DIN-Stecker, 7-polig
0,90 €

MAK 70S
DIN-Kupplung, 7-polig
0,98 €

: Bearbeitet durch User
von Stephan Maier (Gast)


Angehängte Dateien:

Lesenswert?

Wir haben seit kurzem auch höhenverstellbare Schreibtische im Büro in 
Verwendung und haben nach einer Lösung dafür gesucht, diese extern zu 
steuern. Dabei sind wir auf Ihre Lösung gestoßen und haben versucht 
diese anzuwenden.
Der Schreibtisch wird von einem LogicData Compact-e-2L-O-V-EU gesteuert.
Nach Ihrer Anleitung habe ich die DIN-Stecker zusammengelötet und mit 
einem Arduino Nano verbunden, Pins D3-5 und D7-9 sowie GND. Ebenso wurde 
die oben angehängte Firmware auf den Arduino aufgespielt.

Sobald der Tisch mit dem Strom verbunden wird, fährt er kurz ca. 1s hoch 
und runter, danach sporadisch mal ganz nach oben oder ganz nach unten, 
aber weder Knöpfe drücken, noch die Windows-App haben irgendeinen 
Einfluss, dort steht als Höhe immer 0 drin.
Am Tisch wird die richtige Höhe auf dem Display angezeigt, allerdings 
klappt sonst nix.

Unser Controller hat wie auf dem Foto zu sehen 7 Kabel verbunden, 2 
davon konnten wir auf die beiden Buttons zurückführen, diese stimmen 
auch mit Ihrem Schema überein, nur die Farben sind anders.

1. Liegt es vielleicht daran, dass wir einen Arduino Nano verwenden 
anstelle des Mikro
2. Sind die Pinbelegungen zum Teil möglicherweise anders, was das Signal 
angeht?

Haben Sie uns vielleicht einen Tipp, woran das liegen könnte, bzw. wie 
das behoben werden kann?

von Borislav B. (boris_b)


Lesenswert?

Stephan Maier schrieb:
> 1. Liegt es vielleicht daran, dass wir einen Arduino Nano verwenden
> anstelle des Mikro

Das sollte keinen Unterschied machen.

Stephan Maier schrieb:
> 2. Sind die Pinbelegungen zum Teil möglicherweise anders, was das Signal
> angeht?

Da würde ich auch ansetzen:
- Kurz messen: sind Hoch/Runter/Signal richtig am DIN-Stecker 
abgegriffen?
- An welche Pins sind diese am Arduino angeschlossen?
- Passt die Software zu den Pin-Indizes?

von Stephan Maier (Gast)


Lesenswert?

die beiden zusätzlichen Kabel sind für eine Speicherfunktion, man kann 
mit ein paar zusätzlichen Tasten feste Höhen einspeichern. Die hab ich 
jetzt einfach nur durchgeschleift.

Die Pinbelegung ist nach ein paar Tests genau dieselbe wie bei Ihrem 
Tisch, ich hatte aber in der .ino den Interrupt-Pin nicht neu definiert 
und der stand bei der Download-Version auf 0 anstatt 3

Mittlerweile funktioniert alles prima =)

von David Knezic (Gast)


Lesenswert?

Hallo Borislav, vielen Dank fürs Teilen deines Projekts!

Ich habe mir vor einer Weile einen Tisch mit identischer Motorsteuerung 
gekauft und seit beginn davon geträumt diesen "intelligenter" zu machen, 
ob sinnvoll oder nicht.

Ich habe mit Hilfe deiner Arbeit gerade mein Projekt fertiggestellt, wo 
ich meinen Tisch mit HomeKit von Apple verbinde, damit er via Siri und 
Home-App steuerbar ist.

https://github.com/davidknezic/desk

Ich würde das gesamte Projekt gerne unter der MIT-Lizenz veröffentlichen 
und würde dich deshalb gerne fragen, ob du bereit wärst dein 
DeskControl.ino darunter zu lizensieren?

Nochmals, vielen Dank für dein Projekt und dafür dass du es hier 
veröffentlich hast! Ohne hätte ich mich nie an dieses Projekt gewagt :)

von Marc-Oliver R. (Firma: EM-Werbung) (mristau)


Lesenswert?

Hallo Herr Bertoldi,

wir haben auf Basis Ihrer Tischsteuerung eine Anwendung entwickelt, bei
der wir den Tisch per BLE mit einem Smartphone verbinden.
Meistens funktioniert das auch korrekt, allerdings kommt es bei uns oft
vor, dass die Höhe nach einigen Bewegungen nicht mehr erkannt wird.
Wir vermuten, dass der bei Ihnen konstante Teil nicht wirklich konstant
ist, allerdings haben wir hier keine Möglichkeit, das ordentlich
auszulesen.
Wären Sie eventuell bereit dazu, uns dabei zu unterstützen, oder haben
Sie in der Zwischenzeit eine bessere Möglichkeit gefunden, um die Höhe
zuverlässig auszulesen?

Mit freundlichen Grüßen

Marc-Oliver Ristau (E+M Werbung)

von hans (Gast)


Lesenswert?

Ernsthaft, ihr kopiert einfach das Programm nennt es selbst Entwickelt 
und fragt dann noch nach Hilfe weil es nicht funktinoiert? Dreist!

von Der Andere (Gast)


Lesenswert?

Marc-Oliver R. schrieb:
> E+M Werbung

Sagt alles. Lug und Trug, die schrecken vor nichts zurück.

von Marc-Oliver R. (Firma: EM-Werbung) (mristau)


Lesenswert?

Ich habe in keinem Wort behauptet, dass ich das selbst entwickelt habe.
Was ich entwickelt habe, ist eine App, die den Arduino steuern kann über 
BLE.
Dafür habe ich das DeskControl etwas angepasst, damit nicht seriell, 
sondern über BLE kommuniziert wird.

von Stephan Maier (Gast)


Lesenswert?

Lieber Gast "der andere" und "Hans"
ein Mitarbeiter von mir hat ganz TRANSPARENT eine Frage an Herrn 
Bertoldi gestellt.
Auch ich selbst habe Herrn Bertoldi per Mail kontaktiert, leider ohne 
die erhoffte Rückmeldung.
Klar ist dass wir hier ein kommerzielles Projekt haben und daher um 
direkte Unterstützung angefragt haben, die außerhalb eines Forums 
ablaufen sollte.
Es ist nicht unser Ziel, den Foren-Mitgliedern Informationen zu 
entlocken und diese als unser Eigentum zu verkaufen. Wir suchen nach 
kompetenten Partnern, die uns unterstützen können und wollen, natürlich 
nicht kostenlos!
Sollte sich einer aus diesem Forum in der Lage fühlen uns weiter zu 
helfen, dann würden wir uns freuen wenn er oder sie sich bei uns meldet.
Stephan Maier, s.maier@em-Werbung.com, 0160 97591507

Aber bitte keine anonymen Beleidigungen meiner Mitarbeiter mehr, immer 
sachlich bleiben.

Gruß Stephan Maier

von Vn N. (wefwef_s)


Lesenswert?

Marc-Oliver R. schrieb:
> Ich habe in keinem Wort behauptet, dass ich das selbst entwickelt habe.
> Was ich entwickelt habe, ist eine App, die den Arduino steuern kann über
> BLE.
> Dafür habe ich das DeskControl etwas angepasst, damit nicht seriell,
> sondern über BLE kommuniziert wird.

Da der Code ohne Lizenzangabe veröffentlicht wurde, ist er grundsätzlich 
als proprietär einzustufen, was die Nutzung in einem komerziellen 
Produkt ohne explizite Einwilligung des Urhebers erstmal verbietet.

von Daniel F. (Gast)


Lesenswert?

Hallo Herr Meier,

ich habe leider ganz gleiche Problem, dass nach dem Einschalten der 
Tisch willkürlich hoch und runter fährt, die Höhe wird aber korrekt 
ausgegeben.
Könnten Sie mir vielleicht freundlicherweise mitteilen, welche 
Änderungen Sie vorgenommen hatten, damit es bei Ihnen ging?
Vielen Dank bereits im Voraus!

Gruß,
Daniel

von Tobi (Gast)


Lesenswert?

Hallo Zusammen,

hier ist das Problem das Gleiche.
Nach dem Arduino Start fährt der Tisch kurz nach oben.
Höhe wird angezeigt.
Es wird auf keinen Tastendruck, weder in der App, noch am Tisch, 
reagiert.
Ab und an fährt der Tisch für eine halbe Sekunde willkürlich.

Bereits kontrolliert:
Pin Belegung
Software Pin-Belegung
Alles, wie in der Beschreibung angegeben zueinander verdratet.

Wo liegt ggf. das Problem?

Freundliche Grüße
Tobi

von Dennis K. (scarfaceno1)


Lesenswert?

Guten Tag,

ich schließe mich an.

Unkontrolliertes auf und ab nach dem anschließen...

Weiß jemand was?

Ich habe den Interrupt Pin angepasst, aber es funktioniert noch nicht.
Muss die Device ID ebenfalls angepasst werden? Woher weiß ich diese?

Vielen Dank

: Bearbeitet durch User
von lucas (Gast)


Lesenswert?

Hallo zusammen,

zunächst mal bitte ich um Entschuldigung dafür dass ich das Thema 
nochmal aufwärme, aber:

Hat jemand zufällig Zugang zu einem der erwähnten verstellbaren Tische 
mit Memory-Positionen und kann mir einen kleinen Einblick in die 
Verschaltung der Tasten auf dem Bedienfeld geben?

Schöne Grüße

von Thomas ". (tomoliver51)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe auch ein Steuergerät mit zwei Füßen für einen Schreibtisch.
Leider habe ich keine Schaltung von dem Gerät-
Hat jemand dieses Steuergerät schon mal gesehen und einen Plan.
Ich habe versucht einen Plan nach der Leiterplatte zu entwerfen. Fehlt 
noch einiges. Auch die Softwar fehlt.
Vielleicht kann jemand helfen.
mfg
Thomas

von Thomas ". (tomoliver51)


Angehängte Dateien:

Lesenswert?

Habe nach der Leiterplatte versucht den Schaltplan zu erstellen.
Bin mir zwar nicht ganz sicher ob alles stimm, aber es sollte so sein.
Leider habe ich die Software dafür nicht.
Habe schon einige davon repariert.
Meistens waren die Elkos defekt.
Aber mit dem Controller kann ich leider nichts anfangen, da ich leider 
die Software dafür nicht habe.Programmieren könnte ich den mit einem 
GALEP5 den ich habe.Aber ohen hex-file leider nicht möglich

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.