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ă:
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)).
Sistemul va funcționa conform pașilor următori:
Componente utilizate:
Proiectul cu toate piese conectate și cu cel puțin o piesă funcțională arată așa:
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.
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.