sâmbătă, 27 februarie 2021

Ceas GPS cu reglaj ora locala (4)


   Ceasul GPS cu reglaj ora locala si afisare ora in format de 12 ore sau 24 are cateva "floricale" fata de ceasul din articolul anterior.
   Schema este aceeasi ca cea din articolul precedent, doar ca primul buton incrementeaza ora locala pana la UTC+14, dupa care trece la cea minima de UTC-12, iar al doilea comuta din format de 24 ore in cel de 12 ore, toate astea folosind programul ceas_neo6m_big_ro_adj_12_24h_full2.ino.
   Cateva exemple, de afisare in format de 24 ore si, respetiv, 12 ore:
- ora locala UTC+2:
- ora locala UTC+4:30 (sau UTC+4.5)
- ora locala UTC+5:30 (sau UTC+5.5)
- ora locala UTC+5:45 (sau UTC+5.75)
- ora locala UTC+14
- ora locala UTC-12
   Cele 2 filme ce descriu functionarea si modul de reglare sunt:

28.2.2021
   Dupa postarea filmuletului pe mai multe grupuri de pasionati Arduino, am primit sugestii pentru implementarea debounce-ului la cele 2 butoane si sa nu scriu mereu in memoria EEPROM la fiecare modificare, sa elimin si posibilitatea scrierii continue la apasare continua (defect buton cu contact permanent la masa, asa ca am implementat partea utila din exemplul aplicatiei numit DEBOUNCE
si am adaugat scrierea in EEPROM doar dupa 10 secunde la de la ultima apsare a butonului. Acest timp se poate mari, dar modificarea orei locale se face doar de 2 ori pe an, iar trecere de la formatul de 12 la 24 ore tot asa rar.
   Am facut inca 2 filmulete cu noul programel, ceas_neo6m_big_ro_adj_12_24h_full3.ino:
PS: si inca 2 filmulete;

Ceas GPS cu reglaj ora locala (3)

   Dupa primirea unui comentariu la unul din filmulete, pentru modul de reglare al orei locale pentru UTC+5.5 (India, Sri Lank), am realizat ca nu am acoperit toate zonele. In articolul List of UTC time offsets sunt prezentate 38 de ore locale, de la -12 pana la +14, unele fiinf cu jumatati de ora, gen +3;30, altele cu sferturi de ora, gen +5.45, asa ca voi schimba modul de modificare a orei locale.
   Deoarece e vorba de modificare de program, se foloseste aceeasi schema ca in articolul precedent:

   Programul rescris de mine, care include cele 38 de ore zonale, inclusiv valorile intermediare reale, este ceas_neo6m_big_ro_adj_12_24h_full.ino !
   Ca de obicei, am facut 2 filmulete, unul in romana si unul in engleza:
   Ulterior, dupa ce am mai facut corectii in program, am mai facut 2 filmulete:

joi, 25 februarie 2021

Ceas GPS cu reglaj ora locala (2)

    Fata de ceasul din articolul anterior, de data asta, pot selecta si modul de afisare in format de 12 ore sau 24 ore. Pentru a fi sigur ca fac conversia, am cautat pe net si am gasit articolul Wikipedia: 24-hour clock,

   In mare, ora 0:00 este ora 12:00 AM sau 12:00 (de la miezul noptii), iar ora 12:00 (din frmatul de 24 ore) este ora 12;00 PM sau 12:00 din miezul zilei (noon).
   Schema de conectare este aceeasi, ca la ceasul anterior, iar programul (sketch-ul) folosit este ceas_neo6m_big_ro_adj_12_24h.ino

   Daca se apasa butonul +, ora locala creste cu o ora, iar daca se apasa butonul -, ora locala scade cu o ora. Daca se apasa simultam ambele butoane se comuta modul de afisare de la 24 ore la cel de 12 ore.
   Exemple de afisare a ore 16:53, respectiv 14;54 in format de 12 ore
si ora 4;53 in format de 24 ore:
   Am facut si 2 filmulete, din care se observa modul de fuctionare:


Ceas GPS cu reglaj ora locala

    Am modificat ceas-ul GPS sa pot regla ora locala, in primul rand pentru a corecta ora vara/iarna, dar si pentru a fi util si celor ce locuiesc in alte zone, eu limitand la UTC-12 pana la UTC+12, dar pentru cei din zone peste acestea, pot modifica usor din soft, la limite. 

   Pentru detalii de ora universala (UTC) si orele locale, vedeti articolul Coordinated Universal Time sau, cel in limba romana, Ora universală coordonată

   Eu am adaugat 2 butoane fara retinere, unul pentru crestere valoare si unul pentru scadere valoare ora locala. Butonul pentru crestere este conectat la D12, iar cel de scadere este la D11, restul schemei ramane neschimbata (vezi articolul Ceas GPS).
iar sketch-ul modificat este https://github.cceas_neo6m_big_ro_adj.ino
   Exemplu de afisare la UTC-12
si UTC+12:
   Pentru o mai buna intelegere a modului de reglaj si afisare (am pastrat sa afiseze alternativ data, ziua in romana si in engleza).

marți, 23 februarie 2021

Vitezometru GPS

    Dupa ce m-am familiarizat cu receptorul GPS model NEO-6M (vedeti articolul precedent), am adaptat un program pentru a avea un vitezometru cu indicatii de ora si pozitie.

   Schema este aceeasi ca a ceasului GPS, prezentata in articolul precedent
iar programul folosit este GPS_speedometer.ino.
   Cand viteza este mica, sub 10km/h, in dreapta apaare mesajul "viteza" si "km/h", iar caracterele vitezei sunt mari (am pus in articolul precedent link-uri).
   Am pus initial, montajul in bord, pentru a compara viteza cu cea a vitezometrului masinii:
apoi in locul telefonului si am comparat valorile cu ale unei navigatii, rezultatele fiind foarte bune.

   Cu ocazia testelor, am facut si cateva filmulete, dar in unele nu se vad bine indicatiile de pe afisaj
PS: Informatiile sunt receptionate de la satelitii GPS la 2-3 minute de la alimentarea montajului, asa ca in cel mai fericit caz aveti informatii despre ora. De asemenea, am observat ca numarul satelitilor de la care receptioneaza receptorul semnal nu este indicata uneori sau este indicata incorect.

duminică, 21 februarie 2021

Ceas GPS

   Intrand in posesia unui receptor GPS NEO-6M, am zis sa fac un proiect usor, si anume, un ceas ce preia ora de la de la receptorul GPS.

   Un prim articol, ce trebuie citit, pentru familiarizarea cu acest receptor GPS, este How to Interface GPS Module (NEO-6m) with Arduino

   Avand la dispozitie un afisaj LCD 2004 (20 coloane si 4 randuri) si un adaptor i2c, am adaptat programul din articolul Arduino GPS clock with local time using NEO-6M module.

   Am folosit aceeasi schema

doar ca eu am adaugat afisarea cu caractere mari, cum mai testasem si acum ceva timp la un vitezometru GPS.
  Vedeti articolele:

   Sketch-ul modificat de mine, pentru acest ceas, este ceas_neo6m_big_ro.ino

   Montajul a fost facut cat mai 'transportabil", montand socluri pentru Arduino Nano si conectori XH2.54 pentru receptorul GPS si afisaj (mai am o mufa Pentru un debitmetru, care nu se foloseste in aceasta aplicatie).

   Puteti vedea cum se afiseaza informatiile am facut urmatoarele 2 filmulete:

ceas cu actualizare date cu GPS

GPS clock (NEO-6M)