Kazalo:
- 1. korak: Blokovni diagram - Strojna oprema
- 2. korak: Blokovni diagram - mreženje
- 3. korak: Deli, orodja, IDE in kosovnica
- 4. korak: Oblikovanje strojne opreme - glavna plošča
- 5. korak: Oblikovanje strojne opreme - modul ESP32
- Korak 6: Postavitev tiskanega vezja
- 7. korak: 3D ohišje
- 8. korak: Izvajanje programske opreme - MCU
- 9. korak: Izvajanje programske opreme - aplikacija za Android
- 10. korak: Testiranje
Video: Prenosni generator funkcij za WiFi in Android: 10 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
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
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
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
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
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:
- D/A za nadzor amplitude - kanal A
- D/A za nadzor amplitude - kanal B
- Naprava AD9834 - kanal A
- Naprava AD9834 - kanal B
- D/A za krmiljenje napetosti pristranskosti - kanal A
- D/A za krmiljenje napetosti pristranskosti - kanal B
- 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:
- VBAT_ADC - Nadzor napetosti akumulatorja in določanje njegovega stanja (kanal ADC0)
- PWR_IND - Prikaz povezave z zunanjim napajanjem (kanal ADC1)
- PS_HOLD - Primarna linija za omogočanje napajanja za vse definirane sisteme. Ko MCU potegne nizko, se naprava izklopi
- 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
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
Cilji oblikovanja PCB
- Ustvarite vgrajen sistem za vsa integrirana vezja na isti plošči
- Izboljšajte zmogljivost naprave z oblikovanjem enotnega glavnega tiskanega vezja
- Znižanje stroškov - če želite videti cene, so poceni modeli resnično nizki
- Zmanjšajte velikost elektronske plošče
- 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
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.
- Tiskalna naprava: Creality Ender-3
- Vrsta postelje: steklo, debeline 5 mm
- Premer nitke: 1,75 mm
- Vrsta niti: PLA+
- Premer šobe: 0,4 mm
- Začetna hitrost: 20 mm/s
- Povprečna hitrost: 65 mm/s
- Podpora: N/A
- Polnjenje: 25%
-
Temperatura:
- Postelja: 60 (oC)
- Šoba: 215 (oC)
- Barva nitke: črna
- Skupno število odprtin: 5
-
Število ogradnih plošč: 4
- TOP Shell
- Spodnja lupina
- Sprednja plošča
- Zadnja plošča
8. korak: Izvajanje 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
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:
- 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.
- 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.
- 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.
- 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:
-
Vrstice iskanja: Tu definiramo realni obseg izhodnih parametrov FuncGen
- Amplituda
- DC Offset
- Svetlost LCD zaslona
- Kontrast LCD
- 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
-
Gumbi: Izbira parametrov s seznamov, ki so na voljo:
-
Vrsta valovne oblike
- Sinus
- Trikotnik
- DC
- Kvadrat
- IZKLOPLJENO
-
Pridobite informacije
- Stanje baterije (odstotek)
- Stanje AC (zunanji napajalnik)
-
Možnost zagona (za FuncGen MCU)
- Tovarniške nastavitve
- Ponovni zagon
- Ugasniti
- Neposredno - Znova zaženite z načinom neposrednega seznanjanja
- WLAN - Znova zaženite z načinom združevanja WLAN
- Izhod v glavni meni: Dovolj rečeno:)
-
10. korak: Testiranje
Priporočena:
Generator funkcij: 12 korakov (s slikami)
Generator funkcij: Ta navodila opisujejo zasnovo funkcijskega generatorja, ki temelji na Maxims -ovem analognem integriranem vezju MAX038. Funkcijski generator je zelo uporabno orodje za čudake elektronike. Potreben je za uglaševanje resonančnih vezij, testiranje aud
Generator funkcij DIY s STC MCU enostavno: 7 korakov (s slikami)
DIY funkcijski generator s STC MCU preprosto: To je generator funkcij, izdelan s STC MCU. Potrebujete le več komponent in vezje je preprosto. Specifikacija Izhod: Enokanalna kvadratna valovna frekvenca: 1Hz ~ 2MHz Sinusna frekvenca: 1Hz ~ 10kHz Amplituda: VCC, približno 5V obremenitev
Generator preprostih funkcij: 5 korakov
Generator preprostih funkcij: V mojem zadnjem navodilu sem vam pokazal, kako sestaviti generator pwm signala, in ga uporabil za filtriranje nekaterih drugih valovnih oblik iz njega. V tem navodilu vam bom pokazal, kako narediti preprost generator funkcij/frekvenc, kako z njim poganjati rele in kako b
Prenosni generator funkcij na Arduinu: 7 korakov (s slikami)
Prenosni generator funkcij na Arduinu: Generator funkcij je zelo uporabno orodje, še posebej, ko razmišljamo o testiranju odziva našega vezja na določen signal. V tem navodilu bom opisal zaporedje gradnje majhnega, enostavnega za uporabo prenosnega generatorja funkcij
Ultra prenosni čistilec zaslona iz mikrovlaken (prenosni/prenosni računalnik): 4 koraki
Ultra prenosni čistilec zaslona iz mikrovlaken (prenosni računalnik/prenosni računalnik): Navajen sem izgubiti veliko orodij in podobno, zato se mi je porodila ideja, zakaj ne bi naredil ultra prenosnega čistila za zaslon iz mikrovlaken za prenosnike, ki se prilega reži za kartico računalnika. To zamisel bi lahko uporabili za katero koli režo za računalniško kartico na katerem koli prenosnem računalniku