Taula de continguts:

Generador de funcions portàtils a WiFi i Android: 10 passos
Generador de funcions portàtils a WiFi i Android: 10 passos

Vídeo: Generador de funcions portàtils a WiFi i Android: 10 passos

Vídeo: Generador de funcions portàtils a WiFi i Android: 10 passos
Vídeo: Electrones ingresando al cuerpo - Electricidad estática 2024, Desembre
Anonim
Generador de funcions portàtils a WiFi i Android
Generador de funcions portàtils a WiFi i Android
Generador de funcions portàtils a WiFi i Android
Generador de funcions portàtils a WiFi i Android
Generador de funcions portàtils a WiFi i Android
Generador de funcions portàtils a WiFi i Android
Generador de funcions portàtils a WiFi i Android
Generador de funcions portàtils a WiFi i Android

Cap a finals del segle XX, van aparèixer diverses innovacions tecnològiques, especialment en el camp de les comunicacions; però no només. Per a nosaltres, usuaris, consumidors i enginyers van sortir a la llum un ràpid desenvolupament de dispositius electrònics que ens poden facilitar la vida: rellotges intel·ligents, cases intel·ligents, telèfons intel·ligents, etc.

Com que tot pot ser "intel·ligent" en l'actualitat, he decidit dissenyar un dispositiu súper útil per formar part dels equips electrònics de laboratori essencials: generador de funcions portàtils, controlable per un telèfon intel·ligent basat en sistema operatiu Android mitjançant WiFi directe o xarxa d'àrea local WiFi (WLAN)).

Per què hauríem de construir aquest dispositiu?

Actualment, la gran majoria d’equips de prova són pràcticament cars. I, de vegades, aquests dispositius no són portàtils. Com a solució per a preus elevats, falta de portabilitat i manca d’accés a la xarxa del dispositiu, el dispositiu proporciona un generador de forma d’ona de doble canal, que és de fet portàtil i que té un accés sense restriccions a la xarxa, ja sigui a Internet o local.

I, per descomptat, el dispositiu s’hauria de construir a causa de l’entusiasme, obeint els principis del bricolatge: de vegades només hem de fer les coses nosaltres mateixos per sentir-nos bé:)

Característiques clau

Font d'alimentació

  • Connector USB tipus A, tant per a sistemes d’alimentació com per a programació
  • Sistema complet de gestió de bateries de ions de Li: modes de càrrega i estabilitat
  • Implementació del commutador intel·ligent: no cal canviar d'alimentació
  • Alimentació dual: + 3,3V i -3,3V per a la generació de forma d'ona de tensió simètrica

Generació de formes d'ona

  • Implementació del nivell de CC a la forma d’ona esbiaixada en cascada de sortida entre els límits de tensió
  • Generació de formes d'ona basades en 4 tipus DDS: sinus, triangle, quadrat i CC
  • Suport de freqüència de fins a 10 MHz
  • Corrent de sortida de fins a 80 mA amb una potència màxima de 500 mW
  • Canals separats per a la generació de formes d'ona: circuits basats en AD9834 dividits

Comunicació

  • Implementació d’ESP32: funcions WiFi aplicables
  • Suport complet TCP / IP per dispositiu generador i telèfon intel·ligent Android
  • Possibilitat d'emmagatzemar paràmetres d'usuari per a cada cicle del dispositiu
  • Supervisió de l'estat: tots dos sistemes tenen coneixement de l'estat: FuncGen (anomenem-ho així a partir d'ara) i telèfon intel·ligent.

Interfície d'usuari

  • LCD de 20 x 4 caràcters amb una senzilla interfície de dades de 4 bits
  • Aplicació Android: control complet de l'usuari sobre el dispositiu FuncGen
  • Buzzer circuit: retroalimentació sonora a l'usuari

Pas 1: diagrama de blocs: maquinari

Diagrama de blocs: maquinari
Diagrama de blocs: maquinari
Diagrama de blocs: maquinari
Diagrama de blocs: maquinari

Unitat de microcontrolador - ATMEGA32L

El microcontrolador és un xip programable que consisteix en totes les funcionalitats de l’ordinador que resideixen en un sol xip electrònic. En el nostre cas, és el "cervell" i un component central del sistema. L’objectiu de la MCU és gestionar tots els sistemes perifèrics, gestionar la comunicació entre aquests sistemes, controlar el funcionament del maquinari i proporcionar un suport complet per a la interfície d’usuari i la seva interacció amb un usuari real. Aquest projecte es basa en la MCU ATMEGA32L, que pot funcionar a 3,3 V i a una freqüència de 8 MHz.

Comunicació SoC - ESP32

Aquest SoC (System on Chip) proporciona un suport complet de la comunicació per a FuncGen: accés a les funcions WiFi, inclosa la comunicació directa, local o per Internet. Les finalitats del dispositiu són:

  • Gestió de la transmissió de dades entre l'aplicació Android i el dispositiu FuncGen
  • Gestió de missatges de control / dades
  • Suport a la configuració continuada de client-servidor TCP / IP

Al nostre projecte, el SoC és espressif ESP32, que és massa popular per ampliar-lo encara més:)

Sistema de gestió de bateries de ions de li

Per tal de transformar el nostre dispositiu en un dispositiu portàtil, el dispositiu conté un circuit de càrrega de bateria de ions Li dissenyat. El circuit es basa en l’IC MC73831, amb un corrent de càrrega controlable mitjançant l’ajust del valor d’una sola resistència de programació (tractarem aquest tema al pas de l’esquema). L’entrada d’alimentació del dispositiu és un connector USB tipus A.

Circuit de commutació intel·ligent

El circuit de control de potència del dispositiu de commutació intel·ligent proporciona un control complet del programari sobre la seqüència d'apagada del dispositiu i la manca de necessitat d'un commutador alternatiu extern per tallar la tensió de la bateria del dispositiu. Totes les operacions d’alimentació es fan prement el botó i el programari de l’MCU. En alguns casos, caldria apagar el sistema: baixa tensió de la bateria, alta tensió d’entrada, error de comunicació, etc. El commutador intel·ligent es basa en l’IC del commutador intel·ligent STM6601, que és barat i molt amable de jugar.

Unitat principal d'alimentació

Aquesta unitat consta de dos circuits d'alimentació alimentats per bateria: + 3,3 V per a tots els circuits de subministrament digital / analògic i -3,3 V per a la sortida simètrica FunGen en relació amb el potencial de 0 V (és a dir, la forma d'ona generada es pot configurar en [-3,3 V: 3,3 V] regió.

  • El circuit d'alimentació principal es basa en el regulador lineal de tensió lineal LP3875-3.3 LDO (baixa caiguda) 1A.
  • El circuit de subministrament secundari es basa en IC LM2262MX, que realitza una conversió de voltatge negatiu CC-CC mitjançant condensador-càrrega-bomba - sistema en què es basa l’IC.

Sistema de generadors de formes d'ona

El sistema es va dissenyar amb èmfasi en circuits integrats DDS (síntesi digital directa) separats, que permeten el control complet de la generació de formes d'ona mitjançant l'SPI (interfície perifèrica en sèrie) de la MCU. Els circuits que es van utilitzar en el disseny són Analog Devices AD9834 que poden proporcionar diferents tipus de formes d'ona. Els reptes que hem d’afrontar mentre treballem amb AD9834 són:

  • Amplitud de forma d'ona fixa: l'amplitud de la forma d'ona està controlada per un mòdul DAC extern
  • No es té en compte el nivell de corrent continu: implementació de circuits de suma amb els valors desitjats de corrent continu
  • Sortides separades per a ona quadrada i triangle / ona sinusoïdal: implementació del circuit de commutació d'alta freqüència, de manera que cada sortida d'un canal pot proporcionar tota la forma d'ona desitjada: sinus, triangle, quadrat i CC.

Pantalla de cristall liquid

La pantalla LCD forma part de la interfície d’usuari (interfície d’usuari) i el seu propòsit és permetre a l’usuari entendre què fa el dispositiu en mode en temps real. Interactua amb l'usuari en tots els estats del dispositiu.

Zumbador

Circuit senzill de generador de tons per obtenir informació addicional del dispositiu a l'usuari.

Programador d’ISP integrat

Hi ha un problema persistent per a tots els enginyers a l’hora de processar la programació: sempre hi ha la pitjor necessitat de desmuntar el producte per reprogramar-lo amb un nou firmware. Per superar aquest inconvenient, el programador ISP AVR es va connectar al dispositiu des de l'interior, mentre que les dades i les línies d'alimentació USB estan lligades al connector USB tipus A del dispositiu. En aquesta configuració, només cal connectar el nostre FuncGen mitjançant un cable USB per programar o carregar.

Pas 2: diagrama de blocs: xarxes

Diagrama de blocs: xarxes
Diagrama de blocs: xarxes

Generador de funcions de doble canal

Dispositiu principal. La que hem revisat al pas anterior

ESP-WROOM-32

Sistema integrat amb xip amb funcions WiFi i BLE. SoC s’adjunta a la placa principal (ho tractarem en un pas d’esquema) mitjançant el mòdul UART i actua com a transmissor de missatges entre el dispositiu principal i el telèfon intel·ligent Android.

Xarxa local WiFi

El telèfon intel·ligent i el dispositiu es comunicaran mitjançant una xarxa d’àrea local o WiFi directa, basada en la configuració del servidor / client TCP. Quan els dispositius es reconeixen a la xarxa WiFi, el dispositiu principal crea el servidor TCP amb els paràmetres adequats i pot enviar / rebre missatges. El dispositiu actua com a element secundari del telèfon intel·ligent. El dispositiu Android, en canvi, es connecta al servidor TCP com a dispositiu de xarxa client, però es considera el principal transmissor de missatges: el telèfon intel·ligent és qui inicia el cicle de comunicació complet: enviament de missatges - rep resposta.

Smartphone Android

Dispositiu de telèfon intel·ligent basat en sistema operatiu Android que s’executa a l’aplicació FuncGen

Pas 3: peces, eines, IDE i llista de materials

Parts, eines, IDE i llista de materials
Parts, eines, IDE i llista de materials
Parts, eines, IDE i llista de materials
Parts, eines, IDE i llista de materials
Parts, eines, IDE i llista de materials
Parts, eines, IDE i llista de materials

Nombre de materials (veure taula XLS adjunta)

IU i connexions del sistema

  • 1 x 2004A Char-LCD 20x4 Blau
  • 1 x connector USB tipus B.
  • 1 x 10 Mini Mini JST XH 2,54 mm 4 pins
  • 1 x 6 unitats momentània SW

Comanda de PCB (segons Seeed Studio)

Material base FR-4

Nombre de capes 2 capes

Quantitat de PCB 10

Nombre de dissenys diferents 1

Gruix PCB 1,6 mm

Color PCB blau

Acabat superficial HASL

Presa de màscara de soldadura mínima de 0,4 mm ↑

Pes de coure 1 oz

Mida mínima del forat de 0,3 mm

Amplada / espaiat de traça 6/6 mil

Mig forats xapats / forats encaixats núm

Control d’impedància núm

Eines

  • Pistola de cola calenta
  • Pinces
  • Cortador
  • ~ 22AWG cable per a la manipulació de mal funcionament
  • Soldador / estació
  • Estany de soldar
  • Estació de reelaboració SMD (opcional)
  • Impressora 3D (opcional)
  • Fitxer d’extrusió
  • Programador ISP AVR
  • Convertidor USB a sèrie (opcional, a efectes de depuració)

Entorn de desenvolupament integrat (IDE) i programari

  • Autodesk EAGLE o Cadence Schematic Editor / Allegro PCB Editor
  • OpenSCAD (opcional)
  • Ultimaker Cura (opcional)
  • Saleae Logic (per a la resolució de problemes)
  • Atmel Studio 6.3 o superior
  • Android Studio o Eclipse IDE
  • Docklight Serial Monitor / Altres programes de monitorització de ports COM
  • ProgISP per a la programació de flaix AVR ATMEGA32L

Pas 4: Disseny de maquinari: placa principal

Disseny de maquinari: placa principal
Disseny de maquinari: placa principal
Disseny de maquinari: placa principal
Disseny de maquinari: placa principal
Disseny de maquinari: placa principal
Disseny de maquinari: placa principal

Circuit de gestió de bateries

El circuit de càrrega de la bateria es basa en l’IC MCP7383, que ens permet seleccionar el corrent de càrrega desitjat per a la bateria de ions de Li - 3,7 V amb una capacitat de 850 mAh. El corrent de càrrega s’estableix programant el valor de la resistència (R1) en el nostre cas

R1 = 3KOhm, I (càrrega) = 400mA

El voltatge USB VBUS es filtra mitjançant un filtre π (C1, L3, C3) i actua com a font d'alimentació per al circuit de càrrega.

El circuit divisor de tensió (R2, R3) permet a la MCU indicar si la font d'alimentació USB externa està connectada o no, proporcionant el voltatge següent al canal A / D de la MCU:

V (indicació) ~ (2/3) V (BUS)

Com que el nostre A / D d’ATMEGA32L és de 12 bits, podem calcular l’interval digital:

A / D (rang) = 4095V (indicació) / V (REF).

A / D ∈ [14AH: FFFH]

Unitat d'alimentació Smart Switch

El circuit permet que el sistema controli l’alimentació d’alimentació de tots els blocs dissenyats des del polsador i el programari de l’MCU i es basa en el commutador intel·ligent STM6601 amb opció POWER en lloc de RESET. Els terminals que volem considerar són els següents:

  • PSHOLD: línia d'entrada, que defineix l'estat del dispositiu: si es treu BAIX, el dispositiu desactiva totes les unitats d'alimentació secundària (+ 3,3 V i -3,3 V). Si es manté HIGH, el dispositiu manté l'estat ON.
  • nSR i nPB: línies d'entrada. Terminals de polsador. Quan es detecta la vora descendent en aquests pins, el dispositiu intenta entrar en mode d’engegada / baixada
  • nINT - Línia de sortida. Estirat BAIX cada vegada que es prem el botó
  • EN - Línia de sortida, s'utilitza com a habilitació d'alimentació per a les unitats d'alimentació secundàries. Mentre es manté BAIX, les dues fonts d'alimentació secundàries estan desactivades

Hi ha algunes notes importants abans de passar al disseny final:

  • PSHOLD s'hauria de pujar fins a 3,3 V, perquè hi ha casos en què les MCU obliguen totes les E / S a estar en estat HIGH-Z. En aquest cas, l'estat de PSHOLD de la MCU és desconegut i pot afectar dràsticament el procés de programació de dispositius.
  • L'STM6601 s'ha d'ordenar amb una opció d'ajustament EN en premsa llarga, en lloc de l'opció RESET (hi he caigut).

Unitat d'alimentació: + 3,3V

Alimentació principal per a tots els sistemes del nostre projecte. Quan es manté la línia + 3,3 V a nivell GND (és a dir, no hi ha voltatge present), tots els CI excepte el commutador intel·ligent estan desactivats. El circuit es basa en l’IC LDO LP-3875-3.3, amb la capacitat de ser controlat mitjançant terminal EN i proporcionar corrent de fins a 1A.

La font d'alimentació d'aquest circuit és la tensió de la bateria, amb un indicador A / D connectat per detectar VBAT en configuració, similar al circuit de detecció VBUS. En aquest cas, els càlculs difereixen lleugerament;

V (bateria a A / D) = 0,59 V (bateria); A / D (rang) ∈ [000H: C03H]

Unitat d'alimentació: -3,3V

El circuit d'alimentació de voltatge negatiu ens permet generar formes d'ona simètriques amb un factor de corrent continu de 0V (és a dir, el valor mitjà de la forma d'ona pot ser 0V). Aquest circuit es basa en el convertidor IC LM2662MX - CC / CC que funciona amb un mètode de "bomba de càrrega". El corrent de sortida màxim del circuit és de 200 mA, que és suficient per als nostres requisits de disseny: estem limitats amb un corrent de sortida de 80 mA del canal de cada dispositiu.

IC realitza tot el treball necessari, de manera que només les parts que hem d’adjuntar són dos condensadors electrolítics: C33 per a commutació i C34 per a bypass de línia de -3,3V (consideracions de reducció de soroll). La freqüència de commutació és insignificant en el disseny si col·loquem el circuit prou lluny de les parts de generació de formes d’ona (ho parlarem al pas Layout PCB).

Unitat de microcontroladors - MCU

Aquest és el gestor i el director general del nostre sistema (control, gestió de xarxes, transmissió de missatges i compatibilitat amb la interfície d’usuari).

La MCU escollida és Atmel ATMEGA32L, on L significa operació de tensió suportada 2.7 [2,7 V: 5,5 V]. En el nostre cas, la tensió de funcionament és de + 3,3V.

Considerem els principals blocs d’operacions necessaris per comprendre, treballant amb MCU en el nostre disseny:

  • Oscil·lador extern: és un component opcional, ja que ens interessa la freqüència de funcionament de 8 MHz
  • Control perifèric, xarxa SPI: tots els dispositius perifèrics (excepte ESP32) es comuniquen amb MCU mitjançant SPI. Hi ha tres línies compartides per a tots els dispositius (SCK, MOSI, MISO) i cada circuit perifèric té la seva línia dedicada CS (Chip Select). Els dispositius SPI que formen part del dispositiu:

    1. D / A per al control d’amplitud: canal A.
    2. D / A per al control d'amplitud: canal B.
    3. Dispositiu AD9834: canal A.
    4. Dispositiu AD9834: canal B.
    5. D / A per al control de tensió de biaix: canal A
    6. D / A per al control de tensió de biaix: canal B
    7. Potenciòmetre digital per a ajustos de contrast i brillantor LCD
  • Suport LCD: atès que el LCD és una pantalla genèrica de 20 x 4 caràcters, fem servir una interfície de 4 bits (línies D7: D4), pins de control (línies RS, E) i control de brillantor / contrast (línies V0 i ànode)
  • Suport LED RGB: aquest mòdul és opcional, però hi ha un connector LED RGB càtode comú amb resistències adequades, connectat a la MCU.
  • Control de potència: la MCU realitza el control del sistema d’alimentació en mode en temps real i gestiona tots els esdeveniments d’alimentació necessaris:

    1. VBAT_ADC: supervisió del voltatge de la bateria i determinació del seu estat (canal ADC0)
    2. PWR_IND: indicació de la connexió d'alimentació externa (canal ADC1)
    3. PS_HOLD - Línia d’activació d’alimentació principal per a tots els sistemes definits. Quan la MCU arrossega el dispositiu, el dispositiu s'apaga
    4. Interrompre el terminal del commutador intel·ligent: supervisió de l'estat del polsador
  • Gestió de xarxes WiFi: ESP32: l’MCU es comunica amb ESP32 mitjançant la interfície UART. Com que 8 MHz permet implementar la velocitat de transmissió de 115200 amb un error relativament petit, podem utilitzar ESP32 al circuit sense predefinicions de canvis en la velocitat de transmissió.

Programador ISP AVR

La nostra MCU està programada mitjançant SPI amb una línia de restabliment (/ RST) que s'ha de treure ALTA per a un funcionament correcte (si no, la MCU es trobarà en un estat de reinici per sempre).

Per tal de permetre que el dispositiu es programi i es carregui mitjançant USB, he adjuntat un programador AVR ISP (producte de mida petita, comprat a eBay). Per mantenir el suport complet del dispositiu USB, cal connectar els terminals USB tipus A (D +, D-, VBUS i GND) amb un dispositiu ISP AVR.

Circuit de generació de formes d’ona

El nucli del dispositiu són aquests circuits. AD9834 és un dispositiu DDS de baixa potència que ens proporciona totes les formes d’ona que voldríem recuperar del sistema. Els circuits contenen dos circuits integrats AD9834 independents amb oscil·ladors externs de 50 MHz separats (com es pot veure als esquemes). La raó de l’oscil·lador separat és una consideració de reducció de soroll dels circuits digitals, de manera que la decisió va ser manejar línies adequades de 50 MHz amb oscil·ladors situats al costat de l’AD9834.

Vegem ara algunes matemàtiques:

Com que el dispositiu DDS funciona amb la tecnologia Phase Wheel amb un valor de sortida mantingut en un registre de 28 bits, podem descriure la generació de formes d'ona matemàticament:

dP (fase) = ωdt; ω = P '= 2πf; f (AD9834) = ΔP * f (clk) / 2 ^ 28; ΔP ∈ [0: 2 ^ 28-1]

I segons el full de dades AD9834, tenint en compte la freqüència màxima, es pot obtenir una resolució de freqüència de sortida:

Δf = k * f (oscil·lador) / f (màxim) = 0,28 * 50M / 28M = 0,187 [Hz]

Els circuits integrats AD9834 proporcionen una sortida de corrent analògica per a ona triangular / sinusoïdal (terminal IOUT) i sortida digital per a ona quadrada (terminal SIGN_OUT). L’ús del bit de signe és una mica complicat, però el podem gestionar: cada cop que DDS passa el llindar del valor de comparació, SIGN_OUT es comporta en conseqüència. A la sortida de cada canal s’uneix una resistència de 200 Ohm, de manera que la tensió de sortida tindria valors significatius:

I (canal únic) = V (sortida) / R (selecció de tensió); V (sortida) = R (VS) * I (SS) = 200I (SS) [A]

Circuits de control d’amplitud (D / A)

Segons la fitxa tècnica de l'AD9834, la seva amplitud es pot ajustar proporcionant corrent al sistema DDS a escala completa, de manera que amb l'ajut de doble IC D / A podem controlar l'amplitud del senyal de sortida ajustant aquest corrent. Una vegada més, algunes matemàtiques:

I (escala completa) = 18 * (V_REF - V_DAC) / R_SET [A]

Segons esquemes i posant alguns nombres a equació:

I (escala completa) = 3,86 - 1,17 * V_DAC [A]

El mòdul D / A utilitzat en el disseny és MCP4922 de 12 bits, quan el corrent està en el rang de [0mA: 3,86mA] i la funció d'amplitud lineal és:

V (selecció d'amplitud) = 1 - [V (D / A) / (2 ^ 12 - 1)]

Circuit de multiplexació de formes d'ona

Les sortides de generació d'ona quadrada i sinusoïdal / triangular estan separades a l'AD9834, de manera que hem d'utilitzar un circuit de multiplexació d'alta velocitat per a les dues sortides per tal de permetre recuperar totes les formes d'ona desitjades des d'un sol canal separat. El multiplexor IC és un commutador analògic ADG836L amb una resistència d’encesa molt baixa (~ 0,5 Ohm).

La taula de selecció que utilitza MCU per a les sortides tal com és:

Selecció de mode [D2: D1] | Canal de sortida A | Canal de sortida B

00 | Sinus / Triangle | Sinus / Triangle 01 | Sinus / Triangle | Plaça 10 | Plaça | Sinus / Triangle 11 | Plaça | Quadrat

Circuits de control de tensió de polarització (D / A)

Una de les principals característiques del generador de formes d'ona és controlar el seu valor CC. En aquest disseny es fa establint el voltatge D / A desitjat per a cada canal, i aquestes tensions de polarització es sumen amb sortides multiplexades que hem comentat una mica abans.

La tensió recuperada de D / A es troba en l'interval [0V: + 3,3V], de manera que hi ha un circuit basat en amplificador operatiu que assigna l'interval D / A a [-3,3V: + 3,3V], cosa que permet al dispositiu proporcionar un rang complet del component de CC desitjat. Ometrem les molestes matemàtiques analítiques i ens centrarem en els resultats finals:

V_OUT (canal B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (canal A) = V_BIAS_A (+) - V_BIAS_A (-)

Ara, el rang de components de CC es troba al rang [-3,3V: + 3,3V].

Circuits de suma: components de CC i sortides de forma d'ona

En aquest moment tenim tot el que necessitem per a la sortida adequada del dispositiu: tensió de biaix (component de CC) en tot el rang de tensió i sortides AD9834 multiplexades. Ho aconseguirem fent servir la configuració de l'amplificador sumatori - op-amp

Saltem-nos les matemàtiques una vegada més (ja hem tractat un munt d’enfocaments matemàtics) i anotem el resultat final de la sortida de l’amplificador de suma:

V (sortida del dispositiu) = V (biaix positiu) - V (biaix negatiu) - V (sortida multiplexada) [V]

Per tant:

V_OUT = ΔV_BIAS - V_AD9834 [V]

Els connectors de sortida de tipus BNC estan connectats amb resistències de selecció (R54, R55; R56, R57). La raó és que, en el cas que el disseny sigui disfuncional, encara podem seleccionar si volem utilitzar un amplificador sumatori.

Nota important: Un dissenyador pot ajustar les xarxes de resistències dels amplificadors de suma final per tal de canviar l’amplitud màxima que es pot recuperar des del dispositiu. En el meu cas, tots els amplificadors comparteixen el mateix guany = 1, per tant l’amplitud màxima emmagatzemada és de 0,7 Vpp per l’ona triangular / sinusoïdal i de 3,3 Vpp per l’ona quadrada. L'enfocament matemàtic específic es pot trobar entre les imatges adjuntes del pas.

ESP32 com a mòdul extern

La MCU es comunica amb ESP32 mitjançant la interfície UART. Com que volia el meu propi PCB per a l’ESP32, hi ha 4 terminals disponibles per connectar: VCC, RX, TX, GND. J7 és un connector d'interfície entre PCBs i ESP32 s'assignarà com a mòdul extern dins del dispositiu.

Interfície d'usuari: LCD i altaveu

La pantalla LCD que es va utilitzar és una pantalla genèrica de 20 x 4 caràcters amb una interfície de 4 bits. Com es pot veure pel disseny, hi ha un potenciòmetre digital SPI connectat als terminals LCD "A" i "V0": el seu propòsit és ajustar brillantor i contrast del mòdul LCD per programació.

L’altaveu proporciona una sortida de so per a l’usuari mitjançant la simple generació d’ones quadrades des de l’MCU. El BJT T1 controla el corrent a través de l’altaveu que pot estar només en dos estats: ON / OFF.

Pas 5: Disseny de maquinari: mòdul ESP32

Disseny de maquinari: mòdul ESP32
Disseny de maquinari: mòdul ESP32

ESP32 s'utilitza com a mòdul extern per a PCB principals. La comunicació del dispositiu es basa en ordres AT, que estan disponibles al firmware d'un dispositiu genèric.

No hi ha molt a ampliar en aquest disseny, però hi ha algunes notes per al disseny:

  • Per a la gestió de fallades en utilitzar el mòdul UART adequat de l'ESP32, he adjuntat tres resistències de selecció per a les línies TX i RX. (0 Ohm per a cadascun). Per a la configuració estàndard, el mòdul UART2 s’utilitza per a comandes AT (s’ha de soldar R4, R7)
  • El dispositiu té sortida de 4 línies: VCC, GND, TX, RX.
  • Els pins IO0 i EN avaluen el funcionament del dispositiu i s'han de dissenyar tal com es proporciona als esquemes

Totes les funcions del PCB les tractarem en el següent pas.

Pas 6: Disseny de PCB

Disseny de PCB
Disseny de PCB
Disseny de PCB
Disseny de PCB
Disseny de PCB
Disseny de PCB

Els objectius de dissenyar un PCB

  1. Creeu un sistema incrustat per a tots els circuits integrats de la mateixa placa
  2. Milloreu el rendiment del dispositiu mitjançant el disseny d’un únic PCB principal
  3. Reducció de costos: si voleu consultar els preus, els dissenys de baix cost són REALMENT baixos
  4. Minimitzeu la mida del tauler electrònic
  5. Fàcil de resoldre problemes: podem utilitzar TP (punts de prova) per a cada possible línia de mal funcionament.

Paràmetres tècnics

Tots dos PCB: la placa principal i la targeta ESP32 comparteixen les mateixes característiques per al procés de fabricació: de baix cost i operables per als nostres propòsits. Vegem-los:

A - Taula principal

  • Mides: 10cm x 5.8cm
  • Nombre de capes: 2
  • Gruix del PCB: 1,6 mm
  • Amplada / espai mínim de traça: 6 / 6mil
  • Diàmetre mínim del forat: 0,3 mm
  • Coure fins a la vora de la distància mínima del PCB: 20mil
  • Acabat superficial: HASL (tipus barat de color plata molt bonic)

B - Junta principal

  • Mides: 3cm x 4cm
  • Nombre de capes: 2
  • Gruix del PCB: 1,6 mm
  • Amplada / espai mínim de traça: 6 / 6mil
  • Diàmetre mínim del forat: 0,3 mm
  • Coure fins a la vora de la distància mínima del PCB: 20mil
  • Acabat superficial: HASL

Pas 7: recinte 3D

Recinte 3D
Recinte 3D

No el vaig dissenyar per mi mateix, perquè en aquell moment estava persuadint aquest dispositiu perquè funcionés, de manera que no era conscient de tots els conceptes bàsics de la impressió 3D. Per tant, he utilitzat un projecte SCAD de Thingiverse i he adjuntat diferents obertures als límits, segons les especificacions del meu dispositiu.

  1. Dispositiu d'impressió: Creality Ender-3
  2. Tipus de llit: vidre, gruix de 5 mm
  3. Diàmetre del filament: 1,75 mm
  4. Tipus de filament: PLA +
  5. Diàmetre del broquet: 0,4 mm
  6. Velocitat inicial: 20 mm / seg
  7. Velocitat mitjana: 65 mm / seg
  8. Suport: N / A
  9. Emplenament: 25%
  10. Temperatura:

    • Llit: 60 (oC)
    • Broquet: 215 (oC)
  11. Color filament: negre
  12. Nombre total d'obertures: 5
  13. Nombre de panells de tancament: 4

    • TOP Shell
    • Shell inferior
    • Panell frontal
    • Tauler posterior

Pas 8: Implementació de programari: MCU

Implementació de programari - MCU
Implementació de programari - MCU
Implementació de programari - MCU
Implementació de programari - MCU
Implementació de programari - MCU
Implementació de programari - MCU

Enllaç GitHub a Android i codi Atmega32

Algorisme de programari

Totes les operacions que realitza la MCU es descriuen als diagrames de flux adjunts. A més, hi ha un codi adjunt per al projecte. Cobrim les especificacions del programari:

Engegada

En aquesta etapa, MCU realitza totes les seqüències d’inicialització juntament amb la determinació del tipus de comunicació emmagatzemada amb un dispositiu Android: comunicació directa per xarxa WiFi o WLAN: aquestes dades s’emmagatzemen a EEPROM. En aquesta etapa, l'usuari pot redefinir el tipus de parell de dispositius Android.

Emparellament directe de dispositius Android

Aquest tipus d’aparellament es basa en la creació de xarxes WiFi mitjançant el dispositiu FuncGen. Crearà AP (punt d'accés) i un servidor TCP en una IP del dispositiu local amb un SSID específic (nom de xarxa WiFi) i un número de port específic. El dispositiu hauria de mantenir l'estat obert per a les connexions.

Quan el dispositiu Android està connectat a FuncGen, l'MCU entra en mode ACTIU i respon segons les instruccions de l'usuari del dispositiu Android.

Emparellament WLAN

Per comunicar-se en una xarxa WiFi local, l’MCU hauria de proporcionar ordres perquè l’ESP32 crei AP, comunicar-se amb un dispositiu Android i intercanviar les dades de xarxa crucials:

  • El dispositiu Android rep de FuncGen la seva adreça MAC i l’emmagatzema a la memòria.
  • El dispositiu FuncGen rep els paràmetres WLAN seleccionats del dispositiu Android: SSID, tipus de seguretat i contrasenya i l’emmagatzema a EEPROM.

Quan els dispositius estan connectats a la mateixa WLAN, el dispositiu Android buscarà el FuncGen escanejant totes les adreces MAC dels dispositius connectats a la WLAN. Quan el dispositiu Android determina la coincidència MAC, intenta comunicar-se.

Connexió i manipulació d'estats - MCU

Quan els dispositius es comuniquen entre ells, el protocol (vegeu el pas pre-final) es manté i el diagrama de flux és el mateix.

Monitorització de l'estat del dispositiu

La interrupció temporitzada proporciona a la MCU els detalls necessaris per al tractament de l'estat. Cada cicle d’interrupció del temporitzador s’actualitza la llista de paràmetres següent:

  • Font d'alimentació externa: encès / apagat
  • Estat de la tensió de la bateria
  • Actualització de la interfície d’usuari per a cada personalització
  • Polsador: premut / no premut

Pas 9: implementació de programari: aplicació per a Android

Implementació de programari: aplicació per a Android
Implementació de programari: aplicació per a Android
Implementació de programari: aplicació per a Android
Implementació de programari: aplicació per a Android
Implementació de programari: aplicació per a Android
Implementació de programari: aplicació per a Android
Implementació de programari: aplicació per a Android
Implementació de programari: aplicació per a Android

L’aplicació per a Android està escrita a l’estil Java-Android. Intentaré explicar-ho de la mateixa manera que els passos anteriors, dividint l'algorisme en blocs de codi separats.

Seqüència d'encesa

Primera seqüència del dispositiu. Aquí es presenta el logotip de l’aplicació juntament amb els mòduls GPS i WiFi habilitats del dispositiu Android (no us preocupeu, el GPS només és necessari per escanejar les xarxes WiFi adequades).

Menú principal

Un cop arrencada l'aplicació, apareixeran quatre botons a la pantalla. Acció de botons:

  1. CONNEXIÓ DIRECTA: inicialització de la connexió a l'AP de FuncGen mitjançant el SSID d'IOT_FUNCGEN. Si la connexió funciona correctament, el dispositiu entra en mode d'interfície d'usuari principal.
  2. CONNEXIÓ WIFI: el dispositiu comprova si hi ha paràmetres de dades emmagatzemats a la memòria: wifi.txt, mac.txt. Si no hi ha dades emmagatzemades, el dispositiu rebutjarà la sol·licitud de l'usuari i proporcionarà el missatge emergent que primer s'ha de fer el vincle WLAN.
  3. EMPARELLAMENT: Comunicar-nos amb FuncGen de la mateixa manera que CONNEXIÓ DIRECTA, però en lloc d’un intercanvi continu de missatges, hi ha una única encaixada de mans. El dispositiu Android comprova si ja està connectat a la xarxa WiFi i sol·licita a l'usuari que introdueixi la contrasenya. Si la reconnexió és correcta, el dispositiu Android emmagatzema SSID i contrasenya al fitxer wifi.txt. Després de comunicar-se amb èxit amb FuncGen, emmagatzema l'adreça MAC rebuda al fitxer mac.txt.
  4. Sortida: Prou dit:)

Gestor d’escaneig WiFi

Volia que l'aplicació fos totalment operativa i que no es fessin ajustos fora de l'aplicació. Per tant, he dissenyat l’escàner WiFi, que realitza totes les operacions necessàries per connectar-se a la xarxa WiFi amb una clau de pas i SSID coneguts.

Transmissió de dades i comunicació TCP

Aquest és el bloc de codi principal de l'aplicació. Per a totes les unitats d’interfície d’usuari hi ha un missatge definit en un format específic (pas final), que obliga FuncGen a proporcionar la sortida desitjada per als canals. Hi ha tres tipus de camps d’interfície d’usuari en activitat:

  1. Barres de cerca: aquí definim l'abast real dels paràmetres de sortida de FuncGen

    1. Amplitud
    2. DC Offset
    3. Brillantor LCD
    4. Contrast LCD
  2. Edició de text: per tal de mantenir els valors enters ben definits i precisos, l’entrada de freqüència es fa només mitjançant quadres de text numèrics
  3. Botons: selecció de paràmetres de les llistes disponibles:

    1. Tipus de forma d'ona
      1. Sinus
      2. Triangle
      3. DC
      4. Quadrat
      5. DESACTIVAT
    2. Obtenir informació

      1. Estat de la bateria (percentatge)
      2. Estat de CA (font d'alimentació externa)
    3. Opció d'arrencada (per a FuncGen MCU)

      1. Configuració de fàbrica
      2. Reinicia
      3. Tancar
      4. Directe: reinicieu amb el mode d’aparellament directe
      5. WLAN: reinicieu amb el mode de sincronització WLAN
    4. Sortir al menú principal: prou dit:)

Pas 10: proves

Recomanat: