Stránka 1 z 1

Stopky nejen pro hasiče v1.5 SMD

PříspěvekNapsal: stř 20. zář 2017 2:36:13
od Sakul
V tomto vláknu se zabýváme touto konstrukcí. Bližší informace naleznete na webu Sakul World.
Takže pokud máte nějaké dotazy nebo připomínky rozhodně mi o tom zde napište.

Velký displej pro stopky je k dispozici, více informací v tomto TOMTO tématu.

Pro případné zájemce o stavbu, zde rovnou uvádím ceny jednotlivých komponent, které mohu zaslat.
CENY najdete - ZDE.

Re: Stopky nejen pro hasiče v1.5 SMD

PříspěvekNapsal: stř 18. bře 2020 23:43:15
od jatkar
Zdravím,
jelikož stopky SMD v1.5 neumí zobrazovat čas dvouřádkově tak jsem začal dvouřádkový displej řešit po svém. Místo bluetooth modulu jsem tam vložil Arduino NANO který by měl umět přijmout získané koncové časy ze stopek a zobrazit na displeji. A v tom je ten zádrhel, nedaří se mi dostat časy ze stopek do Arduina. Dokonce při odesílání časů ze stopek blikne na Arduinu i LEDka že nějaká data byla přijata ale na výstupu terminálu Arduina se mi nic nezobrazí. Zkoušel jsem jako test odeslat časy z terminálu (program v PC) přes převodník USB>TTL do Arduina a vše mi funguje bez problémů. Funguje mi také posílaní časů ze stopek přes TTL>USB převodník do PC.
Rada od Sakula odstranit rezistor R26 který slouží jako dělič napětí pro TX také nepomohla.

Re: Stopky nejen pro hasiče v1.5 SMD

PříspěvekNapsal: stř 18. bře 2020 23:50:50
od Sakul
Takže pokud nepomohlo ani to odstranění rezistoru R26, tak doporučuji připojit na výstup pro BT (JP6) ten USB/TTL převodník a v terminálu na PC zkontrolovat, že se data vypisují správně. Pokud ano je to už jen problém čtení dat tím arduinem. V takovém případě doporučuji sem hodit zdroják toho firmware a můžu na to kouknout.

Re: Stopky nejen pro hasiče v1.5 SMD

PříspěvekNapsal: čtv 19. bře 2020 10:38:27
od jatkar
Ano přenos ze stopek přes TTL>USB převodník do PC je funkční.
Tohle je kód který používám pro test a převedení přijatých dat na text.
Používám Arduino Nano

Kód: Vybrat vše
void setup() {
  Serial.begin(9600);
}
void loop() {
  if (Serial.available()) Serial.println(serial_read());
}
String serial_read() {
  boolean END = false;
  unsigned long casSpusteni;
  byte konecBehu = 100;
  char cteni;
  String text;
  do {
    if (Serial.available()) {
      casSpusteni = millis();
      cteni = Serial.read();
      text += cteni;
      if ((byte)cteni == 0xff) END = true;
    }
  }
  while (!END && !((unsigned long)(millis() - casSpusteni) >= konecBehu));
  return text;
}

Re: Stopky nejen pro hasiče v1.5 SMD

PříspěvekNapsal: čtv 19. bře 2020 11:26:31
od Sakul
Jak bude trocha času mrknu na to. Ten program mi na první pohled přijde nějakej zbytečně překombinovanej. Zkusím napsat něco svého.
Přijde mi tam divné to rozeznávání konce příjmu 0xff, což by odpovídalo nějakému šílenému znaku, který ale stopky rozhodně neposílají, tudíž se příjem jako takový nikdy neukončí. Já bych spíše použil pro rozeznání nějaké řídící znaky. Každý řádek je ukončen zasláním znaku 0x0A a podle něj je možno rozeznávat konec daného řádku.
Následně pak přijatý string porovnat nějakou maskou a vybrat z něj patřičné časy.

Re: Stopky nejen pro hasiče v1.5 SMD

PříspěvekNapsal: čtv 19. bře 2020 11:50:09
od jatkar
Zatím se s tím Arduinem spíš učím takže kód není můj. Dále jsem chtěl použít pro rozdělení koncových časů tento kód který se musí ještě upravit
Kód: Vybrat vše
void setup() {
  Serial.begin(9600);
  rozdel_text();
}
void loop() {
}
void rozdel_text() {
  String text_String = "Zacatek:123:1972:Konec"; // vytvorime data pro simulaci
  char text[text_String.length() + 1]; // vytvorime char array
  text_String.toCharArray(text, text_String.length() + 1); // prevedeme string na char
  char *text1 = strtok(text, ":"); // prvni text
  int val1 = atoi(strtok(NULL, ":")); // prvni cislo
  int val2 = atoi(strtok(NULL, ":")) - 1970; // muzeme i pocitat
  char *text2 = strtok(NULL, ":"); // druhy text
  // test
  Serial.println(text1);
  Serial.println(val1);
  Serial.println(val2 * 2);
  Serial.println(text2);
}