This is a little project. I used PHP on the net, Python on my computer and TVout on my arduino. I'm not a programmer or an electronician, so be kind
In fact, you can type what you want on http://www.lucboutier.com EzScreen section, it will be print on a TFT screen in france. There you can see a video
I don't have any ETH shield, so at this moment, the system must be connected to à PC in order to work.
Thanks for making this forum alive, I learned so much things here !
Je vais prendre le temps de compléter ce projet. J'ai découvert un outil génial (Et oui, les bleu-bites s’étonnent de tout ) : les relais ! Donc je vais conserver la partie gare du projet, remettre la page de contrôle en ligne, et ajouter la possibilité de piloter un train électrique (Sur du 12 volts) toujours depuis mon site. J'espère mener à bien cet ajout d'ici dimanche, et vous serez les premiers informés de la disponibilité de la page web
Salut ! Alors concernant le code, je suis auto-didacte, et il est sale de chez sale, en fait je me contente d'un résultat qui fonctionne et avec mes études dans un tout autre domaine, je n'ai pas le temps que je voudrais pour pouvoir me perfectionner... Merci donc d'être indulgent
@mcvovol54 : J'ai tenté un autre projet, mais à base de legos mindstorm nxt. C'est un robot pilotable depuis une appli facebook... Le téléphone reçoit les instructions par le biais de la 3G, et pilote le robot par bluetooth, peut-être que cela peut te donner des idées pour ton hexapode (J'ai vu le projet, ambitieux, et très intéressant tu peux trouver une vidéo à cette adresse :
Concernant ma gare pilotée par le net
Le script python (qui tourne sur le PC, connecté à l'Arduino en USB par le biais du port com9)
Code:
#-*- coding: cp1252 -*- import urllib cmd = [] print "connecté" print "Le programme tourne" import serial
a = 0 b = 0 c = 0 d = 0 e = 0 f = 0
def recup():
a1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum1.txt") ## Récup des valables; 1 fichier par led
f1 = urllib.urlopen("http://www.lucboutier.com/arduino/stop.txt")## Cette variable permet de couper le script, sinon, tuer le script sur le PC laisse le port com9 oqp time.sleep(1) if f1.readline == "STOP\r\n": print 'killed !' ser.close() if a1.readline != "": a = a1.readline() if a == "1a\r\n": ser.write("a")
if a == "1e\r\n": ser.write("b") if b1.readline != "": b = b1.readline() if b == "2a\r\n": ser.write("c")
if b == "2e\r\n": ser.write("d") if c1.readline != "": c = c1.readline() if c == "3a\r\n": ser.write("e")
if c == "3e\r\n": ser.write("f") if d1.readline != "": d = d1.readline() if d == "4a\r\n": ser.write("g") if d == "4e\r\n": ser.write("h")
if e1.readline != '': e = e1.readline() if e == "5a\r\n": ser.write("i") if e == "5e\r\n": ser.write("j")
recup() print "ouverture du port" ser = serial.Serial() ser.setPort("COM9") ser.baudrate = 57600 ser.close() ser.open() print "port ouvert" recup() if (ser.isOpen()): recup()
Et le code qui tourne sur le arduino, non commenté
void loop() { if(Serial.available() >= 0){ switch( byte( Serial.read() )) { case 'a': digitalWrite(13, HIGH); break; case 'b': digitalWrite(13, LOW); // set the LED on break; case 'c': digitalWrite(12, HIGH); break; case 'd': digitalWrite(12, LOW); // set the LED on break; case 'e': digitalWrite(11, HIGH); break; case 'f': digitalWrite(11, LOW); // set the LED on break; case 'g': digitalWrite(10, HIGH); break; case 'h': digitalWrite(10, LOW); // set the LED on break;
case 'i': digitalWrite(9, HIGH); break;
case 'j': digitalWrite(9, LOW); // set the LED on break; case 'k': digitalWrite(8, HIGH); break; case 'l': digitalWrite(8, LOW); // set the LED on break; case 'm': digitalWrite(7, HIGH); break; case 'n': digitalWrite(7, LOW); // set the LED on break; case 'o': digitalWrite(6, HIGH); break; case 'p': digitalWrite(6, LOW); // set the LED on break;
case 'q': digitalWrite(2, HIGH); break; case 'r': digitalWrite(2, LOW); // set the LED on break; }
Concernant la latence, elle est prévue en fait, j'ai rajouté des time sleep pour éviter un erreur qui survenait et qui annonçait que l'hôte avait fermé la connexion ! Sans ces time sleep (5 sec, 1 sec par lecture de fichier), le temps de latence est inférieur à 1 seconde, mais le script plant dans les 25 min.
J'ai utilisé un arduino avec 5 LED et 5 résistances 330ohms pour le hardware.
Pour le soft, le principe est simple : La page php publie la demande de l'utilisateur dans 5 fichiers txt sur le serveur, un script python lit ces valeurs dans les 5 fichiers et commande l'arduino par le biais d'un lien serial. L'arduino reçoit en fait des valeurs qu'il interprète en "allumage / extinction".
Je voulais partager avec vous mon tout premier projet Arduino C'est une approche de domotique contrôlable par internet...
Je trouve ce matériel complétement incroyable. Je rêve de pouvoir faire ce que permet de faire un Arduino depuis tout gamin Je n'ai pas de connaissances poussées en électronique, je suis plus banché programmation.
Pas beaucoup d’intérêt, juste une envie de partager mon enthousiasme !
Do you have any idea how I can wire this 128x64 px screen ? I tried to find a datasheet on the net, but I find nothing... Is there a method in order to know how does it works ?