Obsah:

Prenosný generátor funkcií pre WiFi a Android: 10 krokov
Prenosný generátor funkcií pre WiFi a Android: 10 krokov

Video: Prenosný generátor funkcií pre WiFi a Android: 10 krokov

Video: Prenosný generátor funkcií pre WiFi a Android: 10 krokov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Júl
Anonim
Prenosný generátor funkcií pre WiFi a Android
Prenosný generátor funkcií pre WiFi a Android
Prenosný generátor funkcií pre WiFi a Android
Prenosný generátor funkcií pre WiFi a Android
Prenosný generátor funkcií pre WiFi a Android
Prenosný generátor funkcií pre WiFi a Android
Prenosný generátor funkcií pre WiFi a Android
Prenosný generátor funkcií pre WiFi a Android

Na konci 20. storočia sa objavili rôzne technologické inovácie, najmä v oblasti komunikácií; ale nielen. Používatelia, spotrebitelia a inžinieri pre nás prišli na svetlo rýchleho vývoja elektronických zariadení, ktoré nám môžu výrazne uľahčiť život: inteligentné hodinky, inteligentné domy, smartfóny atď.

Pretože v dnešnej dobe môže byť všetko „inteligentné“, rozhodol som sa navrhnúť super užitočné zariadenie, ktoré bude súčasťou základného vybavenia elektronického laboratória - prenosný generátor funkcií, ktorý je možné ovládať pomocou smartfónu s operačným systémom Android prostredníctvom priameho WiFi alebo lokálnej siete WiFi (WLAN).

Prečo by sme mali stavať toto zariadenie?

Prevažná väčšina testovacích zariadení je v dnešnej dobe veľmi drahá. A niekedy tieto zariadenia nie sú prenosné. Ako riešenie vysokých cien, nedostatočnej prenosnosti a nedostatku prístupu k sieti zariadenia poskytuje zariadenie dvojkanálový generátor kriviek, ktorý je skutočne prenosný a má neobmedzený prístup k sieti - internetovej alebo lokálnej.

A samozrejme, zariadenie by malo byť postavené z nadšenia a podľa zásad DIY - niekedy musíme veci robiť sami, aby sme sa cítili dobre:)

Kľúčové vlastnosti

Zdroj

  • Konektor USB typu A, pre systémy napájania aj programovanie
  • Kompletný systém správy batérií Li -Ion - nabíjanie a stabilné režimy
  • Implementácia Smart Switch - nie je potrebný prepínač napájania
  • Duálne napájanie: +3,3 V a -3,3 V na generovanie symetrického priebehu napätia

Generovanie priebehu

  • Implementácia úrovne DC na výstupnej kaskáde - predpätý priebeh medzi hranicami napätia
  • Generovanie tvaru DDS na báze 4 typov - sínusový, trojuholníkový, štvorcový a DC
  • Podpora frekvencie až 10 MHz
  • Výstupný prúd až 80 mA s maximálnou dostupnosťou výkonu 500 mW
  • Oddelené kanály na generovanie tvaru vlny - rozdelené obvody založené na AD9834

Komunikácia

  • Implementácia ESP32 - Použiteľné možnosti WiFi
  • Kompletná podpora TCP/IP pomocou zariadenia generátora a smartfónu s Androidom
  • Schopnosť ukladať užívateľské parametre pre každý cyklus zariadenia
  • Monitorovanie stavu - oba systémy si navzájom uvedomujú svoj stav: FuncGen (odteraz tomu hovoríme takto) a smartphone.

Používateľské rozhranie

  • 20 x 4 znakový LCD displej s jednoduchým 4-bitovým dátovým rozhraním
  • Aplikácia pre Android - úplná kontrola používateľov nad zariadením FuncGen
  • Obvod bzučiaka - zvuková spätná väzba pre používateľa

Krok 1: Blokový diagram - hardvér

Blokový diagram - hardvér
Blokový diagram - hardvér
Blokový diagram - hardvér
Blokový diagram - hardvér

Mikrokontrolérová jednotka - ATMEGA32L

Microcontroller je programovateľný čip, ktorý pozostáva zo všetkých funkcií počítača, ktoré sú uložené v jednom elektronickom čipe. V našom prípade je to „mozog“a centrálna súčasť systému. Účelom MCU je riadiť všetky periférne systémy, zvládať komunikáciu medzi týmito systémami, ovládať prevádzku hardvéru a poskytovať úplnú podporu používateľskému rozhraniu a jeho interakcii so skutočným používateľom. Tento projekt je založený na MCU ATMEGA32L, ktoré môže pracovať na 3,3 V a frekvencii 8 MHz.

Komunikácia SoC - ESP32

Tento SoC (System on Chip) poskytuje kompletnú komunikačnú podporu pre FuncGen - prístup k funkciám WiFi vrátane priamej, miestnej alebo internetovej komunikácie. Účely zariadenia sú:

  • Spracovanie prenosu údajov medzi aplikáciou Android a zariadením FuncGen
  • Správa riadiacich/dátových správ
  • Podpora nepretržitej konfigurácie klient-server TCP/IP

V našom projekte je SoC espressif ESP32, ktorý je príliš populárny na to, aby sme ho ešte viac rozšírili:)

Systém správy batérií Li-Ion

Aby sa naše zariadenie zmenilo na prenosné, zariadenie obsahuje navrhnutý nabíjací obvod Li-Ion batérie. Obvod je založený na IC MC73831 s regulovateľným nabíjacím prúdom nastavením hodnoty jedného programovacieho rezistora (Tejto téme sa budeme venovať v kroku Schémata). Vstup napájania zariadenia je konektor USB typu A.

Inteligentný prepínací obvod

Obvod riadenia napájania zariadenia s inteligentným prepínačom poskytuje úplnú softvérovú kontrolu nad sekvenciou vypínania zariadenia a bez potreby externého prepínača na prerušenie napätia batérie zariadenia. Všetky napájacie operácie sa vykonávajú stlačením tlačidla a softvéru MCU. V niektorých prípadoch by bolo potrebné vypnúť systém: Nízke napätie batérie, vysoké vstupné napätie, chyba komunikácie atď. Inteligentný prepínač je založený na inteligentnom prepínači STM6601 IC, ktorý je lacný a veľmi priateľský na hranie.

Hlavná jednotka napájania

Táto jednotka sa skladá z dvoch batériou napájaných obvodov napájania - +3,3 V pre všetky digitálne / analógové napájacie obvody a -3,3 V pre symetrický výstup FunGen vzhľadom na potenciál 0 V (tj. Generovaný priebeh je možné nastaviť v [-3,3 V: 3,3 V] región.

  • Hlavný napájací obvod je založený na lineárnom regulátore napätia LP3875-3.3 LDO (nízky výpadok) 1A.
  • Sekundárny napájací obvod je založený na integrovanom obvode LM2262MX, ktorý vykonáva konverziu záporného napätia DC-DC pomocou kondenzátora-nabíjacej pumpy-systému, na ktorom je založený IC.

Systém generátorov kriviek

Systém bol navrhnutý s dôrazom na oddelené integrované obvody DDS (priama digitálna syntéza), ktoré umožňujú úplné ovládanie generovania tvaru vlny pomocou SPI (sériové periférne rozhranie) MCU. Obvody, ktoré boli použité pri návrhu, sú analógové zariadenia AD9834, ktoré môžu poskytovať rôzne typy priebehov. Pri práci s AD9834 musíme čeliť týmto výzvam:

  • Pevná amplitúda tvaru vlny: Amplitúda priebehu je riadená externým modulom DAC
  • Bez ohľadu na ofsetovú úroveň DC: Implementácia súčtových obvodov s požadovanými hodnotami DC offsetu
  • Oddelené výstupy pre štvorcovú vlnu a trojuholník/sínusovú vlnu: Implementácia vysokofrekvenčného spínacieho obvodu, takže každý kanálový jednokanálový výstup môže poskytnúť všetky požadované tvary vĺn: sínusový, trojuholníkový, štvorcový a jednosmerný.

Displej z tekutých kryštálov

LCD je súčasťou používateľského rozhrania a jeho účelom je umožniť používateľovi porozumieť tomu, čo zariadenie robí v reálnom čase. Interaguje s používateľom v každom stave zariadenia.

Bzučiak

Jednoduchý obvod generátora tónov pre dodatočnú spätnú väzbu od zariadenia k užívateľovi.

Integrovaný programátor ISP

Pokiaľ ide o programovací proces, pre každého inžiniera existuje pretrvávajúci problém: Vždy existuje tá najhoršia potreba produkt rozobrať, aby sa preprogramoval na nový firmvér. Aby sa zabránilo týmto nepríjemnostiam, programátor AVR ISP bol k zariadeniu pripevnený zvnútra, zatiaľ čo dátové a elektrické vedenia USB sú spojené s konektorom USB typu A zariadenia. V tejto konfigurácii stačí zapojiť náš FuncGen cez USB kábel, aby bolo možné programovať alebo nabíjať!

Krok 2: Blokový diagram - siete

Blokový diagram - siete
Blokový diagram - siete

Dvojkanálový generátor funkcií

Hlavné zariadenie. Ten, ktorý sme skontrolovali v predchádzajúcom kroku

ESP-WROOM-32

Integrovaný systémový čip s funkciami WiFi a BLE. SoC je pripevnený k základnej doske (pokryjeme to v schematickom kroku) prostredníctvom modulu UART a funguje ako prenos správ medzi hlavným zariadením a smartfónom s Androidom.

WiFi miestna sieť

Smartfón a zariadenie budú komunikovať prostredníctvom priamej alebo lokálnej siete WiFi na základe konfigurácie servera TCP/klienta. Keď sa zariadenia navzájom rozpoznávajú na WiFi, hlavné zariadenie vytvorí server TCP s príslušnými parametrami a je schopné odosielať/prijímať správy. Zariadenie funguje ako sekundárne zariadenie k smartfónu. Zariadenie Android sa na druhej strane pripája k serveru TCP ako klientskemu sieťovému zariadeniu, ale považuje sa za primárny vysielač správ - smartphone je tým, kto iniciuje kompletný komunikačný cyklus: Odosielanie správy - prijatie odpovede.

Smartfón s Androidom

Zariadenie smartphone s operačným systémom Android, ktoré beží na aplikácii FuncGen

Krok 3: Diely, nástroje, IDE a kusovník

Diely, nástroje, IDE a kusovník
Diely, nástroje, IDE a kusovník
Diely, nástroje, IDE a kusovník
Diely, nástroje, IDE a kusovník
Diely, nástroje, IDE a kusovník
Diely, nástroje, IDE a kusovník

Kusovník (Pozri priloženú tabuľku XLS)

Používateľské rozhranie a systémové pripojenia

  • 1 x 2004A Char-LCD 20x4 modrá
  • 1 x konektor USB typu B
  • 1 x 10 súprava Mini Micro JST XH 2,54 mm 4 pin
  • 1 x 6 ks Momentálny SW

Objednávanie PCB (podľa Seeed Studio)

Základný materiál FR-4

Počet vrstiev 2 vrstvy

Množstvo DPS 10

Počet rôznych prevedení 1

Hrúbka DPS 1,6 mm

Farba DPS Modrá

Povrchová úprava HASL

Minimálna spájkovacia maska, priehradka 0,4 mm ↑

Hmotnosť medi 1 oz

Minimálna veľkosť vŕtanej diery 0,3 mm

Šírka stopy / rozstup 6/6 mil

Pozlátené polovičné otvory / kastlované otvory č

Impedančný regulátor č

Nástroje

  • Horúca lepiaca pištoľ
  • Pinzeta
  • Rezačka
  • ~ 22AWG vodič na účely riešenia porúch
  • Spájkovačka/stanica
  • Spájkovací cín
  • Prepracovacia stanica SMD (voliteľné)
  • 3D tlačiareň (voliteľné)
  • Extruding file
  • Programátor AVR ISP
  • Prevodník USB na sériový port (voliteľný, na ladenie)

Integrované vývojové prostredie (IDE) a softvér

  • Autodesk EAGLE alebo Cadence Schematic Editor / Allegro PCB Editor
  • OpenSCAD (voliteľné)
  • Ultimaker Cura (voliteľné)
  • Saleae Logic (na riešenie problémov)
  • Atmel Studio 6.3 alebo novší
  • Android Studio alebo Eclipse IDE
  • Docklight Serial Monitor / Other COM port monitoring software
  • ProgISP pre flash programovanie AVR ATMEGA32L

Krok 4: Návrh hardvéru - hlavná doska

Hardvérový dizajn - hlavná doska
Hardvérový dizajn - hlavná doska
Hardvérový dizajn - hlavná doska
Hardvérový dizajn - hlavná doska
Hardvérový dizajn - hlavná doska
Hardvérový dizajn - hlavná doska

Okruh správy batérie

Nabíjací obvod batérie je založený na MCP7383 IC, ktorý nám umožňuje zvoliť požadovaný nabíjací prúd pre Li -Ion batériu - 3,7 V s kapacitou 850 mAh. Nabíjací prúd je v našom prípade nastavený programovaním hodnoty odporu (R1)

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

USB napätie VBUS je filtrované π-filtrom (C1, L3, C3) a slúži ako zdroj energie pre nabíjací obvod.

Obvod deliča napätia (R2, R3) umožňuje MCU indikovať, či je alebo nie je pripojené externé napájanie USB, poskytnutím nasledujúceho napätia pre A/D kanál MCU:

V (indikácia) ~ (2/3) V (BUS)

Pretože náš A/D ATMEGA32L je 12-bitový, môžeme vypočítať digitálny rozsah:

A / D (rozsah) = 4095 V (indikácia) / V (REF).

A/D ∈ [14AH: FFFH]

Inteligentná prepínacia jednotka

Okruh umožňuje systému ovládať napájanie každého navrhnutého bloku pomocou tlačidla aj softvéru na MCU a je založený na inteligentnom prepínači STM6601 s možnosťou POWER namiesto RESET. Terminály, ktoré chceme zvážiť, sú tieto:

  • PSHOLD - Vstupný riadok, ktorý definuje stav zariadenia: ak je potiahnutý na NÍZKU, zariadenie deaktivuje všetky sekundárne napájacie jednotky (+3,3 V a -3,3 V). Ak je držaný VYSOKÝ - zariadenie zostáva v stave ZAPNUTÉ.
  • nSR a nPB - vstupné riadky. Tlačidlové terminály. Keď sa na týchto kolíkoch zistí klesajúca hrana, zariadenie sa pokúsi vstúpiť do režimu zapnutia / vypnutia
  • nINT - výstupný riadok. Vytiahne LOW vždy, keď stlačíte tlačidlo
  • SK - Výstupné vedenie sa používa ako povolenie napájania pre sekundárne napájacie jednotky. Kým je držaný LOW, oba sekundárne napájacie zdroje sú deaktivované

Predtým, ako pristúpime k konečnému návrhu, je niekoľko dôležitých poznámok:

  • PSHOLD by mal byť vytiahnutý na 3,3 V, pretože existujú prípady, keď MCU nútia všetky I/O byť v stave HIGH-Z. V tomto prípade je stav PSHOLD z MCU neznámy a môže dramaticky ovplyvniť proces programovania zariadenia.
  • STM6601 by sa mal objednať s možnosťou nastavenia EN pri dlhom stlačení, namiesto možnosti RESET (v tej som spadol).

Napájací zdroj: +3,3V

Hlavné napájanie pre všetky systémy v našom projekte. Keď je vedenie +3,3 V držané na úrovni GND (t.j. nie je prítomné žiadne napätie), všetky integrované obvody okrem inteligentného prepínača sú deaktivované. Obvod je založený na LDO LP-3875-3.3 IC, so schopnosťou ovládať pomocou terminálu EN a poskytovať prúd až 1A.

Zdrojom energie pre tento obvod je napätie batérie s pripojeným indikátorom A/D na snímanie konfigurácie VBAT, podobne ako snímací obvod VBUS. V tomto prípade sa výpočty mierne líšia;

V (batéria-to-A/D) = 0,59V (batéria); A/D (rozsah) ∈ [000H: C03H]

Napájací zdroj: -3,3V

Obvod napájania záporným napätím nám umožňuje generovať symetrické priebehy s jednosmerným faktorom 0 V (t. J. Priemerná hodnota tvaru vlny môže byť 0 V). Tento obvod je založený na prevodníku IC - DC/DC LM2662MX, ktorý funguje na základe metódy „nabíjacieho čerpadla“. Maximálny výstupný prúd obvodu je 200 mA, čo je dostatočné pre naše konštrukčné požiadavky - sme obmedzení výstupným prúdom 80 mA z kanála každého zariadenia.

IC vykonáva všetku potrebnú prácu, takže iba časti, ktoré musíme pripojiť, sú dva elektrolytické kondenzátory: C33 na spínanie a C34 na obtok vedenia -3,3V (úvahy o redukcii šumu). Frekvencia prepínania je z hľadiska dizajnu zanedbateľná, ak obvod umiestnime dostatočne ďaleko od častí generovania tvaru vlny (prediskutujeme to v kroku rozloženia DPS).

Mikrokontrolérová jednotka - MCU

Toto je manažér a generálny riaditeľ nášho systému - ovládanie, ovládanie siete, prenos správ a podpora používateľského rozhrania - všetko zabezpečuje MCU.

Ako MCU bol zvolený Atmel ATMEGA32L, kde L znamená podporovanú napäťovú prevádzku ∈ [2,7 V: 5,5 V]. V našom prípade je prevádzkové napätie +3,3V.

Uvažujme o hlavných operačných blokoch, ktoré sú nevyhnutné na pochopenie, pri práci s MCU v našom návrhu:

  • Externý oscilátor - je voliteľnou súčasťou, pretože nás zaujíma prevádzková frekvencia 8 MHz
  • Periférne ovládanie, sieť SPI - Všetky periférne zariadenia (okrem ESP32) komunikujú s MCU prostredníctvom SPI. Existujú tri zdieľané linky pre všetky zariadenia (SCK, MOSI, MISO) a každý periférny obvod má vyhradenú linku CS (Chip Select). Zariadenia SPI, ktoré sú súčasťou zariadenia:

    1. D/A na ovládanie amplitúdy - kanál A
    2. D/A na ovládanie amplitúdy - kanál B
    3. Zariadenie AD9834 - kanál A
    4. Zariadenie AD9834 - kanál B
    5. D/A na riadenie predpätia - kanál A
    6. D/A na riadenie predpätia - kanál B
    7. Digitálny potenciometer na nastavenie jasu/kontrastu LCD
  • Podpora LCD - Pretože LCD je všeobecný displej s rozmermi 20 x 4 znakov, používame 4 -bitové rozhranie (riadky D7: D4), ovládacie piny (riadky RS, E) a ovládanie jasu/kontrastu (riadky V0 a anóda)
  • Podpora RGB LED - Tento modul je voliteľný, ale k MCU je pripojený bežný katódový RGB LED konektor s príslušnými odpormi.
  • Power Control - MCU vykonáva monitorovanie systému napájania v reálnom čase a zvláda všetky potrebné udalosti napájania:

    1. VBAT_ADC - Monitorovanie napätia batérie a určovanie jej stavu (kanál ADC0)
    2. PWR_IND - Indikácia pripojenia externého zdroja napájania (kanál ADC1)
    3. PS_HOLD - linka na povolenie primárneho napájania pre všetky definované systémy. Keď je MCU vytiahnutý, zariadenie je vypnuté
    4. Prerušovací terminál inteligentného spínača - monitorovanie stavu tlačidiel
  • Správa WiFi siete - ESP32: MCU komunikuje s ESP32 prostredníctvom rozhrania UART. Pretože 8MHz nám umožňuje implementovať prenosovú rýchlosť 115200 s relatívne malou chybou, môžeme v obvode použiť ESP32 bez preddefinovania zmien prenosovej rýchlosti.

Programátor AVR ISP

Náš MCU je naprogramovaný cez SPI s resetovacou linkou (/RST) musí byť vytiahnutá VYSOKO pre správnu funkciu (ak nie - MCU sa ocitne v stave resetovania navždy).

Aby bolo možné zariadenie programovať a nabíjať cez USB, pripojil som programátor AVR ISP (malý produkt, kúpený na eBay). Aby bola zachovaná úplná podpora USB zariadenia, je potrebné prepojiť terminály USB typu A (D+, D-, VBUS a GND) so zariadením AVR ISP.

Okruh generovania tvaru vlny

Jadrom zariadenia sú tieto obvody. AD9834 je zariadenie s nízkym výkonom DDS, ktoré nám poskytuje všetky krivky, ktoré by sme chceli získať zo systému. Obvody obsahujú dva nezávislé obvody AD9834 s oddelenými externými oscilátormi 50 MHz (ako je vidieť na schémach). Dôvodom oddeleného oscilátora sú úvahy o redukcii šumu digitálnych obvodov, takže sa rozhodlo spracovať správne 50 MHz linky s oscilátormi umiestnenými v blízkosti AD9834.

Teraz sa pozrime na matematiku:

Pretože zariadenie DDS pracuje na technológii Phase Wheel s výstupnou hodnotou uloženou v 28-bitovom registri, generovanie tvaru vlny môžeme popísať matematicky:

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

A podľa údajového listu AD9834, s prihliadnutím na maximálnu frekvenciu, je možné dosiahnuť rozlíšenie výstupnej frekvencie:

Δf = k * f (oscilátor) / f (maximum) = 0,28 * 50M / 28M = 0,187 [Hz]

Integrované obvody AD9834 poskytujú analógový prúdový výstup pre trojuholníkové/sínusové vlny (terminál IOUT) a digitálny výstup pre štvorcový priebeh (terminál SIGN_OUT). Použitie znakového bitu je trochu zložité, ale dokážeme to zvládnuť - zakaždým, keď DDS prekročí prah porovnávacej hodnoty, SIGN_OUT sa podľa toho správa. Na výstup každého kanála je pripevnený odpor 200Ohm, takže výstupné napätie by malo zmysluplné hodnoty:

I (jeden kanál) = V (výstup) / R (výber napätia); V (výstup) = R (VS)*I (SS) = 200I (SS) [A]

Obvody na ovládanie amplitúdy (D/A)

Podľa údajového listu AD9834 môže byť jeho amplitúda upravená poskytovaním prúdu systému DDS v plnom rozsahu, takže pomocou duálneho D/A IC môžeme ovládať amplitúdu výstupného signálu nastavením tohto prúdu. Ešte raz trochu matematiky:

I (plný rozsah) = 18 * (V_REF - V_DAC) / R_SET [A]

Podľa schémy a uvedenia niektorých čísel do rovnice:

I (plný rozsah) = 3,86 - 1,17 * V_DAC [A]

D/A modul použitý v návrhu je 12-bitový MCP4922, keď je prúd v rozsahu [0mA: 3,86mA] a funkcia lineárnej amplitúdy je:

V (výber amplitúdy) = 1 - [V (D / A) / (2^12 - 1)]

Multiplexný obvod tvaru vlny

Výstupy generovania štvorcových a sínusových/trojuholníkových vĺn sú oddelené v AD9834, a preto musíme pre oba výstupy použiť vysokorýchlostný multiplexný obvod, aby bolo možné načítať všetky požadované krivky z jedného oddeleného kanála. Multiplexor IC je analógový prepínač ADG836L s veľmi nízkym odporom (~ 0,5Ohm).

Tabuľka výberu, ktorú MCU používa pre výstupy, ako je:

Voľba režimu [D2: D1] | Výstupný kanál A | Výstupný kanál B.

00 | Sínus/trojuholník | Sínus/trojuholník 01 | Sínus/trojuholník | Námestie 10 | Námestie | Sínus/trojuholník 11 | Námestie | Námestie

Obvody riadenia predpätia (D/A)

Jednou z hlavných vlastností generátora kriviek je kontrola jeho hodnoty DC. V tomto prevedení sa to deje nastavením požadovaného D/A napätia na každý kanál a tieto predpäté napätia sa sčítajú s multiplexovanými výstupmi, o ktorých sme diskutovali o niečo skôr.

Napätie získané z D/A leží v rozsahu [0V: +3,3V], takže existuje obvod založený na operačnom zosilňovači, ktorý mapuje rozsah D/A na [-3,3V: +3,3V], čo umožňuje zariadeniu poskytovať plný rozsah. požadovanej jednosmernej zložky. Preskočíme otravnú analytickú matematiku a sústredíme sa na konečné výsledky:

V_OUT (kanál B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (kanál A) = V_BIAS_A (+) - V_BIAS_A (-)

Teraz je rozsah DC komponentov umiestnený v rozsahu [-3,3V: +3,3V].

Sčítacie obvody - DC komponenty a výstupy kriviek

V tomto mieste máme všetko, čo potrebujeme pre správny výstup zariadenia - predpätie (DC zložka) v celom rozsahu napätia a multiplexované výstupy AD9834. To dosiahneme pomocou súčtového zosilňovača - konfigurácie operačného zosilňovača

Preskočme matematiku ešte raz (prebrali sme už veľa matematických prístupov) a zapíšeme si konečný výsledok výstupu súčtového zosilňovača:

V (výstup zariadenia) = V (kladné predpätie) - V (záporné predpätie) - V (multiplexovaný výstup) [V]

Preto:

V_OUT = ΔV_BIAS - V_AD9834 [V]

Výstupné konektory typu BNC sú spojené s výberovými odpormi (R54, R55; R56, R57). Dôvodom je to, že v prípade, že návrh môže byť nefunkčný, stále si môžeme vybrať, či by sme chceli použiť súčtový zosilňovač.

Dôležitá poznámka: Rezistorové siete koncových súčtových zosilňovačov môžu byť upravené projektantom, aby sa zmenila maximálna amplitúda, ktorú je možné získať zo zariadenia. V mojom prípade majú všetky zosilňovače rovnaký zisk = 1, takže maximálna amplitúda vo vyrovnávacej pamäti je 0,7 Vpp pre trojuholníkovú/sínusovú vlnu a 3,3 Vpp pre štvorcovú vlnu. Špecifický matematický prístup nájdete medzi krokmi priloženými obrázkami.

ESP32 ako externý modul

MCU komunikuje s ESP32 prostredníctvom rozhrania UART. Pretože som chcel pre ESP32 vlastnú dosku plošných spojov, na pripojenie sú k dispozícii 4 terminály: VCC, RX, TX, GND. J7 je konektor rozhrania medzi doskami plošných spojov a ESP32 bude alokovaný ako externý modul vo vnútri zariadenia.

Užívateľské rozhranie - LCD a reproduktor

Použitý LCD je generický displej s rozmermi 20 x 4 znakov so 4 -bitovým rozhraním. Ako je zrejmé z návrhu, na svorky LCD „A“a „V0“je pripevnený digitálny potenciometer SPI - jeho účelom je prispôsobiť jas a kontrast LCD modulu programovo.

Reproduktor poskytuje užívateľovi zvukový výstup jednoduchým generovaním štvorcových vĺn z MCU. BJT T1 riadi prúd cez reproduktor, ktorý môže byť len v dvoch stavoch - ON / OFF.

Krok 5: Návrh hardvéru - modul ESP32

Hardvérový dizajn - modul ESP32
Hardvérový dizajn - modul ESP32

ESP32 sa používa ako externý modul pre hlavnú dosku plošných spojov. Komunikácia so zariadením je založená na príkazoch AT, ktoré sú k dispozícii vo všeobecnom firmvéri zariadenia.

Na tomto dizajne nie je čo rozširovať, ale existuje niekoľko poznámok k dizajnu:

  • Aby sa zabránilo poruchám pri použití správneho modulu UART ESP32, pripojil som tri výberové odpory pre linky TX aj RX. (0Ohm pre každého). Pre štandardnú konfiguráciu sa pre AT príkazy používa modul UART2 (R4, R7 musia byť spájkované)
  • Zariadenie má 4 -riadkový výstup - VCC, GND, TX, RX.
  • Kolíky IO0 a EN hodnotia činnosť zariadenia a mali by byť navrhnuté tak, ako je uvedené v schémach

Všetky funkcie DPS pokryjeme v nasledujúcom kroku.

Krok 6: Rozloženie DPS

Rozloženie DPS
Rozloženie DPS
Rozloženie DPS
Rozloženie DPS
Rozloženie DPS
Rozloženie DPS

Ciele navrhovania DPS

  1. Vytvorte vstavaný systém pre všetky integrované obvody na tej istej doske
  2. Zlepšite výkon zariadenia navrhnutím jednej hlavnej dosky plošných spojov
  3. Zníženie nákladov - ak by ste sa chceli pozrieť na ceny, lacné návrhy sú OPRAVDU lacné
  4. Minimalizujte veľkosť elektronickej dosky
  5. Jednoduché riešenie problémov - TP (testovacie body) môžeme použiť pre každú možnú nefunkčnú linku.

Technické parametre

Obe dosky plošných spojov: hlavná a doska ESP32 majú pre výrobný proces rovnaké vlastnosti - nízke náklady a prevádzkyschopnosť na naše účely. Pozrime sa na ne:

A - Hlavná rada

  • Veľkosť: 10 cm x 5,8 cm
  • Počet vrstiev: 2
  • Hrúbka DPS: 1,6 mm
  • Minimálny stopový priestor/šírka: 6/6mil
  • Minimálny priemer otvoru: 0,3 mm
  • Meď na okraj PCB minimálna vzdialenosť: 20 mil
  • Povrchová úprava: HASL (celkom dobre vyzerajúci lacný typ striebornej farby)

B - Hlavná doska

  • Veľkosť: 3 cm x 4 cm
  • Počet vrstiev: 2
  • Hrúbka DPS: 1,6 mm
  • Minimálny stopový priestor/šírka: 6/6mil
  • Minimálny priemer otvoru: 0,3 mm
  • Meď na okraj PCB minimálna vzdialenosť: 20 mil
  • Povrchová úprava: HASL

Krok 7: 3D príloha

3D príloha
3D príloha

Nenavrhol som to sám, pretože v čase, keď som toto zariadenie presviedčal, aby fungovalo, nebol som si teda vedomý všetkých základov 3D tlače. Preto som použil projekt SCAD od spoločnosti Thingiverse a k hraniciam som pripevnil rôzne clony podľa špecifikácií svojho zariadenia.

  1. Tlačové zariadenie: Creality Ender-3
  2. Typ postele: sklo, hrúbka 5 mm
  3. Priemer vlákna: 1,75 mm
  4. Typ vlákna: PLA+
  5. Priemer trysky: 0,4 mm
  6. Počiatočná rýchlosť: 20 mm/s
  7. Priemerná rýchlosť: 65 mm/s
  8. Podpora: N/A
  9. Výplň: 25%
  10. Teplota:

    • Posteľ: 60 (oC)
    • Tryska: 215 (oC)
  11. Farba vlákna: čierna
  12. Celkový počet otvorov: 5
  13. Počet panelov krytu: 4

    • TOP škrupina
    • Spodná škrupina
    • Predný panel
    • Zadný panel

Krok 8: Implementácia softvéru - MCU

Softvérová implementácia - MCU
Softvérová implementácia - MCU
Softvérová implementácia - MCU
Softvérová implementácia - MCU
Softvérová implementácia - MCU
Softvérová implementácia - MCU

Odkaz GitHub na kód Android a Atmega32

Algoritmus softvéru

Všetky operácie, ktoré MCU vykonáva, sú popísané v priložených vývojových diagramoch. Okrem toho je k projektu priložený kód. Pozrime sa na špecifikácie softvéru:

Zapnutie

V tejto fáze MCU vykonáva všetky inicializačné sekvencie spolu s určením typu uloženej komunikácie so zariadením Android: Priama komunikácia v sieti WiFi alebo WLAN - tieto údaje sú uložené v EEPROM. V tejto fáze môže používateľ predefinovať typ párovania zariadení s Androidom.

Priame párovanie zariadení s Androidom

Tento typ párovania je založený na vytváraní WiFi siete zariadením FuncGen. Vytvorí AP (prístupový bod) a server TCP na adrese IP lokálneho zariadenia so špecifickým SSID (názov siete WiFi) a konkrétnym číslom portu. Zariadenie by malo držať stav - otvorené pre pripojenia.

Keď je zariadenie Android pripojené k FuncGen, MCU prejde do AKTÍVNEHO režimu a reaguje podľa pokynov používateľa zo zariadenia Android.

Párovanie WLAN

Aby mohla MCU komunikovať v miestnej sieti WiFi, mala by poskytovať príkazy ESP32 na vytváranie prístupových bodov, komunikáciu so zariadením Android a výmenu najdôležitejších sieťových údajov:

  • Zariadenie Android dostane od FuncGen svoju MAC adresu a uloží ho do pamäte.
  • Zariadenie FuncGen prijíma zo zariadenia Android vybrané parametre WLAN: SSID, typ zabezpečenia a heslo a ukladá ho do pamäte EEPROM.

Keď sú zariadenia skutočne pripojené k tej istej WLAN, zariadenie Android vyhľadá FuncGen skenovaním všetkých MAC adries zariadení pripojených k WLAN. Keď zariadenie Android určí MAC match, pokúsi sa komunikovať.

Manipulácia s pripojením a stavom - MCU

Keď zariadenia navzájom komunikujú, protokol (pozri predposledný krok) zostáva rovnaký a vývojový diagram je rovnaký.

Monitorovanie stavu zariadenia

Načasované prerušenie poskytuje MCU potrebné detaily na spracovanie stavu. Pri každom cykle prerušenia časovača sa aktualizuje nasledujúci zoznam parametrov:

  • Externé napájanie - zapnuté/vypnuté
  • Stav napätia batérie
  • Aktualizácia používateľského rozhrania pre každé prispôsobenie
  • Tlačidlo: stlačené/nestlačené

Krok 9: Implementácia softvéru - aplikácia pre Android

Softvérová implementácia - aplikácia pre Android
Softvérová implementácia - aplikácia pre Android
Softvérová implementácia - aplikácia pre Android
Softvérová implementácia - aplikácia pre Android
Softvérová implementácia - aplikácia pre Android
Softvérová implementácia - aplikácia pre Android
Softvérová implementácia - aplikácia pre Android
Softvérová implementácia - aplikácia pre Android

Aplikácia pre Android je napísaná v štýle Java-Android. Pokúsim sa to vysvetliť rovnakým spôsobom ako predchádzajúce kroky - rozdelením algoritmu na samostatné bloky kódu.

Sekvencia zapnutia

Prvá sekvencia zariadenia. Tu je uvedené logo aplikácie spolu s povolením modulov GPS a WiFi v zariadení Android (Nebojte sa, GPS je potrebné iba na skenovanie správnych sietí WiFi).

Hlavné menu

Po spustení aplikácie sa na obrazovke zobrazia štyri tlačidlá. Akcia tlačidiel:

  1. PRIAME PRIPOJENIE: Inicializuje sa pripojenie k AP FuncGen pomocou SSID IOT_FUNCGEN. Ak je pripojenie úspešné, zariadenie prejde do hlavného režimu používateľského rozhrania.
  2. WIFI PRIPOJENIE: Zariadenie skontroluje, či sú v pamäti uložené parametre údajov: wifi.txt, mac.txt. Ak nie sú uložené žiadne údaje, zariadenie odmietne požiadavku používateľa a zobrazí kontextovú správu, že najskôr je potrebné vykonať párovanie WLAN.
  3. PAIRING: Komunikácia s FuncGen rovnakým spôsobom ako DIRECT CONNECTION, ale namiesto nepretržitej výmeny správ dochádza k jednému podaniu ruky. Zariadenie Android skontroluje, či je už pripojené k sieti WiFi, a požiada používateľa o zadanie hesla. Ak je opätovné pripojenie úspešné, zariadenie Android uloží SSID a prístupový kľúč do súboru wifi.txt. Po úspešnej komunikácii s FuncGen uloží prijatú adresu MAC do súboru mac.txt.
  4. Exit: Dosť bolo rečí:)

Správca skenovania WiFi

Chcel som, aby bola aplikácia plne operačná a aby sa nevykonávali úpravy mimo aplikácie. Preto som navrhol WiFi Scanner, ktorý vykonáva všetky potrebné operácie na pripojenie k sieti WiFi so známym prístupovým kľúčom a SSID.

Prenos údajov a komunikácia TCP

Toto je hlavný blok kódu v aplikácii. Pre všetky jednotky používateľského rozhrania existuje definovaná správa v špecifickom formáte (predposledný krok), ktorá núti FuncGen poskytovať požadovaný výstup pre kanály. V aktivite sú tri typy polí používateľského rozhrania:

  1. Seek Bars: Tu definujeme skutočný rozsah výstupných parametrov FuncGen

    1. Amplitúda
    2. Offset DC
    3. Jas LCD
    4. LCD kontrast
  2. Úprava textu: Aby boli celočíselné hodnoty dobre definované a presné, zadávanie frekvencie sa vykonáva iba pomocou textových polí s číslami
  3. Tlačidlá: Výber parametrov z dostupných zoznamov:

    1. Typ krivky

      1. Sínus
      2. Trojuholník
      3. DC
      4. Námestie
      5. VYPNUTÉ
    2. Dostať informácie

      1. Stav batérie (percento)
      2. Stav AC (externé napájanie)
    3. Možnosť spustenia (pre MCU FuncGen)

      1. Továrenské nastavenia
      2. Reštart
      3. Vypnúť
      4. Priame - reštartuje sa v režime priameho párovania
      5. WLAN - Reštartujte s režimom párovania WLAN
    4. Výstup do hlavného menu: Dosť bolo povedané:)

Krok 10: Testovanie

Odporúča: