Go Down

Topic: conseil matériel (Read 7726 times) previous topic - next topic

antho59

[boulet on] ok faut déclarer une nouvelle variable, j'ai encore beaucoup de chemin pour apprendre la programmation minimale  :smiley-red:

a ton avis pour passer à la couleur par la suite, tu me conseillerais quoi comme matériel?

ton projet tu vas le faire suivre sur ton site?

skywodd


a ton avis pour passer à la couleur par la suite, tu me conseillerais quoi comme matériel?

Tout dépend de ce que tu veut faire :
- si tu veut faire du graphique il existe des module comme uVGA de 4D system,
- si tu veut faire du "mode texte" il existe des modules comme MicroVGA :
http://skyduino.wordpress.com/2011/08/16/test-microvga-breakout/


ton projet tu vas le faire suivre sur ton site?

Bien sûr ;)
Par contre je pense que ça va bien me prendre un ou deux mois ...
Déja rien que le temps de passer les divers commandes de composants, comprendre le langage VHDL, ...
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

antho59

merci skywodd pour ton aide

video de la modif: http://www.youtube.com/watch?v=Ogh7Wmlzn8I&feature=youtu.be

est le code:

Code: [Select]


#include "TVout.h"
#include "fontALL.h"
#include "TVOlogo.h"
TVout TV;

int regime=15; //capteur régime
int capteurT=3; // capteur pression turbo connecté broche 3
float turbo=0; //variable de type int pour stocker la mesure
float pression=0; //variable pour stocker le mesure calculée
float rpm=0; //variable pour stocker la mesure
float calcrpm=0; //variable pour stocker la mesure calculé
unsigned int ancien_turbo=3;
unsigned int ancien_regime=15;

void setup()
{
  TV.begin(NTSC,120,96);
  TV.bitmap(0,0,TVOlogo); //10, 20 position haut/gauche de l'image dans l'écran
  TV.delay(5000);
  TV.clear_screen();
  TV.select_font(font8x8);
  TV.printPGM(50,40,PSTR("C5"));
  TV.select_font(font6x8);
  TV.printPGM(70,90,PSTR("BY ROCKS"));
  TV.delay(10000);
  TV.clear_screen();
 
}

void loop()
{
   
  rpm = analogRead(regime); // lit le signal du régime
  turbo = analogRead(capteurT); //lit la valeur de la tension
  pression = ((turbo/210)/1.9); //convertit la tension en valeur de pression
  calcrpm = (rpm/210); // convertit le signal en valeur "rpm"
  int tbar=analogRead(3); //lecture pin turbo pour la barre
  int rpmbar=analogRead(15);//lecture pin regime pour la barre
  tbar=map(tbar,0,800,10,100);
  rpmbar=map(rpmbar,0,800,10,100);
  unsigned int new_turbo = analogRead(3);
  unsigned int new_regime = analogRead(15);
 
  TV.draw_rect(0,10,120,6,BLACK,BLACK);
  TV.draw_rect(0,10,tbar,6,WHITE,WHITE);
 
  TV.draw_rect(0,40,120,6,BLACK,BLACK);
  TV.draw_rect(0,40,rpmbar,6,WHITE,WHITE);
 
  if(new_turbo != ancien_turbo)
  {
  TV.select_font(font6x8);
  TV.printPGM(0,0,PSTR("TURBO= "));
  TV.print(pression);
  TV.printPGM(70,0,PSTR(" bar"));
 
  ancien_turbo = new_turbo;
  }
 
  if(new_regime != ancien_regime)
  {
  TV.select_font(font6x8);
  TV.printPGM(0,30,PSTR("REGIME= "));
  TV.print(calcrpm);
  TV.printPGM(80,30,PSTR("RPM"));
 
  ancien_regime = new_regime;
  }
 
}

 
 
 

skywodd

Du coup tu as une fréquence de rafraichissement beaucoup plus élevé qu'avant :smiley-mr-green:
Si tu veut tu peut ajouter un petit delay(20) (par exemple) en fait de loop() ça te limitera le rafraichissement à 50Hz ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

antho59

bon j'ai commandé ma shield uVGA-II(GFX) je me suis repris un écran de 7" avec connecteur vga + video et s video, bah oui l'écran philips aime pas trop la soudure/dessoudure... je préfère le préserver au cas ou un jour je revends l'auto...



antho59

ça y est j'ai reçu ma uvga.

par contre beaucoup de zone d'ombre dans mon projet.

comment va fonctionner la programmation, la shield uvga va aller chercher les infos des entrées sur l'arduino et la programmation se passera uniquement sur l'uvga? ou il faut programmer dans l'arduino pour afficher quelquechose?

skywodd


comment va fonctionner la programmation, la shield uvga va aller chercher les infos des entrées sur l'arduino et la programmation se passera uniquement sur l'uvga? ou il faut programmer dans l'arduino pour afficher quelquechose?

La shield uvga affiche les graphismes que tu lui envois sous forme de commandes série.

L'arduino fait son bouleau normalement et envoi les commandes de dessin qui vont bien à la shield uvga pour faire l'affichage.

Exemple :
http://4d.websitetoolbox.com/post/uVGAII-Arduino-Sketch-5619862
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

antho59


donc il y a aucun programme a rentrer dans la shield?

skywodd


donc il y a aucun programme a rentrer dans la shield?

Si c'est une shield arduino c'est par pour rien :smiley-mr-green:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

antho59

je demande car j'ai vu des trucs sympa dans le logiciel 4d visi



l'apparence graphique est cool, est ce que l'arduino pourrait gérer ce code?!?

antho59

j'ai lu dans un post que le 4dgl était très limitté pour les calculs analogread et autre.

donc faudrait que je fasse mes calculs dans l'arduino et envoyé les valeurs dans un serial.print et récupérer les valeurs avec la shield.

antho59

bon l'uvga n'accepte pas les floats. pour l'instant j'ai réussi a établir la communication, mais le problèmes c'est que je ne retrouve pas les valeurs souhaité.
j'ai toujours mon signal linéaire qui arrive en analog 3, dessus je lui met une tension de 0v à 5v, et convertir cette tension en valeur de 0 à 30, cette valeur sera envoyer à l'uvga via le tx2.
voilà mon code:

Code: [Select]





void setup(){
  Serial2.begin(9600);

}
void loop()
{


unsigned int new_turbo = analogRead(3);
unsigned int ancien_turbo=3; 
int pression;
pression=map(new_turbo,0,1024,0,30);

if(new_turbo != ancien_turbo)
  {
  Serial2.println(pression,BYTE);
  ancien_turbo=new_turbo;

  }
 

  }
 


quel est le problème?

merci.

antho59

je me réponds tous seul  :smiley-mr-green:

hormis un delay manquant dans le if c'est bon, le problème était une mauvaise interprétation des charactères reçu sur l'uvga.

par contre j'aimerais savoir, je vais envoyer plusieurs valeur via la ligne rx, il faut que je le fasse dans un ordre et je respecte l'ordre d'envoi dans la lecture sur l'uvga? ou il y a une autre solution?

merci.

sebmons

il y a peut être plus "sympa"...

http://dmn.kuulalaakeri.org/dmn-edc/

Il s'agit d'un ECU basé sur un arduino. J'ai contacté le concepteur pour savoir si le projet était extensible à l'essence, et via quelques modifs, c'est possible.

J'en profite pour l'ancer un nouveau sujet.

SEB

Go Up