Draguignan (Var)
Offline
Jr. Member
Karma: 0
Posts: 71
Arduino, voila une bonne invention...
|
 |
« Reply #105 on: June 29, 2011, 10:59:32 am » |
Jean François excuse moi si je n'ai pas donné suite a ton exemple a titre d'exercice concernant le carré de 100 de coté, j'avais preparé ton exemple que j'avais égaré et que je viens de retrouver, donc j'ai bien un rectangle de couleur bleu en haut et de couleur marron en bas, avec comme ligne mediane des deux rectangles.
Voici le code que j'ai adopté selon ton exemple:
lcd.fillRect(0, 0, 319, 120, RGB(0,0,255)); // trace un rectangle plein bleu lcd.fillRect(0, 120, 319, 239, RGB(152,52,2)); // trace un rectangle plein marron
J'essaye (sans succés) de faire incliner cette ligne a gauche ou a droite avec le MMA7260 mais je ne sais pas comment faire, as tu une idée lumineuse ? Je crois qu'il fallait passer tout simplement par de la trigo..
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #106 on: June 29, 2011, 11:35:51 am » |
Ma solution est purement graphique, ce qui la rend plus simple que de passer par de la trigo  Tu fais un carré bleu, avec en son centre une ligne brune. Ensuite tu modifies ta ligne avec cette exemple (à modifier pour ton écran): roll = int(valeur du capteur)-valeur du capteur au repos ; int roll_L = 250+roll; // extrémité gauche de la ligne int roll_R = 250-roll; // extrémité droite de la ligne
line(0, roll_L, 399, roll_R); //dessine la ligne d'horizon
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Draguignan (Var)
Offline
Jr. Member
Karma: 0
Posts: 71
Arduino, voila une bonne invention...
|
 |
« Reply #107 on: June 30, 2011, 11:34:21 am » |
Je vais essayer ce code, je te tiens au courant..
|
|
|
|
|
Logged
|
|
|
|
|
Draguignan (Var)
Offline
Jr. Member
Karma: 0
Posts: 71
Arduino, voila une bonne invention...
|
 |
