Tartalomjegyzék:

Hordozható funkciógenerátor WiFi -n és Androidon: 10 lépés
Hordozható funkciógenerátor WiFi -n és Androidon: 10 lépés

Videó: Hordozható funkciógenerátor WiFi -n és Androidon: 10 lépés

Videó: Hordozható funkciógenerátor WiFi -n és Androidon: 10 lépés
Videó: Csatlakozás wifi hálózathoz Android 2024, Július
Anonim
Hordozható funkciógenerátor WiFi -n és Androidon
Hordozható funkciógenerátor WiFi -n és Androidon
Hordozható funkciógenerátor WiFi -n és Androidon
Hordozható funkciógenerátor WiFi -n és Androidon
Hordozható funkciógenerátor WiFi -n és Androidon
Hordozható funkciógenerátor WiFi -n és Androidon
Hordozható funkciógenerátor WiFi -n és Androidon
Hordozható funkciógenerátor WiFi -n és Androidon

A 20. század vége felé különféle technológiai újítások bukkantak fel, különösen a kommunikáció területén; de nem csak. Számunkra a felhasználók, a fogyasztók és a mérnökök rávilágítottak az elektronikus eszközök gyors fejlődésére, amelyek jelentősen megkönnyíthetik az életünket: intelligens órák, okos otthonok, okostelefonok stb.

Mivel manapság minden lehet „okos”, úgy döntöttem, hogy egy szuper -hasznos eszközt tervezek az alapvető elektronikus laboratóriumi berendezések részeként - hordozható funkciógenerátort, amelyet Android OS -alapú okostelefonnal lehet irányítani WiFi közvetlen vagy WiFi helyi hálózaton (WLAN) keresztül).

Miért építsük ezt a készüléket?

A vizsgálóberendezések túlnyomó része manapság meglehetősen drága. És néha ezek az eszközök nem hordozhatók. Megoldásként a magas árak, a hordozhatóság hiánya és az eszközhálózat -hozzáférés hiánya miatt az eszköz kétcsatornás hullámforma -generátort biztosít, amely valóban hordozható, és korlátlan hozzáféréssel rendelkezik a hálózathoz - akár internethez, akár helyi hálózathoz.

És persze az eszközt a lelkesedés, a barkácsolás elvei betartása miatt kell megépíteni - Néha csak magunknak kell tennünk valamit, hogy jól érezzük magunkat:)

Főbb jellemzők

Tápegység

  • A típusú USB csatlakozó, tápellátó rendszerekhez és programozáshoz egyaránt
  • Komplett Li -Ion akkumulátorkezelő rendszer - Töltés és stabil üzemmódok
  • Intelligens kapcsoló megvalósítás - nincs szükség áramváltó kapcsolóra
  • Kettős tápegység: +3,3 V és -3,3 V szimmetrikus feszültséghullám -alakú generáláshoz

Hullámalakítás

  • DC szint megvalósítása a kimeneti kaszkádban - torzított hullámforma a feszültséghatárok között
  • DDS alapú 4 típusú hullámforma generálás - szinusz, háromszög, négyzet és egyenáram
  • Akár 10MHz frekvencia támogatás
  • Kimeneti áram akár 80mA 500mW maximális rendelkezésre állással
  • Külön csatornák a hullámforma generáláshoz - osztott AD9834 alapú áramkörök

Kommunikáció

  • Az ESP32 megvalósítása - Alkalmazható WiFi képességek
  • Teljes körű TCP/IP támogatás generátor eszközzel és Android okostelefonnal
  • Képesség a felhasználói paraméterek tárolására minden eszközciklushoz
  • Állapotfigyelés - mindkét rendszer tisztában van egymással: a FuncGen (nevezzük mostantól így) és az okostelefon.

Felhasználói felület

  • 20 x 4 karakteres LCD, egyszerű 4 bites adat interfésszel
  • Android -alkalmazás - teljes felhasználói ellenőrzés a FuncGen eszköz felett
  • Zümmögő áramkör - hangos visszajelzés a felhasználónak

1. lépés: Blokkdiagram - Hardver

Blokkdiagram - Hardver
Blokkdiagram - Hardver
Blokkdiagram - Hardver
Blokkdiagram - Hardver

Mikrokontroller egység - ATMEGA32L

A mikrokontroller egy programozható chip, amely a számítógép minden olyan funkciójából áll, amelyek egyetlen elektronikus chipben találhatók. Esetünkben ez az "agy" és a rendszer központi eleme. Az MCU célja az összes perifériás rendszer kezelése, a rendszerek közötti kommunikáció kezelése, a hardver működésének ellenőrzése, valamint a felhasználói felület és a tényleges felhasználóval való interakció teljes körű támogatása. Ez a projekt az ATMEGA32L MCU -n alapul, amely 3.3V -on és 8MHz -es frekvencián működik.

Kommunikációs SoC - ESP32

Ez az SoC (System on Chip) teljes körű kommunikációs támogatást nyújt a FuncGen számára - Hozzáférés a WiFi képességekhez, beleértve a közvetlen, helyi vagy internetes kommunikációt. Az eszköz célja:

  • Adatátvitel kezelése az Android alkalmazás és a FuncGen eszköz között
  • Vezérlő/adatüzenetek kezelése
  • A folyamatos TCP/IP kliens-szerver konfiguráció támogatása

A mi projektünkben az SoC az ESP32 espressif, ami túl népszerű ahhoz, hogy tovább bővítsük:)

Li-Ion akkumulátorkezelő rendszer

Annak érdekében, hogy eszközünket hordozhatóvá alakítsuk, az eszköz tervezett Li-Ion akkumulátor töltőáramkört tartalmaz. Az áramkör MC73831 IC -n alapul, szabályozható töltőárammal, egyetlen programozási ellenállás értékének beállításával (ezt a témát a Vázlat lépésben tárgyaljuk). A készülék tápegység bemenete A típusú USB-csatlakozó.

Intelligens kapcsoló áramkör

Az intelligens kapcsolóeszköz tápfeszültség -vezérlő áramköre teljes szoftvervezérlést biztosít az eszköz leállítási sorrendje felett, és nincs szükség külső váltókapcsolóra az eszköz akkumulátorfeszültségének leállításához. Minden bekapcsolási műveletet a nyomógomb és az MCU szoftverének megnyomásával végezhet el. Bizonyos esetekben le kell állítani a rendszert: Alacsony akkumulátorfeszültség, magas bemeneti feszültség, kommunikációs hiba és így tovább. Az intelligens kapcsoló az STM6601 intelligens kapcsoló IC -n alapul, amely olcsó és nagyon barátságos a játékhoz.

Fő tápegység

Ez az egység két elemmel működő tápegységből áll - +3,3 V az összes digitális / analóg tápáramkörben és -3,3 V a FunGen szimmetrikus kimenetében a 0 V potenciálhoz képest (azaz a generált hullámforma beállítható [-3,3 V: 3,3 V] vidék.

  • A fő tápáramkör az LP3875-3,3 LDO (low dropout) 1A lineáris feszültségszabályozóra épül.
  • A másodlagos tápáramkör az LM2262MX IC-n alapul, amely DC-DC negatív feszültségátalakítást végez kondenzátor-töltés-szivattyú-az IC alapú rendszeren keresztül.

Hullámforma generátor rendszer

A rendszert úgy tervezték, hogy külön hangsúlyt fektessenek a külön DDS (közvetlen digitális szintézis) integrált áramkörökre, amelyek lehetővé teszik a teljes hullámforma -generálás vezérlését az MCU SPI (soros perifériás interfész) segítségével. A tervezés során használt áramkörök az AD9834 analóg eszközök, amelyek különböző típusú hullámformákat biztosíthatnak. A következő kihívásokkal kell szembenéznünk az AD9834 használatakor:

  • Fix hullámforma amplitúdó: A hullámforma amplitúdóját külső DAC modul vezérli
  • Az offset DC szint figyelmen kívül hagyása: Összefoglaló áramkörök megvalósítása a kívánt DC offset értékekkel
  • Külön kimenetek a négyzethullámhoz és a háromszög/szinusz hullámhoz: Nagyfrekvenciás kapcsolóáramkör megvalósítása, így minden egyes csatornás kimenet biztosítja a kívánt hullámformát: szinusz, háromszög, négyzet és egyenáram.

Folyadékkristályos kijelző

Az LCD a felhasználói felület (felhasználói felület) része, és célja, hogy lehetővé tegye a felhasználó számára, hogy megértse, mit csinál az eszköz valós idejű módban. Minden eszközállapotban kölcsönhatásba lép a felhasználóval.

Berregő

Egyszerű hanggenerátor áramkör további visszajelzéshez az eszköztől a felhasználóig.

Integrált ISP programozó

Minden mérnöknek van egy állandó problémája a programozási folyamat során: Mindig az a legrosszabb szükség, hogy szétszereljük a terméket, hogy újraprogramozhassuk egy új firmware -vel. Ennek a kellemetlenségnek a kiküszöbölése érdekében az AVR ISP programozót belülről csatlakoztatta az eszközhöz, míg az USB-adatokat és a tápvezetékeket az eszköz A típusú USB-csatlakozójához kötötték. Ebben a konfigurációban csak be kell dugnunk a FuncGen -t USB -kábelen keresztül akár programozáshoz, akár töltéshez!

2. lépés: Blokkdiagram - Hálózatépítés

Blokkdiagram - Hálózatépítés
Blokkdiagram - Hálózatépítés

Kétcsatornás funkciógenerátor

Fő eszköz. Amit az előző lépésben áttekintettünk

ESP-WROOM-32

Beépített System-on-Chip WiFi és BLE képességekkel. Az SoC az UART modulon keresztül csatlakozik az alaplaphoz (ezt a vázlatos lépésekben tárgyaljuk), és üzenetátvivőként működik a fő eszköz és az Android okostelefon között.

WiFi helyi hálózat

Az okostelefon és az eszköz a WiFi közvetlen vagy helyi hálózaton keresztül kommunikál a TCP szerver/kliens konfigurációja alapján. Amikor az eszközök felismerik egymást a WiFi -n, a fő eszköz megfelelő paraméterekkel TCP szervert hoz létre, és képes üzeneteket küldeni/fogadni. Az eszköz másodlagosan működik az okostelefonnal szemben. Az Android -eszköz viszont kliens hálózati eszközként csatlakozik a TCP -szerverhez, de elsődleges üzenettovábbítónak tekinthető - az okostelefon az, aki teljes kommunikációs ciklust kezdeményez: Üzenet küldése - válasz fogadása.

Android okostelefon

Android OS -alapú okostelefon, amely a FuncGen alkalmazáson fut

3. lépés: Alkatrészek, eszközök, IDE és anyagjegyzék

Alkatrészek, eszközök, IDE és anyagjegyzék
Alkatrészek, eszközök, IDE és anyagjegyzék
Alkatrészek, eszközök, IDE és anyagjegyzék
Alkatrészek, eszközök, IDE és anyagjegyzék
Alkatrészek, eszközök, IDE és anyagjegyzék
Alkatrészek, eszközök, IDE és anyagjegyzék

Anyagjegyzék (lásd a mellékelt XLS táblázatot)

UI és rendszerkapcsolatok

  • 1 x 2004A Char-LCD 20x4 kék
  • 1 db B típusú USB csatlakozó
  • 1 x 10 szett Mini Micro JST XH 2,54 mm 4 tűs
  • 1 x 6db Pillanatnyi SW

NYÁK megrendelés (a Seeed Studio szerint)

Alapanyag FR-4

Rétegek száma 2 réteg

NYÁK -mennyiség 10

Különböző formatervezési minták száma 1

NYÁK vastagsága 1,6 mm

NYÁK színe kék

Felületkezelő HASL

Minimális forrasztómaszk gát 0,4 mm ↑

Réz súlya 1 oz

A fúrólyuk minimális mérete 0,3 mm

Nyomkövetési szélesség / távolság 6/6 mil

Rétegezett félfuratok / Castellated Lyukak

Impedancia szabályozás Nem

Eszközök

  • Ragasztópisztoly
  • Csipesz
  • Vágó
  • ~ 22AWG huzal a meghibásodás kezelésére
  • Forrasztópáka/állomás
  • Forrasztó konzervdoboz
  • SMD átdolgozó állomás (opcionális)
  • 3D nyomtató (opcionális)
  • Extrudáló fájl
  • AVR ISP programozó
  • USB -soros átalakító (opcionális, hibakeresési célokra)

Integrált fejlesztői környezet (IDE) és szoftver

  • Autodesk EAGLE vagy Cadence Schematic Editor / Allegro PCB Editor
  • OpenSCAD (opcionális)
  • Ultimaker Cura (opcionális)
  • Saleae Logic (hibaelhárításhoz)
  • Atmel Studio 6.3 vagy újabb
  • Android Studio vagy Eclipse IDE
  • Docklight soros monitor / egyéb COM portfigyelő szoftver
  • ProgISP az AVR ATMEGA32L vaku programozásához

4. lépés: Hardvertervezés - alaplap

Hardvertervezés - alaplap
Hardvertervezés - alaplap
Hardvertervezés - alaplap
Hardvertervezés - alaplap
Hardvertervezés - alaplap
Hardvertervezés - alaplap

Akkumulátor -kezelő áramkör

Az akkumulátor töltési áramköre az MCP7383 IC -n alapul, amely lehetővé teszi, hogy kiválasszuk a kívánt töltőáramot a Li -Ion akkumulátorhoz - 3,7 V, 850mAh kapacitással. A töltőáramot az ellenállás érték (R1) programozásával állítjuk be esetünkben

R1 = 3KOhm, I (töltés) = 400mA

A VBUS USB feszültséget a π-szűrő (C1, L3, C3) szűri, és a töltőáramkör áramforrásaként működik.

A feszültségosztó áramkör (R2, R3) lehetővé teszi az MCU számára, hogy jelezze, hogy külső USB -tápegység csatlakozik -e vagy sem, az alábbi feszültség biztosításával az MCU A/D csatornához:

V (jelzés) ~ (2/3) V (busz)

Mivel az ATMEGA32L A/D 12 bites, kiszámíthatjuk a digitális tartományt:

A / D (tartomány) = 4095V (jelzés) / V (REF).

A/D ∈ [14AH: FFFH]

Smart Switch tápegység

Az áramkör lehetővé teszi a rendszer számára, hogy vezérelje az áramellátást minden tervezett blokkhoz, mind a nyomógombok, mind az MCU szoftverén keresztül, és az STM6601 Smart-Switch alapú, POWER opcióval a RESET helyett. A következő terminálokat szeretnénk figyelembe venni:

  • PSHOLD - Bemeneti vonal, amely meghatározza az eszköz állapotát: ha alacsonyra húzza, az eszköz letiltja az összes másodlagos tápegységet (+3,3 V és -3,3 V). Ha a HIGH gombot tartja - az eszköz bekapcsolt állapotban marad.
  • nSR és nPB - Bemeneti vonalak. Nyomógombos terminálok. Amikor ezeken a csapokon leeső élt észlel, a készülék megpróbál be- / kikapcsolni
  • nINT - Kimeneti vonal. LOW -t húz minden alkalommal, amikor megnyomja a nyomógombot
  • HU - Kimeneti vonal, a másodlagos tápegységek áramellátását lehetővé teszi. Ha alacsonyan tartja, mindkét másodlagos tápegység le van tiltva

Van néhány fontos megjegyzés, mielőtt folytatnánk a végső tervezést:

  • A PSHOLD-ot fel kell húzni 3,3 V-ra, mert vannak esetek, amikor az MCU-k az összes I/O-t HIGH-Z állapotba kényszerítik. Ebben az esetben az MCU PSHOLD állapota ismeretlen, és drámaian befolyásolhatja az eszköz programozási folyamatát.
  • Az STM6601 -et hosszú ideig tartó EN beállítási lehetőséggel kell megrendelni, nem pedig RESET opcióval (ebbe beleestem).

Tápegység: +3.3V

Fő tápegység a projektünk összes rendszeréhez. Ha a +3,3 V -os vezetéket GND szinten tartja (azaz nincs feszültség), az intelligens kapcsoló kivételével az összes IC le van tiltva. Az áramkör az LDO LP-3875-3.3 IC alapú, és az EN terminálon keresztül vezérelhető, és legfeljebb 1A áramot biztosít.

Ennek az áramkörnek az áramforrása az akkumulátor feszültsége, mellékelt A/D jelzővel a VBAT érzékeléséhez konfigurációban, hasonlóan a VBUS érzékelő áramkörhöz. Ebben az esetben a számítások kissé eltérnek;

V (akkumulátor-A/D) = 0,59 V (akkumulátor); A/D (tartomány) ∈ [000H: C03H]

Tápegység: -3,3V

A negatív feszültségű tápáramkör lehetővé teszi számunkra, hogy szimmetrikus hullámformákat hozzunk létre 0 V DC tényezővel (azaz a hullámforma átlagos értéke 0V lehet). Ez az áramkör az LM2662MX IC - DC/DC átalakítón alapul, amely "töltőszivattyús" módszerrel működik. Az áramkör maximális kimeneti árama 200mA, ami elegendő a tervezési igényeinkhez - korlátozott a 80mA kimeneti áram minden eszköz csatornájáról.

Az IC elvégzi az összes szükséges munkát, ezért csak két elektrolitikus kondenzátort kell csatlakoztatnunk: C33 a kapcsoláshoz és C34 a -3,3 V vezeték -megkerüléshez (zajcsökkentési megfontolások). A kapcsolás gyakorisága elhanyagolható a tervezésben, ha az áramkört kellő távolságra helyezzük el a hullámforma generáló alkatrészektől (ezt a PCB elrendezési lépésben tárgyaljuk).

Mikrokontroller egység - MCU

Ez a rendszer menedzsere és vezérigazgatója - vezérlés, hálózati kezelés, üzenettovábbítás és felhasználói felület támogatás - mindent az MCU végez.

A kiválasztott MCU az Atmel ATMEGA32L, ahol az L a támogatott feszültségű működést jelenti ∈ [2.7V: 5.5V]. Esetünkben az üzemi feszültség +3,3 V.

Tekintsük a főbb működési blokkokat, amelyeket meg kell értenünk az MCU -val való tervezés során:

  • Külső oszcillátor - opcionális alkatrész, mivel érdekel a 8 MHz -es működési frekvencia
  • Perifériás vezérlés, SPI hálózat - Az összes perifériás eszköz (az ESP32 kivételével) kommunikál az MCU -val az SPI -n keresztül. Három megosztott vonal van minden eszközhöz (SCK, MOSI, MISO), és minden perifériás áramkör rendelkezik saját CS (Chip Select) vonallal. Az SPI eszközök, amelyek az eszköz részét képezik:

    1. D/A az amplitúdó vezérléshez - A csatorna
    2. D/A amplitúdó vezérléshez - B csatorna
    3. AD9834 eszköz - A csatorna
    4. AD9834 eszköz - B csatorna
    5. D/A az előfeszített feszültségszabályozáshoz - A csatorna
    6. D/A az előfeszített feszültségszabályozáshoz - B csatorna
    7. Digitális potenciométer az LCD fényerejének/kontrasztjának beállításához
  • LCD támogatás - Mivel az LCD egy általános 20 x 4 karakteres kijelző, 4 bites interfészt (D7: D4 sor), vezérlőcsapokat (RS, E sor) és fényerő/kontraszt szabályozást (V0 és anód sorok) használunk
  • RGB LED támogatás - Ez a modul opcionális, de van egy közös katódos RGB LED csatlakozó megfelelő ellenállásokkal, amelyek az MCU -hoz vannak csatlakoztatva.
  • Energiaszabályozás - Az MCU valós idejű üzemmódban végzi az energiaellátó rendszer felügyeletét, és kezeli az összes szükséges áramellátási eseményt:

    1. VBAT_ADC - Az akkumulátor feszültségének figyelése és állapotának meghatározása (ADC0 csatorna)
    2. PWR_IND - A külső tápegység csatlakoztatásának jelzése (ADC1 csatorna)
    3. PS_HOLD - Elsődleges áramellátási vonal az összes meghatározott rendszerhez. Amikor az MCU alacsonyra húzza, az eszköz lekapcsol
    4. Az intelligens kapcsoló megszakító terminálja - Nyomógomb állapot felügyelet
  • WiFi hálózatkezelés - ESP32: Az MCU UART interfészen keresztül kommunikál az ESP32 -vel. Mivel a 8MHz lehetővé teszi, hogy viszonylag kis hibával megvalósítsuk a 115200-as adatátviteli sebességet, az ESP32-t használhatjuk az áramkörben az adatátviteli sebesség változásának előzetes meghatározása nélkül.

AVR ISP programozó

Az MCU -nkat SPI -n keresztül programozzuk, és a visszaállítási vonalat (/RST) magasra kell húzni a megfelelő működéshez (ha nem - az MCU örökre reset állapotba kerül).

Annak érdekében, hogy az eszköz USB-n keresztül is programozható és tölthető legyen, csatoltam AVR ISP programozót (kis méretű termék, az eBay-től vásárolt). Az eszköz teljes USB-támogatásának fenntartása érdekében össze kell kötni az A típusú USB (D+, D-, VBUS és GND) terminálokat az AVR ISP eszközzel.

Hullámforma generáló áramkör

A készülék magja ezek az áramkörök. Az AD9834 egy kis fogyasztású DDS eszköz, amely minden olyan hullámformát biztosít számunkra, amelyeket a rendszerből szeretnénk lekérni. Az áramkörök két független AD9834 IC -t tartalmaznak, külön 50MHz -es oszcillátorokkal (amint az a rajzokon látható). Az elkülönített oszcillátor oka a digitális áramkörök zajcsökkentési szempontja, ezért a döntés az volt, hogy megfelelő 50 MHz -es vonalakat kell kezelni az AD9834 mellett elhelyezett oszcillátorokkal.

Most nézzünk egy kis matematikát:

Mivel a DDS eszköz Phase Wheel technológián működik, a kimeneti érték 28 bites regiszterben van, a hullámforma generálását matematikailag leírhatjuk:

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

És az AD9834 adatlapja szerint, figyelembe véve a maximális frekvenciát, a kimeneti frekvencia felbontása elérhető:

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

Az AD9834 IC -k analóg áramkimenetet biztosítanak a háromszög/szinusz hullámhoz (IOUT terminál) és digitális kimenetet a négyzethullámhoz (SIGN_OUT terminál). A jelbit használata kissé trükkös, de képesek vagyunk kezelni - Minden alkalommal, amikor a DDS átlépi az összehasonlítási érték küszöbét, a SIGN_OUT ennek megfelelően viselkedik. Minden csatorna kimenetéhez egy 200 ohmos ellenállás van csatlakoztatva, így a kimeneti feszültségnek jelentős értékei vannak:

I (egycsatornás) = V (kimenet) / R (feszültségválasztás); V (kimenet) = R (VS)*I (SS) = 200I (SS) [A]

Amplitúdó (D/A) áramkörök

Az AD9834 adatlapja szerint amplitúdója a DDS teljes skálájú rendszer áramellátásával állítható be, így a kettős D/A IC segítségével szabályozhatjuk a kimeneti jel amplitúdóját az áram beállításával. Még egyszer egy kis matek:

I (teljes skála) = 18 * (V_REF - V_DAC) / R_SET [A]

A vázlatok szerint és néhány szám egyenletbe helyezése:

I (teljes skála) = 3,86 - 1,17 * V_DAC [A]

A tervezéshez használt D/A modul 12 bites MCP4922, ha az áram [0mA: 3,86mA] tartományban van, és a lineáris amplitúdó függvény:

V (amplitúdóválasztás) = 1 - [V (D / A) / (2^12 - 1)]

Hullámforma multiplexelő áramkör

A négyszöghullámú és a szinusz/háromszög hullám generáló kimenetek el vannak választva az AD9834 -nél, ezért nagy sebességű multiplexáló áramkört kell használni mindkét kimenethez, hogy lehetővé tegyük az összes kívánt hullámforma lekérését egyetlen elválasztott csatornából. A multiplexer IC egy ADG836L analóg kapcsoló, nagyon alacsony ellenállással (~ 0,5 Ohm).

A kiválasztási táblázat, amelyet az MCU a kimenetekhez használ:

Módválasztás [D2: D1] | A kimeneti csatorna | B kimeneti csatorna

00 | Szinusz/háromszög | Szinusz/háromszög 01 | Szinusz/háromszög | 10. tér | Négyzet | Szinusz/háromszög 11 | Négyzet | Négyzet

Előfeszítési feszültségszabályozó (D/A) áramkörök

A hullámforma generátor egyik fő jellemzője a DC értékének szabályozása. Ebben a kialakításban úgy történik, hogy minden csatornán a kívánt D/A feszültséget állítják be, és ezeket az előfeszítési feszültségeket összegezik multiplexelt kimenetekkel, amelyeket egy kicsit korábban tárgyaltunk.

A D/A-ból származó feszültség a [0V: +3.3V] tartományban van, így van egy op-amp alapú áramkör, amely a D/A tartományt [-3.3V: +3.3V] -ra képezi le, lehetővé téve az eszköz számára, hogy teljes tartományt biztosítson a kívánt egyenáramú komponenstől. Kihagyjuk a bosszantó analitikai matematikát, és csak a végeredményre koncentrálunk:

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

Most az egyenáramú komponensek tartománya a [-3.3V: +3.3V] tartományban található.

Összefoglaló áramkörök - egyenáramú komponensek és hullámforma kimenetek

Ezen a ponton minden megvan, amire szükségünk van a megfelelő eszközkimenethez - előfeszítési feszültség (egyenáramú komponens) a teljes feszültségtartományban, és multiplexelt AD9834 kimenetek. Ezt az összegző erősítő - op -amp konfiguráció - használatával tudjuk megvalósítani

Hagyjuk még egyszer a matematikát (sok matematikai megközelítést már leírtunk), és írjuk le az összegző erősítő kimenetének végeredményét:

V (eszközkimenet) = V (pozitív torzítás) - V (negatív torzítás) - V (multiplexelt kimenet) [V]

Ennélfogva:

V_OUT = ΔV_BIAS - V_AD9834 [V]

A BNC típusú kimeneti csatlakozók kiválasztó ellenállásokkal vannak összekötve (R54, R55; R56, R57). Ennek az az oka, hogy abban az esetben, ha a tervezés nem megfelelő, akkor is kiválaszthatjuk, hogy összefoglaló erősítőt szeretnénk -e használni.

Fontos megjegyzés: A végső összegző erősítők ellenálláshálózatát a tervező állíthatja be annak érdekében, hogy megváltoztassa az eszközről lekérhető maximális amplitúdót. Esetemben minden erősítő ugyanazt az erősítést = 1, így a maximális pufferelt amplitúdó 0,7Vpp háromszög/szinusz hullám esetén és 3,3Vpp négyzethullám esetén. A sajátos matematikai megközelítés megtalálható a Step csatolt képei között.

ESP32 külső modulként

Az MCU UART interfészen keresztül kommunikál az ESP32 -vel. Mivel saját NYÁK -ot akartam az ESP32 -hez, 4 csatlakozó áll rendelkezésre a csatlakoztatáshoz: VCC, RX, TX, GND. A J7 egy interfészcsatlakozó a NYÁK -ok között, és az ESP32 külső modulként kerül kiosztásra a készüléken belül.

Felhasználói felület - LCD és hangszóró

A használt LCD egy általános 20 x 4 karakteres kijelző, 4 bites interfésszel, Ahogy a kialakításból is látható, van egy SPI digitális potenciométer az "A" és "V0" LCD terminálokhoz - célja a beállítás az LCD modul fényereje és kontrasztja programozottan.

A hangszóró hangkimenetet biztosít a felhasználó számára az MCU egyszerű négyszöghullám -generálásával. A BJT T1 a hangszórón keresztül szabályozza az áramot, amely csak két állapotban lehet - BE / KI.

5. lépés: Hardvertervezés - ESP32 modul

Hardvertervezés - ESP32 modul
Hardvertervezés - ESP32 modul

Az ESP32 -t külső modulként használják a fő NYÁK -hoz. Az eszközkommunikáció AT parancsokon alapul, amelyek egy általános eszköz firmware -jén érhetők el.

Ezen a dizájnon nem sokat kell bővíteni, de van néhány megjegyzés a tervezéshez:

  • Az ESP32 megfelelő UART moduljának meghibásodásának kezelésére három kiválasztó ellenállást csatoltam mind a TX, mind az RX vonalakhoz. (0 ohm mindegyikhez). A szabványos konfigurációhoz az UART2 modult használják az AT parancsokhoz (R4, R7 forrasztani kell)
  • A készülék 4 soros kimenettel rendelkezik - VCC, GND, TX, RX.
  • Az IO0 és EN csapok értékelik az eszköz működését, és úgy kell megtervezni, ahogy az a rajzokban szerepel

A PCB összes funkcióját a következő lépésben tárgyaljuk.

6. lépés: NYÁK -elrendezés

NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés

A NYÁK tervezésének céljai

  1. Hozzon létre beágyazott rendszert az összes fedélzeti integrált áramkörhöz
  2. Javítsa az eszköz teljesítményét egyetlen fő NYÁK tervezésével
  3. Költségcsökkentés - ha meg szeretné nézni az árakat, az alacsony költségű tervek TÉNYLEG alacsony költségek
  4. Minimalizálja az elektronikus kártya méretét
  5. Könnyű hibaelhárítás - TP -ket (tesztpontokat) használhatunk minden lehetséges hibás vezetékhez.

Technikai paraméterek

Mindkét NYÁK: az alaplap és az ESP32 kártya ugyanazokkal a jellemzőkkel rendelkezik a gyártási folyamat során - alacsony költségű és használható a mi céljainkhoz. Lássuk őket:

A - Főtábla

  • Mérete: 10 cm x 5,8 cm
  • Rétegek száma: 2
  • NYÁK vastagság: 1,6 mm
  • Minimális nyomtér/szélesség: 6/6mil
  • Minimális átmenő furat átmérő: 0,3 mm
  • Réz a NYÁK széléig minimális távolság: 20mil
  • Felületkezelés: HASL (nagyon jó megjelenésű ezüst színű olcsó típus)

B - Főtábla

  • Mérete: 3 cm x 4 cm
  • Rétegek száma: 2
  • NYÁK vastagság: 1,6 mm
  • Minimális nyomtér/szélesség: 6/6mil
  • Minimális átmenő furat átmérő: 0,3 mm
  • Réz a NYÁK széléig minimális távolság: 20mil
  • Felületkezelés: HASL

7. lépés: 3D szekrény

3D ház
3D ház

Nem magam terveztem, mert akkoriban rávettem a készüléket a működésre, így egyáltalán nem voltam tisztában a 3D nyomtatás minden alapjával. Így a Thingiverse SCAD projektjét használtam, és különböző nyílásokat rögzítettem a határokhoz, az eszköz specifikációinak megfelelően.

  1. Nyomtatóeszköz: Creality Ender-3
  2. Ágy típusa: Üveg, 5 mm vastag
  3. Szál átmérője: 1,75 mm
  4. Szál típusa: PLA+
  5. Fúvóka átmérő: 0,4 mm
  6. Kezdeti sebesség: 20mm/sec
  7. Átlagos sebesség: 65mm/sec
  8. Támogatás: N/A
  9. Kitöltés: 25%
  10. Hőfok:

    • Ágy: 60 (oC)
    • Fúvóka: 215 (oC)
  11. Szál színe: fekete
  12. Teljes rekeszszám: 5
  13. Szekrénypanelek száma: 4

    • TOP Shell
    • Alsó héj
    • Előlap
    • Hátsó panel

8. lépés: Szoftver implementálása - MCU

Szoftver implementáció - MCU
Szoftver implementáció - MCU
Szoftver implementáció - MCU
Szoftver implementáció - MCU
Szoftver implementáció - MCU
Szoftver implementáció - MCU

GitHub Link az Androidhoz és az Atmega32 kódhoz

Szoftveres algoritmus

Az MCU által végrehajtott összes műveletet a mellékelt folyamatábrák írják le. Ezen kívül van egy csatolt kód a projekthez. Tekintsük a szoftver specifikációit:

Kapcsold be

Ebben a szakaszban az MCU elvégzi az összes inicializálási szekvenciát, valamint meghatározza a tárolt kommunikáció típusát Android -eszközzel: Közvetlen WiFi vagy WLAN hálózati kommunikáció - ezeket az adatokat az EEPROM tárolja. A felhasználó ebben a szakaszban újradefiniálhatja az Android -eszköz párosítási típusát.

Közvetlen Android -eszközpárosítás

Ez a típusú párosítás a FuncGen eszköz által létrehozott WiFi hálózaton alapul. Létrehoz AP -t (Access Point) és TCP -kiszolgálót a helyi eszköz IP -címén, meghatározott SSID -vel (WiFi -hálózat neve) és egy adott portszámmal. Az eszköznek tartania kell az állapotot - nyitva a kapcsolatok számára.

Amikor az Android -eszköz csatlakoztatva van a FuncGen -hez, az MCU ACTIVE módba lép, és az Android -eszköz felhasználói utasításai szerint reagál.

WLAN párosítás

A helyi WiFi hálózaton való kommunikációhoz az MCU -nak parancsokat kell biztosítania az ESP32 számára, hogy hozzáférési pontot hozzon létre, kommunikáljon az Android -eszközzel és cserélje ki a legfontosabb hálózati adatokat:

  • Az Android készülék megkapja a FuncGen -től a MAC -címét, és eltárolja a memóriában.
  • A FuncGen eszköz megkapja az Android készülék által kiválasztott WLAN paramétereket: SSID, biztonsági típus és jelszó, és tárolja az EEPROM -ban.

Ha az eszközök valóban ugyanahhoz a WLAN -hez vannak csatlakoztatva, az Android -eszköz megkeresi a FuncGen -t a WLAN -hoz csatlakoztatott eszközök összes MAC -címének beolvasásával. Amikor az Android -eszköz meghatározza a MAC -egyezést, megpróbál kommunikálni.

Csatlakozás és állapotkezelés - MCU

Amikor az eszközök kommunikálnak egymással, a protokoll (lásd az utolsó lépést) változatlan marad, és a folyamatábra ugyanaz.

Eszközállapot -felügyelet

Az időzített megszakítás biztosítja az MCU számára az állapotkezeléshez szükséges részleteket. Minden időzítő megszakítási ciklusban a következő paraméterek listája frissül:

  • Külső tápegység - Be/Ki
  • Az akkumulátor feszültség állapota
  • UI frissítés minden testreszabáshoz
  • Nyomógomb: Nyomva/Nincs megnyomva

9. lépés: Szoftver implementálása - Android -alkalmazás

Szoftver implementáció - Android App
Szoftver implementáció - Android App
Szoftver implementáció - Android App
Szoftver implementáció - Android App
Szoftver implementáció - Android App
Szoftver implementáció - Android App
Szoftver implementáció - Android App
Szoftver implementáció - Android App

Az Android alkalmazás Java-Android stílusban van írva. Megpróbálom megmagyarázni az előző lépésekhez hasonló módon - az algoritmus külön kódblokkra osztásával.

Bekapcsolási sorrend

A készülék első sorozata. Itt megjelenik az alkalmazás logója, valamint az Android -eszköz GPS- és WiFi -moduljainak engedélyezése (ne aggódjon, a GPS csak a megfelelő WiFi hálózatok vizsgálatához szükséges).

Főmenü

Az alkalmazás indítása után négy gomb jelenik meg a képernyőn. Gombok művelete:

  1. KÖZVETLEN CSATLAKOZTATÁS: A FuncGen AP -hez való csatlakozás inicializálása az IOT_FUNCGEN SSID azonosítójával. Ha a kapcsolat sikeres, az eszköz belép a fő felhasználói felület módba.
  2. WIFI CSATLAKOZTATÁS: Az eszköz ellenőrzi, hogy vannak -e tárolt adatparaméterek a memóriában: wifi.txt, mac.txt. Ha nincsenek tárolt adatok, az eszköz elutasítja a felhasználói kérelmet, és felugró üzenetet küld arról, hogy először a WLAN-párosítást kell elvégezni.
  3. PÁROSÍTÁS: A FuncGen -nel ugyanúgy kommunikál, mint a DIRECT CONNECTION, de a folyamatos üzenetváltás helyett egyetlen kézfogás történik. Az Android -eszköz ellenőrzi, hogy csatlakozik -e már a WiFi hálózathoz, és kéri a felhasználót, hogy írja be a jelszót. Ha az újracsatlakozás sikeres, az Android -eszköz tárolja az SSID -t és a jelszót a wifi.txt fájlban. A FuncGennel folytatott sikeres kommunikáció után a kapott MAC -címet a mac.txt fájlban tárolja.
  4. Kilépés: Elég volt:)

WiFi szkenneléskezelő

Azt akartam, hogy az alkalmazás teljesen működőképes legyen, és ne végezzenek alkalmazáson kívüli módosításokat. Tehát megterveztem a WiFi szkennert, amely elvégzi az összes szükséges műveletet ahhoz, hogy ismert jelszóval és SSID -vel csatlakozzon a WiFi hálózathoz.

Adatátvitel és TCP kommunikáció

Ez az alkalmazás fő kódblokkja. Valamennyi felhasználói felület egy meghatározott formátumú üzenetet tartalmaz (utolsó előtti lépés), amely arra kényszeríti a FuncGent, hogy a kívánt kimenetet biztosítsa a csatornákhoz. Háromféle felhasználói felület mező létezik a tevékenységben:

  1. Keresősávok: Itt definiáljuk a FuncGen kimeneti paraméterek valós tartományát

    1. Amplitúdó
    2. DC eltolás
    3. LCD fényerő
    4. LCD kontraszt
  2. Szövegszerkesztés: Annak érdekében, hogy az egész számok jól definiáltak és pontosak legyenek, a frekvenciabevitel csak számok szövegmezőin keresztül történik
  3. Gombok: Paraméterek kiválasztása a rendelkezésre álló listákból:

    1. Hullámforma
      1. Szinusz
      2. Háromszög
      3. DC
      4. Négyzet
      5. KI
    2. Szerezz információt

      1. Akkumulátor állapota (százalék)
      2. AC állapot (külső tápegység)
    3. Indítási opció (FuncGen MCU esetén)

      1. Gyári beállítás
      2. Újrakezd
      3. Leállitás
      4. Közvetlen - Újraindítás közvetlen párosítási móddal
      5. WLAN - Indítsa újra a WLAN párosítási móddal
    4. Kilépés a főmenübe: Elég mondta:)

10. lépés: Tesztelés

Ajánlott: