Table of Contents

Busolă cu sistem de avertizare

Introducere

Navigarea pe mare presupune, printre altele, stabilirea unui curs. Cursul este un număr între 0 și 359, reprezentând direcția în care se dorește deplasarea, în grade de cerc1). Metoda tipică de menținere a cursului pe mare este urmărirea acului busolei de lângă cârmă/timonă:

sailing.jpg

Odată stabilit un curs, se dorește menținerea sa cât mai stabilă. Multe bărci moderne sunt dotate cu sisteme autopilot, dar acestea nu sunt foolproof. De aceea voi încerca să creez un sistem de avertizare care atrage atenția timonierului asupra devierii de la cursul stabilit cu intensitate crescândă, ajungând să trimită semnale SOS dacă nu este resetat după o anumită perioadă de siguranță (15 minute2)).

Descriere generală

Sistemul va funcționa conform pașilor următori:

  1. Se introduce cursul format din 3 cifre.
  2. Se navighează.
  3. Dacă apare o deviere de la cursul stabilit (cu eroare de 3 grade), se aprind imediat LED-urile sistemului.
  4. Dacă devierea persistă cel puțin 5 minute, pornește un semnal sonor de avertizare, suficient de tare cât să poată fi auzit din cabina bărcii.
  5. Dacă devierea persistă cel puțin 15 minute, semnalul sonor ajunge la amplitudine maximă și devine codul Morse pentru SOS. În același timp, este trimis un SMS către un contact de urgență.
  6. În orice punct, sistemul poate fi resetat introducând un nou curs.
  7. [Opțional] Pe un ecran va fi desenat în timp real traseul parcurs.

schema_busola.jpg

Hardware

Componente utilizate:

Proiectul cu toate piese conectate și cu cel puțin o piesă funcțională arată așa:

10_la_pm.jpg

Schema electrică:

Modulul busolă și ecranul LCD comunică prin protocolul I2C și sunt conectați la pinii analogici Arduino corespunzători. Restul pinilor analogici sunt folosiți ca pini digitali de tastatura numerică. Matricea LED comunică prin SPI și este conectată la pinii digitali Arduino corespunzători.

Software

Ce merge:

Ce nu merge:

Am folosit biblioteci pentru modulele folosite:

Din cadrul laboratoarelor, am folosit comunicare I2C și SPI, întreruperi, UART pentru comunicare pe serial (citirea cursului). Prin I2C comunică ecranul LCD și modulul busolă. Prin SPI comunică matricea LED. Întreruperi am folosit pentru resetarea buzzerului.

Pentru implementarea software, am testat fiecare componentă în parte. Partea centrală constă într-un automat de stări.

1) Faptul că sunt suficiente 360 de grade pentru a putea ajunge oriunde demonstrează că Pământul este plat. Dacă nu ar fi fost plat, am fi avut nevoie de coordonate sferice, logic.
2) Cam atât este limita la toaletele publice inteligente.