« Reply #108 on: June 30, 2011, 12:29:32 pm » |
Voila, j'ai inseré ton bout de code dans cet ensemnble, mais j'ai une erreur de compilation, visiblement il ne reconnais pas la commande "line". Est ce que tu penses que cela va fonctionner ?
Horizon_Artificiel.cpp: In function 'void loop()': Horizon_Artificiel:28: error: 'line' cannot be used as a function
#include <MI0283QT2.h>
MI0283QT2 lcd;
void setup() { lcd.init(4); lcd.clear(COLOR_WHITE);
lcd.fillRect(0, 0, 319, 120, RGB(0,0,255)); // trace un rectangle plein bleu lcd.fillRect(0, 120, 319, 239, RGB(152,52,2)); // trace un rectangle plein marron
}
int roll;
int repos = 337; // valeur roulis au repos exemple au pif int roll_L = 337 + roll; // extrémité gauche de la ligne int roll_R = 337 - roll; // extrémité droite de la ligne //roll = int(valeur du capteur)-valeur du capteur au repos ;
void loop() { roll = analogRead(A0) - repos; // valeur du roulie en sorti du capteur int roll_L = 337 + roll; // extrémité gauche de la ligne int roll_R = 337 - roll; // extrémité droite de la ligne line(0, roll_L, 1023, roll_R); //dessine la ligne d'horizon }
|
|
|
|
« Last Edit: June 30, 2011, 12:35:27 pm by Alfred Ingrassia »
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #109 on: June 30, 2011, 12:35:40 pm » |
il faut adapter pour ton écran... line(0, roll_L, 399, roll_R); deviendra : drawLine(0, roll_L, 399, roll_R); Ou un truc du genre...
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Draguignan (Var)
Offline
Jr. Member
Karma: 0
Posts: 71
Arduino, voila une bonne invention...
|
 |
« Reply #110 on: June 30, 2011, 12:39:17 pm » |
Idem, meme erreur, j'avais deja essayé...
Je pense selon la doc du lcd qu'il faut mettre sous cette forme la..
drawLine(x0, y0, x1, y1, color)
J'ai donc ajouté: #define BLACK 0x000000 et lcd.drawLine(0, roll_L, 337, roll_R, BLACK);
Miracle j'ai bien une ligne qui bouge, mais elle n'est pas au bon endroit....
|
|
|
|
« Last Edit: June 30, 2011, 01:12:04 pm by Alfred Ingrassia »
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #111 on: June 30, 2011, 01:18:39 pm » |
Un bonne nouvelle... suit elle les mouvements de ton capteur ? Elle est ou trop haut ou trop bas.... chez moi c'est pareille, et j'ai corrigé de cette façon : line(0, roll_L-50, 399, roll_R-50); //dessine la ligne d'horizon
|
|
|
|
« Last Edit: June 30, 2011, 02:01:12 pm by Jean-François »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Draguignan (Var)
Offline
Jr. Member
Karma: 0
Posts: 71
Arduino, voila une bonne invention...
|
 |
« Reply #112 on: June 30, 2011, 01:27:25 pm » |
J'ai corrigé la ligne, elle semble suivre le sens du capteur, mais elle fonctionne par saccades et affiche une multitude de lignes, je pense qu'il faut afficher la ligne actuelle, effacer la ligne et afficher la ligne suivante (selon ma logique)..tu me corrige si je me trompe
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4340
Arduino Hacker
|
 |
« Reply #113 on: June 30, 2011, 01:36:46 pm » |
J'ai corrigé la ligne, elle semble suivre le sens du capteur, mais elle fonctionne par saccades et affiche une multitude de lignes, je pense qu'il faut afficher la ligne actuelle, effacer la ligne et afficher la ligne suivante (selon ma logique)..tu me corrige si je me trompe
Tu dois tracer une ligne au point précédant pour éviter un clear complet de l'écran, exemple: #include <MI0283QT2.h>
MI0283QT2 lcd;
void setup() { lcd.init(4); lcd.clear(COLOR_WHITE);
lcd.fillRect(0, 0, 319, 120, RGB(0,0,255)); // trace un rectangle plein bleu lcd.fillRect(0, 120, 319, 239, RGB(152,52,2)); // trace un rectangle plein marron
}
int roll;
int repos = 337; // valeur roulis au repos exemple au pif int roll_L = 337 + roll; // extrémité gauche de la ligne int roll_R = 337 - roll; // extrémité droite de la ligne //roll = int(valeur du capteur)-valeur du capteur au repos ; int beforeX = 0; int beforeY = 0;
void loop() { roll = analogRead(A0) - repos; // valeur du roulie en sorti du capteur int roll_L = 337 + roll; // extrémité gauche de la ligne int roll_R = 337 - roll; // extrémité droite de la ligne lcd.line(0, beforeX, 399, beforeY); //efface l'ancienne ligne d'horizon lcd.line(0, roll_L-50, 399, roll_R-50); //dessine la ligne d'horizon beforeX = roll_L-50; beforeY = roll_R-50; }
|
|
|
|
« Last Edit: June 30, 2011, 02:50:10 pm by skywodd »
|
Logged
|
|
|
|
|
Draguignan (Var)
Offline
Jr. Member
Karma: 0
Posts: 71
Arduino, voila une bonne invention...
|
 |
« Reply #114 on: June 30, 2011, 01:46:54 pm » |
OK Jean François je te laisse car je dois preparer mon planning pour demain, j'essayerais le code demain, la bonne soirée a toi et encore merci pour le coup de main, je commence a comprendre un peu le fonctionnement general...
Amitiées Fred
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #115 on: June 30, 2011, 01:58:33 pm » |
C'est sur que sans avoir l'écran sous les yeux c'est difficile pour moi d'apprécier...  Merci Skywodd pour le coup de main  Est ce que : line(0, beforeX, 399, beforeY); //efface l'ancienne ligne d'horizon line(0, roll_L-50, 399, roll_R-50); //dessine la ligne d'horizon ne devrait pas être : lcd.drawLine(0, beforeX, 399, beforeY,BLEU); //efface l'ancienne ligne d'horizon lcd.drawLine(0, roll_L-50, 399, roll_R-50,BLACK); //dessine la ligne d'horizon ?
|
|
|
|
« Last Edit: June 30, 2011, 02:05:07 pm by Jean-François »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4340
Arduino Hacker
|
 |
« Reply #116 on: June 30, 2011, 02:52:46 pm » |
Est ce que : line(0, beforeX, 399, beforeY); //efface l'ancienne ligne d'horizon line(0, roll_L-50, 399, roll_R-50); //dessine la ligne d'horizon ne devrait pas être : lcd.drawLine(0, beforeX, 399, beforeY,BLEU); //efface l'ancienne ligne d'horizon lcd.drawLine(0, roll_L-50, 399, roll_R-50,BLACK); //dessine la ligne d'horizon Ho la boulette ! Mais oui bien sur (/facepalm), désolé j'ai passé 6 heures sur un casse google pour gagner un chromebook j'ai le cerveau en marmelade. Post édité, désolé.
|
|
|
|
|
Logged
|
|
|
|
|
Draguignan (Var)
Offline
Jr. Member
Karma: 0
Posts: 71
Arduino, voila une bonne invention...
|
 |
« Reply #117 on: July 01, 2011, 01:08:41 pm » |
Salut Skywodd, je changerais ces lignes demain, par contre normalement la ligne sur un horizon artificiel doit rester fixe, c'est la jonction du carré bleu(ciel) et du carré marron (sol) qui doit bouger...A propos connais tu PYXIS ?
|
|
|
|
« Last Edit: July 01, 2011, 01:15:54 pm by Alfred Ingrassia »
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4340
Arduino Hacker
|
 |
« Reply #118 on: July 01, 2011, 01:46:18 pm » |
Salut Skywodd, je changerais ces lignes demain, par contre normalement la ligne sur un horizon artificiel doit rester fixe, c'est la jonction du carré bleu(ciel) et du carré marron (sol) qui doit bouger...
ça sort de mes capacité en math là ^^" je regarderai ça de plus prés. A propos connais tu PYXIS ?
Heuu pyxis ? Pyxis Os ? -> http://www.skewworks.com/pyxis/ ? Si c'est lui oui je connais.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #119 on: July 01, 2011, 03:08:01 pm » |
par contre normalement la ligne sur un horizon artificiel doit rester fixe, c'est la jonction du carré bleu(ciel) et du carré marron (sol) qui doit bouger
On va y venir...
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
|