Hauptseite/MotorLeinwand: Unterschied zwischen den Versionen

Aus C3MAWiki
(Software Schnittstelle hinzugefügt)
 
(9 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
|}


== Controller Beschaltung ==
=== 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
|}


Die Steuerung nutzte einen Atmega8 16PU.
== Software Schnittstelle ==
Jetzt ist ein Atmega8 8U im Einsatz. Dabei werden die folgenden Pins verwendet:
# PC5 '''Motor abwärts'''
# PC4 '''Motor hoch'''
# PB5 '''Pin1''' Triggert ''hochziehen'' der Leinwand
# PB4 '''Pin2''' Triggert ''herunterlassen'' der Leinwand
# PB3 '''Pin3''' Triggert ''Stop'' der Leinwand
# VCC 5V
# GND 0V ;-)


Die Pins1-3, GND und VCC werden dann über das Netzwerkkabel zur Verfügung gestellt. (sieh nächstes ''Kapitel'')
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 ===
=== Schalten ===
Die Pins (Pin1 - 3) müssen auf GND gezogen werden, um geschaltet zu werden.
Die Releais müssen auf GND gezogen werden, um geschaltet zu werden.
(Die Eingänge im Mikrocontroller sind via Pull-up nach oben gezogen)
(Die Eingänge im Mikrocontroller sind via Pull-up nach oben gezogen)


Zeile 31: Zeile 82:
! Funktion
! Funktion
|-
|-
| 1
| 2
| PB4
| 14V
| Herunter
| Saft
|-
|-
| 3
| 3
| PB3
|  
| Stop
| Runter
|-
| 5
| AVCC
| Saft
|-
|-
| 6
| 6
Zeile 48: Zeile 95:
|-
|-
| 7
| 7
| PB5
|  
| Hoch
| Hoch
|}
|}
Zeile 54: 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 74: 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>
<gallery>
Datei:leinwandcontroller.jpg | Orginal Mikrocontoller
Datei:leinwandcontroller.jpg | Orginal Mikrocontoller
Zeile 80: Zeile 138:
Datei:IMG_20140529_185907.jpg | Test setup
Datei:IMG_20140529_185907.jpg | Test setup
Datei:IMG 20140529 192935.jpg | Remote Erweiterung
Datei:IMG 20140529 192935.jpg | Remote Erweiterung
</gallery>
== Halterung ==
<gallery>
Datei:IMG 20150616 190635.jpg | Konstruktion
Datei:IMG 20150616 173055.jpg | Halterungs Winkel
Datei:IMG 20150616 190615.jpg | Frontal Ansicht
</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

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