Indput til Rally Computer (Læst 35248x)

Offline stig

  • U=I*R
  • ***
  • Indlæg: 36
  • Antal brugbare Indlæg: 1
    • Vis profil
Indput til Rally Computer
« Dato: April 29, 2015, 17:09:50 »
Jeg går og overvejer at bygget en rally computer baseret på Arduino og har i den forbindelse brug for noget indput da jeg ikke har arbejdet med Arduino før.

En Rally computer er en trip tælle som man kan nulstille under kørslen og så kan km tallet justeret op eller ned for at det altid passer med ens Roadbook ( noter med km tal hvor sving forhindringer er angiver med Km tal )



Oversigt over funktioner

1 Stk LED display men plads til to km tæller samt baggrund belysning
1 Stk Magnet afbr som hjul sensor (et indpuls pr omgang )
1 Stk Tryk afbr til nulstilling af tæller (kort tryk nulstilling tæller nr 1 lang tryk nulstilling           tæller nr 2
1 stk Tryk afbr til at juster km op for tæller nr 1 ( kort tryk ligger 100m konstant tryk så                    ligger der automatisk 100m løbne til man slipper igen)
1 stk Tryk afbr til at juster km ned for tæller nr 1 ( kort tryk trækkes  der  100m konstant tryk så ligger der automatisk 100m løbne til man slipper igen)

jeg har kikket lidt rundt og har fundet følge komponenter som jeg mener vil kunne klar opgaven.




http://www.dx.com/p/i2c-iic-2-6-lcd-1602-yellow-green-display-module-for-arduino-raspberry-pi-avr-arm-379324#.VUDyYdLtmko

http://www.dx.com/p/new-nano-v3-0-module-atmega328p-au-improved-version-for-arduino-yellow-369070#.VUDy89Ltmko



Er jeg har galt på den eller ser det fornuftig ud

 

Offline Urtapott

  • Modstanden
  • **
  • Indlæg: 22
  • Antal brugbare Indlæg: 2
    • Vis profil
Sv: Indput til Rally Computer
« Svar #1 Dato: April 29, 2015, 20:08:22 »
Fint nok, men du burde overveje at installere en Real Time Clock, hvis det er vigtigt at timingen er rigtig og stabil
Hej :)

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: Indput til Rally Computer
« Svar #2 Dato: April 29, 2015, 21:29:48 »
Fint nok, men du burde overveje at installere en Real Time Clock, hvis det er vigtigt at timingen er rigtig og stabil

En Real Time Clock giver kun mening, hvis man ønsker at udlæse dato og klokkeslæt.
Som stop-up er krystallet på Arduino mindst lige så stabilt og nøjagtigt, desuden giver det mulighed for større opløsning end en Real Time Clock, som typisk kun timer, minutter og hele sekunder.
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline Urtapott

  • Modstanden
  • **
  • Indlæg: 22
  • Antal brugbare Indlæg: 2
    • Vis profil
Sv: Indput til Rally Computer
« Svar #3 Dato: April 29, 2015, 22:17:28 »
Ahh, jeg har haft problemer med en båd motor omdejningstæller, da der er store temperaturændringer. Problemet var at timingen til indsprøjtningen ændrede sig, i antal clock cycler selv om motoren havde en konstant hastighed. Men det var et meget tidskritisk system, en rally computer vil nok ikke have lignende problemer. Jeg løste problemet med en RTC, hvor hvert sekund "kalibrerede" tælleren sig.
Hej :)

 

Offline stig

  • U=I*R
  • ***
  • Indlæg: 36
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Indput til Rally Computer
« Svar #4 Dato: April 29, 2015, 22:39:26 »
Jeg har ikke noget at bruge en nøjagtig tids angivelse, det som jeg skal måle er afstand

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: Indput til Rally Computer
« Svar #5 Dato: April 29, 2015, 23:42:52 »
Ahh, jeg har haft problemer med en båd motor omdejningstæller, da der er store temperaturændringer. Problemet var at timingen til indsprøjtningen ændrede sig, i antal clock cycler selv om motoren havde en konstant hastighed. Men det var et meget tidskritisk system, en rally computer vil nok ikke have lignende problemer. Jeg løste problemet med en RTC, hvor hvert sekund "kalibrerede" tælleren sig.

Hvis du har behov for at "kalibrere" din Arduino hvert sekund, er der virkelig noget galt. Driften på krystallet er mange-mange-mange gange mindre. For mig lyder det helt klart som om du ikke har styr på din timer-interrupt i programmet.

