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:

  • La inițializarea sistemului, pe display-ul OLED se afișează mesajul “Talk to me”
  • Transmiterea începe când utilizatorul porneste laserul si il indreapta catre panoul solar.
  • Fasciculul laser emite semnale corespunzătoare mesajului dorit, iar mini panoul solar interceptează aceste semnale.
  • Semnalele luminoase sunt convertite înapoi în codul Morse și afișate pe display-ul OLED sub forma literelor corespunzătoare.
  • Buzzer-ul emite tonuri sonore pentru a indica durata semnalelor luminoase interceptate.

When to use:

  • Comunicații de urgență: În situații de dezastru natural, unde rețelele tradiționale pot fi compromise, acest sistem poate oferi o metodă alternativă de comunicare între echipele de salvare.
  • Educație și formare: Poate fi folosit ca instrument educațional pentru a învăța codul Morse și principiile de bază ale comunicațiilor optice și solare.
  • Aplicații militare şi de securitate: Datorită naturii sale discrete și dificil de interceptat, sistemul poate fi utilizat în scenarii unde securitatea comunicațiilor este primordială.

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

  • Debouncing pentru senzorul solar pentru a evita citiri eronate cauzate de fluctuații rapide ale intensității luminii.
  • Ajustarea timpilor de sampling în codul Arduino pentru a echilibra între rapiditatea răspunsului și consumul de resurse.
  • Optimizarea afișării pe OLED pentru a minimiza întârzierile în vizualizarea mesajelor convertite din Morse.

Rezultate Obţinute

pm/prj2024/sseverin/iulia.marin.txt · Last modified: 2024/05/25 16:25 by iulia.marin
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0