Sadržaj:

Prijenosni generator funkcija na WiFi i Androidu: 10 koraka
Prijenosni generator funkcija na WiFi i Androidu: 10 koraka

Video: Prijenosni generator funkcija na WiFi i Androidu: 10 koraka

Video: Prijenosni generator funkcija na WiFi i Androidu: 10 koraka
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Juli
Anonim
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android

Krajem 20. stoljeća pojavile su se razne tehnološke inovacije, posebno u području komunikacija; ali ne samo. Za nas, korisnike, potrošače i inženjere došlo je do brzog razvoja elektroničkih uređaja koji nam mogu uvelike olakšati život: pametni satovi, pametne kuće, pametni telefoni itd.

Budući da danas sve može biti "pametno", odlučio sam dizajnirati superkorisni uređaj koji će biti dio bitne elektroničke laboratorijske opreme - prijenosni generator funkcija, kojim se može upravljati putem pametnog telefona zasnovanog na Android OS -u putem WiFi direktne ili WiFi lokalne mreže (WLAN)).

Zašto bismo trebali napraviti ovaj uređaj?

Velika većina opreme za testiranje danas je prilično skupa. A ponekad ti uređaji nisu prenosivi. Kao rješenje za visoke cijene, nedostatak prenosivosti i nedostatak pristupa mreži uređaja, uređaj nudi dvokanalni generator valnog oblika, koji je zaista prenosiv i ima neograničen pristup mreži - bilo internetskoj ili lokalnoj.

I naravno, uređaj bi trebao biti izgrađen zbog entuzijazma, poštujući DIY principe - ponekad jednostavno moramo sami raditi stvari kako bismo se osjećali ispravno:)

Ključne karakteristike

Napajanje

  • USB priključak tipa A, za sisteme napajanja i za programiranje
  • Kompletan sistem upravljanja Li -Ion baterijom - Punjenje i stabilni načini rada
  • Implementacija pametnog prekidača - nema potrebe za prekidačem za uključivanje / isključivanje
  • Dvostruko napajanje: +3,3 V i -3,3 V za generiranje simetričnog napona

Generisanje talasnog oblika

  • Implementacija istosmjernog nivoa na izlaznoj kaskadi - pristrani valni oblik između granica napona
  • Generisanje talasnog oblika zasnovanog na DDS -u - sinusni, trougaoni, kvadratni i jednosmerni
  • Podrška za frekvencije do 10MHz
  • Izlazna struja do 80mA sa raspoloživom maksimalnom snagom od 500mW
  • Odvojeni kanali za generiranje valnog oblika - podijeljena kola zasnovana na AD9834

Komunikacija

  • Implementacija ESP32 - Primjenjive WiFi mogućnosti
  • Potpuna TCP/IP podrška putem generatorskog uređaja i Android pametnog telefona
  • Mogućnost spremanja korisničkih parametara za svaki ciklus uređaja
  • Praćenje stanja - oba sistema su svjesna jedno drugog stanja: FuncGen (nazovimo ga od sada ovako) i pametni telefon.

Korisnički interfejs

  • LCD ekran veličine 20 x 4 karaktera sa jednostavnim 4-bitnim interfejsom za prenos podataka
  • Android aplikacija - potpuna kontrola korisnika nad FuncGen uređajem
  • Krug zujalice - zvučna povratna informacija korisniku

Korak 1: Blok dijagram - hardver

Blok dijagram - hardver
Blok dijagram - hardver
Blok dijagram - hardver
Blok dijagram - hardver

Jedinica mikrokontrolera - ATMEGA32L

Mikrokontroler je programabilni čip koji se sastoji od svih računalnih funkcija koje se nalaze u jednom elektroničkom čipu. U našem slučaju to je "mozak" i centralna komponenta sistema. Svrha MCU -a je upravljanje svim perifernim sistemima, upravljanje komunikacijom između ovih sistema, kontrola rada hardvera i pružanje potpune podrške za korisničko sučelje i njegovu interakciju sa stvarnim korisnikom. Ovaj projekat zasnovan je na ATMEGA32L MCU, koji može raditi na 3.3V i frekvenciji od 8MHz.

Komunikacija SoC - ESP32

Ovaj SoC (System on Chip) pruža potpunu komunikacijsku podršku za FuncGen - Pristup WiFi mogućnostima uključujući direktnu, lokalnu ili internetsku komunikaciju. Svrha uređaja je:

  • Rukovanje prijenosom podataka između Android aplikacije i FuncGen uređaja
  • Upravljanje kontrolnim/podatkovnim porukama
  • Podrška za kontinuiranu konfiguraciju klijent-poslužitelj TCP/IP

U našem projektu SoC je espressif ESP32, koji je previše popularan da bismo ga proširili dalje:)

Sistem za upravljanje Li-Ion baterijom

Kako bismo naš uređaj pretvorili u prijenosni, uređaj sadrži dizajnirano kolo za punjenje Li-Ion baterije. Krug je zasnovan na MC73831 IC, s kontroliranom strujom punjenja podešavanjem vrijednosti jednog programskog otpornika (Ovu temu ćemo obraditi u koraku Sheme). Ulaz za napajanje uređaja je USB priključak tipa A.

Krug pametnog prekidača

Krug upravljanja napajanjem pametnog prekidača pruža potpunu softversku kontrolu nad sekvencom isključivanja uređaja i nedostatkom potrebe za vanjskim prekidačem za isključivanje napona baterije uređaja. Sve operacije napajanja obavljaju se pritiskom na tipku i softver MCU -a. U nekim slučajevima, bilo bi potrebno isključiti sistem: Nizak napon baterije, visoki ulazni napon, greška u komunikaciji itd. Pametni prekidač zasnovan je na inteligentnom prekidaču IC STM6601, koji je jeftin i vrlo se može igrati.

Glavna jedinica za napajanje

Ova jedinica se sastoji od dva kruga napajanja napajanog baterijom - +3.3V za sva digitalna / analogna kola napajanja i -3.3V za FunGen simetrični izlaz u odnosu na 0V potencijal (tj. Generirani valni oblik može se postaviti u [-3.3V: 3.3V] region.

  • Glavni krug napajanja zasnovan je na linearnom regulatoru napona LPA (LP3875-3.3 LDO (mali ispad)) 1A.
  • Sekundarni krug napajanja zasnovan je na IC-u LM2262MX, koji vrši pretvaranje DC-DC negativnog napona putem kondenzatorske pumpe-sistem na kojem se temelji IC.

Sistem generatora talasnih oblika

Sustav je dizajniran s naglaskom na zasebna DDS (direktna digitalna sinteza) integrirana kola, koja omogućuju potpunu kontrolu generiranja valnog oblika pomoću MCU -ovog SPI -a (serijskog perifernog sučelja). Krugovi koji su korišteni u dizajnu su Analog Devices AD9834 koji mogu pružiti različite vrste valnih oblika. Izazovi s kojima se moramo suočiti u radu s AD9834 su:

  • Fiksna amplituda valnog oblika: Amplitudu valnog oblika kontrolira vanjski DAC modul
  • Bez obzira na pomak DC razine: Implementacija krugova zbrajanja sa željenim vrijednostima pomaka istosmjernog napona
  • Odvojeni izlazi za kvadratni val i trokut/sinusni val: Implementacija visokofrekventnog sklopnog sklopa, pa svaki pojedinačni izlaz kanala može pružiti svu željenu valnu formu: sinus, trokut, kvadrat i DC.

Ekran sa tečnim kristalima

LCD je dio korisničkog sučelja (korisničkog sučelja), a njegova je svrha omogućiti korisniku da razumije što uređaj radi u načinu rada u stvarnom vremenu. On komunicira s korisnikom u svakom stanju uređaja.

Zujalica

Jednostavno kolo generatora tonova za dodatnu povratnu informaciju od uređaja do korisnika.

Integrisani ISP programer

Svaki inženjer ima stalni problem kada je u pitanju proces programiranja: Uvijek postoji najgora potreba da rastavite proizvod kako biste ga reprogramirali novim firmverom. Da bi se prevladala ova neugodnost, AVR ISP programer je spojen na uređaj iznutra, dok su USB podaci i vodovi povezani sa USB konektorom tipa A uređaja. U ovoj konfiguraciji samo moramo priključiti naš FuncGen putem USB kabela za programiranje ili punjenje!

Korak 2: Blok dijagram - umrežavanje

Blok dijagram - Umrežavanje
Blok dijagram - Umrežavanje

Generator dvokanalnih funkcija

Glavni uređaj. Ona koju smo pregledali u prethodnom koraku

ESP-WROOM-32

Integrirani sistem na čipu sa mogućnostima WiFi i BLE. SoC je priključen na glavnu ploču (ovo ćemo opisati u koraku sa shemama) putem UART modula i djeluje kao prijenosnik poruka između glavnog uređaja i Android pametnog telefona.

WiFi lokalna mreža

Pametni telefon i uređaj komunicirat će putem WiFi izravne ili lokalne mreže, na temelju konfiguracije TCP poslužitelja/klijenta. Kada se uređaji međusobno prepoznaju na WiFi -u, glavni uređaj stvara TCP server s odgovarajućim parametrima i može slati/primati poruke. Uređaj djeluje kao sekundarni dio pametnog telefona. Android uređaj, s druge strane, povezuje se s TCP serverom kao klijentski mrežni uređaj, ali se smatra primarnim odašiljačem poruka - pametni telefon je taj koji započinje potpuni komunikacijski ciklus: Slanje poruke - primanje odgovora.

Android pametni telefon

Pametni uređaj zasnovan na Android OS -u koji radi na aplikaciji FuncGen

Korak 3: Dijelovi, alati, IDE i opis materijala

Dijelovi, alati, IDE i Bilten materijala
Dijelovi, alati, IDE i Bilten materijala
Dijelovi, alati, IDE i Bilten materijala
Dijelovi, alati, IDE i Bilten materijala
Dijelovi, alati, IDE i Bilten materijala
Dijelovi, alati, IDE i Bilten materijala

Opis materijala (vidi priloženu XLS tabelu)

UI i sistemske veze

  • 1 x 2004A Char-LCD 20x4 plava
  • 1 x USB priključak tipa B
  • 1 x 10 kompleta Mini Micro JST XH 2,54 mm 4 pin
  • 1 x 6 kom Momentalno SW

Naručivanje PCB -a (prema Seeed Studio)

Osnovni materijal FR-4

Broj slojeva 2 sloja

Količina PCB -a 10

Broj različitih dizajna 1

PCB debljina 1,6 mm

PCB boja Plava

Površinska obrada HASL

Minimalna brana maske za lemljenje 0,4 mm ↑

Težina bakra 1 oz

Minimalna veličina rupe za bušenje 0,3 mm

Širina traga / razmak 6/6 mil

Pozlaćene polu-rupe / kastelirane rupe br

Kontrola impedanse br

Alati

  • Pištolj za vruće ljepilo
  • Pinceta
  • Cutter
  • ~ 22AWG žica za rukovanje kvarovima
  • Lemilica/stanica
  • Lim za lemljenje
  • SMD prepravna stanica (opcionalno)
  • 3D štampač (opcionalno)
  • Ekstrudiranje datoteke
  • AVR ISP programer
  • USB u serijski pretvarač (opcionalno, za otklanjanje grešaka)

Integrirano razvojno okruženje (IDE) i softver

  • Autodesk EAGLE ili Cadence Schematic Editor / Allegro PCB Editor
  • OpenSCAD (opcionalno)
  • Ultimaker Cura (opcionalno)
  • Saleae Logic (Za rješavanje problema)
  • Atmel Studio 6.3 ili novija verzija
  • Android Studio ili Eclipse IDE
  • Docklight serijski monitor / drugi softver za nadzor COM portova
  • ProgISP za programiranje blica AVR ATMEGA32L

Korak 4: Dizajn hardvera - glavna ploča

Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča

Krug za upravljanje baterijom

Krug punjenja baterije zasnovan je na MCP7383 IC, što nam omogućava da odaberemo željenu struju punjenja za Li -Ion bateriju - 3,7 V kapaciteta 850mAh. Struja punjenja se u našem slučaju podešava programiranjem vrijednosti otpornika (R1)

R1 = 3KOhm, I (punjenje) = 400mA

USB napon VBUS filtrira se pomoću π-filtera (C1, L3, C3) i djeluje kao izvor napajanja za krug punjenja.

Krug razdjelnika napona (R2, R3) omogućuje MCU -u da pokaže je li vanjsko USB napajanje priključeno ili nije, davanjem sljedećeg napona na MCU A/D kanal:

V (indikacija) ~ (2/3) V (BUS)

Budući da je naš A/D ATMEGA32L 12-bitni, možemo izračunati digitalni raspon:

A / D (raspon) = 4095V (indikacija) / V (REF).

A/D ∈ [14AH: FFFH]

Jedinica napajanja pametnim prekidačem

Krug omogućava sistemu da kontroliše napajanje svakog projektovanog bloka, kako sa tastera tako i softvera na MCU-u, a zasnovan je na STM6601 Smart-Switch sa opcijom POWER umesto RESET. Terminali koje želimo razmotriti su sljedeći:

  • PSHOLD - Ulazna linija koja definira stanje uređaja: ako se povuče LOW, uređaj onemogućuje sve jedinice sekundarnog napajanja (+3,3 V i -3,3 V). Ako je pritisnuto HIGH - uređaj zadržava UKLJUČENO stanje.
  • nSR i nPB - Ulazne linije. Stezaljke na dugme. Kada se na ovim pinovima otkrije padna ivica, uređaj pokušava ući u način uključivanja / isključivanja napajanja
  • nINT - Izlazna linija. Povučeno LOW svaki put kada se pritisne dugme
  • HR - Izlazna linija, koristi se za omogućavanje napajanja sekundarnih jedinica napajanja. Dok se drži NISKO, oba sekundarna izvora napajanja su onemogućena

Prije nego što pređemo na konačni dizajn, postoje neke važne napomene:

  • PSHOLD bi trebalo povući na 3,3 V, jer postoje slučajevi kada MCU forsiraju sve U/I da budu u VISOKOM Z stanju. U ovom slučaju stanje PSHOLD iz MCU -a je nepoznato i može dramatično utjecati na proces programiranja uređaja.
  • STM6601 treba naručiti s opcijom prilagođavanja EN -a pri dugom pritisku, umjesto opcije RESET (pao sam u to).

Napajanje: +3.3V

Glavno napajanje za sve sisteme u našem projektu. Kada se +3.3V vod drži na nivou GND (tj. Nema napona), sve IC osim pametnog prekidača su onemogućene. Krug je zasnovan na LDO LP-3875-3.3 IC, sa mogućnošću upravljanja putem EN terminala i daje struju do 1A.

Izvor napajanja za ovaj krug je napon baterije, s priključenim A/D indikatorom za prepoznavanje VBAT -a u konfiguraciji, slično VBUS -senzorskom krugu. U ovom slučaju proračuni se malo razlikuju;

V (baterija-A/D) = 0,59V (baterija); A/D (raspon) ∈ [000H: C03H]

Napajanje: -3.3V

Krug napajanja negativnim naponom omogućuje nam generiranje simetričnih valnih oblika s DC faktorom 0V (tj. Prosječna vrijednost valnog oblika može biti 0V). Ovaj krug je zasnovan na IC - DC/DC pretvaraču LM2662MX koji radi po metodi "pumpe za punjenje". Maksimalna izlazna struja kruga je 200mA što je dovoljno za naše projektne zahtjeve - ograničeni smo izlaznom strujom od 80mA iz kanala svakog uređaja.

IC obavlja sve potrebne radove, pa samo dijelovi koje moramo priključiti su dva elektrolitička kondenzatora: C33 za prebacivanje i C34 za -3.3V linijski premosnik (razmatranje smanjenja šuma). Učestalost prebacivanja je zanemariva u dizajnu ako kolo postavljamo dovoljno daleko od dijelova generiranja valnog oblika (o tome ćemo govoriti u koraku postavljanja PCB -a).

Jedinica mikrokontrolera - MCU

Ovo je upravitelj i izvršni direktor našeg sistema - kontrola, upravljanje mrežom, prijenos poruka i podrška za korisničko sučelje - sve je u rukama MCU -a.

MCU koji je odabran je Atmel ATMEGA32L, gdje L označava rad podržanog napona ∈ [2.7V: 5.5V]. U našem slučaju radni napon je +3,3 V.

Razmotrimo glavne operativne blokove, koje je potrebno razumjeti, radeći s MCU -om u našem dizajnu:

  • Vanjski oscilator - Opcionalna je komponenta jer nas zanima radna frekvencija 8MHz
  • Periferna kontrola, SPI mreža - Svi periferni uređaji (isključujući ESP32) komuniciraju s MCU -om putem SPI -a. Postoje tri zajedničke linije za sve uređaje (SCK, MOSI, MISO) i svako periferno kolo ima svoju namjensku CS (Chip Select) liniju. SPI uređaji koji su dio uređaja:

    1. D/A za kontrolu amplitude - Kanal A
    2. D/A za kontrolu amplitude - kanal B
    3. AD9834 uređaj - Kanal A
    4. AD9834 uređaj - kanal B
    5. D/A za regulaciju napona pristranosti - Kanal A
    6. D/A za kontrolu napona prednapon - kanal B
    7. Digitalni potenciometar za postavke svjetline i kontrasta LCD -a
  • Podrška za LCD - Budući da je LCD generički ekran veličine 20 x 4 karaktera, koristimo 4 -bitno sučelje (Linije D7: D4), kontrolne pinove (Linije RS, E) i kontrolu svjetline/kontrasta (Linije V0 i Anoda)
  • RGB LED podrška - Ovaj modul je opcionalan, ali postoji zajednička katodna RGB LED konektorka sa odgovarajućim otpornicima, spojena na MCU.
  • Upravljanje napajanjem - MCU vrši nadzor elektroenergetskog sistema u stvarnom vremenu i obrađuje sve potrebne događaje napajanja:

    1. VBAT_ADC - Nadzor napona baterije i određivanje njegovog stanja (ADC0 kanal)
    2. PWR_IND - Indikacija spoljašnjeg napajanja (ADC1 kanal)
    3. PS_HOLD - Primarna linija za omogućavanje napajanja za sve definirane sisteme. Kada ga MCU spusti, uređaj se isključuje
    4. Prekidački terminal pametnog prekidača - Nadgledanje stanja pritiskom na dugme
  • Upravljanje WiFi mrežom - ESP32: MCU komunicira s ESP32 putem UART sučelja. Budući da nam 8MHz omogućuje implementaciju brzine prijenosa od 115200 s relativno malom greškom, možemo koristiti ESP32 u krugu bez unaprijed definiranih promjena brzine prijenosa.

AVR ISP programer

Naš MCU je programiran preko SPI -a s linijom za resetiranje (/RST) mora se povući VISOKO za pravilan rad (ako ne - MCU će se zauvijek naći u resetiranom stanju).

Kako bih omogućio programiranje i punjenje uređaja putem USB-a, priključio sam AVR ISP programator (proizvod male veličine, kupljen na eBayu). Da bi se održala potpuna USB podrška uređaja, potrebno je povezati USB Type-A (D+, D-, VBUS i GND) priključke s AVR ISP uređajem.

Krug za generiranje valnog oblika

Jezgro uređaja su ova kola. AD9834 je DDS uređaj male snage koji nam pruža sve talasne oblike koje želimo da preuzmemo iz sistema. Kola sadrže dva nezavisna AD9834 IC -a sa odvojenim vanjskim oscilatorima od 50 MHz (kao što se može vidjeti na shemama). Razlog za razdvojeni oscilator su razmatranja smanjenja šuma digitalnih krugova, pa je odluka bila da se rukuje sa odgovarajućim linijama od 50 MHz sa oscilatorima postavljenim uz AD9834.

Pogledajmo sada malo matematiku:

Budući da DDS uređaj radi na tehnologiji Phase Wheel s izlaznom vrijednošću u 28-bitnom registru, generiranje valnog oblika možemo opisati matematički:

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

Prema podatkovnom listu AD9834, uzimajući u obzir maksimalnu frekvenciju, može se dobiti rezolucija izlazne frekvencije:

Δf = k * f (oscilator) / f (maksimum) = 0,28 * 50M / 28M = 0,187 [Hz]

AD9834 IC -ovi pružaju analogni strujni izlaz za trokut/sinusni val (IOUT terminal) i digitalni izlaz za kvadratni val (SIGN_OUT terminal). Upotreba znakovnog bita je pomalo zeznuta, ali to možemo riješiti - Svaki put kada DDS pređe prag vrijednosti usporedbe, SIGN_OUT se ponaša u skladu s tim. Na izlaz svakog kanala priključen je otpornik od 200 Ohma, tako da bi izlazni napon imao značajne vrijednosti:

I (jednokanalni) = V (izlaz) / R (izbor napona); V (izlaz) = R (VS)*I (SS) = 200I (SS) [A]

Kola za kontrolu amplitude (D/A)

Prema tehničkom listu AD9834, njegova amplituda se može podesiti davanjem struje u DDS sistem pune skale, tako da uz pomoć dvostrukog D/A IC -a možemo kontrolirati amplitudu izlaznog signala podešavanjem te struje. Još jednom malo matematike:

I (puna skala) = 18 * (V_REF - V_DAC) / R_SET [A]

Prema shemama i stavljanju nekih brojeva u jednadžbu:

I (puna skala) = 3,86 - 1,17 * V_DAC [A]

D/A modul koji se koristi u dizajnu je 12-bitni MCP4922, kada je struja u rasponu od [0mA: 3,86mA], a linearna amplitudna funkcija je:

V (odabir amplitude) = 1 - [V (D / A) / (2^12 - 1)]

Krug multipleksiranja talasnog oblika

Izlazi za generiranje kvadratnih valova i sinusnih/trokutastih valova odvojeni su na AD9834, stoga moramo koristiti krug multipleksiranja velike brzine za oba izlaza kako bismo omogućili dohvaćanje svih željenih valnih oblika iz jednog odvojenog kanala. Multiplekser IC je analogni prekidač ADG836L s vrlo niskim otporom na uključenje (~ 0,5Ohm).

Tablica za odabir koju MCU koristi za izlaze ovako:

Odabir načina rada [D2: D1] | Izlazni kanal A | Izlazni kanal B

00 | Sinus/trougao | Sinus/trougao 01 | Sinus/trougao | Kvadrat 10 | Trg | Sinus/trougao 11 | Trg | Square

Krugovi prednaponske regulacije napona (D/A)

Jedna od glavnih karakteristika generatora valnog oblika je kontrola DC vrijednosti. U ovom dizajnu to se postiže postavljanjem željenog D/A napona po svakom kanalu, a ti prednaponi se zbrajaju sa višestrukim izlazima o kojima smo govorili malo ranije.

Napon koji se dobiva iz D/A nalazi se u rasponu [0V: +3.3V] pa postoji sklop temeljen na op-pojačalu koji preslikava D/A raspon u [-3.3V: +3.3V], omogućavajući uređaju da pruži puni raspon željene istosmjerne komponente. Preskočit ćemo dosadnu analitičku matematiku i samo ćemo se usredotočiti na konačne rezultate:

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

Sada se raspon DC komponenti nalazi u rasponu [-3.3V: +3.3V].

Zbirni krugovi - DC komponente i izlazi valnog oblika

U ovom trenutku imamo sve što nam je potrebno za pravilan izlaz uređaja - Bias Voltage (DC komponenta) u punom rasponu napona i multipleksirane AD9834 izlaze. To ćemo postići pomoću zbrajajućeg pojačala - op -amp konfiguracije

Hajdemo još jednom preskočiti matematiku (već smo pokrili mnogo matematičkog pristupa) i zapišite konačni rezultat izlaza sumirajućeg pojačala:

V (izlaz uređaja) = V (pozitivna pristranost) - V (negativna pristranost) - V (višestruki izlaz) [V]

Otuda:

V_OUT = ΔV_BIAS - V_AD9834 [V]

Izlazni konektori tipa BNC povezani su izbornim otpornicima (R54, R55; R56, R57). Razlog tome je što u slučaju da dizajn može biti nefunkcionalan, još uvijek možemo odabrati želimo li koristiti zbrajajuće pojačalo.

Važna napomena: Mreže otpornika konačnih zbrajajućih pojačala može prilagoditi dizajner kako bi se promijenila maksimalna amplituda koja se može preuzeti s uređaja. U mom slučaju, sva pojačala dijele isti dobitak = 1, stoga je maksimalna međuspremna amplituda 0,7Vpp za trokut/sinusni val i 3,3Vpp za kvadratni val. Specifičan matematički pristup može se pronaći među priloženim slikama koraka.

ESP32 kao vanjski modul

MCU komunicira sa ESP32 preko UART interfejsa. Budući da sam želio vlastitu PCB za ESP32, na raspolaganju su 4 terminala za povezivanje: VCC, RX, TX, GND. J7 je interfejs konektor između štampanih ploča, a ESP32 će biti dodijeljen kao vanjski modul unutar uređaja.

Korisničko sučelje - LCD i zvučnik

Korišteni LCD je generički ekran veličine 20 x 4 karaktera sa 4 -bitnim sučeljem. Kao što se može vidjeti iz dizajna, na LCD terminale "A" i "V0" nalazi se SPI digitalni potenciometar - njegova je svrha podešavanje programsko osvjetljenje i kontrast LCD modula.

Zvučnik daje korisniku zvučni izlaz jednostavnim generiranjem kvadratnih valova iz MCU -a. BJT T1 kontroliše struju preko zvučnika koja može biti samo u dva stanja - UKLJ. / ISKLJ.

Korak 5: Dizajn hardvera - ESP32 modul

Dizajn hardvera - ESP32 modul
Dizajn hardvera - ESP32 modul

ESP32 se koristi kao vanjski modul za glavnu PCB. Komunikacija uređaja temelji se na AT naredbama koje su dostupne na generičkom firmveru uređaja.

O ovom dizajnu nema mnogo toga za proširenje, ali postoje neke napomene za dizajn:

  • Za rješavanje problema s korištenjem odgovarajućeg UART modula ESP32, priključio sam tri otpornika za odabir i za TX i za RX linije. (0 ohma za svaki). Za standardnu konfiguraciju, UART2 modul se koristi za AT naredbe (R4, R7 moraju biti lemljeni)
  • Uređaj ima 4 -linijski izlaz - VCC, GND, TX, RX.
  • IO0 i EN pinovi procjenjuju rad uređaja i trebaju biti dizajnirani kako je navedeno u shemama

Sve karakteristike PCB -a ćemo pokriti u sljedećem koraku.

Korak 6: Raspored PCB -a

Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a

Ciljevi projektiranja PCB -a

  1. Napravite ugrađeni sistem za sva integrirana kola na istoj ploči
  2. Poboljšajte performanse uređaja dizajniranjem jedne glavne PCB -a
  3. Smanjenje troškova - ako želite pogledati cijene, jeftini dizajni su ZAISTA niski
  4. Smanjite veličinu elektroničke ploče
  5. Jednostavno rješavanje problema - Za svaku moguću neispravnu liniju možemo koristiti TP -ove (ispitne točke).

Tehnički parametri

Obje štampane ploče: glavna i ESP32 ploča imaju iste karakteristike u proizvodnom procesu - niske cijene i operativne za naše potrebe. Pogledajmo ih:

A - Glavni odbor

  • Veličina: 10cm x 5.8cm
  • Broj slojeva: 2
  • Debljina PCB -a: 1,6 mm
  • Minimalni prostor/širina traga: 6/6mil
  • Minimalni promjer rupe: 0,3 mm
  • Bakar do ruba PCB -a minimalna udaljenost: 20mil
  • Površinska obrada: HASL (prilično lijepo izgleda jeftino, srebrne boje)

B - Glavni odbor

  • Veličina: 3cm x 4cm
  • Broj slojeva: 2
  • Debljina PCB -a: 1,6 mm
  • Minimalni prostor/širina traga: 6/6mil
  • Minimalni promjer rupe: 0,3 mm
  • Bakar do ruba PCB -a minimalna udaljenost: 20mil
  • Površinska obrada: HASL

Korak 7: 3D kućište

3D kućište
3D kućište

Nisam ga sam dizajnirao, jer sam u to vrijeme nagovarao ovaj uređaj na rad, pa uopće nisam bio svjestan svih osnova 3D štampanja. Tako sam koristio SCAD projekat iz Thingiverse -a i pričvrstio različite otvore prema granicama, u skladu sa specifikacijama mog uređaja.

  1. Uređaj za štampanje: Creality Ender-3
  2. Tip kreveta: Staklo, debljine 5 mm
  3. Prečnik niti: 1,75 mm
  4. Vrsta niti: PLA+
  5. Prečnik mlaznice: 0,4 mm
  6. Početna brzina: 20 mm/sek
  7. Prosječna brzina: 65 mm/sek
  8. Podrška: N/A
  9. Ispuna: 25%
  10. Temperatura:

    • Krevet: 60 (oC)
    • Mlaznica: 215 (oC)
  11. Boja niti: Crna
  12. Ukupan broj otvora: 5
  13. Broj panela kućišta: 4

    • TOP Shell
    • Bottom Shell
    • Prednji panel
    • Zadnja ploča

Korak 8: Implementacija softvera - MCU

Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU

GitHub Veza sa Androidom i Atmega32 kodom

Softverski algoritam

Sve operacije koje izvodi MCU opisane su u priloženim dijagramima toka. Osim toga, postoji priložen kôd za projekat. Pokrijmo specifikacije softvera:

Napajanje

U ovoj fazi, MCU izvodi sve inicijalizacijske sekvence zajedno s određivanjem pohranjenog tipa komunikacije s Android uređajem: izravna WiFi ili WLAN mrežna komunikacija - ti se podaci pohranjuju u EEPROM. Korisnik može u ovoj fazi redefinirati vrstu uparivanja Android uređaja.

Direktno uparivanje Android uređaja

Ova vrsta uparivanja temelji se na stvaranju WiFi mreže od strane FuncGen uređaja. On će stvoriti AP (pristupnu točku) i TCP poslužitelj na IP -u lokalnog uređaja sa posebnim SSID -om (naziv WiFi mreže) i određenim brojem porta. Uređaj treba držati stanje - otvoren za veze.

Kada je Android uređaj spojen na FuncGen, MCU ulazi u AKTIVNI način rada i reagira prema korisničkim uputama s Android uređaja.

Uparivanje WLAN -a

Kako bi komunicirao na lokalnoj WiFi mreži, MCU bi trebao osigurati naredbe za ESP32 za kreiranje pristupne točke, komunikaciju s Android uređajem i razmjenu ključnih mrežnih podataka:

  • Android uređaj prima od FuncGen -a svoju MAC adresu, pohranjuje je u memoriju.
  • FuncGen uređaj prima od Android uređaja odabrane parametre WLAN -a: SSID, vrstu sigurnosti i lozinku i pohranjuje ih u EEPROM.

Kada su uređaji zaista povezani na istu WLAN, Android uređaj će tražiti FuncGen skeniranjem svih MAC adresa uređaja povezanih na WLAN. Kada Android uređaj utvrdi podudaranje MAC -a, pokušava komunicirati.

Povezivanje i rukovanje stanjem - MCU

Kada uređaji međusobno komuniciraju, protokol (vidi predzavršni korak) ostaje isti, a dijagram toka je isti.

Nadzor stanja uređaja

Vremenski prekid daje MCU -u potrebne detalje za rukovanje stanjem. Svaki ciklus prekida tajmera ažurira se sljedeća lista parametara:

  • Vanjsko napajanje - Uključeno/Isključeno
  • Stanje napona baterije
  • UI ažuriranje za svako prilagođavanje
  • Taster: pritisnuto/ne pritisnuto

Korak 9: Implementacija softvera - Android aplikacija

Implementacija softvera - Android aplikacija
Implementacija softvera - Android aplikacija
Implementacija softvera - Android aplikacija
Implementacija softvera - Android aplikacija
Implementacija softvera - Android aplikacija
Implementacija softvera - Android aplikacija
Implementacija softvera - Android aplikacija
Implementacija softvera - Android aplikacija

Android aplikacija je napisana u Java-Android stilu. Pokušat ću to objasniti na isti način kao i prethodne korake - podjelom algoritma na zasebne blokove koda.

Uključivanje sekvence

Prva sekvenca uređaja. Ovdje je prikazan logotip aplikacije zajedno s omogućenim GPS i WiFi modulima Android uređaja (Ne brinite, GPS je potreban samo za skeniranje ispravnih WiFi mreža).

Glavni meni

Nakon pokretanja aplikacije, na ekranu će se pojaviti četiri gumba. Radnje dugmadi:

  1. DIREKTNA VEZA: Inicijalizacija veze sa FuncGen -ovom AP -om pomoću SSID -a IOT_FUNCGEN -a. Ako je veza uspješna, uređaj ulazi u način rada glavnog korisničkog sučelja.
  2. WIFI POVEZIVANJE: Uređaj provjerava postoje li u memoriji pohranjeni parametri podataka: wifi.txt, mac.txt. Ako nema pohranjenih podataka, uređaj će odbiti korisnički zahtjev i dati skočnu poruku da se prvo mora izvršiti uparivanje WLAN-a.
  3. PAROVANJE: Komuniciranje s FuncGenom na isti način kao i DIREKTNA VEZA, ali umjesto stalne razmjene poruka, postoji jedno rukovanje. Android uređaj provjerava je li već spojen na WiFi mrežu i traži od korisnika da unese lozinku. Ako je ponovno povezivanje uspješno, Android uređaj pohranjuje SSID i pristupni ključ u datoteku wifi.txt. Nakon uspješne komunikacije s FuncGenom, pohranjuje primljenu MAC adresu u datoteku mac.txt.
  4. Izlaz: Dosta je rečeno:)

WiFi Scanning Manager

Želio sam da aplikacija bude potpuno operativna i bez prilagođavanja izvan aplikacije. Tako sam dizajnirao WiFi skener koji izvodi sve potrebne operacije za povezivanje na WiFi mrežu s poznatim lozinkom i SSID -om.

Prijenos podataka i TCP komunikacija

Ovo je glavni blok koda u aplikaciji. Za sve jedinice korisničkog sučelja postoji definirana poruka u određenom formatu (predzavršni korak), koja prisiljava FuncGen da omogući željeni izlaz za kanale. Postoje tri vrste polja korisničkog sučelja u aktivnosti:

  1. Trake traženja: Ovdje definiramo stvarni raspon izlaznih parametara FuncGen-a
    1. Amplituda
    2. DC Offset
    3. LCD svjetlina
    4. LCD kontrast
  2. Uređivanje teksta: Kako bi cjelobrojne vrijednosti bile dobro definirane i precizne, unos frekvencije vrši se putem tekstualnih okvira samo s brojevima
  3. Dugmad: Izbor parametara sa dostupnih lista:

    1. Tip valnog oblika
      1. Sine
      2. Triangle
      3. DC
      4. Square
      5. ISKLJUČENO
    2. Get Info

      1. Status baterije (postotak)
      2. AC status (vanjsko napajanje)
    3. Opcija pokretanja (za FuncGen MCU)

      1. Tvorničke postavke
      2. Restart
      3. Ugasiti
      4. Direktno - Ponovo pokrenite s načinom izravnog uparivanja
      5. WLAN - Ponovo pokrenite s načinom uparivanja WLAN -a
    4. Izlaz na glavni meni: Dovoljno rečeno:)

Korak 10: Testiranje

Preporučuje se: