Table of Contents

Morse Light Decoder

Introducere

Proiectul utilizează un microprocesor Arduino pentru a interpreta date trimise prin lumină, folosind tehnica Morse cu laser. Un fascicul laser emite lumina care este interceptată de un mini panou solar, transformând lumina în codul Morse. Prin utilizarea întreruperilor și a timerelor gestionate de Arduino, se înregistrează durata semnalelor luminoase, oferind astfel o modalitate inovativă de comunicare.

Datorită naturii sale concentrate, fasciculul laser permite acestui tip de comunicare să funcționeze eficient pe distanțe de până la 1 kilometru, asigurând astfel transmiterea precisă și clară a datelor pe distanțe impresionante.

Descriere generală

How to use:

When to use:

Hardware Design

Listă de piese:

  • Placuta Arduino Uno: Controlerul principal care gestionează întregul sistem.
  • Display OLED cu interfata I2C: Afișează mesajele recepționate în codul Morse convertit în text.
  • Buzzer: Emite tonuri pentru a indica durata semnalelor luminoase.
  • Mini solar pannel: Interceptează semnalele luminoase de la laser și le transformă în semnale electrice.
  • Laser: Emite semnale luminoase în codul Morse.
  • Rezistenta 22kOhm : Utilizată pentru a forma un divizor de tensiune sau pentru a proteja intrările Arduino.

Conexiuni:

Panou Solar:

  • + conectat la GND al Arduino (negru)
  • - conectat la A0 al Arduino pentru citirea valorilor analogice (verde)

Buzzer:

  • + conectat la pinul digital 6 al Arduino (mov)
  • - conectat la GND al Arduino (negru)

Display LCD I2C:

  • GND conectat la GND al Arduino (negru)
  • VCC conectat la 5V al Arduino (roșu)
  • SDA conectat la pinul A4 al Arduino (verde)
  • SCL conectat la pinul A5 al Arduino (albastru)

Rezistență de 22kOhm: Conectată între A0 și GND pentru a forma un divizor de tensiune și a proteja intrarea analogică.

Configurare Hardware:

  • Arduino Uno: Acesta este creierul sistemului care gestionează toate intrările și ieșirile.
  • Display OLED cu interfata I2C: Conectat la pinii SDA și SCL ai Arduino pentru comunicarea I2C.
  • Buzzer: Conectat la un pin digital al Arduino (de exemplu, pinul 6) pentru a reda tonuri sonore.
  • Mini solar pannel: : Conectat la un pin analogic al Arduino pentru a citi semnalele de lumină convertite în semnale electrice.
  • Laser: Alimentat de la o sursă externă, fasciculul său trebuie să fie îndreptat către mini panoul solar.
  • Rezistenta 22kOhm : Conectată în serie sau ca parte a unui divizor de tensiune pentru a proteja intrările Arduino sau pentru a asigura corectitudinea semnalului.

Software Design

Motivația alegerii bibliotecilor folosite:

  1. Wire.h - Aceasta este o bibliotecă standard folosită pentru comunicația I2C între microprocesorul Arduino și alte module, cum ar fi display-ul OLED. A fost aleasă pentru fiabilitatea și eficiența sa în gestionarea comunicațiilor pe protocol I2C.
  2. Adafruit_GFX.h și Adafruit_SSD1306.h - Aceste biblioteci sunt esențiale pentru operarea display-ului OLED SSD1306, facilitând inițializarea și manipularea grafică a display-ului. Sunt preferate pentru suportul extins și exemplele bogate care ajută la accelerarea dezvoltării.

Elementul de noutate al proiectului

Proiectul inovează prin utilizarea combinației de tehnologie optică (laser) și solară pentru a realiza comunicații pe distanțe lungi folosind codul Morse, un limbaj simplu dar extrem de eficient în situații critice. Utilizarea laserului pentru transmiterea mesajelor și a unui panou solar ca receptor este o abordare unică ce permite comunicarea discretă și eficientă fără nevoia de rețele tradiționale.

Justificarea utilizării funcționalităților din laborator

  • ADC (Analog to Digital Converter)

Este folosit pentru a citi semnalele analogice generate de panoul solar atunci când acesta este iluminat de laser. De exemplu, când laserul emite o lumină, panoul solar o detectează și produce un semnal analogic care este convertit într-un semnal digital de către ADC-ul Arduino pentru procesare ulterioară.

  • I2C

Este utilizat pentru a comunica între microcontrolerul Arduino și display-ul OLED. Acest protocol simplifică interfațarea, permițându-ți să trimiți comenzi pentru afișarea textului convertit din codul Morse. De exemplu, când un cod Morse este interpretat ca litera “S”, Arduino trimite prin I2C comanda de afișare a literei “S” pe display-ul OLED.

  • Timere

Sunt utilizate pentru a măsura durata fiecărui semnal de lumină interceptat, diferentiind între puncte și linii în codul Morse. De exemplu, dacă un semnal durează mai mult decât un prag definit, este interpretat ca o linie (”-”), altfel este un punct (”.”).

Calibrarea elementelor de senzoristică

Calibrarea panoului solar a fost realizată prin ajustarea sensibilității la lumină pentru a distinge între diferite intensități, ceea ce este crucial pentru detectarea corectă a semnalelor Morse. Acest proces a inclus teste în diverse condiții de iluminare pentru a asigura fiabilitatea, alaturi de aadugarea unui divizor de tensiune pentru a asigura ca panoul solar nu este asa sensibil la lumina din exterior.

Optimizări realizate

Rezultate Obţinute

marin_iulia_331ca_morse.zip