Show Posts
|
|
Pages: [1] 2 3 ... 26
|
|
1
|
International / Deutsch / Re: Projekt: LCDMenuLib - Menüs mit mehreren Ebenen ( Tree-Model / Nested Set )
|
on: June 18, 2013, 02:03:34 am
|
Hi, ich habe an der Lib gestern ein Update durchgeführt Neu- Scrollbalken nun so wie bei Internetseiten. Bei einem 16x2 Display mit 8 Stufen, bei 20x4 mit 16 Stufen. Siehe Bilder im Anhang. Der Scrollbalken wird weiterhin nur angezeigt, wenn mehr Einträge als Zeilen vorhanden sind.
- Scrollbalken kann über eine Config-Datei auf den alten zurückgesetzt werden oder komplett deaktiviert werden.
Der alte Scrollbalken belegt in etwa 300 Bytes im Flash, der neue 1000 Bytes. Die Änderung muss hier durchgeführt werden: arduino/libraries/LCDMenuLib/LCDMenuLib_config.h
//0 = kein Scrollbalken //1 = komplexer Scrollbalken (neu) //2 = alter einfacher Scrollbalken #define _LCDMenuLib_cfg_scrollbar 1
- es wurde ein Keyfile hinzugefügt, so dass die Funktionen nun vom Syntaxhighliting profitieren
Änderungen- alle "__" doppelten Unterstriche wurden entfernt, da solche Bezeichnungen für Preprocessor Variablen vorbehalten sein sollten
- Kompatibilitätstests durchgeführt zu Arduino 1.0.5
- Initialisierung weiter vereinfacht, in dem der Quellcode sich in der Lib befindet und nur Makros aufgerufen werden. Lang Tabelle und Zuordnung der Funktionen entfallen.
- Die defines beginnen nun alle mit _LCDMenuLib_......, dadurch sind sie eindeutig und kommen nicht mit anderen Libs durcheinander
Falls durch die vielen Änderungen Fehler entstanden sind, dann meldet diese bitte hier!
|
|
|
|
|
2
|
International / Deutsch / Re: Arduino über Fremdwebseite steuern
|
on: June 17, 2013, 10:26:29 am
|
Ja. Der Arduino läuft als TCP Server. Ich glaub das ist eine Funktion die man am Arduino aktivieren kann. Ich kann dir das aber nicht genau sagen, da der Arduino bei mir über eine andere Komponente im Netzwerk hängt. mit folgendem Code kannst du einen Socket öffnen über den du nun Daten schicken oder lesen kannst. //socket verbindung $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); socket_connect($socket, '192.168.178.50', 20108) or die("connect!");
Mein Arduino hat die IP 192.168.178.50 und den PORT 20108. Dies musst du bei dir anpassen. Der folgende Code überprüft ob die GET Parameter gesetzt sind. und sendet dann den Inhalt von prog an den arduino. Der Link könnte wie folgt aussehen http://NAS_WEBSERVER_IP/connect_arduino.php?prog=parameter1_parameter2_parameter_3Ich habe nun den "_" Unterstrich als Trennzeichen gewählt. Auf dem Arduino trenne ich die Paramter wieder. // get parameter von der internetseite if(isset($_GET['prog'])) { //parameter an arduino übertragen socket_write($socket, $_GET['prog']."\0") or die("write"); //antwort abwarten, (der controller sendet ein 'ack' als bestätigung) $data = @socket_read($socket, 1024, PHP_NORMAL_READ); }
//socket schließen socket_close($socket);
Hier werden auch Daten vom Arduino Empfangen. Ich mache es so, dass sobald Daten angekommen sind der Arduino eine Antwort "ack" zurückschickt, und bestätigt das er die Daten erhalten hat. Die Daten werden im Moment nicht weiter ausgewertet, es diente nur zu Testzwecken. Für die Theorie zu Sockets empfehle ich dir die Grundlagen: Wiki: Sockets
|
|
|
|
|
3
|
International / Deutsch / Re: Arduino über Fremdwebseite steuern
|
on: June 17, 2013, 06:52:53 am
|
Ich habe auch auf dem NAS einen Webserver am laufen. Die meisten unterstützen PHP. Die PHP Code könnte dann wie folgt aussehen: <?php //socket verbindung $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); socket_connect($socket, '192.168.178.50', 20108) or die("connect!");
// get parameter von der internetseite if(isset($_GET['prog'])) { //parameter an arduino übertragen socket_write($socket, $_GET['prog']."\0") or die("write"); //antwort abwarten, (der controller sendet ein 'ack' als bestätigung) $data = @socket_read($socket, 1024, PHP_NORMAL_READ); }
//socket schließen socket_close($socket);
$img_min = '<img src="img/min.png" width="80" />'; $img_mm = '<img src="img/2uparrow.png" width="80" />'; $img_m = '<img src="img/1downarrow.png" width="80" />'; $img_p = '<img src="img/1uparrow.png" width="80" />'; $img_pp = '<img src="img/2downarrow.png" width="80" />'; $img_max = '<img src="img/max.png" width="80" />';
?> <!DOCTYPE html> <html> <head> <meta charset='utf-8'><meta name='apple-mobile-web-app-capable' content='yes' /> <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'> <meta name='viewport' content='width=device-width, user-scalable=no'> <title>Haus-Steuerung</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" /> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
<script> function process() { var url="http://us01.proxy.teleduino.org/api/1.0/328.php?k=26663120E8F8D53D76807CAC341CAB90&r=setServo&servo=0&position=" + document.getElementById("one").value; location.href=url; return false;
} </script> </head> <body style="background-color: #111;">
<form id="color_change" method="post" action=""> <div data-role="fieldcontain">
<label for="slider_red">Rot:</label>
<input type="range" name="slider_red" id="slider_red" value="0" min="0" max="100" onmouseup="document.forms['color_change'].submit()"/> <label for="slider_green">Grün:</label>
<input type="range" name="slider_green" id="slider_green" value="0" min="0" max="100" /> <label for="slider_blue">Blau:</label>
<input type="range" name="slider_blue" id="slider_blue" value="0" min="0" max="100" /> <br /> <label for="slider_dimmer">Dimmer:</label>
<input type="range" name="slider_dimmer" id="slider_dimmer" value="0" min="0" max="100" /> </div> </form>
</p>
</body> </html>
Im Arduino kann man die Strings wie gehabt verarbeiten, du brauchst nur nicht mehr nach \GET zu filtern sondern vielleicht nach &variable_name=wert Ob dein NAS PHP Unterstützt findest du raus wenn du eine Datei namens index.php erstellst und folgenden Inhalt einfügst: <?php
phpinfo();
?>
Dort wird dir auch angezeigt welche Module aktive sind.
|
|
|
|
|
4
|
International / Deutsch / Re: Arduino über Fremdwebseite steuern
|
on: June 17, 2013, 06:35:15 am
|
|
Also du kannst den Code in beliebige Internetseiten einbinden. Nur ist es auf dem Arduino nicht möglich eine etwas kompliziertere Benutzerverwaltung einzurichten.
Besser ist es, falls schon ein Webserver irgendwo existiert, keine Internetseite auf dem Arduino zu implementieren, sondern direkt die ganze Benutzerschnittstelle auf dem Server laufen zu lassen und nur die Steuerdaten zu übertrage.
Ich nutze das zweite Beispiel nun seit längerer Zeit. Sobald ich auf die Website auf dem Server zugreife öffnet dieser eine Socket Verbindung zum Arduino und überträgt meine Eingaben. Zudem kann der Server auch eine gescheite Fehlermeldung zurückgeben, falls ein Fehler beim Verbindungsaufbau auftritt.
|
|
|
|
|
6
|
International / Deutsch / Re: Begrüßung und Frage zur Arduino Software
|
on: June 14, 2013, 10:11:21 am
|
|
Hi, bist du dir den sicher, dass du unter "Tools->Board" den richtigen Kontroller ausgewählt hast ?
Weil: Binary sketch size: 5478 bytes (of a 32256 byte maximum)
deutet darauf hin, das du nicht den Mega 2560 ausgewählt hast da dieser mehr Flash Speicher besitzt (256 KB anstatt den 32KB die angezeigt werden).
Eigentlich wird diese Einstellung von der Software gespeichert, außer man hat bei diesem Ordner aus versehen den Schreibschutz aktiviert.
Kannst du das mal bitte Überprüfen ?
Edit: Kann aber auch sein, das irgend eine andere Software auf dem PC auf dem Port zugreift und diesen blockiert. Es ist eigentlich nicht normal das die Software sich nach 2 - 3 Uploads aufhängt und den Port dauerhaft blockiert.
|
|
|
|
|
7
|
International / Deutsch / Re: Begrüßung und Frage zur Arduino Software
|
on: June 13, 2013, 01:03:38 pm
|
|
Wie lautet denn die Fehlermeldung ? Es gibt alternativen, aber die sind nicht für Anfänger geeignet, da man einiges Anpassen muss.
z.B: Atmel Stduio mit Arduino Addin oder Visual Studio mit Arduino Addin
Das Addin ist leider nicht kostenlos.
|
|
|
|
|
8
|
International / Deutsch / Re: TMS320C2x DSP Starter Kit
|
on: June 13, 2013, 10:55:42 am
|
|
Ich bin immer noch gespannt was du mit dem Chip vorhast ? Kannst du deine Ideen näher beschrieben oder ist es streng geheim ? Oder nur um Assembler nochmal zu erlernen, bzw das erlernte nicht zu vergessen ?
|
|
|
|
|
13
|
International / Deutsch / Re: Arduino zu Langsam?
|
on: June 10, 2013, 08:14:18 am
|
Die Kombination Lichtschranke/Relais verstehe ich nicht so recht. Hast du mal einen Schaltplan parat?
Es gibt sehr viele Lichtschrankenbausätze die mit einem Relais arbeiten, ich habe damals auch mal so angefangen, wo ich noch keinen Arduino hatte. Daher geh ich mal davon aus das der Ersteller dieses Themas auch so einen verwendet. 
|
|
|
|
|
14
|
International / Deutsch / Re: Arduino zu Langsam?
|
on: June 10, 2013, 07:52:41 am
|
Das ist schon mal gut das kein delay() in der Loop Schleife vorhanden ist. Wieso dein Programm nun zu langsam ist, kann ich dir nicht sagen. Wenn du schnelle Impulse z.B: von Lichtschranken auswerten willst, musst du mit einem Interrupt arbeiten. Alle Arduinos besitzen 2 oder mehr Interrupts die herausgeführt sind. Mehr dazu: http://arduino.cc/de/Reference/AttachInterrupt
|
|
|
|
|
15
|
International / Deutsch / Re: Vorschläge/Tipps gesucht: rechner/hardware für processing
|
on: June 10, 2013, 02:41:21 am
|
Also ich weiß im Moment nicht genau was du mit "processing" meinst. Soll darauf die Arduino Umgebung laufen, dann wird das nicht klappen. Ein Webserver mit MySql und PHP läuft darauf. Das Betriebssystem auf dem Qnap ist meist Debian bzw Linux ähnlich. Eigene Packete können im iPKG Format eingebunden werden. Ich habe es so gemacht, das ich den Arduino ein Netzwerk Interface mit dem Webserver verbunden habe. Da das ganze lokale ist und alle Wege zum Internet über IP Räume gesperrt sind, funkt mir von außen so schnell keiner dazwischen. Ich verwende ein ähnliches NAS 212-T da ich zwei Festplatten im Raid 1 laufen lasse als Backup Lösung.
|
|
|
|
|