Show Posts
Pages: [1]
1  Community / Gigs and Collaborations / Re: Looking for software developers on: September 25, 2012, 08:18:57 am
If you wish, you can expect to see the almost finished product, and after, participate in software updates, but you lose an opportunity.
2  Community / Gigs and Collaborations / Re: Looking for software developers on: September 25, 2012, 07:55:34 am
Tuxduino well said  smiley
no really, is not a film of 007, but a good idea as this, it is always better to keep it among the active developers.  smiley-grin
3  Community / Gigs and Collaborations / Re: Looking for software developers on: September 25, 2012, 07:43:30 am
Hello PaulS

I will answer your questions with great pleasure  smiley

The USB cable will only synchronize the device with a PC or Mac like an ipod.

The device must store some data downloaded to PC or Mac whit the USB cable and an apposite software.

I write from Italy and I hope to arouse interest in good developers like you.

Luca
4  Community / Gigs and Collaborations / Re: Looking for software developers on: September 25, 2012, 06:07:58 am
It's a portable device, I can not say more than that... about our "plans"  smiley
5  Community / Gigs and Collaborations / Looking for software developers on: September 25, 2012, 04:03:41 am
Hello everyone,

we are looking for software developers with extensive knowledge of Arduino programming knowledge required also to PC and MAC to interface the device with the USB cable.

Collaboration paid, only people who are motivated, thank you! see you soon!

Luca
6  International / Generale / Re: Cronometro Gokart on: April 19, 2011, 06:36:06 am
No no, la banda magnetica funge da "via" per far partire il cronometro smiley-wink
7  International / Generale / Re: Cronometro Gokart on: April 19, 2011, 06:19:31 am
Le bande magnetiche ci sono in quasi tutte le piste per kart, è uno standard diciamo... smiley-wink
8  International / Generale / Re: Cronometro Gokart on: April 19, 2011, 04:07:15 am
Continua...
Code:
void loop()
{

  readButtons();
  navigateMenus();
                 
}


void menuChanged(MenuChangeEvent changed){
 
  MenuItem newMenuItem=changed.to;
 
  lcd.setCursor(0,1);
 
  if(newMenuItem.getName()==menu.getRoot()){
      lcd.print("Main Menu       ");
  }else if(newMenuItem.getName()==" -Bande Magnet."){
      lcd.print(" -Bande Magnet. ");
  }else if(newMenuItem.getName()=="1"){
      lcd.print("1");
  }else if(newMenuItem.getName()=="2"){
      lcd.print("2");
      }else if(newMenuItem.getName()=="3"){
      lcd.print("3");
      }else if(newMenuItem.getName()=="4"){
      lcd.print("4");
      }else if(newMenuItem.getName()=="5"){
      lcd.print("5");
      }else if(newMenuItem.getName()=="6"){
      lcd.print("6");
      }else if(newMenuItem.getName()=="7"){
      lcd.print("7");
      }else if(newMenuItem.getName()=="8"){
      lcd.print("8");
      }else if(newMenuItem.getName()=="9"){
      lcd.print("9");
  }else if(newMenuItem.getName()==" -Avvia Crono"){
      lcd.print(" -Avvia Crono   ");
  }else if(newMenuItem.getName()=="Invia t. seriale"){
      lcd.print("Invia t. seriale");
  }
}

void menuUsed(MenuUseEvent used){

  despues=digitalRead(2);                 
  if(despues==LOW&&antes==HIGH){         
    inicio=millis();                     
                                         
    antes=despues;                       
    pulsador=0;                           
    delay(200);                           
    while(pulsador==0){                   
      tiempo=millis()-inicio;             
      m=tiempo/60000;                     
      mu=m%10;                           
      md=(m-mu)/10;                     
      s=(tiempo/1000)-(m*60);           
      su=s%10;                           
      sd=(s-su)/10;                       
      l=tiempo-(s*1000)-(m*60000);       
      lu=l%10;                           
      ld=((l-lu)/10)%10;                 
      lc=(l-(ld*10)-lu)/100;             
      lcd.setCursor(6, 0);               
      lcd.print(md);                     
      lcd.print(mu);             
      lcd.print(":");
      lcd.print(sd);
      lcd.print(su);
      lcd.print(":");
      lcd.print(lc);
      lcd.print(ld);
      lcd.print(lu);
      despues=digitalRead(2);             
      if(despues==LOW&&antes==HIGH){     
                                         
        antes=despues;                   
        pulsador=1;                       
      Serial.print(md);
      Serial.print(mu);
      Serial.print(":");
      Serial.print(sd);
      Serial.print(su);
      Serial.print(":");
      Serial.print(lc);
      Serial.print(ld);
      Serial.print(lu);
      Serial.println(" ");
        delay(200);                       
      }
      antes=despues;                     
    }
  }
  antes=despues;                         
}



void  readButtons(){ 
  int reading;
  int buttonEnterState=LOW;             
  int buttonEscState=LOW;             
  int buttonLeftState=LOW;             
  int buttonRightState=LOW;             

 
                 
                  reading = digitalRead(buttonPinEnter);

                 
                  if (reading != lastButtonEnterState) {
                   
                    lastEnterDebounceTime = millis();
                  }
                 
                  if ((millis() - lastEnterDebounceTime) > debounceDelay) {
                   
                    buttonEnterState=reading;
                    lastEnterDebounceTime=millis();
                  }
                 
                 
                  lastButtonEnterState = reading;
                 

   
                  reading = digitalRead(buttonPinEsc);

                 
               
                  if (reading != lastButtonEscState) {
                   
                    lastEscDebounceTime = millis();
                  }
                 
                  if ((millis() - lastEscDebounceTime) > debounceDelay) {
                   
                    buttonEscState = reading;
                    lastEscDebounceTime=millis();
                  }
             
                  lastButtonEscState = reading;
                 
                   
 
                  reading = digitalRead(buttonPinRight);

                  if (reading != lastButtonRightState) {
                   
                    lastRightDebounceTime = millis();
                  }
                 
                  if ((millis() - lastRightDebounceTime) > debounceDelay) {
                   
                    buttonRightState = reading;
                   lastRightDebounceTime =millis();
                  }
               
                  lastButtonRightState = reading;                 
                 
     
                  reading = digitalRead(buttonPinLeft);

             
                  if (reading != lastButtonLeftState) {
                 
                    lastLeftDebounceTime = millis();
                  }
                 
                  if ((millis() - lastLeftDebounceTime) > debounceDelay) {
                 
                    buttonLeftState = reading;
                    lastLeftDebounceTime=millis();;
                  }
                 
               
                  lastButtonLeftState = reading;

               
                  if (buttonEnterState==HIGH){
                    lastButtonPushed=buttonPinEnter;

                  }else if(buttonEscState==HIGH){
                    lastButtonPushed=buttonPinEsc;

                  }else if(buttonRightState==HIGH){
                    lastButtonPushed=buttonPinRight;

                  }else if(buttonLeftState==HIGH){
                    lastButtonPushed=buttonPinLeft;

                  }else{
                    lastButtonPushed=0;
                  }                 
}

void navigateMenus() {
  MenuItem currentMenu=menu.getCurrent();
 
  switch (lastButtonPushed){
    case buttonPinEnter:
      if(!(currentMenu.moveDown())){ 
        menu.use();
      }else{
        menu.moveDown();
       }
      break;
    case buttonPinEsc:
      menu.toRoot();
      break;
    case buttonPinRight:
      menu.moveRight();
      break;     
    case buttonPinLeft:
      menu.moveLeft();
      break;     
  }
 
  lastButtonPushed=0;
}
9  International / Generale / Re: Cronometro Gokart on: April 19, 2011, 04:06:56 am
Appunto per quanto è complesso cercavo qualcuno che mi aiutasse in tempo reale, comunque espongo anche qua i problemi.
Il programma funzionerà così:

Schermata di "Benvenuto" --[4sec]--> Menu principale --[navigo con frecce/OK]--> -set n° bande magnetiche (imposto il numero di volte che il reed verrà attivato per ogni giro, es. 3 bande, ogni 3 bande è un giro)
                                                                                                                     --> -Avvia Crono (avvia lo script del cronometro)
                                                                                                                     --> -Invia sessione Seriale (collegando con usb a pc invia i tempi)
                                                                                                                     --> -Cancella sessione (cancella i tempi memorizzati nella eeprom)

Se la pista ha 3 bande magnetiche, passata la prima avvia un nuovo giro, alla seconda mostrerà se si sta girando più veloci o più lenti rispetto al tempo più basso memorizzato, al terzo passaggio, ferma il crono salva il tempo nella eprom e riparte per cronometrare il giro successivo.
Per la gestione del menu sto utilizzando la libreria "MenuBackend.h" che semplifica parecchio la gestione, questo è lo script allo stato attuale, non funziona ancora correttamente e mancano molte cose.

Code:
#include <MenuBackend.h>
#include <LiquidCrystal.h>

const int buttonPinLeft = 3;
const int buttonPinRight = 4;
const int buttonPinEsc = 5;
const int buttonPinEnter = 6;

int lastButtonPushed = 0;

int lastButtonEnterState = LOW;
int lastButtonEscState = LOW;
int lastButtonLeftState = LOW;  
int lastButtonRightState = LOW;


long lastEnterDebounceTime = 0;
long lastEscDebounceTime = 0;
long lastLeftDebounceTime = 0;  
long lastRightDebounceTime = 0;
long debounceDelay = 100;

int m,s,l;
int mu=0,md=0,su=0,sd=0,lu=0,ld=0,lc=0;
int pulsador,antes,despues;
long int tiempo,inicio;

LiquidCrystal lcd(11, NULL, 12, 7, 8, 9, 10);


MenuBackend menu = MenuBackend(menuUsed,menuChanged);

    MenuItem menu1Item1 = MenuItem(" -Bande Magnet.");
      MenuItem menuItem1SubItem1 = MenuItem("1");
      MenuItem menuItem1SubItem2 = MenuItem("2");
      MenuItem menuItem1SubItem3 = MenuItem("3");
      MenuItem menuItem1SubItem4 = MenuItem("4");
      MenuItem menuItem1SubItem5 = MenuItem("5");
      MenuItem menuItem1SubItem6 = MenuItem("6");
      MenuItem menuItem1SubItem7 = MenuItem("7");
      MenuItem menuItem1SubItem8 = MenuItem("8");
      MenuItem menuItem1SubItem9 = MenuItem("9");
    MenuItem menu1Item2 = MenuItem(" -Avvia Crono");
      MenuItem menuItem2SubItem1 = MenuItem("Crono");
    MenuItem menu1Item3 = MenuItem("Invia t. seriale");


void setup()
{
  
    pinMode(2, INPUT);                      //2 START/STOP
  antes=HIGH;
  despues=HIGH;
  
  
  pinMode(buttonPinLeft, INPUT);
  pinMode(buttonPinRight, INPUT);
  pinMode(buttonPinEnter, INPUT);
  pinMode(buttonPinEsc, INPUT);
 
  lcd.begin(16, 2);

  menu.getRoot().add(menu1Item1);
  menu1Item1.addRight(menu1Item2).addRight(menu1Item3);
  menu1Item1.add(menuItem1SubItem1).addRight(menuItem1SubItem2).addRight(menuItem1SubItem3).addRight(menuItem1SubItem4).addRight(menuItem1SubItem5).addRight(menuItem1SubItem6).addRight(menuItem1SubItem7).addRight(menuItem1SubItem8).addRight(menuItem1SubItem9);
  menu1Item2.add(menuItem2SubItem1);
  menu.toRoot();
  lcd.setCursor(0,0);
  lcd.print("   PL Karting   ");

}
10  International / Generale / Cronometro Gokart on: April 18, 2011, 03:56:35 pm
Salve smiley
Sto sviluppando un cronometro per gokart, funziona con un reed che passa ogni giro su una banda magnetica.
Display 16x2, 4 pulsanti di navigazione nei menu, e datalog nella eprom del chip integrato, scaricabile poi tramite seriale su pc.
Ho sviluppato la maggiorparte del programma ma la mia conoscenza in programmazione è limitata, sto dunque cercando un aiuto concreto per il compimento del progetto!
Chiunque volesse aiutarmi, anche via messenger o skype può contattarmi alla mia email o rispondere a questo tread, ovviamente a progetto ultimato metterò a disposizione il programma a tutta la comunità di Arduino!
luca.rs197@live.it
Vi ringrazio!
Luca
Pages: [1]