Kazalo:

Prenosni generator funkcij za WiFi in Android: 10 korakov
Prenosni generator funkcij za WiFi in Android: 10 korakov

Video: Prenosni generator funkcij za WiFi in Android: 10 korakov

Video: Prenosni generator funkcij za WiFi in Android: 10 korakov
Video: Топ 5 скрытых полезных программ Windows 10 2024, Julij
Anonim
Prenosni generator funkcij za WiFi in Android
Prenosni generator funkcij za WiFi in Android
Prenosni generator funkcij za WiFi in Android
Prenosni generator funkcij za WiFi in Android
Prenosni generator funkcij za WiFi in Android
Prenosni generator funkcij za WiFi in Android
Prenosni generator funkcij za WiFi in Android
Prenosni generator funkcij za WiFi in Android

Konec 20. stoletja so se pojavile različne tehnološke inovacije, zlasti na področju komunikacij; ampak ne samo. Za nas, uporabnike, potrošnike in inženirje je prišel na dan hiter razvoj elektronskih naprav, ki nam lahko olajšajo življenje: pametne ure, pametni domovi, pametni telefoni itd.

Ker je danes vse lahko "pametno", sem se odločil, da bom oblikoval super uporabno napravo, ki bo del bistvene elektronske laboratorijske opreme - prenosni generator funkcij, ki ga je mogoče upravljati s pametnim telefonom s sistemom Android OS prek neposrednega WiFi ali lokalnega omrežja WiFi (WLAN)).

Zakaj bi morali izdelati to napravo?

Velika večina preskusne opreme je danes precej draga. In včasih te naprave niso prenosne. Kot rešitev za visoke cene, pomanjkanje prenosljivosti in pomanjkanje dostopa do omrežja naprave naprava ponuja dvokanalni generator valovne oblike, ki je res prenosljiv in ima neomejen dostop do omrežja - bodisi internetnega bodisi lokalnega.

In seveda, napravo je treba zgraditi zaradi navdušenja in spoštovanja načel DIY - Včasih moramo stvari narediti sami, da se počutimo prav:)

Ključne funkcije

Napajanje

  • Priključek USB tipa A za napajalne sisteme in programiranje
  • Celovit sistem za upravljanje Li -Ion baterije - Polnjenje in stabilni načini
  • Izvedba pametnega stikala - ni potrebe po stikalu za vklop / izklop
  • Dvojni napajalnik: +3,3 V in -3,3 V za ustvarjanje simetrične napetostne valovne oblike

Generiranje valovne oblike

  • Izvajanje ravni DC na izhodni kaskadi - pristranska valovna oblika med mejami napetosti
  • Generiranje 4 -vrste valov na osnovi DDS - sinus, trikotnik, kvadrat in enosmerni tok
  • Podpora za frekvenco do 10 MHz
  • Izhodni tok do 80mA z največjo razpoložljivostjo 500mW
  • Ločeni kanali za ustvarjanje valovne oblike - razdeljena vezja na osnovi AD9834

Komunikacija

  • Izvajanje ESP32 - uporabne zmogljivosti WiFi
  • Popolna podpora TCP/IP z napravo generatorja in pametnim telefonom Android
  • Sposobnost shranjevanja uporabniških parametrov za vsak cikel naprave
  • Spremljanje stanja - oba sistema se zavedata stanja drugega: FuncGen (imejmo ga odslej tako) in pametni telefon.

Uporabniški vmesnik

  • LCD z 20 x 4 znaki s preprostim 4-bitnim podatkovnim vmesnikom
  • Aplikacija za Android - popoln nadzor uporabnika nad napravo FuncGen
  • Zvočni signal - zvočna povratna informacija uporabniku

1. korak: Blokovni diagram - Strojna oprema

Blok diagram - Strojna oprema
Blok diagram - Strojna oprema
Blok diagram - Strojna oprema
Blok diagram - Strojna oprema

Enota mikrokrmilnika - ATMEGA32L

Mikrokrmilnik je programabilni čip, ki je sestavljen iz vseh računalniških funkcij, ki so v enem samem elektronskem čipu. V našem primeru so to "možgani" in osrednja komponenta sistema. Namen MCU je upravljati vse periferne sisteme, upravljati komunikacijo med temi sistemi, nadzorovati delovanje strojne opreme in zagotavljati popolno podporo za uporabniški vmesnik in njegovo interakcijo z dejanskim uporabnikom. Ta projekt temelji na ATMEGA32L MCU, ki lahko deluje na 3.3V in frekvenci 8MHz.

Komunikacijski SoC - ESP32

Ta SoC (System on Chip) zagotavlja popolno komunikacijsko podporo za FuncGen - dostop do zmogljivosti WiFi, vključno z neposredno, lokalno ali internetno komunikacijo. Namen naprave je:

  • Upravljanje prenosa podatkov med aplikacijo Android in napravo FuncGen
  • Upravljanje nadzornih/podatkovnih sporočil
  • Podpora za stalno konfiguracijo odjemalca-strežnika TCP/IP

V našem projektu je SoC espressif ESP32, ki je preveč priljubljen, da bi ga še razširili:)

Sistem za upravljanje Li-Ion baterije

Za preoblikovanje naše naprave v prenosno naprava vsebuje oblikovano vezje za polnjenje Li-Ion baterije. Vezje temelji na MC73831 IC z nadzorovanim polnilnim tokom s prilagajanjem vrednosti enega programskega upora (To temo bomo obravnavali v koraku Sheme). Vhod za napajanje naprave je priključek USB Type-A.

Pametno stikalno vezje

Vezje za krmiljenje napajanja naprave s pametnim stikalom zagotavlja popoln programski nadzor nad zaporedjem zaustavitve naprave in odsotnostjo potrebe po zunanjem preklopnem stikalu za izklop napetosti baterije v napravi. Vse operacije napajanja se izvajajo s pritiskom na gumb in programsko opremo MCU. V nekaterih primerih bi morali sistem zaustaviti: nizka napetost akumulatorja, visoka vhodna napetost, komunikacijska napaka itd. Pametno stikalo temelji na pametnem stikalu IC STM6601, ki je poceni in zelo prijazno za igranje.

Glavna enota za napajanje

Ta enota je sestavljena iz dveh napajalnih tokokrogov, ki jih poganja akumulator - +3,3 V za vsa digitalna / analogna napajalna vezja in -3,3 V za simetrični izhod FunGen glede na potencial 0 V (tj. Generirano obliko valov lahko nastavite v [-3,3 V: 3,3 V] regija.

  • Glavni napajalni tokokrog temelji na linearnem regulatorju napetosti 1A LP3875-3.3 LDO (nizek izpad).
  • Sekundarno napajalno vezje temelji na IC LM2262MX, ki izvaja pretvorbo negativne napetosti DC-DC prek sistema kondenzator-polnilna črpalka-sistem, na katerem temelji IC.

Sistem generatorjev valovnih oblik

Sistem je bil zasnovan s poudarkom na ločenih integriranih vezjih DDS (neposredna digitalna sinteza), ki omogočajo popoln nadzor nad oblikovanjem valov s pomočjo MCI -jevega SPI (serijski periferni vmesnik). Pri načrtovanju so bila uporabljena vezja Analog Devices AD9834, ki lahko zagotavljajo različne vrste valovnih oblik. Pri delu z AD9834 se moramo soočiti z izzivi:

  • Amplituda fiksne valovne oblike: Amplitudo valovne oblike nadzira zunanji modul DAC
  • Ni upoštevanja ravni offset DC: Izvajanje seštevalnih vezij z želenimi vrednostmi offset DC
  • Ločeni izhodi za kvadratni val in trikotnik/sinusni val: Izvajanje visokofrekvenčnega preklopnega vezja lahko tako vsak posamezen kanalski izhod zagotovi vse želene oblike valov: sinus, trikotnik, kvadrat in DC.

Zaslon s tekočimi kristali

LCD je del uporabniškega vmesnika (uporabniški vmesnik) in njegov namen je uporabniku omogočiti, da razume, kaj naprava počne v načinu v realnem času. V vsakem stanju naprave komunicira z uporabnikom.

Zvočni signal

Preprost tonski generator za dodatne povratne informacije od naprave do uporabnika.

Integriran programer ISP

Za vsakega inženirja pri procesu programiranja ostaja stalna težava: vedno je najhujša potreba, da izdelek razstavite, da ga znova programirate z novo vdelano programsko opremo. Da bi odpravili to nevšečnost, je bil programer ponudnika internetnih storitev AVR priključen na napravo od znotraj, medtem ko so podatki USB in napajalni vodi povezani z vtičem USB tipa A naprave. V tej konfiguraciji moramo samo priključiti naš FuncGen prek kabla USB za programiranje ali polnjenje!

2. korak: Blokovni diagram - mreženje

Blok diagram - mreženje
Blok diagram - mreženje

Generator dvokanalnih funkcij

Glavna naprava. Tisti, ki smo ga pregledali v prejšnjem koraku

ESP-WROOM-32

Integriran sistem na čipu z možnostmi WiFi in BLE. SoC je pritrjen na glavno ploščo (to bomo obravnavali v koraku s shemami) prek modula UART in deluje kot prenosnik sporočil med glavno napravo in pametnim telefonom Android.

Lokalno omrežje WiFi

Pametni telefon in naprava bosta komunicirala prek neposrednega ali lokalnega omrežja WiFi na podlagi konfiguracije strežnika/odjemalca TCP. Ko se naprave med seboj prepoznajo v WiFi, glavna naprava ustvari strežnik TCP z ustreznimi parametri in lahko pošilja/prejema sporočila. Naprava deluje kot sekundarna za pametni telefon. Po drugi strani se naprava Android poveže s strežnikom TCP kot odjemalska omrežna naprava, vendar velja za primarni oddajnik sporočil - pametni telefon je tisti, ki sproži celoten komunikacijski cikel: Pošiljanje sporočila - prejem odgovora.

Pametni telefon Android

Pametna naprava s sistemom Android OS, ki deluje na aplikaciji FuncGen

3. korak: Deli, orodja, IDE in kosovnica

Deli, orodja, IDE in kosovnica
Deli, orodja, IDE in kosovnica
Deli, orodja, IDE in kosovnica
Deli, orodja, IDE in kosovnica
Deli, orodja, IDE in kosovnica
Deli, orodja, IDE in kosovnica

Zbirka materialov (glej priloženo tabelo XLS)

Uporabniški vmesnik in sistemske povezave

  • 1 x 2004A Char-LCD 20x4 modra
  • 1 x USB priključek tipa B
  • 1 x 10 kompletov Mini Micro JST XH 2,54 mm 4 pin
  • 1 x 6 kosov Takojšnji SW

Naročanje na PCB (glede na Seeed Studio)

Osnovni material FR-4

Št. Slojev 2 sloja

Količina PCB 10

Št. Različnih modelov 1

Debelina tiskanega vezja 1,6 mm

PCB Barva Modra

Površinska obdelava HASL

Najmanjši jez za spajkanje maske 0,4 mm ↑

Teža bakra 1 oz

Najmanjša velikost luknje za vrtanje 0,3 mm

Širina sledi / razmik 6/6 mil

Ploščane pol-luknje / kastelirane luknje št

Nadzor impedance št

Orodja

  • Pištola za vroče lepilo
  • Pinceta
  • Rezalnik
  • ~ 22AWG žica za namene odpravljanja napak
  • Spajkalnik/postaja
  • Spajkalnik
  • SMD predelava (neobvezno)
  • 3D tiskalnik (neobvezno)
  • Iztiskanje datoteke
  • AVR ISP programer
  • Pretvornik USB v serijski (izbirno, za namene odpravljanja napak)

Integrirano razvojno okolje (IDE) in programska oprema

  • Autodesk EAGLE ali Cadence Schematic Editor / Allegro PCB Editor
  • OpenSCAD (izbirno)
  • Ultimaker Cura (neobvezno)
  • Saleae Logic (za odpravljanje težav)
  • Atmel Studio 6.3 ali novejši
  • Android Studio ali Eclipse IDE
  • Docklight Serial Monitor / Druga programska oprema za spremljanje vrat COM
  • ProgISP za programiranje bliskavice AVR ATMEGA32L

4. korak: Oblikovanje strojne opreme - glavna plošča

Oblikovanje strojne opreme - glavna plošča
Oblikovanje strojne opreme - glavna plošča
Oblikovanje strojne opreme - glavna plošča
Oblikovanje strojne opreme - glavna plošča
Oblikovanje strojne opreme - glavna plošča
Oblikovanje strojne opreme - glavna plošča

Vezje za upravljanje baterije

Polnilni krog baterije temelji na IC MCP7383, kar nam omogoča, da izberemo želeni polnilni tok za Li -Ion baterijo - 3,7 V z zmogljivostjo 850 mAh. Polnilni tok je v našem primeru nastavljen s programiranjem vrednosti upora (R1)

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

Napetost USB VBUS je filtrirana s π-filtrom (C1, L3, C3) in deluje kot vir napajanja za polnilno vezje.

Vezje delilnika napetosti (R2, R3) omogoča MCU -ju, da pokaže, ali je zunanji napajalnik USB priključen ali ne, z zagotavljanjem naslednje napetosti A/D -kanalu MCU:

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

Ker je naš A/D ATMEGA32L 12-bitni, lahko izračunamo digitalni razpon:

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

A/D ∈ [14AH: FFFH]

Napajalna enota s pametnim stikalom

Vezje omogoča sistemu krmiljenje napajanja vsakega načrtovanega bloka, tako s tipko kot programsko opremo na MCU, in temelji na pametnem stikalu STM6601 z možnostjo POWER namesto RESET. Terminali, ki jih želimo upoštevati, so naslednji:

  • PSHOLD - Vhodna linija, ki določa stanje naprave: če je potegnjena LOW, naprava onemogoči vse sekundarne napajalne enote (+3,3 V in -3,3 V). Če držite HIGH - naprava ohrani stanje ON.
  • nSR in nPB - Vhodne črte. Sponke s pritiskom na gumb. Ko se na teh zatičih zazna spodnji rob, naprava poskuša vklopiti način za vklop / izklop
  • nINT - Izhodna vrstica. Vsakič, ko pritisnete gumb, povlečete LOW
  • SL - Izhodni vod, se uporablja za omogočanje napajanja sekundarnih napajalnih enot. Medtem ko je pritisnjen NIZKO, sta oba sekundarna napajalnika onemogočena

Preden nadaljujemo s končno zasnovo, je nekaj pomembnih opomb:

  • PSHOLD je treba potegniti do 3,3 V, ker obstajajo primeri, ko MCU prisilijo vse V/I, da so v stanju HIGH-Z. V tem primeru stanje PSHOLD iz MCU ni znano in lahko dramatično vpliva na proces programiranja naprave.
  • STM6601 je treba naročiti z možnostjo prilagajanja EN pri dolgem pritisku namesto možnosti RESET (padel sem v to).

Napajalnik: +3.3V

Glavni vir energije za vse sisteme v našem projektu. Ko je napetost +3,3 V na nivoju GND (tj. Ni napetosti), so vsa IC, razen pametnega stikala, onemogočena. Vezje temelji na LDO LP-3875-3.3 IC, ki ga je mogoče krmiliti preko EN terminala in zagotoviti tok do 1A.

Vir napajanja za to vezje je napetost akumulatorja, s priloženim A/D indikatorjem za zaznavanje VBAT v konfiguraciji, podobno kot vezje VBUS. V tem primeru se izračuni nekoliko razlikujejo;

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

Napajalna enota: -3,3V

Napajalni tokokrog negativne napetosti nam omogoča generiranje simetričnih valovnih oblik z faktorjem enosmernega toka 0V (tj. Povprečna vrednost valovne oblike je lahko 0V). To vezje temelji na IC - DC/DC pretvorniku LM2662MX, ki deluje po metodi "polnilne črpalke". Največji izhodni tok vezja je 200 mA, kar zadošča za naše projektne zahteve - omejeni smo z 80 mA izhodnega toka iz kanala vsake naprave.

IC opravlja vsa potrebna dela, zato moramo priključiti le dva elektrolitska kondenzatorja: C33 za preklapljanje in C34 za -3.3V linijski obvod (premisleki o zmanjšanju hrupa). Frekvenca preklopa je pri načrtovanju zanemarljiva, če vezje postavimo dovolj daleč od delov za generiranje valovne oblike (o tem bomo razpravljali na koraku postavitve tiskanega vezja).

Enota mikrokrmilnika - MCU

To je upravitelj in izvršni direktor našega sistema - nadzor, upravljanje z omrežjem, prenos sporočil in podpora uporabniškega vmesnika - vse izvaja MCU.

Izbrani MCU je Atmel ATMEGA32L, kjer L pomeni delovanje podprte napetosti ∈ [2,7 V: 5,5 V]. V našem primeru je delovna napetost +3,3 V.

Poglejmo glavne operacijske bloke, ki jih je treba razumeti pri delu z MCU pri naši zasnovi:

  • Zunanji oscilator - je neobvezna komponenta, saj nas zanima 8MHz delovna frekvenca
  • Periferni nadzor, omrežje SPI - Vse zunanje naprave (razen ESP32) komunicirajo z MCU prek SPI. Za vse naprave obstajajo tri skupne linije (SCK, MOSI, MISO) in vsako periferno vezje ima svojo namensko linijo CS (Chip Select). Naprave SPI, ki so del naprave:

    1. D/A za nadzor amplitude - kanal A
    2. D/A za nadzor amplitude - kanal B
    3. Naprava AD9834 - kanal A
    4. Naprava AD9834 - kanal B
    5. D/A za krmiljenje napetosti pristranskosti - kanal A
    6. D/A za krmiljenje napetosti pristranskosti - kanal B
    7. Digitalni potenciometer za nastavitve svetlosti/kontrasta LCD -ja
  • Podpora za LCD - Ker je LCD splošni zaslon 20 x 4 znakov, uporabljamo 4 -bitni vmesnik (vrstice D7: D4), krmilne zatiče (vrstice RS, E) in nadzor svetlosti/kontrasta (vrstice V0 in anoda)
  • Podpora RGB LED - Ta modul ni obvezen, vendar je na MCU priključen skupni katodni RGB LED konektor z ustreznimi upori.
  • Nadzor porabe - MCU nadzoruje sistem napajanja v načinu v realnem času in obravnava vse potrebne dogodke napajanja:

    1. VBAT_ADC - Nadzor napetosti akumulatorja in določanje njegovega stanja (kanal ADC0)
    2. PWR_IND - Prikaz povezave z zunanjim napajanjem (kanal ADC1)
    3. PS_HOLD - Primarna linija za omogočanje napajanja za vse definirane sisteme. Ko MCU potegne nizko, se naprava izklopi
    4. Prekinitveni priključek pametnega stikala - spremljanje stanja tipk
  • Upravljanje omrežja WiFi - ESP32: MCU komunicira z ESP32 prek vmesnika UART. Ker nam 8MHz omogoča, da z relativno majhno napako implementiramo hitrost prenosa 115200, lahko v vezju uporabimo ESP32 brez predhodnih opredelitev sprememb hitrosti prenosa.

AVR ISP programer

Naš MCU je programiran prek SPI s ponastavitveno črto (/RST), ki jo je treba za pravilno delovanje potegniti VELIKO (če ne - MCU se bo za vedno znašel v ponastavljenem stanju).

Da bi omogočili programiranje in polnjenje naprave prek USB-ja, sem priložil programer AVR ISP (izdelek majhne velikosti, kupljen pri eBayu). Da bi naprava ohranila popolno podporo USB, morate priključke USB Type-A (D+, D-, VBUS in GND) povezati z napravo AVR ISP.

Tokokrog za generiranje valovne oblike

Jedro naprave so ta vezja. AD9834 je naprava DDS z nizko porabo energije, ki nam posreduje vse valovne oblike, ki jih želimo pridobiti iz sistema. Vezja vsebujejo dva neodvisna vezja AD9834 z ločenima zunanjima oscilatorjema 50 MHz (kot je razvidno iz shem). Razlog za ločen oscilator so pomisleki glede zmanjšanja hrupa digitalnih vezij, zato je bila odločitev ravnati z ustreznimi 50MHz linijami z oscilatorji, nameščenimi v bližini AD9834.

Zdaj pa poglejmo nekaj matematike:

Ker naprava DDS deluje na tehnologiji Phase Wheel z izhodno vrednostjo v 28-bitnem registru, lahko matematično opišemo generiranje valovne oblike:

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

Po podatkovnem listu AD9834 je ob upoštevanju največje frekvence mogoče dobiti ločljivost izhodne frekvence:

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

Vmesniki AD9834 zagotavljajo analogni tokovni izhod za trikotnik/sinusni val (priključek IOUT) in digitalni izhod za kvadratni val (priključek SIGN_OUT). Uporaba znakovnega bita je nekoliko zapletena, vendar se zmoremo - Vsakič, ko DDS preseže prag primerjalne vrednosti, se SIGN_OUT obnaša ustrezno. Na izhod vsakega kanala je priključen upor 200Ohm, zato bi imela izhodna napetost pomembne vrednosti:

I (enokanalni) = V (izhod) / R (izbira napetosti); V (izhod) = R (VS)*I (SS) = 200I (SS) [A]

Vezja za nadzor amplitude (D/A)

Po podatkovnem listu AD9834 se lahko njegova amplituda prilagodi z zagotavljanjem toka v sistemu DDS v polnem obsegu, zato lahko s pomočjo dvojnega D/A IC nadzorujemo amplitudo izhodnega signala s prilagajanjem tega toka. Še enkrat nekaj matematike:

I (polno merilo) = 18 * (V_REF - V_DAC) / R_SET [A]

V skladu s shemami in enačbami:

I (polna lestvica) = 3,86 - 1,17 * V_DAC [A]

D/A modul, ki se uporablja pri načrtovanju, je 12-bitni MCP4922, ko je tok v območju [0mA: 3,86mA], linearna amplitudna funkcija pa je:

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

Multipleksirno vezje valovne oblike

Izhodi za generiranje kvadratnih valov in sinusnih/trikotnih valov so ločeni pri AD9834, zato moramo za oba izhoda uporabiti vezje multipleksiranja visoke hitrosti, da omogočimo pridobivanje vseh želenih valovnih oblik iz enega ločenega kanala. Multiplekser IC je analogno stikalo ADG836L z zelo nizko vpornostjo (~ 0,5Ohm).

Izbirna tabela, ki jo MCU uporablja za izhode, je:

Izbira načina [D2: D1] | Izhodni kanal A | Izhodni kanal B

00 | Sinus/trikotnik | Sinus/trikotnik 01 | Sinus/trikotnik | Kvadrat 10 | Kvadrat | Sinus/trikotnik 11 | Kvadrat | Kvadrat

Vezja za krmiljenje napetosti pristranskosti (D/A)

Ena od glavnih značilnosti generatorja valovnih oblik je nadzor njegove DC vrednosti. Pri tej zasnovi se to izvede z nastavitvijo želene D/A napetosti na vsak kanal, te napetosti pristranskosti pa se seštejejo z multipleksnimi izhodi, o katerih smo govorili malo prej.

Napetost, pridobljena iz D/A, je v območju [0V: +3.3V], zato obstaja vezje na osnovi op-amp, ki preslika D/A območje v [-3.3V: +3.3V], kar omogoča napravi, da zagotovi celoten razpon želene enosmerne komponente. Preskočili bomo nadležno analitično matematiko in se osredotočili le na končne rezultate:

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

Zdaj je območje enosmernih komponent v območju [-3,3 V: +3,3 V].

Seštevalna vezja - komponente DC in izhodi valovne oblike

Na tej točki imamo vse, kar potrebujemo za ustrezen izhod naprave - prednapetostna napetost (enosmerna komponenta) v celotnem območju napetosti in multipleksirani izhodi AD9834. To bomo dosegli z uporabo seštevalnega ojačevalnika - konfiguracija op -amp

Še enkrat preskočimo matematiko (že smo obravnavali veliko matematičnega pristopa) in zapišemo končni rezultat izhoda ojačevalnika seštevanja:

V (izhod naprave) = V (pozitivna pristranskost) - V (negativna pristranskost) - V (multipleksni izhod) [V]

Zato:

V_OUT = ΔV_BIAS - V_AD9834 [V]

Izhodni priključki tipa BNC so povezani z izbirnimi upori (R54, R55; R56, R57). Razlog za to je, da lahko v primeru, da je zasnova disfunkcionalna, še vedno izberemo, ali želimo uporabiti seštevalni ojačevalnik.

Pomembna opomba: Uporne mreže končnih seštevalnih ojačevalnikov lahko nastavi oblikovalec, da spremeni največjo amplitudo, ki jo je mogoče pridobiti iz naprave. V mojem primeru imajo vsi ojačevalci enak dobiček = 1, zato je največja pufrana amplituda 0,7 Vpp za trikotnik/sinusni val in 3,3 Vpp za kvadratni val. Poseben matematični pristop je mogoče najti med podobami koraka.

ESP32 kot zunanji modul

MCU komunicira z ESP32 prek vmesnika UART. Ker sem želel lastno tiskano vezje za ESP32, so za povezavo na voljo 4 terminali: VCC, RX, TX, GND. J7 je vmesniški priključek med tiskanimi vezji, ESP32 pa bo dodeljen kot zunanji modul znotraj naprave.

Uporabniški vmesnik - LCD in zvočnik

Uporabljeni LCD je splošni zaslon velikosti 20 x 4 znakov s 4 -bitnim vmesnikom. Kot je razvidno iz zasnove, je na terminale LCD "A" in "V0" pritrjen digitalni potenciometer SPI - njegov namen je prilagoditi svetlost in kontrast LCD modula programsko.

Zvočnik uporabniku omogoča preprosto generiranje kvadratnih valov iz MCU. BJT T1 nadzoruje tok skozi zvočnik, ki je lahko samo v dveh stanjih - ON / OFF.

5. korak: Oblikovanje strojne opreme - modul ESP32

Oblikovanje strojne opreme - modul ESP32
Oblikovanje strojne opreme - modul ESP32

ESP32 se uporablja kot zunanji modul za glavno tiskano vezje. Komunikacija naprave temelji na ukazih AT, ki so na voljo v vdelani programski opremi splošne naprave.

O tej zasnovi ni veliko za razširiti, vendar obstaja nekaj opomb za oblikovanje:

  • Za odpravljanje napak pri uporabi ustreznega modula UART ESP32 sem pritrdil tri izbirne upore za linije TX in RX. (0 ohmov za vsakega). Za standardno konfiguracijo se modul UART2 uporablja za ukaze AT (R4, R7 je treba spajkati)
  • Naprava ima 4 -vrstni izhod - VCC, GND, TX, RX.
  • Zatiči IO0 in EN ocenjujejo delovanje naprave in morajo biti zasnovani tako, kot je navedeno v shemah

Vse funkcije tiskanega vezja bomo obravnavali v naslednjem koraku.

Korak 6: Postavitev tiskanega vezja

Postavitev tiskanega vezja
Postavitev tiskanega vezja
Postavitev tiskanega vezja
Postavitev tiskanega vezja
Postavitev tiskanega vezja
Postavitev tiskanega vezja

Cilji oblikovanja PCB

  1. Ustvarite vgrajen sistem za vsa integrirana vezja na isti plošči
  2. Izboljšajte zmogljivost naprave z oblikovanjem enotnega glavnega tiskanega vezja
  3. Znižanje stroškov - če želite videti cene, so poceni modeli resnično nizki
  4. Zmanjšajte velikost elektronske plošče
  5. Enostavno odpravljanje težav - Za vsako možno napako v delovanju lahko uporabimo TP -je (preskusne točke).

Tehnični parametri

Oba tiskana vezja: glavna in plošča ESP32 imata enake lastnosti v proizvodnem procesu - nizki stroški in uporabni za naše namene. Poglejmo jih:

A - Glavni odbor

  • Dimenzije: 10 x 5,8 cm
  • Število slojev: 2
  • Debelina tiskanega vezja: 1,6 mm
  • Najmanjši prostor/širina sledi: 6/6mil
  • Najmanjši premer luknje: 0,3 mm
  • Najmanjša razdalja bakra do roba PCB: 20 mil
  • Površinska obdelava: HASL (poceni vrsta precej lepe srebrne barve)

B - Glavni odbor

  • Velikost: 3 x 4 cm
  • Število slojev: 2
  • Debelina tiskanega vezja: 1,6 mm
  • Najmanjši prostor/širina sledi: 6/6mil
  • Najmanjši premer luknje: 0,3 mm
  • Najmanjša razdalja bakra do roba PCB: 20 mil
  • Površinska obdelava: HASL

7. korak: 3D ohišje

3D ohišje
3D ohišje

Nisem ga oblikoval sam, ker sem takrat prepričeval to napravo v delo, zato se sploh nisem zavedal vseh osnov 3D tiskanja. Tako sem uporabil projekt SCAD iz Thingiverse in na meje pritrdil različne odprtine, glede na specifikacije moje naprave.

  1. Tiskalna naprava: Creality Ender-3
  2. Vrsta postelje: steklo, debeline 5 mm
  3. Premer nitke: 1,75 mm
  4. Vrsta niti: PLA+
  5. Premer šobe: 0,4 mm
  6. Začetna hitrost: 20 mm/s
  7. Povprečna hitrost: 65 mm/s
  8. Podpora: N/A
  9. Polnjenje: 25%
  10. Temperatura:

    • Postelja: 60 (oC)
    • Šoba: 215 (oC)
  11. Barva nitke: črna
  12. Skupno število odprtin: 5
  13. Število ogradnih plošč: 4

    • TOP Shell
    • Spodnja lupina
    • Sprednja plošča
    • Zadnja plošča

8. korak: Izvajanje programske opreme - MCU

Implementacija programske opreme - MCU
Implementacija programske opreme - MCU
Implementacija programske opreme - MCU
Implementacija programske opreme - MCU
Implementacija programske opreme - MCU
Implementacija programske opreme - MCU

Povezava GitHub do kode Android in Atmega32

Algoritem programske opreme

Vse operacije, ki jih izvede MCU, so opisane v priloženih diagramih poteka. Poleg tega je priložena koda projekta. Poglejmo specifikacije programske opreme:

Prižgi

Na tej stopnji MCU izvede vsa zaporedja inicializacije skupaj z določitvijo shranjene vrste komunikacije z napravo Android: neposredna omrežna komunikacija WiFi ali WLAN - ti podatki so shranjeni v EEPROM -u. Uporabnik lahko na tej stopnji na novo opredeli vrsto seznanjanja naprav Android.

Neposredno povezovanje naprav Android

Ta vrsta seznanjanja temelji na ustvarjanju omrežja WiFi z napravo FuncGen. Ustvaril bo AP (dostopno točko) in strežnik TCP na IP -ju lokalne naprave z določenim SSID -om (ime omrežja WiFi) in določeno številko vrat. Naprava mora držati stanje - odprto za povezave.

Ko je naprava Android povezana s funkcijo FuncGen, MCU vstopi v način AKTIVNO in se odzove v skladu z navodili uporabnika iz naprave Android.

Seznanjanje z WLAN

Za komunikacijo v lokalnem omrežju WiFi mora MCU zagotoviti ukaze za ESP32 za ustvarjanje dostopne točke, komunikacijo z napravo Android in izmenjavo ključnih omrežnih podatkov:

  • Naprava Android od FuncGen prejme svoj naslov MAC in ga shrani v pomnilnik.
  • Naprava FuncGen prejme od naprave Android izbrane parametre WLAN: SSID, vrsto zaščite in geslo ter jih shrani v EEPROM.

Ko so naprave res povezane z istim omrežjem WLAN, bo naprava Android iskala FuncGen s skeniranjem vseh naslovov MAC naprav, povezanih z omrežjem WLAN. Ko naprava Android določi ujemanje MAC, poskuša komunicirati.

Povezava in upravljanje stanja - MCU

Ko naprave med seboj komunicirajo, ostane protokol (glej zaključni korak) enak, diagram poteka pa enak.

Spremljanje stanja naprave

Časovni prekinitev MCU -ju zagotavlja potrebne podrobnosti za obravnavo stanja. Za vsak cikel časovne prekinitve se posodobi naslednji seznam parametrov:

  • Zunanji napajalnik - Vklop/Izklop
  • Stanje napetosti akumulatorja
  • Posodobitev uporabniškega vmesnika za vsako prilagoditev
  • Gumb: pritisnjen/ne pritisnjen

9. korak: Izvajanje programske opreme - aplikacija za Android

Izvajanje programske opreme - aplikacija za Android
Izvajanje programske opreme - aplikacija za Android
Izvajanje programske opreme - aplikacija za Android
Izvajanje programske opreme - aplikacija za Android
Izvajanje programske opreme - aplikacija za Android
Izvajanje programske opreme - aplikacija za Android
Izvajanje programske opreme - aplikacija za Android
Izvajanje programske opreme - aplikacija za Android

Aplikacija za Android je napisana v slogu Java-Android. Poskušal ga bom razložiti na enak način kot prejšnje korake - z razdelitvijo algoritma na ločene kodne bloke.

Zaporedje vklopa

Prvo zaporedje naprave. Tu je logotip aplikacije predstavljen skupaj z omogočenimi moduli GPS in WiFi naprave Android (Ne skrbite, GPS je potreben samo za iskanje ustreznih omrežij WiFi).

Glavni meni

Po zagonu aplikacije se na zaslonu prikažejo štirje gumbi. Delovanje gumbov:

  1. NEPOSREDNA POVEZAVA: Vzpostavitev povezave z dostopno točko FuncGen s SSID IOT_FUNCGEN. Če je povezava uspešna, naprava preide v način glavnega uporabniškega vmesnika.
  2. POVEZAVA WIFI: Naprava preveri, ali so v pomnilniku shranjeni parametri podatkov: wifi.txt, mac.txt. Če ni shranjenih podatkov, bo naprava zavrnila zahtevo uporabnika in prikazala pojavno sporočilo, da je treba najprej povezati WLAN.
  3. PAROVANJE: Komuniciranje s FuncGenom na enak način kot DIRECT CONNECTION, vendar namesto neprekinjene izmenjave sporočil obstaja en sam rokovanje. Naprava Android preveri, ali je že povezana z omrežjem WiFi, in od uporabnika zahteva vnos gesla. Če je ponovna povezava uspešna, naprava Android shrani SSID in geslo v datoteko wifi.txt. Po uspešni komunikaciji s FuncGenom shrani prejeti naslov MAC v datoteko mac.txt.
  4. Izhod: Dovolj rečeno:)

Upravitelj skeniranja WiFi

Želel sem, da je aplikacija v celoti operativna in brez prilagoditev zunaj aplikacije. Tako sem zasnoval optični bralnik WiFi, ki izvaja vse potrebne operacije za povezavo z omrežjem WiFi z znanim geslom in SSID.

Prenos podatkov in komunikacija TCP

To je glavni kodni blok v aplikaciji. Za vse enote uporabniškega vmesnika je določeno sporočilo v določeni obliki (predzadnji korak), ki prisili FuncGen, da zagotovi želeni izhod za kanale. V dejavnosti so tri vrste polj uporabniškega vmesnika:

  1. Vrstice iskanja: Tu definiramo realni obseg izhodnih parametrov FuncGen

    1. Amplituda
    2. DC Offset
    3. Svetlost LCD zaslona
    4. Kontrast LCD
  2. Urejanje besedila: Če želite ohraniti natančne in natančne vrednosti celih števil, se frekvenčni vnos izvede samo prek besedilnih polj samo s številkami
  3. Gumbi: Izbira parametrov s seznamov, ki so na voljo:

    1. Vrsta valovne oblike

      1. Sinus
      2. Trikotnik
      3. DC
      4. Kvadrat
      5. IZKLOPLJENO
    2. Pridobite informacije

      1. Stanje baterije (odstotek)
      2. Stanje AC (zunanji napajalnik)
    3. Možnost zagona (za FuncGen MCU)

      1. Tovarniške nastavitve
      2. Ponovni zagon
      3. Ugasniti
      4. Neposredno - Znova zaženite z načinom neposrednega seznanjanja
      5. WLAN - Znova zaženite z načinom združevanja WLAN
    4. Izhod v glavni meni: Dovolj rečeno:)

10. korak: Testiranje

Priporočena: