Hauptseite/MotorLeinwand: Unterschied zwischen den Versionen

Aus C3MAWiki
Wechseln zu: Navigation, Suche
(Hardware)
(Software Schnittstelle hinzugefügt)
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
 
= Motor Leinwand =
 
= Motor Leinwand =
  
[[Datei:leinwandsetup.png]]
+
== Benutzer-Schnittstelle ==
 +
=== Eingabe ===
 +
Die Steuerung hat folgende Taster, über die Eingaben gemacht werden können:
 +
{| border="1"
 +
! align="left"| Taster
 +
! Funktion
 +
|-
 +
| Hoch
 +
| Muss für mindestens 100ms gedrückt werden um die Leinwand einzurollen
 +
|-
 +
| Stop
 +
| Muss für mindestens 100ms gedrückt werden um jegliche Bewegungen zu stoppen
 +
|-
 +
| Runter
 +
| Muss für mindestens 100ms gedrückt werden um die Leinwand abzurollen
 +
|}
 +
 
 +
=== Ausgabe ===
 +
Der Schalter hat eine LED, welche mit folgenden Farben Status ausgibt
 +
{| border="1"
 +
! align="left"| Farbe
 +
! Zustand
 +
|-
 +
| Blaues Blinken
 +
| Nach einem WLAN wird gesucht
 +
|-
 +
| Rotes Blinken
 +
| Achtung! Leinwand fährt nach unten
 +
|-
 +
| Grünes Blinken
 +
| Achtung! Leinwand fährt nach oben
 +
|}
 +
 
 +
== Software Schnittstelle ==
 +
 
 +
Neben den physikalischen Knöpfen kann die Leinwand auch über MQTT gesteuert werden:
 +
mosquitto_pub -h bigbrother -t "/room/screen/command" -m "up"
 +
mosquitto_pub -h bigbrother -t "/room/screen/command" -m "down"
 +
mosquitto_pub -h bigbrother -t "/room/screen/command" -m "stop"
 +
 
 +
=== Zustände der Leinwand in MQTT ===
 +
Die Leinwand gibt ihre aktuelle Zustand über MQTT mit folgender Abfrage
 +
mosquitto_sub -h bigbrother -v -t "/room/screen/state"
 +
aus
  
== Controller Beschaltung ==
+
Leinwand rollt sich ab
 +
/room/screen/state movingdown
 +
Durch Benutzer oder MQTT angehalten
 +
/room/screen/state stop
 +
Leinwand rollt sich auf
 +
/room/screen/state movingup
 +
Leinwand ist komplett aufgerollt
 +
/room/screen/state up
 +
Leinwand ist komplett abgerollt
 +
/room/screen/state down
  
Die Steuerung nutzt einen Atmega8 16PU. Dabei wurden die folgenden Pins gefunden:
+
=== Fortschritt der Leinwand in MQTT ===
# PC5 '''Motor abwärts'''
+
Während die Leinwand sich bewegt kann die aktuelle Höhe abgefragt werden:
# PC4 '''Motor hoch'''
+
mosquitto_sub -h bigbrother -v -t "/room/screen/percent"
# PB5 '''Pin1''' Triggert ''hochziehen'' der Leinwand
+
Wenn die Leinwand heruntergefahren wird:
# PB4 '''Pin2''' Triggert ''herunterlassen'' der Leinwand
+
/room/screen/percent 100
# PB3 '''Pin3''' Triggert ''Stop'' der Leinwand
+
/room/screen/percent 98
# VCC 5V
+
/room/screen/percent 97
# GND 0V ;-)
+
...
  
Die Pins1-3 werden dann über das Netzwerkkabel zur Verfügung gestellt.
+
 
 +
== Elektronik ==
 +
=== Schalten ===
 +
Die Releais müssen auf GND gezogen werden, um geschaltet zu werden.
 +
(Die Eingänge im Mikrocontroller sind via Pull-up nach oben gezogen)
  
 
== RJ45 Pinbelegung ==
 
== RJ45 Pinbelegung ==
Zeile 26: Zeile 82:
 
! Funktion
 
! Funktion
 
|-
 
|-
| 1
+
| 2
| PB4
+
| 14V
| Herunter
+
| Saft
 
|-
 
|-
 
| 3
 
| 3
| PB3
+
|  
| Stop
+
| Runter
|-
 
| 5
 
| AVCC
 
| Saft
 
 
|-
 
|-
 
| 6
 
| 6
Zeile 43: Zeile 95:
 
|-
 
|-
 
| 7
 
| 7
| PB5
+
|  
 
| Hoch
 
| Hoch
 
|}
 
|}
Zeile 49: Zeile 101:
 