Jeg har gennem tiden brugt 3-4000 DS1302 RTC´s, som er samme chip som findes på moduler man kan købe til Arduino. DS1302 drives af et 32kHz ur-krystal og er på ingen måde nøjagtig, med mindre man kalibrere den, hvilket også fremgår af databladet.

At tro at en RTC er en nøjagtig timer er en stor misforståelse, det er en chip med ur- og kalender-funktion.

Jeg har ikke noget at bruge en nøjagtig tids angivelse, det som jeg skal måle er afstand

Det er fuldstændig rigtigt at du ikke har brug for tiden, hvis du bare vil lave en trip-tæller. De ting du har fundet frem til opfylder fint dit behov.
Hvis du senere ønsker at udvide med en hastighedsmåling, kan du fint bruge den timer der allerede findes på Arduino-boardet.
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline martinbjerre

  • Jordet Basic
  • **
  • Indlæg: 151
  • Antal brugbare Indlæg: 10
    • Vis profil
Sv: Indput til Rally Computer
« Svar #6 Dato: April 30, 2015, 12:48:29 »
Du kunne måske finde lidt inspiration her:
http://elektronik-forum.dk/index.php?topic=556&asproject

 

Offline Urtapott

  • Modstanden
  • **
  • Indlæg: 22
  • Antal brugbare Indlæg: 2
    • Vis profil
Sv: Indput til Rally Computer
« Svar #7 Dato: April 30, 2015, 22:39:18 »
Problemet jeg havde var at ved opstart var en omdrejning omkring 50.000 clokcykler, når motorrummet var koldt. Men efter den havde kørt i et par timer varmede motoren rummet op, sådan at temperaturen kunne komme op på nogle 50 c. Dette medførte at antal clocksykler der skulle til, før en og en halv omdrejning af motoren havde kørt rundt, havde vokset med et par clocksykler. Dette gjorde at motoren kørte ustabilt, fordi at dieselen blev indsprøjtet for sent. Problemet blev løst med at forbinde den samme uroscillator som var på omdrejningstælleren til microkontrolleren, og ændre hvor mange clockcykler der skulle ventes før dieselen blev indsprøjtet.

Anyway urelevant til denne tråd, hvis det eneste du skal måle er afstand, så er du helt sikkert på rette vej. Det kan være interessant at installere nogle ekstra funktioner, fx 0 til 100 tidsmåling, eller middelhastighed.
Hej :)

 

Offline stig

  • U=I*R
  • ***
  • Indlæg: 36
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Indput til Rally Computer
« Svar #8 Dato: Maj 01, 2015, 08:25:22 »
Her har i det setup jeg køre med lige nu




Det er de to cykel computer som jeg skal havde skiftet ud men noget DIY .

de funger ude mærket men problemet er at jeg ikke kan juster den målte afstand også er det noget rod når de skal nulstilles under vejs.

Jeg har fået bestilt de stumper jeg skal bruge og er så småt begyndt på at kikke på hvordan man programmere  Arduino.




 

Offline stig

  • U=I*R
  • ***
  • Indlæg: 36
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Indput til Rally Computer
« Svar #9 Dato: Juni 01, 2015, 16:02:03 »
Så har jeg modtaget et stk. Nano og et LED display.

Har også været i gang med at lege med det grundlæggende programmering, for lige som at få lidt føling  med sproget.

Jeg har lavet et lille program hvor der det led på pin 13 skal blinke og det bliver skrevet noget tekst på displayet.

De to funktioner forstyrre hinanden så det ikke køre flydende.

Fra linge 19 til 22 har vi koden til den blinkende led

Fra linge 24 til 30 har vi koden til teksten på displayet.

De to koder funger fint særskilt, men når de bække er i programmet så sked der jo det at når vi kommer til linge 31 så bliver der jo læst fra linge 9 og ned så teksten stoppet i 2 sek på grund af det delay der er i linge 20 og 22.


kan man bruge nogle  ( ) eller noget { } eller en helt anden  løsning så det to ”loop” køre uden af forstyrre hinanden.



Kode:
int ledpin = 13;

#include <Wire.h> // indlæser I2C bibloteket
#include <LiquidCrystal_I2C.h> // indlæser er specielt I2C Biblotek
LiquidCrystal_I2C myDisplay(0X3F,16,2); // definere Displayet adr & karekter antal samt linger


void setup()
{
  pinMode (ledpin,OUTPUT);
  myDisplay.init();
  myDisplay.backlight();
  myDisplay.print("ARDUINO 1,2");
  delay(1000);
}

void loop()
{
digitalWrite (ledpin,HIGH);// For onbord LED til at blinke
delay (1000);
digitalWrite (ledpin,LOW);
delay (1000);

myDisplay.clear();
delay(500);
myDisplay.print("TEST");
delay(500);
myDisplay.setCursor(0,8);
myDisplay.print("TEST");
delay(500);
}

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: Indput til Rally Computer
« Svar #10 Dato: Juni 01, 2015, 16:15:30 »
Bare lige en tanke.
Ville det være noget værd med en led på hverside, der så lyser i den side det næste sving kommer?
Som sagt bare en tanke :-)
MVH
Allan Madsen

 

Offline gsborn

  • Spændingsdeler
  • ****
  • Indlæg: 50
  • Antal brugbare Indlæg: 7
  • nybegynder + Gør tingene for sjov, interesse, leg
    • Vis profil
Sv: Indput til Rally Computer
« Svar #11 Dato: Juni 01, 2015, 18:15:59 »
Det med at programmdele forstyrrer hinanden har jeg også oplevet.
Så en løsning kan være disse, jeg henviser til linkene da det er meget svært at forklare.
Det hænger sammen at en arduino(microcontroller) ikke kan eller har svært med at multitaske.
Se sidste link.
Håber at det hjælper dig videre.

Med venlig hilsen Gsborn
« Senest Redigeret: Juni 02, 2015, 06:41:48 af gsborn »
nybegynder +
Gør tingene for sjov, interesse, leg
Mine svar er kun ud fra min egen videnstand som begynder og google.

 

Offline stig

  • U=I*R
  • ***
  • Indlæg: 36
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Indput til Rally Computer
« Svar #12 Dato: Juni 01, 2015, 21:01:49 »
Bare lige en tanke.
Ville det være noget værd med en led på hverside, der så lyser i den side det næste sving kommer?
Som sagt bare en tanke :-)

Det vil ikke være til meget gavn.

Den måde det virker på er at man har en Roadbook (en megen lang papir strimmel på op til 17 m længe) som for tæller en ved hvilke km tal man skal dreje ved hjælp af symboler.

mange gange får man først Roadbook en udleveret lige før start så man vil ikke havde tid til at programmere ind hvor når det forskeldige LED skulle tænde  , og systemet med symboler virker helt fint når man lige har prøvet det en enkel gang

 

Offline stig

  • U=I*R
  • ***
  • Indlæg: 36
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Indput til Rally Computer
« Svar #13 Dato: Juni 01, 2015, 21:02:21 »
Det med at programmdele forstyrrer hinanden har jeg også oplevet.
Så en løsning kan være disse, jeg henviser til linkene da det er meget svært at forklare.
Det hænger sammen at en arduino(microcontroller) ikke kan eller har svært med at multitaske.
Se sidste link.
Håber at det hjælper dig videre.

Takker vil jeg fluks kaste mig over

 

Offline stig

  • U=I*R
  • ***
  • Indlæg: 36
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Indput til Rally Computer
« Svar #14 Dato: Juni 01, 2015, 21:42:25 »
Aller rede i der første link var løsningen der og nu ser koden sådan har ud og bække program bider køre flydende

skal lige havde kikke på de andre link også for at se om der skulle være andre guld korn


Kode:
const int ledPin =  13;
int ledState = LOW;             
long previousMillis = 0;
long interval = 1000;

#include <Wire.h> // indlæser I2C bibloteket
#include <LiquidCrystal_I2C.h> // indlæser er specielt I2C Biblotek
LiquidCrystal_I2C myDisplay(0X3F,16,2); // definere Displayet adr & karekter antal samt linger


void setup()
{
  pinMode(ledPin, OUTPUT);
 
  myDisplay.init();
  myDisplay.backlight();
  myDisplay.print("ARDUINO 1,2");
  delay(1000);
}

void loop()
{
  unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval) {
   
    previousMillis = currentMillis;   

   
    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;

    digitalWrite(ledPin, ledState);

myDisplay.clear();
delay(500);
myDisplay.print("TEST");
delay(500);
myDisplay.setCursor(0,8);
myDisplay.print("TEST");
delay(500);
}

}