Mündəricat:
- Addım 1: Blok Şeması - Avadanlıq
- Addım 2: Blok Şeması - Şəbəkə qurmaq
- Addım 3: hissələr, alətlər, IDE və materiallar siyahısı
- Addım 4: Avadanlıq Dizaynı - Ana Kart
- Addım 5: Avadanlıq Dizaynı - ESP32 Modulu
- Addım 6: PCB Layout
- Addım 7: 3D Qoşma
- Addım 8: Proqram Tətbiqi - MCU
- Addım 9: Proqram Tətbiqi - Android Tətbiqi
- Addım 10: Test
Video: WiFi və Android -də Portativ Function Generator: 10 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
20 -ci əsrin sonlarına yaxın, xüsusən rabitə sahəsində müxtəlif texnoloji yeniliklər ortaya çıxdı; ancaq nəinki. Bizim üçün, istifadəçilər, istehlakçılar və mühəndislər, həyatımızı çox asanlaşdıran elektron cihazların sürətli inkişafına gəldilər: Ağıllı saatlar, ağıllı evlər, smartfonlar və s.
İndiki vaxtda hər şey "ağıllı" ola biləcəyi üçün, əsas elektron laboratoriya avadanlığının bir hissəsi olmaq üçün çox faydalı bir cihaz - WiFi birbaşa və ya WiFi Yerli Şəbəkə (WLAN) vasitəsilə Android OS əsaslı bir smartfon tərəfindən idarə olunan Portativ Function Generator dizayn etmək qərarına gəldim.).
Niyə bu cihazı qurmalıyıq?
Test cihazlarının böyük əksəriyyəti bu gün olduqca bahalıdır. Və bəzən bu cihazlar portativ olmur. Yüksək qiymətlər, daşınmazlığın olmaması və cihaz şəbəkəsinə girişin olmaması üçün bir cihaz, həqiqətən də portativ olan və şəbəkəyə məhdudiyyətsiz girişi olan iki kanallı dalğa forması generatoru təqdim edir - istər internet, istərsə də yerli.
Əlbəttə ki, cihaz DIY prinsiplərinə riayət etməklə həvəslə qurulmalıdır - Bəzən özümüzü düzgün hiss etmək üçün özümüz etməliyik:)
Əsas Xüsusiyyətlər
Enerji təchizatı
- USB Type-A konnektoru, həm enerji təchizatı sistemləri, həm də proqramlaşdırma üçün
- Tam Li -Ion batareya idarəetmə sistemi - Şarj və sabit rejimlər
- Smart Switch tətbiqi - güc dəyişdirmə açarına ehtiyac yoxdur
- İkiqat enerji təchizatı: +3.3V və -3.3V simmetrik gərginlik dalğa forması yaratmaq üçün
Dalğa Forması Nəsli
- Çıxış kaskadında DC səviyyəsinin tətbiqi - gərginlik sərhədləri arasında qərəzli dalğa forması
- DDS əsaslı 4 tip dalğa forması nəsli - Sinus, üçbucaq, kvadrat və DC
- 10 MHz -ə qədər tezlik dəstəyi
- 500mW maksimum güc mövcudluğu ilə 80mA -a qədər çıxış cərəyanı
- Dalğa forması yaratmaq üçün ayrılmış kanallar - bölünmüş AD9834 sxemləri
Ünsiyyət
- ESP32 - Tətbiq olunan WiFi imkanları
- Generator cihazı və Android smartfonu ilə tam TCP/IP dəstəyi
- İstənilən cihaz dövrü üçün istifadəçi parametrlərini saxlamaq imkanı
- Dövlət monitorinqi - hər iki sistem bir -birindən xəbərdardır: FuncGen (bundan sonra buna belə ad verək) və smartfon.
İstifadəçi interfeysi
- Sadə 4 bit məlumat interfeysi olan 20 x 4 Karakterli LCD
- Android tətbiqi - FuncGen cihazı üzərində tam istifadəçi nəzarəti
- Buzzer dövrəsi - istifadəçiyə səsli rəy
Addım 1: Blok Şeması - Avadanlıq
Mikro nəzarətçi vahidi - ATMEGA32L
Mikrokontroller, tək bir elektron çipdə olan bütün kompüter funksiyalarından ibarət proqramlaşdırıla bilən bir çipdir. Bizim vəziyyətimizdə, "beyin" və sistemin mərkəzi bir hissəsidir. MCU -nun məqsədi bütün periferik sistemləri idarə etmək, bu sistemlər arasındakı əlaqəni idarə etmək, aparatın işini idarə etmək və istifadəçi interfeysi və faktiki istifadəçi ilə qarşılıqlı əlaqəsi üçün tam dəstək verməkdir. Bu layihə 3.3V və 8MHz tezlikdə işləyə bilən ATMEGA32L MCU -ya əsaslanır.
Rabitə SoC - ESP32
Bu SoC (Çipdəki Sistem), FuncGen üçün tam ünsiyyət dəstəyi təmin edir - birbaşa, yerli və ya internet əlaqəsi daxil olmaqla WiFi imkanlarına giriş. Cihazın məqsədləri bunlardır:
- Android tətbiqi ilə FuncGen cihazı arasında məlumat ötürülməsi
- Nəzarət/məlumat mesajlarının idarə edilməsi
- Davamlı TCP/IP Müştəri-Server konfiqurasiyasına dəstək
Layihəmizdə SoC espressif ESP32 -dir, onu daha da genişləndirmək üçün çox populyardır:)
Li-Ion Batareya İdarəetmə Sistemi
Cihazımızı portativ bir cihaza çevirmək üçün cihazda dizayn edilmiş Li-Ion batareya şarj dövrəsi var. Dövrə, bir proqramlaşdırma müqavimətinin dəyərini tənzimləməklə idarə olunan şarj cərəyanı olan MC73831 IC -ə əsaslanır (Bu mövzunu Şematik addımında əhatə edəcəyik). Cihazın enerji təchizatı girişi USB Type-A bağlayıcıdır.
Ağıllı keçid dövrəsi
Ağıllı keçid cihazının güc idarəetmə dövrəsi, cihazın bağlanma ardıcıllığı üzərində tam proqram nəzarəti və cihaz batareyasının gərginliyinin kəsilməsi üçün xarici keçid açarına ehtiyac olmamasıdır. Bütün güc əməliyyatları düyməyə və MCU proqramına basaraq aparılır. Bəzi hallarda sistemi bağlamaq lazım gələ bilər: aşağı batareya gərginliyi, yüksək giriş gərginliyi, əlaqə xətası və s. Ağıllı keçid, STM6601 ağıllı keçid IC -ə əsaslanır, ucuz və ətrafında oynamaq çox dostdur.
Əsas enerji təchizatı bölməsi
Bu qurğu iki batareyadan idarə olunan enerji təchizatı sxemlərindən ibarətdir -bütün rəqəmsal / analoq təchizat dövrələri üçün +3.3V və 0V potensialına nisbətən FunGen simmetrik çıxışı üçün -3.3V (yəni yaranan dalğa forması [-3.3V: 3.3V] bölgəsi.
- Əsas təchizat dövrəsi LP3875-3.3 LDO (aşağı düşmə) 1A xətti gərginlik tənzimləyicisinə əsaslanır.
- İkincil təchizat dövrəsi, IC-nin əsaslandığı kondansatör-doldurma nasosu vasitəsilə DC-DC mənfi gərginlik çevrilməsini həyata keçirən LM2262MX IC-ə əsaslanır.
Dalğa forması generatorları sistemi
Sistem ayrı bir DDS (birbaşa rəqəmsal sintez) inteqral sxemlərinə diqqət yetirməklə hazırlanmışdır ki, bu da MCU -nun SPI (serial periferik interfeysi) tərəfindən tam dalğa forması yaratmağa imkan verir. Dizaynda istifadə olunan sxemlər, müxtəlif növ dalğa formaları təmin edə bilən AD9834 Analog Cihazlardır. AD9834 ilə işləyərkən qarşılaşmalı olduğumuz çətinliklər:
- Sabit dalğa amplitudası: Dalğa formasının amplitudu xarici DAC modulu ilə idarə olunur
- Ofset DC səviyyəsinə əhəmiyyət verilmir: İstənilən DC ofset dəyərləri ilə toplama sxemlərinin tətbiqi
- Kvadrat dalğa və üçbucaq/sinüs dalğası üçün ayrı -ayrı çıxışlar: Yüksək tezlikli keçid dövrəsinin tətbiqi, beləliklə hər bir kanalın tək çıxışı istənilən dalğa formasını təmin edə bilər: sinus, üçbucaq, kvadrat və DC.
Maye Kristal Ekran
LCD, istifadəçi interfeysinin (istifadəçi interfeysi) bir hissəsidir və məqsədi istifadəçiyə cihazın real vaxt rejimində nə etdiyini anlamasını təmin etməkdir. İstənilən cihaz vəziyyətində istifadəçi ilə əlaqə qurur.
Buzzer
Cihazdan istifadəçiyə əlavə rəy üçün sadə ton generatoru dövrəsi.
İnteqrasiya edilmiş ISP Proqramçısı
Proqramlaşdırma prosesinə gəldikdə, hər bir mühəndis üçün davamlı bir problem var: Məhsulu yeni bir proqram təminatı ilə yenidən proqramlaşdırmaq üçün onu sökməyə həmişə ehtiyac var. Bu narahatlığı aradan qaldırmaq üçün AVR İSS proqramçısı cihaza içəridən bağlanmışdı, halbuki USB məlumatları və elektrik xətləri cihazın USB Type-A konnektoruna bağlanmışdır. Bu konfiqurasiyada, sadəcə proqramlaşdırma və ya şarj etmək üçün FuncGen -i USB kabel vasitəsilə bağlamalıyıq!
Addım 2: Blok Şeması - Şəbəkə qurmaq
İkiqat kanallı funksiya generatoru
Əsas cihaz. Əvvəlki addımda nəzərdən keçirdiyimiz
ESP-WOM-32
WiFi və BLE imkanları ilə inteqrasiya edilmiş sistem çipi. SoC, UART modulu vasitəsi ilə ana lövhəyə əlavə olunur (bunu sxematik şəkildə izah edəcəyik) və əsas cihazla Android smartfonu arasında mesaj ötürücü rolunu oynayır.
WiFi Yerli Şəbəkə
Smartfon və cihaz, TCP server/müştəri konfiqurasiyasına əsaslanaraq WiFi birbaşa və ya lokal şəbəkə vasitəsi ilə əlaqə quracaq. Cihazlar WiFi -də bir -birini tanıdıqda, əsas cihaz uyğun parametrlərə malik TCP serveri yaradır və mesaj göndərə/qəbul edə bilir. Cihaz smartfon üçün ikincil rol oynayır. Digər tərəfdən, Android cihazı, müştəri şəbəkə cihazı olaraq TCP serverinə bağlanır, lakin əsas mesaj ötürücü hesab olunur - tam ünsiyyət dövrünü başlatan smartfon: Mesaj göndərmək - cavab almaq.
Android smartfonu
FuncGen tətbiqi ilə işləyən Android OS əsaslı bir smartfon cihazı
Addım 3: hissələr, alətlər, IDE və materiallar siyahısı
Materiallar (Əlavə edilmiş XLS cədvəlinə baxın)
UI və Sistem Əlaqələri
- 1 x 2004A Char-LCD 20x4 Mavi
- 1 x USB Tip B Konnektoru
- 1 x 10 Set Mini Micro JST XH 2.54mm 4 Pin
- 1 x 6 ədəd Ani SW
PCB sifarişi (Seeed Studioya görə)
Əsas material FR-4
Layer sayı 2 qat
PCB miqdarı 10
Fərqli Dizaynların sayı 1
PCB qalınlığı 1.6 mm
PCB Rəngi Mavi
Səthi Finiş HASL
Minimum Lehim Maska Barajı 0.4mm ↑
Mis Çəkisi 1 oz
Minimum Delik Ölçüsü 0.3mm
İz Genişliyi / Aralıq 6/6 mil
Plitələr Yarım deşiklər / Castellated Deliklər No
Empedansa Nəzarət No.
Alətlər
- İsti yapışqan silahı
- Cımbız
- Kəsici
- ~ 22AWG teli, nasazlığı aradan qaldırmaq üçün
- Lehimləmə dəmir/stansiya
- Lehimləmə qalay
- SMD yenidən işləmə stansiyası (isteğe bağlı)
- 3D printer (İsteğe bağlı)
- Fayl çıxarılır
- AVR ISP Proqramçısı
- USB -dən Serial Dönüştürücü (İsteğe bağlı, ayıklama məqsədləri üçün)
İnteqrasiya edilmiş İnkişaf Mühiti (IDE) və Proqram təminatı
- Autodesk EAGLE və ya Cadence Şematik Redaktoru / Allegro PCB Redaktoru
- OpenSCAD (İsteğe bağlı)
- Ultimaker Cura (İsteğe bağlı)
- Saleae Məntiqi (problemlərin həlli üçün)
- Atmel Studio 6.3 və ya daha yuxarı
- Android Studio və ya Eclipse IDE
- Docklight Serial Monitor / Digər COM port monitorinq proqramı
- AVR ATMEGA32L flash proqramlaşdırma üçün ProgISP
Addım 4: Avadanlıq Dizaynı - Ana Kart
Batareya İdarəetmə Dövrü
Batareya şarj dövrəsi, Li -Ion batareyası üçün 850mAh tutumlu 3.7V şarj istədiyiniz şarj cərəyanını seçməyə imkan verən MCP7383 IC -ə əsaslanır. Şarj cərəyanı, vəziyyətimizdə müqavimət müqavimətinin dəyəri (R1) tərəfindən təyin edilir
R1 = 3KOhm, I (şarj) = 400mA
USB gərginliyi VBUS filter filtrlə (C1, L3, C3) süzülür və şarj dövrəsi üçün enerji mənbəyi rolunu oynayır.
Gərginlik bölücü dövrə (R2, R3) MCU A/D kanalına aşağıdakı gərginliyi təmin etməklə MCU -ya xarici USB enerji təchizatının bağlı olub olmadığını göstərməyə imkan verir:
V (göstəriş) ~ (2/3) V (BUS)
ATMEGA32L A/D 12 bit olduğundan, rəqəmsal aralığı hesablaya bilərik:
A / D (diapazon) = 4095V (göstərici) / V (REF).
A/D ∈ [14AH: FFFH]
Smart Switch Güc Bölməsi
Dövrə, sistemə həm MCU üzərindəki düymələrdən, həm də proqramlardan hər bir blokun enerji təchizatını idarə etməyə imkan verir və RESET yerinə POWER seçimi olan STM6601 Smart-Switch-ə əsaslanır. Düşünmək istədiyimiz terminallar bunlardır:
- PSHOLD - Cihazın vəziyyətini təyin edən giriş xətti: LOW aşağı çəkilərsə, cihaz bütün ikincil enerji təchizatı bloklarını (+3.3V və -3.3V) söndürür. YÜKSƏK saxlanılırsa - cihaz ON vəziyyətini saxlayır.
- nSR və nPB - Giriş xətləri. Düymə terminalları. Bu pinlərdə düşən kənar aşkar edildikdə, cihaz güc açma / söndürmə rejiminə keçməyə çalışır
- nINT - Çıxış xətti. Düymə hər dəfə basıldıqda LOW aşağı çəkilir
- EN - Çıxış xətti, ikincil enerji təchizatı vahidləri üçün güc təminatı olaraq istifadə olunur. LOW tutulduqda, hər iki ikincil enerji təchizatı deaktiv edilir
Son dizayna keçməzdən əvvəl bəzi vacib qeydlər var:
- PSHOLD 3.3V-ə qədər çəkilməlidir, çünki MCU-ların bütün G/Ç-ləri HIGH-Z vəziyyətində olmağa məcbur etdiyi hallar var. Bu vəziyyətdə, MCU -dan PSHOLD vəziyyəti bilinmir və cihazın proqramlaşdırma prosesini kəskin şəkildə təsir edə bilər.
- STM6601, RESET seçimi əvəzinə uzun basdıqda bir EN tənzimləmə seçimi ilə sifariş edilməlidir (mən buna düşmüşəm).
Enerji təchizatı vahidi: +3.3V
Layihəmizdəki bütün sistemlər üçün əsas enerji təchizatı. +3.3V xətti GND səviyyəsində tutulduqda (yəni gərginlik yoxdur), ağıllı keçid istisna olmaqla bütün IC -lər deaktiv edilir. Dövrə, LDO LP-3875-3.3 IC-ə əsaslanır, EN terminalı vasitəsilə idarə oluna bilər və 1A-a qədər cərəyan verir.
Bu dövrə üçün enerji mənbəyi, VBUS algılama sxeminə bənzər konfiqurasiyada VBAT -ı hiss etmək üçün əlavə edilmiş A/D göstəricisi olan batareya gərginliyidir. Bu vəziyyətdə hesablamalar bir qədər fərqlidir;
V (Batareyadan A/D-ə) = 0.59V (Batareya); A/D (diapazon) ∈ [000H: C03H]
Enerji təchizatı vahidi: -3.3V
Mənfi gərginlik təchizatı dövrəsi, DC faktoru 0V olan simmetrik dalğa formaları yaratmağa imkan verir (yəni dalğa formasının orta dəyəri 0V ola bilər). Bu dövrə "şarj nasosu" üsulu ilə işləyən LM2662MX IC - DC/DC çeviricisinə əsaslanır. Dövrənin maksimum çıxış cərəyanı dizayn tələblərimiz üçün kifayət edən 200mA -dır - hər cihazın kanalından 80mA çıxış cərəyanı ilə məhdudlaşırıq.
IC bütün lazımi işləri yerinə yetirir, buna görə bağlamağımız lazım olan yalnız iki hissə elektrolitik kondansatördür: keçid üçün C33 və -3.3V xətti baypası üçün C34 (səs -küyün azaldılması mülahizələri). Dövrəni dalğa forması istehsal hissələrindən kifayət qədər uzaqda yerləşdirsək keçid tezliyi dizaynda əhəmiyyətsizdir (PCB Layout addımında müzakirə edəcəyik).
Mikrokontrolör vahidi - MCU
Bu, sistemimizin idarəçisi və baş direktorudur - nəzarət, şəbəkə işlənməsi, mesaj ötürülməsi və UI dəstəyi - hər şey MCU tərəfindəndir.
Seçilmiş MCU, Atmel ATMEGA32L -dir, burada L voltage [2.7V: 5.5V] gərginlik əməliyyatını ifadə edir. Bizim vəziyyətimizdə işləmə gərginliyi +3.3V -dir.
Dizaynımızda MCU ilə işləyərkən başa düşmək lazım olan əsas əməliyyat bloklarını nəzərdən keçirək:
- Xarici Osilatör - İsteğe bağlı bir komponentdir, çünki 8MHz iş tezliyi ilə maraqlanırıq
-
Periferik Nəzarət, SPI Şəbəkəsi - Bütün ətraf qurğular (ESP32 istisna olmaqla) SPI vasitəsilə MCU ilə əlaqə qurur. Bütün cihazlar (SCK, MOSI, MISO) üçün üç paylaşılan xətt var və hər bir periferik dövrənin xüsusi CS (Chip Select) xətti var. Cihazın bir hissəsi olan SPI cihazları:
- Amplituda nəzarət üçün D/A - Kanal A
- Amplituda nəzarət üçün D/A - Kanal B
- AD9834 cihazı - Kanal A
- AD9834 cihazı - Kanal B
- Yanlış gərginlik nəzarəti üçün D/A - Kanal A
- Yanlış gərginlik nəzarəti üçün D/A - Kanal B
- LCD parlaqlıq/kontrast parametrləri üçün rəqəmsal potensiometr
- LCD Dəstəyi - LCD ümumi 20 x 4 xarakterli bir ekran olduğundan 4 bitlik interfeysdən (D7 xətləri: D4), idarəetmə pinlərindən (RS, E xətləri) və parlaqlıq/kontrast nəzarətindən (V0 və Anod xətləri) istifadə edirik.
- RGB LED dəstəyi - Bu modul isteğe bağlıdır, lakin MCU -ya qoşulmuş müvafiq müqavimətlərə malik ümumi katotlu RGB LED konnektoru var.
-
Güc Nəzarəti - MCU, real vaxt rejimində enerji sistemi monitorinqini həyata keçirir və bütün lazım olan güc hadisələrini idarə edir:
- VBAT_ADC - Batareya gərginliyinin monitorinqi və vəziyyətinin təyin edilməsi (ADC0 kanalı)
- PWR_IND - Xarici enerji təchizatı bağlantısının göstəricisi (ADC1 Kanalı)
- PS_HOLD - Bütün təyin edilmiş sistemlər üçün əsas güc imkan xətti. MCU tərəfindən aşağı çəkildikdə cihaz söndürülür
- Ağıllı keçidin kəsmə terminalı - Düymə vəziyyətinin monitorinqi
- WiFi Şəbəkə İdarəçiliyi - ESP32: MCU, UART interfeysi vasitəsi ilə ESP32 ilə əlaqə qurur. 8MHz, nisbətən kiçik bir səhvlə 115200 baud sürətini tətbiq etməyimizə imkan verdiyindən, baud dərəcəsi dəyişikliklərinin əvvəlcədən təyin edilmədən dövrədə ESP32 istifadə edə bilərik.
AVR ISP Proqramçısı
MCU, SPI vasitəsilə proqramlaşdırılır və sıfırlama xətti (/RST) düzgün işləməsi üçün YÜKSƏ çəkilməlidir (əgər belə deyilsə - MCU özünü sıfırlama vəziyyətində əbədi olaraq tapacaq).
Cihazın həm USB vasitəsilə proqramlaşdırılmasına, həm də yüklənməsinə icazə vermək üçün AVR ISP proqramçısını (eBay-dan alınan kiçik ölçülü məhsul) əlavə etdim. Cihazın tam USB dəstəyini təmin etmək üçün USB Type-A (D+, D-, VBUS və GND) terminallarını AVR ISP cihazı ilə bağlamaq lazımdır.
Dalğa Forması Nəsil Devresi
Cihazın əsasını bu sxemlər təşkil edir. AD9834, sistemdən əldə etmək istədiyimiz bütün dalğa formalarını təmin edən aşağı güclü DDS cihazıdır. Dövrlərdə ayrılmış xarici 50MHz osilatörlü iki müstəqil AD9834 IC var (sxemlərdə göründüyü kimi). Ayrılan osilatörün səbəbi rəqəmsal dövrələrin səs -küyün azaldılmasıdır, buna görə qərar, AD9834 -ə bitişik osilatorlarla uyğun 50MHz xətləri idarə etmək idi.
İndi bir az riyaziyyata baxaq:
DDS cihazı, 28 bitlik bir reyestrdə tutulan çıxış dəyəri ilə Faz Təkər texnologiyasında işlədiyi üçün dalğa forması nəslini riyazi olaraq təsvir edə bilərik:
dP (faza) = ωdt; ω = P '= 2πf; f (AD9834) = ΔP * f (clk) / 2^28; ΔP ∈ [0: 2^28-1]
Və AD9834 məlumat cədvəlinə əsasən, maksimum tezliyi nəzərə alaraq çıxış tezliyi qətnaməsi əldə edilə bilər:
Δf = k * f (osilatör) / f (maksimum) = 0.28 * 50M / 28M = 0.187 [Hz]
AD9834 IC -ləri üçbucaq/sinus dalğası (IOUT terminalı) üçün analog cərəyan çıxışı və kvadrat dalğa üçün rəqəmsal çıxış (SIGN_OUT terminal) təmin edir. İşarə bitinin istifadəsi bir az çətindir, amma biz onu idarə edə bilirik - DDS hər dəfə müqayisə dəyərinin həddini keçəndə SIGN_OUT buna uyğun davranır. Hər bir kanalın çıxışına 200 Ohm rezistor əlavə olunur, buna görə çıxış gərginliyi mənalı dəyərlərə malik olacaq:
I (tək kanal) = V (çıxış) / R (gərginlik seçimi); V (çıxış) = R (VS)*I (SS) = 200I (SS) [A]
Genlik Nəzarəti (D/A) sxemləri
AD9834 məlumat cədvəlinə görə, amplitudası DDS tam miqyaslı sistemə cərəyan verməklə tənzimlənə bilər, buna görə ikili D/A IC -nin köməyi ilə bu cərəyanı tənzimləyərək çıxış siqnalının amplitüdünü idarə edə bilərik. Yenə də bir az riyaziyyat:
I (tam miqyaslı) = 18 * (V_REF - V_DAC) / R_SET [A]
Sxemlərə görə və bəzi ədədləri tənliyə qoyaraq:
I (tam miqyaslı) = 3.86 - 1.17 * V_DAC [A]
Dizaynda istifadə olunan D/A modulu 12-bit MCP4922-dir, cərəyan [0mA: 3.86mA] aralığında olduqda və xətti amplituda funksiyası:
V (amplituda seçimi) = 1 - [V (D / A) / (2^12-1)]
Dalğa Forması Çoxlayıcı Dövrə
Kvadrat dalğa və sinus/üçbucaq dalğa nəsil çıxışları AD9834 -də ayrılır, buna görə də bütün ayrılmış kanallardan istənilən dalğa formalarının alınmasını təmin etmək üçün hər iki çıxış üçün yüksək sürətli multipleksləşdirmə sxemindən istifadə etməliyik. Multiplexer IC, çox aşağı müqavimət (~ 0.5Ohm) olan bir ADG836L analoq açarıdır.
MCU -nun çıxışlar üçün istifadə etdiyi seçim cədvəli:
Rejim Seçimi [D2: D1] | Çıxış Kanalı A | Çıxış kanalı B.
00 | Sinus/Üçbucaq | Sinus/Üçbucaq 01 | Sinus/Üçbucaq | Meydan 10 | Meydan | Sinus/Üçbucaq 11 | Meydan | Meydan
Yanlış Gərginlik İdarəetmə (D/A) sxemləri
Dalğa forması generatorunun əsas xüsusiyyətlərindən biri DC dəyərini idarə etməkdir. Bu dizaynda hər bir kanal üçün istədiyiniz D/A gərginliyi təyin edilərək edilir və bu qərəzli gərginliklər bir az əvvəl müzakirə etdiyimiz çoxsaylı çıxışlarla yekunlaşdırılır.
D/A-dan alınan gərginlik [0V: +3.3V] aralığındadır, buna görə cihazın tam diapazonunu təmin etməsinə imkan verən D/A aralığını [-3.3V: +3.3V] ilə xəritələndirən op-amp əsaslı bir dövrə var. istədiyiniz DC komponenti. Zəhlətökən analitik riyazi atlayacağıq və yalnız son nəticələrə diqqət yetirəcəyik:
V_OUT (kanal B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (kanal A) = V_BIAS_A (+) - V_BIAS_A (-)
İndi DC komponentləri [-3.3V: +3.3V] aralığında yerləşir.
Toplama sxemləri - DC komponentləri və dalğa formalı çıxışlar
Bu nöqtədə, cihazın düzgün çıxışı üçün lazım olan hər şeyə sahibik - tam gərginlik aralığında Bias Voltajı (DC komponenti) və çoxqatlı AD9834 çıxışları. Bunu toplayıcı gücləndirici - op -amp konfiqurasiyasından istifadə edərək həyata keçirəcəyik
Bir daha riyaziyyatı atlayaq (artıq bir çox riyazi yanaşmanı əhatə etmişik) və yekun gücləndiricinin çıxışının son nəticəsini yazaq:
V (cihaz çıxışı) = V (müsbət qərəz) - V (mənfi qərəz) - V (çoxqatlı çıxış) [V]
Beləliklə:
V_OUT = ΔV_BIAS - V_AD9834 [V]
BNC tipli çıxış konnektorları bir seçim rezistoru ilə bağlanır (R54, R55; R56, R57). Bunun səbəbi, dizaynın işləməməsi halında, yenə də toplama gücləndiricisindən istifadə etmək istədiyimizi seçə bilərik.
Mühüm Qeyd: Son toplama gücləndiricilərinin rezistor şəbəkələri, cihazdan əldə edilə bilən maksimum amplitudu dəyişdirmək üçün dizayner tərəfindən tənzimlənə bilər. Mənim vəziyyətimdə, bütün amperlər eyni qazancı bölüşürlər = 1, beləliklə maksimum tamponlanmış amplitüd üçbucaq/sinus dalğa üçün 0.7Vpp və kvadrat dalğa üçün 3.3Vpp təşkil edir. Xüsusi riyazi yanaşma addımın əlavə edilmiş şəkilləri arasında tapıla bilər.
Xarici modul olaraq ESP32
MCU, ESP32 ilə UART interfeysi vasitəsilə əlaqə qurur. ESP32 üçün öz PCB istədiyim üçün qoşulmaq üçün 4 terminal var: VCC, RX, TX, GND. J7, PCB -lər arasında bir interfeys bağlayıcısıdır və ESP32 cihazın içərisində xarici modul olaraq ayrılacaq.
İstifadəçi interfeysi - LCD və Dinamik
İstifadə olunan LCD, 4 bitlik interfeysi olan ümumi 20 x 4 xarakterli bir ekrandır, dizayndan da göründüyü kimi "A" və "V0" LCD terminallarına qoşulmuş bir SPI rəqəmsal potensiometr var - məqsədi tənzimləməkdir. LCD modulunun parlaqlığı və kontrastı proqram olaraq.
Dinamik, MCU -dan sadə kvadrat dalğa istehsalı ilə istifadəçi üçün səs çıxışı təmin edir. BJT T1, cərəyanı yalnız iki vəziyyətdə ola bilən dinamikdən idarə edir - ON / OFF.
Addım 5: Avadanlıq Dizaynı - ESP32 Modulu
ESP32 əsas PCB üçün xarici modul kimi istifadə olunur. Cihaz ünsiyyəti, ümumi bir cihazın proqram təminatında olan AT əmrlərinə əsaslanır.
Bu dizaynı genişləndirmək üçün çox şey yoxdur, ancaq dizayn üçün bəzi qeydlər var:
- ESP32 -nin düzgün UART modulundan istifadə edilməməsi üçün həm TX, həm də RX xətləri üçün üç seçim rezistoru əlavə etdim. (Hər biri üçün 0 Ohm). Standart konfiqurasiya üçün AT əmrləri üçün UART2 modulu istifadə olunur (R4, R7 lehimli olmalıdır)
- Cihazın 4 xəttli çıxışı var - VCC, GND, TX, RX.
- IO0 və EN pinləri cihazın işini qiymətləndirir və sxemlərdə göstərildiyi kimi dizayn edilməlidir
Aşağıdakı addımda əhatə edəcəyimiz bütün PCB xüsusiyyətləri.
Addım 6: PCB Layout
Bir PCB dizaynının məqsədləri
- Eyni lövhədə bütün inteqral sxemlər üçün quraşdırılmış sistem yaradın
- Bir əsas PCB dizayn edərək cihaz performansını artırın
- Xərclərin azaldılması - qiymətlərə baxmaq istəyirsinizsə, aşağı qiymətli dizaynlar Həqiqətən aşağı qiymətdir
- Elektron lövhənin ölçüsünü minimuma endirin
- Problemi həll etmək asandır - Hər bir nasazlıq xətti üçün TP -lərdən (Test nöqtələri) istifadə edə bilərik.
Texniki parametrlər
Hər iki PCB: əsas və ESP32 lövhəsi istehsal prosesi üçün eyni xüsusiyyətlərə malikdir - aşağı qiymət və məqsədlərimiz üçün işləkdir. Onları görək:
A - Əsas lövhə
- Ölçü: 10 sm x 5.8 sm
- Qatların sayı: 2
- PCB qalınlığı: 1.6 mm
- Minimum iz sahəsi/eni: 6/6 mil
- Minimum çuxur diametri: 0.3 mm
- PCB minimum məsafənin kənarına qədər olan mis: 20 mil
- Səthi bitirmə: HASL (olduqca yaxşı görünən gümüş rəng ucuz tip)
B - Ana lövhə
- Ölçü: 3 x 4 sm
- Qatların sayı: 2
- PCB qalınlığı: 1.6 mm
- Minimum iz sahəsi/eni: 6/6 mil
- Minimum çuxur diametri: 0.3 mm
- PCB minimum məsafənin kənarına qədər olan mis: 20 mil
- Səth işlənməsi: HASL
Addım 7: 3D Qoşma
Mən bunu özüm tərtib etməmişəm, çünki o vaxt bu cihazı işləməyə inandırırdım, buna görə də 3D çapın bütün əsaslarından heç xəbərim yox idi. Beləliklə, Thingiverse -dən bir SCAD layihəsi istifadə etdim və cihazımın spesifikasiyalarına uyğun olaraq sərhədlərə fərqli deşiklər bağladım.
- Çap Cihazı: Creality Ender-3
- Yataq Tipi: Şüşə, qalınlığı 5 mm
- Filament diametri: 1.75 mm
- Filament növü: PLA+
- Burun diametri: 0.4 mm
- İlkin Sürət: 20 mm/san
- Orta sürət: 65 mm/san
- Dəstək: Yox
- Doldurma: 25%
-
Temperatur:
- Yataq: 60 (oC)
- Burun: 215 (oC)
- Filament Rəngi: Qara
- Diyaframların ümumi sayı: 5
-
Qapı Panellərinin sayı: 4
- TOP Shell
- Alt Qabıq
- Ön Panel
- Arxa Panel
Addım 8: Proqram Tətbiqi - MCU
Android və Atmega32 Koduna GitHub Bağlantısı
Proqram Alqoritmi
MCU tərəfindən həyata keçirilən bütün əməliyyatlar əlavə edilmiş sxemlərdə təsvir edilmişdir. Bundan əlavə, layihə üçün əlavə edilmiş bir kod var. Proqram xüsusiyyətlərini nəzərdən keçirək:
Gücləndirmə
Bu mərhələdə, MCU, Android cihazı ilə saxlanan ünsiyyət növünün təyin edilməsi ilə birlikdə bütün başlanğıc ardıcıllığını yerinə yetirir: Birbaşa WiFi və ya WLAN şəbəkə əlaqəsi - bu məlumatlar EEPROM -da saxlanılır. İstifadəçi bu mərhələdə Android cihaz eşleme tipini yenidən təyin edə bilər.
Birbaşa Android Cihaz Cütləşməsi
Bu tip cütləşmə, FuncGen cihazı tərəfindən WiFi şəbəkəsinin yaradılmasına əsaslanır. Xüsusi bir SSID (WiFi şəbəkə adı) və müəyyən bir port nömrəsi olan yerli bir cihaz IP -də AP (Giriş nöqtəsi) və TCP serveri yaradacaq. Cihaz vəziyyəti saxlamalıdır - əlaqələr üçün açıqdır.
Android cihazı FuncGen -ə qoşulduqda, MCU ACTIVE rejiminə daxil olur və Android cihazından istifadəçi təlimatlarına uyğun olaraq cavab verir.
WLAN cütləşməsi
Yerli bir WiFi şəbəkəsində ünsiyyət qurmaq üçün MCU, ESP32 üçün AP yaratmaq, Android cihazı ilə əlaqə qurmaq və vacib şəbəkə məlumatlarını mübadilə etmək üçün əmrlər verməlidir:
- Android cihazı FuncGen -dən MAC ünvanını alır, yaddaşda saxlayır.
- FuncGen cihazı, Android cihazından seçilmiş WLAN parametrlərini alır: SSID, təhlükəsizlik növü və Şifrə və EEPROM -da saxlayır.
Cihazlar həqiqətən eyni WLAN -a qoşulduqda, Android cihazı WLAN -a qoşulmuş cihazların bütün MAC ünvanlarını skan edərək FuncGen -i axtaracaq. Android cihazı MAC uyğunluğunu təyin edərkən ünsiyyət qurmağa çalışır.
Bağlantı və Dövlət İdarəçiliyi - MCU
Cihazlar bir-biri ilə ünsiyyət quranda protokol (Baxın final mərhələsinə) eyni qalır və axın qrafiki eynidir.
Cihaz vəziyyəti monitorinqi
Zamanlı kəsmə, MCU -ya vəziyyətin idarə edilməsi üçün lazımi detalları təqdim edir. Taymerin kəsilməsinin hər dövrü, aşağıdakı parametrlərin siyahısı yenilənir:
- Xarici enerji təchizatı - On/Off
- Batareya gərginliyinin vəziyyəti
- Hər bir fərdiləşdirmə üçün UI yeniləməsi
- Düymə: Basıldı/Basılmadı
Addım 9: Proqram Tətbiqi - Android Tətbiqi
Android tətbiqi Java-Android üslubunda yazılmışdır. Alqoritmi ayrı kod bloklarına bölməklə əvvəlki addımlarla eyni şəkildə izah etməyə çalışacağam.
Güc Artırma Sırası
Cihazın ilk ardıcıllığı. Burada Android cihazının GPS və WiFi modullarını işə salmaqla birlikdə tətbiq loqotipi təqdim olunur (narahat olmayın, GPS yalnız WiFi şəbəkələrinin düzgün taranması üçün lazımdır).
Əsas menyu
Tətbiq açıldıqdan sonra ekranda dörd düymə görünəcək. Düymələrin hərəkəti:
- DOĞRU BAĞLANTI: IOT_FUNCGEN -in SSID -si ilə FuncGen -in AP -yə qoşulması başlanır. Bağlantı uğurlu olarsa, cihaz əsas UI rejiminə daxil olur.
- WIFI BAĞLANTISI: Cihaz yaddaşda saxlanılan məlumat parametrlərinin olub olmadığını yoxlayır: wifi.txt, mac.txt. Saxlanılan heç bir məlumat yoxdursa, cihaz istifadəçi istəyini rədd edəcək və əvvəlcə WLAN eşleşmesinin edilməli olduğu bir pop-up mesajı verəcəkdir.
- PARING: FuncGen ilə DIRECT CONNECTION ilə eyni şəkildə ünsiyyət qurmaq, ancaq davamlı mesaj mübadiləsi əvəzinə tək bir əl sıxışma var. Android cihazı artıq WiFi şəbəkəsinə qoşulduğunu yoxlayır və istifadəçidən parol daxil etməsini tələb edir. Yenidən bağlanma uğurlu olarsa, Android cihazı SSID və şifrəni wifi.txt faylında saxlayır. FuncGen ilə uğurlu ünsiyyətdən sonra alınan MAC ünvanını mac.txt faylında saxlayır.
- Çıx: kifayət qədər dedi:)
WiFi Tarama Meneceri
Tətbiqin tam işlək olmasını və tətbiqdənkənar düzəlişlər edilməməsini istədim. Beləliklə, məlum bir parol və SSID ilə WiFi şəbəkəsinə qoşulmaq üçün lazım olan bütün əməliyyatları yerinə yetirən WiFi Skanerini hazırladım.
Məlumat ötürülməsi və TCP Rabitəsi
Bu tətbiqdəki əsas kod blokudur. Bütün UI vahidləri üçün FuncGen-i kanallar üçün istədiyiniz çıxışı təmin etməyə məcbur edən müəyyən bir formatda müəyyən edilmiş bir mesaj var (Final mərhələsi). Fəaliyyətdə üç növ UI sahəsi var:
-
Barları Arayın: Burada FuncGen çıxış parametrlərinin real aralığını təyin edirik
- Amplituda
- DC Ofset
- LCD Parlaqlığı
- LCD Kontrast
- Mətn Düzəlişi: Tam ədədləri yaxşı təyin etmək və dəqiq saxlamaq üçün tezlik girişi yalnız nömrələr vasitəsilə aparılır
-
Düymələr: Mövcud siyahılardan parametrlərin seçilməsi:
-
Dalğa forması növü
- Sinus
- Üçbucaq
- DC
- Meydan
- QAPALI
-
Məlumat əldə etmək
- Batareya Vəziyyəti (Yüzdə)
- AC Vəziyyəti (Xarici Güc Təchizatı)
-
Önyükləmə Seçimi (FuncGen MCU üçün)
- Zavod Ayarı
- Yenidən başlamaq
- Söndür
- Birbaşa - birbaşa qoşma rejimi ilə yenidən başladın
- WLAN - WLAN qoşma rejimi ilə yenidən başladın
- Əsas Menyudan Çıx: Yetər Dedim:)
-
Addım 10: Test
Tövsiyə:
"Professional ILC8038 Function Generator DIY Kit" ilə tanış olmaq: 5 addım
"Professional ILC8038 Fonksiyon Generator DIY Kiti" ilə tanış olmaq: Sevimli kiçik bir funksiya generator dəsti ilə qarşılaşdığımda bəzi yeni elektronika layihələrinə hazırlaşırdım. "Professional ILC8038 Function Generator Sine Triangle Square Wave DIY Kit" olaraq təqdim olunur və bir çox satıcıdan əldə edilə bilər
Portativ Bluetooth + Wifi Dinamik: 5 addım
Portativ Bluetooth + Wifi Dinamik: Salam! Virusun yayılması səbəbiylə çölə çıxa bilmədiyim üçün evdə çox cansıxıcı idim (bir introvert olduğum üçün fərq etməz). Buna görə əylənmək üçün səliqəli görünən və səslənən bluetooth (və wifi) dinamik qurmaq qərarına gəldim. İndi əgər
Sadə Function Generator: 5 Addım
Sadə Funksiya Generatoru: Son təlimatımda sizə pwm siqnal generatorunun necə qurulacağını göstərdim və ondan başqa bir dalğa formalarını süzmək üçün istifadə etdim. Bu təlimatda sizə sadə bir funksiya/tezlik generatoru necə edəcəyinizi, onunla röleyi necə idarə edəcəyinizi və necə işlədiyinizi göstərəcəyəm
DIY Function Generator (ICL8038) 0 Hz - 400Khz: 11 Addım
DIY Function Generator (ICL8038) 0 Hz - 400Khz: Funksiya Jeneratörleri elektronik skamyasında çox faydalı bir vasitədir, lakin olduqca bahalı ola bilər, amma onu ucuz tikmək üçün bir çox variantımız var. Bu layihədə ICl8038 istifadə edirik
Portativ WiFi analizatoru: 10 addım (şəkillərlə birlikdə)
Portativ WiFi Analizatoru: Bu təlimatlar, Tic Tac şirin qutusundan istifadə edərək portativ WiFi Analizatoru hazırlamağı göstərir. Əvvəlki təlimatlarımda daha çox məlumat tapa bilərsiniz: https: //www.instructables.com/id/ESP8266-WiFi-Anal .. .https: //www.instructables.com/id/IoT-Power-Consump