Loading...
  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
Code:
//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_INETSOCK_STREAM0) 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_3
Ich 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($socket1024PHP_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_INETSOCK_STREAM0) 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($socket1024PHP_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.
5  International / Deutsch / Re: Mit 12V Bauteilen arbeiten? on: June 15, 2013, 08:06:01 am
@ Uwe, mit welchem Programm hast du den Schaltplan erzeugt ?
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 ?
9  International / Deutsch / Re: TMS320C2x DSP Starter Kit on: June 13, 2013, 10:26:59 am
Wozu benötigt man den Chip dann ? Was genau hast du vor ?
10  International / Deutsch / Re: Arduino-Oszilloskop - [Nano Version] on: June 13, 2013, 10:00:05 am
Ich kann bei der Implementierung der FFT wohl helfen. Zeit habe ich erst ab dem 10.07 da dann der Klausurenzeitraum zu Ende ist ;-). Noch steck ich da voll im Stoff ;-)
11  International / Deutsch / Re: Verständnisfrage zur RS232 on: June 12, 2013, 02:46:16 pm
Wie kommst du beim Spannungsteiler auf die Werte der Widerstände?  Ansonsten sieht das ganz gut aus. Der IC für die Versorgungsspannung sieht gut aus.
12  International / Deutsch / Re: Ein paar allgemeine Programmierfragen on: June 12, 2013, 02:36:29 pm
Aus diesem Grund habe ich für mich und andere freiwillige diese Lib geschrieben:
Projektvorstellung: einfache Threads auf dem Arduino mit Hilfe von Makros

Das hier nicht wirklich "nichts" passiert ist mir schon klar, aber es ist einfacher verschachtelte Programme aufzubauen in denen einige Funktionen immer zeitversetzt oder eventbasiert aufgerufen werden
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. smiley
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.
Pages: [1] 2 3 ... 26