Hauptseite/MotorLeinwand: Unterschied zwischen den Versionen

Aus C3MAWiki
(Erste beschreibung)
 
(Software Schnittstelle hinzugefügt)
 
(23 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:öffentlich]]
{{aktives Projekt|Kontakt=Ollo|öffentlich=ja}}
= Motor Leinwand =
= Motor Leinwand =


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


Die Steuerung nutzt einen Atmega8 16PU. Dabei wurden die folgenden Pins gefunden:
# PC5 '''Motor abwärts'''
# PC4 '''Motor hoch'''
# PB5 '''SCK (SPI)'''
# PB4 '''MISO (SPI)'''
# PB3 '''MOSI (SPI)'''


Die SPI-Leitungen 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)


== Notabschaltung ==
== RJ45 Pinbelegung ==
 
{| border="1"
! align="left"| RJ45 Pin
! Mikrocontroller Pin
! Funktion
|-
| 2
| 14V
| Saft
|-
| 3
|
| Runter
|-
| 6
| GND
|
|-
| 7
|
| Hoch
|}
 
[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]
 
== 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 30: Zeile 121:
'''Nach 1min x sec kommt man immer in den Timeout'''
'''Nach 1min x sec kommt man immer in den Timeout'''


[[Datei:LeinwandZustaende.jpg]]
[[Datei:LeinwandZustaende.png]]
 
== 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>
Datei:IMG 20150616 190635.jpg | Konstruktion
Datei:IMG 20150616 173055.jpg | Halterungs Winkel
Datei:IMG 20150616 190615.jpg | Frontal Ansicht
</gallery>


== Hardware ==
== Software ==
[[Datei:leinwandcontroller.jpg]]
Der aktuelle Stand der Software-Entwicklung ist in unserem Github zu finden:
'''https://github.com/C3MA/MotorLeinwand'''

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