Mundarija:
- 1 -qadam: Blok diagrammasi - apparat
- 2 -qadam: Blok diagrammasi - tarmoq
- 3 -qadam: qismlar, asboblar, IDE va materiallar ro'yxati
- 4 -qadam: Uskuna dizayni - Asosiy karta
- 5 -qadam: Uskuna dizayni - ESP32 moduli
- 6 -qadam: PCB tartibi
- 7 -qadam: 3D muhofazasi
- 8 -qadam: dasturiy ta'minotni amalga oshirish - MCU
- 9 -qadam: dasturiy ta'minotni amalga oshirish - Android ilovasi
- 10 -qadam: Sinov
Video: Wi -Fi va Android -da ko'chma funktsiyali generator: 10 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
20 -asrning oxirida, ayniqsa, aloqa sohasida turli xil texnologik yangiliklar paydo bo'ldi; lekin nafaqat. Biz, foydalanuvchilar, iste'molchilar va muhandislar bizning hayotimizni ancha osonlashtiradigan elektron qurilmalarning jadal rivojlanishini aniqladilar: aqlli soatlar, aqlli uylar, smartfonlar va boshqalar.
Hozir hamma narsa "aqlli" bo'lishi mumkin bo'lganligi sababli, men juda zarur bo'lgan elektron laboratoriya uskunasining bir qismi bo'ladigan juda foydali qurilmani loyihalashtirishga qaror qildim - Android OS asosidagi smartfon yordamida WiFi to'g'ridan -to'g'ri yoki WiFi mahalliy tarmoq (WLAN) orqali boshqariladigan portativ funktsiya generatori.).
Nega biz bu qurilmani qurishimiz kerak?
Sinov uskunalarining aksariyati hozirgi kunda ancha qimmat. Va ba'zida bu qurilmalar portativ emas. Yuqori narxlar, portativlikning yo'qligi va tarmoqqa kira olmaslik uchun echim sifatida, qurilma ikki kanalli to'lqin shakli generatorini taqdim etadi, bu haqiqatan ham ko'chma va tarmoqqa cheklanmagan kirishga ega - Internet yoki mahalliy.
Va, albatta, qurilmani DIY tamoyillariga bo'ysunish, g'ayrat tufayli qurish kerak - Ba'zida o'zimizni to'g'ri his qilish uchun o'zimiz qilishimiz kerak:)
Asosiy xususiyatlar
Quvvatlantirish manbai
- USB Type-A ulagichi, ham elektr ta'minoti tizimlari, ham dasturlash uchun
- Li -Ion batareyasini boshqarishning to'liq tizimi - Zaryadlash va barqaror rejimlar
- Smart Switch -ni ishga tushirish - quvvatni almashtirish tugmasiga ehtiyoj yo'q
- Ikki tomonlama quvvat manbai: +3.3V va -3.3V nosimmetrik kuchlanishli to'lqin shaklini yaratish uchun
To'lqin shakli avlodi
- Chiqish kaskadida - DC chegarasini kuchlanish chegaralari orasidagi to'lqinli shaklni joriy etish
- DDS asosidagi 4 turdagi to'lqin shakllari - sinus, uchburchak, kvadrat va shahar
- 10 MGts gacha chastotali qo'llab -quvvatlash
- Chiqish oqimi 80 mAgacha, maksimal quvvati 500 mVt
- To'lqin shaklini yaratish uchun ajratilgan kanallar - bo'linadigan AD9834 sxemalari
Aloqa
- ESP32 - Amaldagi WiFi imkoniyatlari
- Generator qurilmasi va Android smartfoni orqali TCP/IP -ni to'liq qo'llab -quvvatlash
- Har bir qurilma tsikli uchun foydalanuvchi parametrlarini saqlash imkoniyati
- Shtat monitoringi - ikkala tizim ham bir -birining holatidan xabardor: FuncGen (bundan buyon shunday nomlaylik) va smartfon.
Foydalanuvchi interfeysi
- Oddiy 4-bitli ma'lumotlar interfeysi bilan 20 x 4 belgili LCD
- Android ilovasi - FuncGen qurilmasini foydalanuvchi tomonidan to'liq boshqarish
- Buzzer sxemasi - foydalanuvchiga ovozli aloqa
1 -qadam: Blok diagrammasi - apparat
Mikrokontroller birligi - ATMEGA32L
Mikrokontroller - bu bitta elektron chipda joylashgan kompyuterning barcha funktsiyalaridan iborat dasturlashtiriladigan chip. Bizning holatda, bu "miya" va tizimning markaziy komponenti. MCUning maqsadi - barcha periferik tizimlarni boshqarish, bu tizimlar orasidagi aloqani boshqarish, apparat ishini boshqarish va foydalanuvchi interfeysi va uning haqiqiy foydalanuvchi bilan o'zaro ta'sirini to'liq qo'llab -quvvatlash. Ushbu loyiha ATMEGA32L MCU ga asoslangan bo'lib, u 3,3V va 8MGts chastotada ishlashi mumkin.
Aloqa SoC - ESP32
Bu SoC (Chipdagi tizim) funktsiyasi FuncGen uchun to'liq muloqotni qo'llab -quvvatlaydi - WiFi imkoniyatlariga kirish, shu jumladan to'g'ridan -to'g'ri, mahalliy yoki internet aloqasi. Qurilmaning maqsadlari:
- Android ilovasi va FuncGen qurilmasi o'rtasida ma'lumotlarni uzatish
- Ma'lumotlarni boshqarish/boshqarish
- TCP/IP mijoz-serverining doimiy konfiguratsiyasini qo'llab-quvvatlash
Bizning loyihamizda SoC espressif ESP32 bo'lib, uni yanada kengaytirish uchun juda mashhur:)
Li-Ion batareyasini boshqarish tizimi
Qurilmamizni ko'chma qurilmaga aylantirish uchun qurilmada Li-Ion batareyasini zaryadlash sxemasi mavjud. O'chirish MC73831 IC ga asoslangan bo'lib, bitta dasturiy rezistorning qiymatini sozlash orqali boshqariladigan zaryadlovchi oqimi bilan ta'minlangan (biz bu mavzuni sxematik bosqichda ko'rib chiqamiz). Qurilmaning quvvat manbai-bu USB Type-A ulagichi.
Aqlli o'tish davri
Aqlli kalitli qurilmaning quvvatni boshqarish davri qurilmani o'chirish ketma -ketligini to'liq nazorat qiladi va qurilmaning batareya zo'riqishini o'chirish uchun tashqi almashtirish kalitiga ehtiyoj sezmaydi. Barcha quvvat operatsiyalari tugmachani va MCU dasturini bosish orqali amalga oshiriladi. Ba'zi hollarda tizimni o'chirib qo'yish kerak bo'ladi: batareyaning past kuchlanishi, yuqori kirish voltaji, aloqa xatosi va boshqalar. Aqlli kalit STM6601 aqlli kalit IC ga asoslangan, bu arzon va u bilan o'ynash juda qulay.
Asosiy quvvat manbai
Bu birlik batareyali ikkita quvvat manbai sxemasidan iborat -barcha raqamli / analog besleme zanjirlari uchun +3.3V va FunGen simmetrik chiqishi uchun 0V potentsialga nisbatan -3.3V (ya'ni hosil qilingan to'lqin shaklini [-3.3V: 3.3V ga sozlash mumkin)] mintaqasi.
- Asosiy ta'minot davri LP3875-3.3 LDO (past tushish) 1A chiziqli kuchlanish regulyatoriga asoslangan.
- Ikkilamchi besleme sxemasi LM2262MX IC ga asoslangan bo'lib, u IC-ga asoslangan kondansatör-zaryad-nasosi orqali DC-DC salbiy kuchlanish konvertatsiyasini amalga oshiradi.
To'lqin shakllari generatorlari tizimi
Tizim MCU SPI (ketma -ket periferik interfeys) yordamida to'lqin shaklini ishlab chiqarishni to'liq boshqarishga imkon beradigan alohida DDS (to'g'ridan -to'g'ri raqamli sintez) integral mikrosxemalariga e'tibor qaratib ishlab chiqilgan. Dizaynda ishlatilgan sxemalar har xil turdagi to'lqin shakllarini ta'minlay oladigan AD9834 analogli qurilmalardir. AD9834 bilan ishlashda biz duch keladigan qiyinchiliklar:
- Ruxsat etilgan to'lqin shakli amplitudasi: to'lqin shakli amplitudasi tashqi DAC moduli tomonidan boshqariladi
- To'g'ridan -to'g'ri ofset DC darajasiga e'tibor berilmaydi: kerakli DC ofset qiymatlari bilan yig'ish davrlarini amalga oshirish
- Kvadrat to'lqin va uchburchak/sinus to'lqin uchun alohida chiqishlar: yuqori chastotali kommutatsiya sxemasini amalga oshirish, shuning uchun har bir kanalli bitta chiqish kerakli to'lqin shaklini beradi: sinus, uchburchak, kvadrat va shahar.
Suyuq kristalli displey
LCD - UI (foydalanuvchi interfeysi) ning bir qismi bo'lib, uning maqsadi foydalanuvchiga real vaqtda qanday qurilmani bajarishini tushunishdir. U har bir qurilma holatida foydalanuvchi bilan muloqot qiladi.
Buzzer
Qurilmadan foydalanuvchiga qo'shimcha fikr bildirish uchun oddiy ohang generatori sxemasi.
Birlashtirilgan ISP dasturchisi
Dasturlash jarayonida har bir muhandisning doimiy muammosi bor: har doim mahsulotni yangi dasturiy ta'minot bilan qayta dasturlash uchun uni qismlarga ajratish kerak. Ushbu noqulaylikni bartaraf etish uchun AVR ISP dasturchisi qurilmaga ichkaridan ulangan, USB ma'lumotlari va elektr uzatish liniyalari qurilmaning USB Type-A ulagichiga ulangan. Ushbu konfiguratsiyada biz dasturlash yoki zaryadlash uchun FuncGen -ni USB kabeli orqali ulashimiz kerak!
2 -qadam: Blok diagrammasi - tarmoq
Ikki kanalli funktsiyali generator
Asosiy qurilma. Oldingi bosqichda biz ko'rib chiqqan
ESP-WOM-32
Wi-Fi va BLE imkoniyatlari bilan birlashtirilgan chip-on-chip. SoC UART moduli orqali asosiy kartaga biriktirilgan (biz buni sxemada ko'rib chiqamiz) va asosiy qurilma va Android smartfoni o'rtasida xabar uzatuvchi vazifasini bajaradi.
WiFi mahalliy tarmoq
Smartfon va qurilma TCP server/mijoz konfiguratsiyasiga asoslanib, WiFi to'g'ridan -to'g'ri yoki mahalliy tarmoq orqali aloqa o'rnatadi. Wi -Fi -da qurilmalar bir -birlarini taniganida, asosiy qurilma tegishli parametrlarga ega TCP -serverni yaratadi va xabarlarni yuborish/qabul qila oladi. Qurilma smartfon uchun ikkilamchi vazifasini bajaradi. Boshqa tomondan, Android qurilmasi TCP serveriga mijoz tarmoq qurilmasi sifatida ulanadi, lekin asosiy xabar uzatuvchi sifatida qaraladi - smartfon to'liq aloqa aylanishini boshlaydi: Xabar yuborish - javob olish.
Android smartfoni
FuncGen ilovasida ishlaydigan Android OS asosidagi smartfon
3 -qadam: qismlar, asboblar, IDE va materiallar ro'yxati
Materiallar varaqasi (ilova qilingan XLS jadvaliga qarang)
UI va tizim ulanishlari
- 1 x 2004A Char-LCD 20x4 ko'k
- 1 x USB B tipidagi ulagich
- 1 x 10 to'plamli Mini Micro JST XH 2,54 mm 4 pinli
- 1 x 6 dona lahzali SW
PCB buyurtma berish (Seeed Studio ma'lumotlariga ko'ra)
Asosiy material FR-4
Qatlamlar soni 2 qatlam
PCB miqdori 10
Turli dizaynlar soni 1
PCB qalinligi 1,6 mm
PCB rangi ko'k
Yuzaki ishlov berish HASL
Minimal lehim niqobli to'g'on 0,4 mm
Mis Og'irligi 1oz
Minimal burg'ulash teshigi o'lchami 0,3 mm
Iz kengligi / oralig'i 6/6 mil
Qoplangan yarim teshiklari / Kastelli teshiklari Yo'q
Empedansni nazorat qilish raqami
Asboblar
- Issiq yopishtiruvchi qurol
- Cımbızlar
- To'sar
- Nosozliklarni bartaraf etish uchun ~ 22AWG sim
- Lehimlash temir/stantsiya
- Lehimlaydigan kalay
- SMD qayta ishlash stantsiyasi (ixtiyoriy)
- 3D printer (ixtiyoriy)
- Ekstrudirovka qilingan fayl
- AVR ISP dasturchisi
- USB -dan seriyali konvertor (ixtiyoriy, disk raskadrovka maqsadida)
Birlashtirilgan rivojlanish muhiti (IDE) va dasturiy ta'minot
- Autodesk EAGLE yoki Cadence sxematik muharriri / Allegro PCB muharriri
- OpenSCAD (ixtiyoriy)
- Ultimaker Cura (ixtiyoriy)
- Saleae Logic (muammolarni bartaraf qilish uchun)
- Atmel Studio 6.3 yoki undan yuqori
- Android Studio yoki Eclipse IDE
- Docklight seriyali monitor / boshqa COM port monitoringi dasturi
- AVR ATMEGA32L flesh dasturlash uchun ProgISP
4 -qadam: Uskuna dizayni - Asosiy karta
Batareyani boshqarish davri
Batareyani zaryad qilish sxemasi MCP7383 IC ga asoslangan, bu bizga Li -Ion batareyasi uchun kerakli zaryadlovchi oqimini tanlash imkonini beradi - 8,7 mA / soat sig'imli 3,7V. Zaryadlovchi oqimi bizning holatimizda qarshilik qiymatini (R1) dasturlash orqali o'rnatiladi
R1 = 3KOm, I (zaryad) = 400mA
USB kuchlanishli VBUS filter filtri (C1, L3, C3) orqali filtrlanadi va zaryad zanjiri uchun quvvat manbai vazifasini bajaradi.
Voltajni ajratuvchi sxemasi (R2, R3) MCU A/D kanaliga quyidagi kuchlanishni ta'minlab, tashqi USB quvvat manbaiga ulangan yoki ulanmaganligini ko'rsatishga imkon beradi:
V (ko'rsatkich) ~ (2/3) V (BUS)
ATMEGA32L A/D 12-bit bo'lgani uchun biz raqamli diapazonni hisoblashimiz mumkin:
A / D (diapazon) = 4095V (ko'rsatkich) / V (REF).
A/D ∈ [14AH: FFFH]
Smart Switch quvvat bloki
O'chirish tizimi tizimning har bir tugmachasini MCU tugmachasidan ham, dasturiy ta'minotdan ham boshqarishni ta'minlaydi va RESET o'rniga POWER opsiyali STM6601 Smart-Switch-ga asoslangan. Biz ko'rib chiqmoqchi bo'lgan terminallar:
- PSHOLD - qurilma holatini belgilaydigan kirish chizig'i: agar LOW past bo'lsa, qurilma barcha ikkilamchi quvvat manbalarini o'chiradi (+3.3V va -3.3V). Agar YUQORI tutilsa - qurilma ON holatini saqlaydi.
- nSR va nPB - kirish chiziqlari. Tugma terminallari. Qachonki, bu pimlarda yiqilish aniqlansa, qurilma yoqish / o'chirish rejimiga o'tishga harakat qiladi
- nINT - chiqish chizig'i. Har safar tugma bosilganda LOW tortiladi
- EN - Chiqish liniyasi, ikkilamchi quvvat manbalari uchun quvvat manbai sifatida ishlatiladi. LOW ushlab turilganda, ikkilamchi quvvat manbalari ham o'chirilgan
Yakuniy dizaynga o'tishdan oldin ba'zi muhim eslatmalar mavjud:
- PSHOLD 3.3V ga ko'tarilishi kerak, chunki MCU'lar barcha kirish/chiqish nuqtalarini HIGH-Z holatida bo'lishga majbur qiladigan holatlar mavjud. Bunday holda, MCU -dan PSHOLD holati noma'lum va qurilmani dasturlash jarayoniga keskin ta'sir ko'rsatishi mumkin.
- STM6601 -ni RESET -ni o'rniga uzoq bosish paytida EN -ni sozlash opsiyasiga buyurtma berish kerak (men bunga tushib qolganman).
Quvvat manbai: +3.3V
Loyihamizdagi barcha tizimlar uchun asosiy quvvat manbai. +3.3V liniyasi GND darajasida ushlab turilganda (ya'ni, kuchlanish yo'q), aqlli kalitdan boshqa barcha IC o'chiriladi. Zanjir LDO LP-3875-3.3 IC ga asoslangan, uni EN terminali orqali boshqarish va 1A gacha bo'lgan oqim bilan ta'minlash imkoniyati mavjud.
Bu kontaktlarning zanglashiga olib keladigan manbai - bu batareya zo'riqishida, VBUS sensori zanjiriga o'xshash konfiguratsiyadagi VBATni aniqlash uchun A/D indikatori o'rnatilgan. Bunday holda, hisob -kitoblar biroz farq qiladi;
V (Batareyadan A/Dgacha) = 0,59V (Batareya); A/D (diapazon) ∈ [000H: C03H]
Quvvat manbai: -3.3V
Salbiy kuchlanish manbai sxemasi bizga 0V doimiy faktorli nosimmetrik to'lqin shakllarini yaratishga imkon beradi (ya'ni to'lqin shakli o'rtacha qiymati 0V bo'lishi mumkin). Bu sxema "zaryad nasosi" usulida ishlaydigan LM2662MX IC - DC/DC konvertoriga asoslangan. O'chirishning maksimal chiqish oqimi 200 mA ni tashkil etadi, bu bizning dizayn talablarimiz uchun etarli - biz har bir qurilma kanalidan 80 mA chiqish oqimi bilan cheklanganmiz.
IC barcha kerakli ishlarni bajaradi, shuning uchun biz faqat ikkita elektrolitik kondansatkichni biriktirishimiz kerak: kommutatsiya uchun C33 va -3.3V chiziqli bypass uchun C34 (shovqinni kamaytirish masalalari). Agar biz sxemani to'lqin shaklini yaratish qismlaridan etarlicha uzoqroqda joylashtirsak, dizayn chastotasi juda kam (biz uni PCB joylashuvi bosqichida muhokama qilamiz).
Mikrokontroller birligi - MCU
Bu bizning tizimimizning menejeri va bosh direktori - boshqaruv, tarmoq bilan ishlash, xabarlarni uzatish va foydalanuvchi interfeysini qo'llab -quvvatlash - hamma narsa MCU tomonidan.
Tanlangan MCU - Atmel ATMEGA32L, bu erda L - qo'llab -quvvatlanadigan kuchlanish ∈ [2.7V: 5.5V]. Bizning holatda, ish kuchlanishi +3.3V.
Keling, dizaynimizda MCU bilan ishlashni tushunish uchun zarur bo'lgan asosiy operatsion bloklarni ko'rib chiqaylik:
- Tashqi osilator - bu ixtiyoriy komponent, chunki biz 8 MGts chastotali ishlashga qiziqamiz
-
Periferik boshqaruv, SPI tarmog'i - Barcha periferik qurilmalar (ESP32dan tashqari) MCU bilan SPI orqali aloqa o'rnatadi. Barcha qurilmalar uchun uchta umumiy chiziqlar (SCK, MOSI, MISO) mavjud va har bir periferik sxemada maxsus CS (Chip Select) chizig'i mavjud. Qurilmaning bir qismi bo'lgan SPI qurilmalari:
- Amplitudani boshqarish uchun D/A - A kanali
- Amplitudani boshqarish uchun D/A - Kanal B
- AD9834 qurilmasi - A kanali
- AD9834 qurilmasi - B kanali
- Qarama -qarshi kuchlanishni boshqarish uchun D/A - A kanali
- Qarama -qarshi kuchlanishni boshqarish uchun D/A - Kanal B
- LCD yorqinligi/kontrastini sozlash uchun raqamli potentsiometr
- LCD -ni qo'llab -quvvatlash - LCD displeyi umumiy 20 x 4 belgidan iborat bo'lgani uchun biz 4 -bitli interfeys (D7: D4 chiziqlar), boshqaruv pinlari (RS, E chiziqlari) va yorqinlik/kontrastni boshqarish (V0 va Anod chiziqlari) dan foydalanamiz.
- RGB LEDni qo'llab -quvvatlash - bu modul ixtiyoriy, lekin MCU ga ulangan, tegishli rezistorli, umumiy katodli RGB LED ulagichi mavjud.
-
Quvvatni boshqarish - MCU real vaqt rejimida quvvat tizimini kuzatishni amalga oshiradi va barcha kerakli quvvat hodisalarini boshqaradi:
- VBAT_ADC - Batareya kuchlanishini kuzatish va uning holatini aniqlash (ADC0 kanali)
- PWR_IND - tashqi quvvat manbaiga ulanish belgisi (ADC1 kanali)
- PS_HOLD - barcha belgilangan tizimlar uchun asosiy quvvat yoqish liniyasi. MCU tomonidan pastga tushirilganda, qurilma o'chadi
- Aqlli kalitning uzilish terminali - tugma holatini kuzatish
- WiFi tarmoqlarini boshqarish - ESP32: MCU USP interfeysi orqali ESP32 bilan aloqa o'rnatadi. 8 MGts 115200 bost tezligini nisbatan kichik xato bilan amalga oshirishga imkon berganligi sababli, biz ESP32-ni zanjir tezligining o'zgarishining oldindan ta'rifisiz ishlata olamiz.
AVR ISP dasturchisi
Bizning MCU SPI orqali dasturlashtirilgan bo'lib, qayta o'rnatish liniyasi (/RST) to'g'ri ishlashi uchun YUQORI tortilishi kerak (agar bo'lmasa - MCU abadiy tiklanish holatida qoladi).
Qurilmani USB orqali dasturlash va zaryadlashga ruxsat berish uchun men AVR ISP dasturchisini biriktirdim (eBay-dan sotib olingan kichik o'lchamli mahsulot). Qurilmaning to'liq USB qo'llab-quvvatlanishini ta'minlash uchun USB Type-A (D+, D-, VBUS va GND) terminallarini AVR ISP qurilmasi bilan bog'lash kerak.
To'lqin shaklini yaratish davri
Qurilmaning yadrosi - bu sxemalar. AD9834-bu past quvvatli DDS qurilmasi bo'lib, u bizga tizimdan chiqarishni istagan to'lqin shakllarini beradi. Zanjirlar ajratilgan tashqi 50MGts osilatorli ikkita mustaqil AD9834 ICni o'z ichiga oladi (buni sxemada ko'rish mumkin). Ajratilgan osilatorning sababi shovqinni kamaytiruvchi raqamli davrlardir, shuning uchun AD9834 yonida joylashgan osilatorlar bilan 50 MGts chastotali to'g'ri chiziqlarni boshqarish to'g'risida qaror qabul qilindi.
Endi matematikani ko'rib chiqaylik:
DDS qurilmasi 28-bitli registrda chiqish qiymati bilan Fazli g'ildirak texnologiyasida ishlaganligi uchun biz to'lqin shaklini yaratishni matematik tarzda tasvirlashimiz mumkin:
dP (faza) = dt; ω = P '= 2πf; f (AD9834) = p * f (clk) / 2^28; ΔP ∈ [0: 2^28 - 1]
Va AD9834 ma'lumotlar jadvaliga muvofiq, maksimal chastotani hisobga olgan holda, chiqish chastotasi aniqligi olinishi mumkin:
Δf = k * f (osilator) / f (maksimal) = 0,28 * 50M / 28M = 0,187 [Hz]
AD9834 IC -lar uchburchak/sinus to'lqin uchun analog tok chiqishini (IOUT terminali) va kvadrat to'lqin uchun raqamli chiqishni (SIGN_OUT terminali) ta'minlaydi. Belgilar bitidan foydalanish biroz murakkab, lekin biz buni uddalay olamiz - Har safar DDS taqqoslash qiymati ostonasidan o'tib ketganda, SIGN_OUT mos ravishda o'zini tutadi. Har bir kanalning chiqishiga 200 Ohmlik rezistor biriktirilgan, shuning uchun chiqish voltaji mazmunli bo'ladi:
Men (bitta kanalli) = V (chiqish) / R (kuchlanishni tanlash); V (chiqish) = R (VS)*I (SS) = 200I (SS) [A]
Amplitudani boshqarish (D/A) davrlari
AD9834 ma'lumotlar jadvaliga ko'ra, uning amplitudasi DDS to'liq o'lchovli tizimiga oqim berish orqali sozlanishi mumkin, shuning uchun ikkita D/A IC yordamida biz bu oqimni sozlash orqali chiqish signallarining amplitudasini nazorat qila olamiz. Yana bir bor matematika:
Men (to'liq o'lchov) = 18 * (V_REF - V_DAC) / R_SET [A]
Sxemalarga ko'ra va ba'zi raqamlarni tenglamaga qo'yish:
Men (to'liq o'lchov) = 3.86 - 1.17 * V_DAC [A]
Dizaynda ishlatiladigan D/A moduli 12-bitli MCP4922, tok [0mA: 3.86mA] diapazonida va chiziqli amplituda funktsiyasi:
V (amplituda tanlash) = 1 - [V (D / A) / (2^12 - 1)]
To'lqin shaklini ko'paytirish sxemasi
Kvadrat to'lqin va sinus/uchburchak to'lqinlarni hosil qilish chiqishlari AD9834 da ajratilgan, shuning uchun biz bitta ajratilgan kanaldan barcha kerakli to'lqin shakllarini olish uchun har ikki chiqish uchun ham yuqori tezlikda ko'paytirish sxemasidan foydalanishimiz kerak. Multiplexer IC-bu juda past qarshilikka ega (~ 0,5Ohm) ADG836L analog kalit.
Chiqish uchun MCU ishlatadigan tanlov jadvali quyidagicha:
Tartibni tanlash [D2: D1] | Chiqish kanali A | Chiqish kanali B.
00 | Sinus/uchburchak | Sinus/uchburchak 01 | Sinus/uchburchak | Kvadrat 10 | Kvadrat | Sinus/uchburchak 11 | Kvadrat | Kvadrat
Bias kuchlanish nazorat qilish (D/A) davrlari
To'lqin shakli generatorining asosiy xususiyatlaridan biri uning doimiy qiymatini nazorat qilishdir. Ushbu dizaynda har bir kanal uchun kerakli D/A kuchlanishni o'rnatish orqali amalga oshiriladi va bu noto'g'ri kuchlanishlar biz biroz oldin muhokama qilgan multipleksli chiqishlar bilan yig'iladi.
D/A dan olinadigan kuchlanish [0V: +3.3V] diapazonida joylashgan, shuning uchun D/A diapazonini [-3.3V: +3.3V] ga moslashtiruvchi op-ampli sxemasi mavjud, bu esa qurilmaga to'liq diapazonni ta'minlash imkonini beradi. kerakli DC komponentidan. Biz zerikarli analitik matematikani chetlab o'tamiz va faqat yakuniy natijalarga e'tibor qaratamiz:
V_OUT (kanal B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (kanal A) = V_BIAS_A (+) - V_BIAS_A (-)
Endi, DC komponentlari diapazoni [-3.3V: +3.3V] oralig'ida joylashgan.
Chiqish sxemalari - DC komponentlari va to'lqin shakli chiqishi
Hozirgi vaqtda bizda qurilmaning to'g'ri chiqishi uchun kerak bo'lgan hamma narsa bor - to'liq kuchlanish diapazonida Bias Voltaj (shahar komponenti) va AD9834 multipleksli chiqishlari. Biz buni yig'uvchi kuchaytirgich - op -amp konfiguratsiyasi yordamida amalga oshiramiz
Keling, yana matematikani o'tkazib yuboramiz (biz allaqachon ko'p matematik yondashuvni ko'rib chiqdik) va yig'ish kuchaytirgichining yakuniy natijasini yozamiz:
V (qurilma chiqishi) = V (musbat burilish) - V (salbiy taraflama) - V (multipleksli chiqish) [V]
Demak:
V_OUT = ΔV_BIAS - V_AD9834 [V]
BNC tipidagi chiqish ulagichlari tanlov rezistorlari bilan ulanadi (R54, R55; R56, R57). Buning sababi shundaki, agar dizayn ishlamay qolsa, biz yig'ish kuchaytirgichidan foydalanishni xohlaymiz.
Muhim eslatma: yakuniy yig'uvchi kuchaytirgichlarning rezistor tarmoqlari dizayner tomonidan qurilmadan olinadigan maksimal amplitudani o'zgartirish uchun sozlanishi mumkin. Mening holatimda, barcha kuchaytirgichlar bir xil daromadga ega = 1, shuning uchun maksimal tamponlangan amplitudasi uchburchak/sinus to'lqin uchun 0,7 Vpp va kvadrat to'lqin uchun 3,3 Vpp. Aniq matematik yondashuvni qadam qo'shilgan tasvirlar orasidan topish mumkin.
ESP32 tashqi modul sifatida
MCU USP interfeysi orqali ESP32 bilan aloqa o'rnatadi. Men ESP32 uchun shaxsiy PCB -ni xohlaganim uchun, ulanish uchun 4 ta terminal mavjud: VCC, RX, TX, GND. J7 - bu PCBlar orasidagi interfeys ulagichi va ESP32 qurilmaning tashqi moduli sifatida ajratiladi.
Foydalanuvchi interfeysi - LCD va karnay
Ishlatilgan LCD - bu 4 -bitli interfeysli 20 x 4 belgidan iborat umumiy displey, dizayndan ko'rinib turibdiki, "A" va "V0" LCD terminallariga SPI raqamli potentsiometr o'rnatilgan - uning maqsadi - sozlash. LCD modulining yorqinligi va kontrasti dasturiy jihatdan.
Karnay MCU -dan oddiy kvadrat to'lqinlarni ishlab chiqarish orqali foydalanuvchi uchun ovoz chiqarishni ta'minlaydi. BJT T1 karnay orqali oqimni boshqaradi, u faqat ikkita holatda bo'lishi mumkin - ON / OFF.
5 -qadam: Uskuna dizayni - ESP32 moduli
ESP32 asosiy PCB uchun tashqi modul sifatida ishlatiladi. Qurilma bilan aloqa umumiy qurilmaning dasturiy ta'minotida mavjud bo'lgan AT buyruqlariga asoslangan.
Ushbu dizaynni kengaytirish uchun ko'p narsa yo'q, lekin dizayn uchun ba'zi eslatmalar mavjud:
- ESP32 -ning tegishli UART modulidan foydalana olmaslik uchun men TX va RX liniyalari uchun uchta tanlov rezistorini biriktirdim. (Har biri uchun 0 Ohm). Standart konfiguratsiya uchun AT buyruqlari uchun UART2 moduli ishlatiladi (R4, R7 lehimli bo'lishi kerak)
- Qurilma 4 qatorli chiqishga ega - VCC, GND, TX, RX.
- IO0 va EN pinlari qurilmaning ishlashini baholaydi va sxemada ko'rsatilganidek loyihalashtirilishi kerak
Biz tenglikni tenglashtirishning barcha xususiyatlarini keyingi bosqichda ko'rib chiqamiz.
6 -qadam: PCB tartibi
PCB dizaynining maqsadlari
- Xuddi shu taxtadagi barcha integral mikrosxemalar uchun o'rnatilgan tizim yarating
- Bitta asosiy tenglikni loyihalash orqali qurilma ish faoliyatini yaxshilang
- Xarajatlarni pasaytirish - agar siz narxlarni ko'rib chiqmoqchi bo'lsangiz, arzon narxdagi dizaynlar haqiqatan ham arzon
- Elektron karta hajmini kamaytiring
- Nosozliklarni tuzatish oson - har bir mumkin bo'lgan nosozlik liniyasi uchun TP (test punktlari) dan foydalanishimiz mumkin.
Texnik parametrlar
Ikkala PCB: asosiy va ESP32 kartalari ishlab chiqarish jarayonida bir xil xususiyatlarga ega - arzon narxlarda va bizning maqsadlarimiz uchun ishlaydi. Keling, ularni ko'rib chiqaylik:
A - Bosh taxta
- Hajmi: 10 x 5,8 sm
- Qatlamlar soni: 2
- PCB qalinligi: 1,6 mm
- Minimal iz maydoni/kengligi: 6/6 mil
- Minimal teshik diametri: 0,3 mm
- Mis tenglikni chetiga minimal masofa: 20 mil
- Yuzaki ishlov berish: HASL (juda yaxshi ko'rinadigan kumush rangli arzon turdagi)
B - Bosh taxta
- Hajmi: 3 x 4 sm
- Qatlamlar soni: 2
- PCB qalinligi: 1,6 mm
- Minimal iz maydoni/kengligi: 6/6 mil
- Minimal teshik diametri: 0,3 mm
- Mis tenglikni chetiga minimal masofa: 20 mil
- Yuzaki ishlov berish: HASL
7 -qadam: 3D muhofazasi
Men buni o'zim loyihalashtirmaganman, chunki o'sha paytda men bu qurilmani ishlashga ko'ndirgan edim, shuning uchun men 3D bosib chiqarishning barcha asoslarini bilmasdim. Shunday qilib, men Thingiverse -dan SCAD loyihasidan foydalandim va qurilmamning spetsifikatsiyalariga muvofiq chegaralarga turli teshiklarni biriktirdim.
- Bosib chiqarish qurilmasi: Creality Ender-3
- To'shak turi: Shisha, qalinligi 5 mm
- Filament diametri: 1,75 mm
- Filament turi: PLA+
- Burun diametri: 0,4 mm
- Dastlabki tezlik: 20 mm/sek
- O'rtacha tezlik: 65 mm/sek
- Qo'llab -quvvatlash: yo'q
- To'ldirish: 25%
-
Harorat:
- To'shak: 60 (oC)
- Burun: 215 (oC)
- Filament rangi: qora
- Teshiklarning umumiy soni: 5
-
Qoplama panellari soni: 4
- TOP Shell
- Pastki qobiq
- Old panel
- Orqa panel
8 -qadam: dasturiy ta'minotni amalga oshirish - MCU
GitHub Android va Atmega32 kodlariga havola
Dasturiy ta'minot algoritmi
MCU tomonidan bajariladigan barcha operatsiyalar biriktirilgan sxemalarda tasvirlangan. Bunga qo'shimcha ravishda, loyiha uchun biriktirilgan kod mavjud. Keling, dasturiy ta'minot xususiyatlarini ko'rib chiqaylik:
Quvvat manbai
Ushbu bosqichda MCU barcha ishga tushirish ketma -ketligini bajaradi va Android qurilmasi bilan saqlanadigan aloqa turini aniqlaydi: to'g'ridan -to'g'ri WiFi yoki WLAN tarmog'i - bu ma'lumotlar EEPROM -da saqlanadi. Bu bosqichda foydalanuvchi Android qurilmalarini ulash turini qayta aniqlashi mumkin.
Android qurilmalarini to'g'ridan -to'g'ri ulash
Bu turdagi juftlik FuncGen qurilmasi tomonidan WiFi tarmog'ini yaratishga asoslangan. U AP (kirish nuqtasi) va TCP serverini mahalliy qurilma IP -da, ma'lum SSID (WiFi tarmog'i nomi) va ma'lum port raqamiga ega qilib yaratadi. Qurilma holatni ushlab turishi kerak - ulanish uchun ochiq.
Android qurilmasi FuncGen -ga ulanganda, MCU ACTIVE rejimiga o'tadi va Android qurilmasidagi foydalanuvchi ko'rsatmalariga muvofiq javob beradi.
WLAN ulanishi
Mahalliy WiFi tarmog'ida muloqot qilish uchun MCU ESP32 uchun AP yaratish, Android qurilmasi bilan bog'lanish va tarmoqning muhim ma'lumotlarini almashish buyruqlarini berishi kerak:
- Android qurilmasi FuncGen -dan MAC manzilini oladi va uni xotirada saqlaydi.
- FuncGen qurilmasi Android qurilmasidan WLAN parametrlarini tanlaydi: SSID, xavfsizlik turi va Parol va uni EEPROMda saqlaydi.
Agar qurilmalar haqiqatan ham bir xil WLAN tarmog'iga ulangan bo'lsa, Android qurilmasi WLANga ulangan qurilmalarning barcha MAC manzillarini skanerlash orqali FuncGen -ni qidiradi. Android qurilmasi MAC mosligini aniqlaganida, u aloqa o'rnatishga harakat qiladi.
Ulanish va davlat bilan ishlash - MCU
Qurilmalar bir-biri bilan aloqa qilganda, protokol (Oxirgi bosqichga qarang) bir xil bo'lib qoladi va oqim sxemasi bir xil bo'ladi.
Qurilma holati monitoringi
Vaqtli uzilish MCUga davlat bilan ishlash uchun zarur ma'lumotlarni beradi. Taymerning har bir tsikli uzilib qolsa, quyidagi parametrlar ro'yxati yangilanadi:
- Tashqi quvvat manbai - yoqish/o'chirish
- Batareya zo'riqishining holati
- Har bir sozlash uchun foydalanuvchi interfeysi yangilanishi
- Bosish tugmasi: bosilgan/bosilmagan
9 -qadam: dasturiy ta'minotni amalga oshirish - Android ilovasi
Android ilovasi Java-Android uslubida yozilgan. Men buni algoritmni alohida kod bloklariga bo'lish orqali oldingi bosqichlardagidek tushuntirishga harakat qilaman.
Quvvatlanish ketma -ketligi
Qurilmaning birinchi ketma -ketligi. Bu erda ilova logotipi Android qurilmasining GPS va WiFi modullarini yoqish bilan birga taqdim etiladi (Xavotir olmang, GPS faqat Wi -Fi tarmog'ini to'g'ri tekshirish uchun kerak).
Asosiy menyu
Dastur ishga tushirilgandan so'ng, ekranda to'rtta tugma paydo bo'ladi. Tugmalar harakati:
- To'g'ridan -to'g'ri ulanish: IOT_FUNCGEN SSID orqali FuncGen AP ga ulanishni boshlash. Agar ulanish muvaffaqiyatli bo'lsa, qurilma asosiy interfeys rejimiga o'tadi.
- Wi -Fi ulanishi: qurilma xotirada saqlangan ma'lumotlar parametrlari mavjudligini tekshiradi: wifi.txt, mac.txt. Agar ma'lumotlar saqlanmasa, qurilma foydalanuvchi so'rovini rad etadi va avval WLAN ulanishi kerak bo'lgan pop-up xabarini yuboradi.
- TUG'ILISH: FuncGen bilan DIRECT CONNECTION singari muloqot qilish, lekin uzluksiz xabar almashish o'rniga, bitta qo'l siqish bor. Android qurilmasi WiFi tarmog'iga ulanganligini tekshiradi va foydalanuvchidan parolni kiritishni so'raydi. Agar qayta ulanish muvaffaqiyatli bo'lsa, Android qurilmasi SSID va parolni wifi.txt faylida saqlaydi. FuncGen bilan muvaffaqiyatli muloqotdan so'ng, qabul qilingan MAC manzilini mac.txt faylida saqlaydi.
- Chiqish: etarli aytilgan:)
WiFi skanerlash menejeri
Men ilova to'liq ishlashini va ilovadan tashqari tuzatishlarsiz bo'lishini xohlardim. Shunday qilib, men Wi -Fi tarmog'iga ma'lum kalit va SSID yordamida ulanish uchun barcha kerakli operatsiyalarni bajaradigan WiFi skanerini yaratdim.
Ma'lumot uzatish va TCP aloqasi
Bu ilovadagi asosiy kod bloki. Barcha foydalanuvchi interfeysi birliklari uchun FuncGen-ni kanallar uchun kerakli chiqishni ta'minlashga majburlaydigan ma'lum bir formatdagi aniq xabar (oxirgi bosqich) mavjud. Faoliyatda uch turdagi UI maydonlari mavjud:
-
Barlarni qidirish: Bu erda biz FuncGen chiqish parametrlarining haqiqiy diapazonini aniqlaymiz
- Amplituda
- DC ofset
- LCD yorqinligi
- LCD kontrasti
- Matnni tahrirlash: butun sonlarni aniq va aniq saqlash uchun chastota kiritish faqat raqamlar orqali amalga oshiriladi
-
Tugmalar: Mavjud ro'yxatlardan parametrlarni tanlash:
-
To'lqin shakli
- Sinus
- Uchburchak
- Shahar
- Kvadrat
- O'chirilgan
-
Ma'lumot olish
- Batareya holati (foiz)
- AC holati (tashqi quvvat manbai)
-
Yuklash opsiyasi (FuncGen MCU uchun)
- Zavod sozlamalari
- Qayta ishga tushirish
- Yopmoq
- To'g'ridan -to'g'ri ulash rejimi bilan qayta ishga tushiring
- WLAN - WLAN ulanish rejimi bilan qayta ishga tushirish
- Asosiy menyuga chiqish: etarli aytilgan:)
-
10 -qadam: Sinov
Tavsiya:
DIY ko'p funktsiyali energiya o'lchagichi V2.0: 12 qadam (rasmlar bilan)
DIY ko'p funktsiyali energiya o'lchagichi V2.0: Ushbu yo'riqnomada men sizga Wemos (ESP8266) asosidagi ko'p funktsiyali energiya o'lchagichni yasashni ko'rsataman. Bu kichik o'lchagich - bu kuchlanish, oqim, quvvat, energiya va quvvatni kuzatuvchi juda foydali qurilma. Bulardan tashqari, u havoni ham kuzatadi
"Professional ILC8038 funktsiyali generator DIY to'plami" bilan tanishish: 5 qadam
"Professional ILC8038 funktsiyali generator DIY to'plami" bilan tanishish: Men elektronika uchun yangi loyihalarni ishlab chiqayotgan edim. U "Professional ILC8038 funktsiyali sinus uchburchaklar kvadrat to'lqinli DIY to'plami" sifatida hisoblab chiqilgan va ko'plab sotuvchilardan mavjud
STC MCU bilan DIY funktsiyali generator: 7 qadam (rasmlar bilan)
STC MCU bilan DIY funktsiyali generator: bu STC MCU yordamida ishlab chiqarilgan funktsional generator. Faqat bir nechta komponentlar kerak va sxemasi oddiy. Texnik spetsifikatsiyalar: bitta kanalli kvadrat to'lqin shakli chastotasi: 1Hz ~ 2MHz to'lqin shakli sinus chastotasi: 1Hz ~ 10kHz amplitudasi: VCC, taxminan 5V Load abili
Oddiy funktsiyali generator: 5 qadam
Oddiy funktsiyali generator: Men oxirgi ko'rsatmamda sizga pwm signal generatorini qanday qurishni ko'rsatdim va undan boshqa to'lqin shakllarini filtrlash uchun ishlatdim. Bu yo'riqnomada men sizga oddiy funktsiyani/chastota generatorini qanday yasashni, u bilan o'rni qanday boshqarishni va qanday qilib
Arduino -da ko'chma funktsiyali generator: 7 qadam (rasmlar bilan)
Arduino -dagi ko'chma funktsiyali generator: Funktsiya generatori - bu juda foydali vosita, ayniqsa, biz o'z signalimizning ma'lum bir signalga javobini sinab ko'rayotganimizda. Bu yo'riqnomada men kichik, ishlatish uchun qulay, ko'chma funktsiyalar generatorining qurilish tartibini tasvirlab beraman