[https://de.wikipedia.org/wiki/RJ-Steckverbindung#Zuordnung_von_RJ-Beschaltungsvarianten_zu_in_Europa_gebr.C3.A4uchlichen_Modularstecker-Bauformen Erklärung zu RJ45 (8P8C) Pinbelegung]
 
[https://de.wikipedia.org/wiki/RJ-Steckverbindung#Zuordnung_von_RJ-Beschaltungsvarianten_zu_in_Europa_gebr.C3.A4uchlichen_Modularstecker-Bauformen Erklärung zu RJ45 (8P8C) Pinbelegung]
  
== Notabschaltung ==
+
== Software ==
 +
 
 +
=== Notabschaltung ===
  
 
Die Motorsteuerung ist über Mechanische Endschalter (Endstopps) gelößt. D.h. die Software kann die "Hoch" oder "Runter" Befehle ewig senden.
 
Die Motorsteuerung ist über Mechanische Endschalter (Endstopps) gelößt. D.h. die Software kann die "Hoch" oder "Runter" Befehle ewig senden.
Zeile 69: Zeile 123:
 
[[Datei:LeinwandZustaende.png]]
 
[[Datei:LeinwandZustaende.png]]
  
== Hardware ==
+
== Aufbau ==
 +
 
 +
=== Version 2.0 ===
 +
Hier wird die Steuerung komplett im Schalter mit einem ESP realisiert.
 +
<gallery>
 +
Datei:IMG_20160518_190923_small.jpg | ESP8266-Schalter
 +
</gallery>
 +
 
 +
=== Version 1.0 ===
 +
Diese Version hatte das originale Board mit einer neuen Software verwendet
 +
<gallery>
 +
Datei:leinwandcontroller.jpg | Orginal Mikrocontoller
 +
Datei:IMG_20140529_182052.jpg | Schalter
 +
Datei:IMG_20140529_185907.jpg | Test setup
 +
Datei:IMG 20140529 192935.jpg | Remote Erweiterung
 +
</gallery>
 +
 
 +
== Halterung ==
 
<gallery>
 
<gallery>
Datei:leinwandcontroller.jpg|Orginal Mikrocontoller
+
Datei:IMG 20150616 190635.jpg | Konstruktion
Datei:leinwandschalter.jpg|Schalter
+
Datei:IMG 20150616 173055.jpg | Halterungs Winkel
Datei:leinwandtestsetup.jpg|Test setup
+
Datei:IMG 20150616 190615.jpg | Frontal Ansicht
Datei:leinwandRemotePimping.jpg|Remote Erweiterung
 
 
</gallery>
 
</gallery>
  

Aktuelle Version vom 23. Juni 2016, 19:05 Uhr

Dies ist ein Projekt, an dem momentan aktiv gearbeitet wird. Wenn du Fragen hast oder mitarbeiten möchtest, wende dich an Ollo.


Motor Leinwand

Benutzer-Schnittstelle

Eingabe

Die Steuerung hat folgende Taster, über die Eingaben gemacht werden können:

Taster Funktion
Hoch Muss für mindestens 100ms gedrückt werden um die Leinwand einzurollen
Stop Muss für mindestens 100ms gedrückt werden um jegliche Bewegungen zu stoppen
Runter Muss für mindestens 100ms gedrückt werden um die Leinwand abzurollen

Ausgabe

Der Schalter hat eine LED, welche mit folgenden Farben Status ausgibt

Farbe Zustand
Blaues Blinken Nach einem WLAN wird gesucht
Rotes Blinken Achtung! Leinwand fährt nach unten
Grünes Blinken Achtung! Leinwand fährt nach oben

Software Schnittstelle

Neben den physikalischen Knöpfen kann die Leinwand auch über MQTT gesteuert werden:

mosquitto_pub -h bigbrother -t "/room/screen/command" -m "up"
mosquitto_pub -h bigbrother -t "/room/screen/command" -m "down"
mosquitto_pub -h bigbrother -t "/room/screen/command" -m "stop"

Zustände der Leinwand in MQTT

Die Leinwand gibt ihre aktuelle Zustand über MQTT mit folgender Abfrage

mosquitto_sub -h bigbrother -v -t "/room/screen/state"

aus

Leinwand rollt sich ab

/room/screen/state movingdown

Durch Benutzer oder MQTT angehalten

/room/screen/state stop

Leinwand rollt sich auf

/room/screen/state movingup

Leinwand ist komplett aufgerollt

/room/screen/state up

Leinwand ist komplett abgerollt

/room/screen/state down

Fortschritt der Leinwand in MQTT

Während die Leinwand sich bewegt kann die aktuelle Höhe abgefragt werden:

mosquitto_sub -h bigbrother -v -t "/room/screen/percent"

Wenn die Leinwand heruntergefahren wird:

/room/screen/percent 100
/room/screen/percent 98
/room/screen/percent 97
...


Elektronik

Schalten

Die Releais müssen auf GND gezogen werden, um geschaltet zu werden. (Die Eingänge im Mikrocontroller sind via Pull-up nach oben gezogen)

RJ45 Pinbelegung

RJ45 Pin Mikrocontroller Pin Funktion
2 14V Saft
3 Runter
6 GND
7 Hoch

Erklärung zu RJ45 (8P8C) Pinbelegung

Software

Notabschaltung

Die Motorsteuerung ist über Mechanische Endschalter (Endstopps) gelößt. D.h. die Software kann die "Hoch" oder "Runter" Befehle ewig senden. Daher muss eigentlich nie der Zustand Hoch / Runter verlassen werden. Um die Relais und zu Entlasten wurde folgende Rechnung durchgeführt: Maximale-Leinwand Länge sei 200cm

Achse auf der die LW aufgerollt ist hat einen Durchmesser von 6cm U = 2*pi*r = pi*d => ca 10 Umdrehungen fürs komplette Ab/ Aufrollen

Motor hat 10 r/min

Nach 1min ist die Leinwand komplett ausgerollt Nach 1min x sec kommt man immer in den Timeout

LeinwandZustaende.png

Aufbau

Version 2.0

Hier wird die Steuerung komplett im Schalter mit einem ESP realisiert.

Version 1.0

Diese Version hatte das originale Board mit einer neuen Software verwendet

Halterung

Software

Der aktuelle Stand der Software-Entwicklung ist in unserem Github zu finden: https://github.com/C3MA/MotorLeinwand