# Vorgehensweise bei der Hardwareprogrammierung



## computersport (2. Okt 2011)

Hallo,

ich bin aus Neugier auf die Idee gekommen ein Rollo zu bauen, dass ich mit einer Software anspreche.

Sollte das irgendwann funktionieren könnte man z.B. zu einer gewünschten Uhrzeit die Rollo's öffnen bzw. schließen lassen. Das Rollo wollte ich selbst mit einem Motor erweitern bzw. bauen.

Meine Frage ist nun, wie bewerkstellige ich so etwas. Geht das überhaupt mit Java? Muss ich evtl. etwas selbst zusammenlöten?

Ich freue mich auf Eure Antworten

compi


----------



## hdi (2. Okt 2011)

> Geht das überhaupt mit Java?



Package 
	
	
	
	





```
java.util.rollo
```



> Muss ich evtl. etwas selbst zusammenlöten?




```
new Rollo();
```
 reicht.

scnr


----------



## XHelp (2. Okt 2011)

Mit nur Java wirst du da nicht weiterkommen. Ohne Grundlagenwissen in Elektrotechnik wirst du das auch nicht hinkriegen. Du könntest einen Mikrokontroller verwenden, und dann ein Mix aus GroJa Rohrmotor GJ 10/16, 130 W, 10 Nm | ELV-Elektronik und Relais mit Logik ansteuern - Mikrocontroller.net machen. Aber dann muss du ja auch noch Sensoren einbauen wann die Rollos nun oben und unten angekommen sind etc. pp.
Aber ohne dich jetzt ärgern zu wollen: lass es sein.


----------



## Andi_CH (3. Okt 2011)

Beschäftige dich lieber mit einer anderen Programmiersprache. Wenn es darum geht Hardware anzusteuern, ist Java, gelinde gesagt, nicht besonders geeignet.
Wenn du allerdings eine industrielle Steuerung verwendest, könnte es sein, dass der Hersteller ein Java-Interface liefert...


----------



## Spacerat (3. Okt 2011)

Java wäre ausreichend, wären die falschen Worte. Wenn du bereits Java beherrscht, hätte ich da was für dich.
1. Ein API um in Java eine serielle Schnittstelle anzusprechen, um z.B. dieses hier anzusteuern und zu programmieren. Sicher, so ein @mega selber lässt sich nicht in Java programmieren aber immerhin schon mal bedienen, wenn man sich dort seine aufwendigen GUIs zusammenklatscht. Das Programmieren des Controllers klappt im übrigen auch mit entsprechendem PlugIn über Eclipse.


----------



## Empire Phoenix (3. Okt 2011)

Nimm nen arduino für die ansteureung, und bau daran noch nen timerchip, dass der intern die uhrzeit tracken kann. Dazu je anch Kenntnissen mit Java/C whatever ein programm, dass einem Erlaubt das verhalten des Roloos über ne gui zu steuern und zu programmieren. Der arduino wird in etwas c-java dialektähnlichen programmiert, kann allerdings aus eignere erfahrungs agen, das die sehr einfach zu programmieren sind.

Arduino - HomePage


----------



## computersport (4. Okt 2011)

Danke für die zahlreichen Antworten. 

Also ich hab kein Problem mir eine andere Programmiersprache anzueignen, wie z. B. C.
Ich werd mir das mal alles näher angucken.

XHelp? Wieso soll ich es sein lassen. Man lernt doch gerade etwas dadurch in dem man sich nen schwieriges Ziel aussucht und alles dafür tut um das in die Realität umzusetzen. Es ist ja nicht so das ich nen Kundenauftrag oder sowas habe.

Mal gucken ob ich das schaffe.

Irgendwann in geraumer Zeit werd ich hier mal meine Fortschritte posten.

greetz


----------



## Spacerat (4. Okt 2011)

@X_Help: Deinen Post hab' ich ja völlig übersehen... Demotiviere doch die Enthusiasten nicht so... XD
@computersport: Du schaffst das... Mit dem Arduino ist das recht simpel. Da gibt es so ein Einstiegspaket für 85,00€. Das wird dich möglicherweise auch noch auf andere mehr oder minder dumme Ideen bringen, mir jedenfalls ging es so. Allerdings ist der UNO für die meisten Dinge wahrlich überzogen bzw. zu groß geraten, meist genügt dann ein Nano oder ein gar ein Pro für jene, die es klein mögen und passend dazu beliebige sog. Shields für z.B. Ethernet, USB oder BlueTooth. Den Uno kannst du in Zukunft stets für neue Experimente verwenden.


----------



## Andi_CH (5. Okt 2011)

computersport hat gesagt.:


> XHelp? Wieso soll ich es sein lassen. Man lernt doch gerade etwas dadurch in dem man sich nen schwieriges Ziel aussucht und alles dafür tut um das in die Realität umzusetzen.



Aber es ist deprimierend an schwierigen Zeilen zu scheitern - der Start mit Hello world ist gar nicht so schlecht - na ja - auch Hello world lässt sich in eine Klasse packen  na ja - es gibt dann Klassiker wie die Towers of Hanoi u.ä.

Ein schwierigeres Programm als die erwähnten darf gar nicht mit programmieren begonnen werden.
(Schon bei den Towers of Hanoi empfielt es sich, sih erst hinzusetzten und darüber nachzudenken)

Mach erst mal eine Analsye und dann ein Design - NACH der ersten Designrunde kannst du entscheiden welche Teile in Hardware gebaut/gekauft, welche Teile der SW in welcher Sprache es schon gibt (Libraries) und welche Teile in welcher Sprache geschrieben werden.

Oder du entscheidest dich nur ein Simulation zu schreiben - auch das kann spannend sein, aber auch da solltest du dir zuerst überlegen wie du was simulierst (Sonnenschein, tageszeit) und wie die Ausgabe aussehen soll.

Und noch eine Warnung: starte zuerst immer ohne GUI, wenn du damit noch keine Erfahrung hast - um die Businesslogik zu entwickeln brauchst du keines, denn das ist ein Projekt für sich.


----------



## Gast2 (5. Okt 2011)

computersport hat gesagt.:


> Wieso soll ich es sein lassen. Man lernt doch gerade etwas dadurch in dem man sich nen schwieriges Ziel aussucht und alles dafür tut um das in die Realität umzusetzen


weil Du bei einer Autofahrt von Hamburg nach München auch den Umweg über Moskau machen kannst


----------



## fastjack (5. Okt 2011)

hm. Also kompliziert ist das mit Java auch nun wieder nicht, zumal es für Chipprogrammierung usw. massig Foren und andere Infos gibt. Der Vorschlag mit dem Simulator ist gut. Ich würde allerdings whl. zuerst mit einer kleinen GUI anfangen, die nur gegen ein Interface arbeitet, das von einfachen Klasse in Form eines Simulators implementiert wird. Dann würdest Du schon mal sehen, was Du letztendlich an Funktionalitäten mindestens brauchst und könntest diese simulieren.
Dann würde ich mich Schritt für Schritt durchhangeln, bis ich irgendwann einmal eine Implementierung hätte, die mit JNI oder irgendeiner Chip-Api arbeitet und den "echten" Zugriff bietet.
Parallel würde ich ein kleines Bild machen, whl. mit Bleistift und Papier, wie alles letztendlich zusammenarbeiten soll und welche Komponenten ich brauche, also GUI, Schnittstelle usw. Wo es geht würde ich JUnit-Tests machen. Ansonsten würde ich mich bei so einem kleinen Privatprojekt nicht zu viel verplanen.


----------



## Spacerat (5. Okt 2011)

Andi_CH hat gesagt.:


> Aber es ist deprimierend an schwierigen Zeilen zu scheitern


Erstklassiger Tippfehler :lol: Soll wohl "Zielen" heissen. Schwierige Zeilen lassen sich wunderbar in mehrere einfache zerlegen. Sollte einen nicht deprimieren.

Meinetwegen, mag ich gut Reden haben, aber so schwierig ist das nicht. Alles was man benötigt, wären geringfügig Grundkenntnisse in der Elektronik - Ohmsches Gesetz, wie funktioniert ein Transistor usw. Was allerdings schwierig werden könnte, das Ganze im Notepad oder ähnlichem hinzubekommen, weil man sog. Sketches programmiert und mindestens ein Tool bzw. Plugin für eine IDE mit Anbindung an das Modul benötigt wird. Dieses Tool findet man auch auf der Arduino-Seite.
Die Planung eines Projekts beschränkt sich auf den Aufbau und das Zusammensetzen der Mechanik und auf das Planen der benötigten Restelektronik (Dazu kann man sich auch noch mal Yenka von Crocodile Clips ansehen). Das ganze nennt sich "Fast Prototyping" und genau dazu wurde das Arduino-Projekt gestartet. Ganz nebenbei: So ein "Hello World"-Ding ist in etwas anderer Form in dem von mir vorgestellten Einsteiger-Paket natürlich enthalten.


----------



## Andi_CH (5. Okt 2011)

Spacerat hat gesagt.:


> Erstklassiger Tippfehler :lol: Soll wohl "Zielen" heissen. Schwierige Zeilen lassen sich wunderbar in mehrere einfache zerlegen.


Och wenn man es richtig anpackt lässen sich auch der Weg zu schwierigen Zielen in einfache Etappen unterteilen, aber ganz sicher nicht indem man von Anfang weiss, dass man Java programmiert, Eclipse startet und gleich "public class Xyz" eintippt...

Nebenbei - du hast einen Punkt verdient - ich mache Fehler ausschliesslich um zu überprüfen, ob auch aufmerksam gelesen wird  :lol:


----------



## Dow Jones (5. Okt 2011)

Also mal vorausgesetzt das du bereits ein elektrisches Rollo hast: Da wird es ja irgendwo einen Schalter für geben. Diesen Schalter müsste man dann ja nur noch durch eine (vom Computer gesteuerte) Leitung ersetzen. Das sollte man doch auch mithilfe des Packages javax.comm hinbekommen können. Ansonsten wirst du wohl wirklich mehr Freude haben wenn du dich mit C vertraut machst.

Wenn es dir nur um zeitgesteuertes Hoch-/Herunterfahren des Rollos geht, da könntest du aber auch einen billigen Wecker für kaufen, und den zur Bedienung des Schalters heranziehen. Ist natürlich nicht so elegant wie einen Microcontroller zu programmieren, aber weitaus einfacher. 
Auf jeden Fall solltest du Grundkenntnisse in Elektrotechnik haben, schon allein um mal nachzumessen welcher Strom durch den Rollomotor/Schalter fliesst. Sonst wird deine Anlage (oder du) ganz schnell gegrillt... Eine galvanische Trennung ist da auf jeden Fall angebracht. Im Zweifel würde ich das ganze von jemand fachkundigem begutachten lassen, bevor ich's in Betrieb nehme.


----------



## Cornyfree (13. Okt 2011)

Ich finde die Idee sehr mutig einfach mal selbst seine Rollos mit Motor und Java Steuerung zu steuern 

Ich war nicht so mutig und hab mit einfach mal Rollos mit Funksteuerung gekauft und bin damit sehr zufrieden, vielleicht ist das eine Alternative ?!

Wenn du trotz der "motivierende" Beitrage der anderen User dich nicht abbringen solltest wünsche ich dir viel Glück ! Und wenn es klappt zeig paar Fotos und schreib ein Erfahrungsbericht, darauf bin ich gespannt !

Glück Auf
Cornyfree


----------



## fastjack (13. Okt 2011)

mal noch was zur Motivation:

https://wiki.jenkins-ci.org/display/JENKINS/Lava+Lamp+Notifier


----------



## TheDarkRose (13. Okt 2011)

Wenn man einen 12V oder 24V Motor verwendet, kann man ruhig herumexperimentieren, bei diesen Spannungen ist alles gefahrlos


----------

