Mundarija:

O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati: 6 qadam
O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati: 6 qadam

Video: O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati: 6 qadam

Video: O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati: 6 qadam
Video: vayfayga parolsiz ulanish(3) 2024, Noyabr
Anonim
O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati
O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati
O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati
O'rnatilgan universal interfeys kartasi - USB/Bluetooth/WIFI nazorati

Men tez -tez qurilma ma'lumotlar jadvaliga asoslangan noldan yangi o'rnatilgan modullar uchun kutubxonalar yarataman. Kutubxonani yaratishda, men o'zimni kodlar, kompilyatsiya, dasturlar va sinovlar jarayonida qolib ketaman, bu esa ishlarning ishlashini va xatosizligini ta'minlaydi. Ko'pincha kompilyatsiya va dastur vaqtlari kodni tahrir qilish vaqtidan ancha uzoq bo'lishi mumkin, shuning uchun ishlab chiqishda bu qadamlarni kesib tashlash juda qulay bo'ladi.

Men tez -tez ko'milgan modulni shaxsiy kompyuter bilan bog'lashni xohlayman. Agar modulda USB ulanishi bo'lmasa, u tez -tez uchrab turadigan bo'lsa, siz odatda SPI yoki faqat I2C kabi bitta ishni bajaradigan juda qimmat USB konvertorini sotib olishingiz kerak bo'ladi.

Aynan shu sabablarga ko'ra men universal interfeys kartasini yaratishga qaror qildim. O'rnatilgan modullar yordamida kompyuterda oson aloqa o'rnatishga mo'ljallangan.

Men o'rnatgan taxtaning o'rnatilgan interfeys xususiyatlari quyidagilarni o'z ichiga oladi.

  • Raqamli kirish -chiqish
  • I2C
  • SPI
  • UART
  • PWM
  • Servo dvigatel
  • ADC usuli
  • DAC chiqishi

Bularning barchasi mutlaqo mustaqil ravishda ishlatilishi mumkin.

Interfeys taxtasi kompyuterga USB ulanishi orqali boshqarilishi mumkin, shuningdek, kengashni masofadan yoki IoT tipidagi stsenariyda ishlatishga imkon beruvchi ixtiyoriy WIFI yoki Bluetooth modulli ulanishlarga ega.

Standart 2,54 mm balandlikdagi SIL sarlavhalarini ishlatib, dupontli ayol kabellarni to'g'ridan -to'g'ri taxta va o'rnatilgan modul o'rtasida tez, ishonchli va lehimsiz ulanish imkonini beradi.

Men CAN, LIN, H-ko'prik va boshqalarni qo'shishni o'ylardim, lekin ular keyinchalik v2 versiyasi bilan kelishi mumkin.

1 -qadam: tenglikni loyihalash

PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni

PCBni loyihalashda men hamma narsani iloji boricha sodda saqlashga harakat qilaman. Qachonki siz taxtalarni qo'lda qurmoqchi bo'lsangiz, komponentlarni faqat ma'lum bir maqsadda va mikrokontrolderning iloji boricha ko'proq ichki funktsiyalaridan foydalangan holda qo'shish muhimdir.

Men tanlagan elektronika etkazib beruvchisiga qarab, men o'zimga qulay bo'lgan chipni topdim, bu men izlayotgan xususiyatlarga ega va o'rtacha narx. Men tushgan chip PIC18F24K50 edi.

Mavjud 23 ta kirish -chiqish pinlari bilan bu xususiyatlar menga imkon berdi

  • Digtal I/U
  • I2C
  • SPI
  • UART
  • PWM x 2
  • Servo dvigatel x 6
  • ADC kirish x 3
  • DAC chiqishi x 1
  • I/U 5V yoki 3V3 dan boshqariladi
  • LED holati

Men tanlagan IC -ning bir kamchiligi shundaki, u faqat bitta UART atrof -muhit qurilmasiga ega, shuning uchun Bluetooth yoki Wi -Fi boshqaruv usulidan foydalanish UART ulanishidan foydalanishni to'xtatadi.

Tayyor sxemalar va PCB yuqoridagi rasmlarda ko'rsatilgan.

2 -qadam: Protokolni loyihalash

Protokolni loyihalash
Protokolni loyihalash

Protokolni ishlab chiqishning birinchi bosqichi - bu sizga nima qilish kerakligini bilishdir. Vazifalarni buzish boshqaruvning yanada yuqori darajasini qo'shadi, narsalarni birlashtirish esa interfeysni soddalashtiradi va boshqaruv paneli bilan kompyuter o'rtasidagi trafikni kamaytiradi. Bu muvozanat o'yini va uni takomillashtirish qiyin.

Kengashning har bir funktsiyasi uchun har qanday parametr va qaytarishni ko'rsatish kerak. Masalan, ADC kirishini o'qish funktsiyasi qaysi kirishni tanlashni va natijani o'z ichiga olgan qaytish qiymatini ko'rsatadigan parametrga ega bo'lishi mumkin.

Mening dizaynimda men kiritmoqchi bo'lgan funktsiyalar ro'yxati:

  • Raqamli kirish -chiqish

    • SetPin (PinNumber, shtat)
    • Shtat = GetPin (PinNumber)
  • SPI

    • Boshlash (SPI rejimi)
    • DataIn = uzatish (DataOut)
    • ControlChipSelect (Kanal, shtat)
    • SetPrescaler (Rate)
  • I2C

    • Boshlash ()
    • Boshlash ()
    • Qayta ishga tushirish ()
    • STOP ()
    • SlaveAck = Yuborish (DataOut)
    • DataIn = Qabul qilish (Oxirgi)
  • UART

    • Boshlash ()
    • TX bayt (DataOut)
    • BytesAvailable = RX soni ()
    • DataIn = RX bayt ()
    • SetBaud (Baud)
  • PWM

    • Yoqish (kanal)
    • O'chirish (kanal)
    • SetFrequency (kanal, chastota)
    • GetMaxDuty (vazifa)
    • SetDuty (vazifa)
  • Servo

    • Yoqish (kanal)
    • O'chirish (kanal)
    • O'rnatish pozitsiyasi (kanal, pozitsiya)
  • ADC

    ADCsample = namuna (kanal)

  • DAC

    • Yoqish
    • O'chirish
    • O'rnatish chiqishi (kuchlanish)
  • WIFI

    • SetSSID (SSID)
    • Parolni o'rnatish (parol)
    • Holat = CheckConnectionStatus ()
    • IP = GetIPAddress ()

Parametrlar qavs ichida ko'rsatiladi va qaytish tenglik belgisidan oldin ko'rsatiladi.

Kodlashni boshlashdan oldin men har bir funktsiyaga 128 (ikkilik 0b10000000) dan boshlab yuqoriga qarab ishlaydigan buyruq kodini tayinlayman. Men protokolni to'liq hujjatlashtiraman, shunda boshim kodga kirsa, menda yaxshi hujjat bor. Ushbu loyiha uchun to'liq protokol hujjati ilova qilinadi va kiruvchi buyruq kodlari va bit kengliklarini o'z ichiga oladi.

3 -qadam: dasturiy ta'minotni loyihalash

Firmware dasturini loyihalash
Firmware dasturini loyihalash
Firmware dasturini loyihalash
Firmware dasturini loyihalash
Firmware dasturini loyihalash
Firmware dasturini loyihalash

Protokol o'rnatilgandan so'ng, bu apparatdagi funktsiyalarni amalga oshirishdir.

Men dasturiy ta'minotni tushunish va disk raskadrovka uchun sodda qilib, potentsial buyruqlar va ma'lumotlar o'tkazuvchanligini oshirish uchun qul tizimlarini ishlab chiqishda oddiy davlat tipidagi yondashuvni qo'llayman. Agar siz boshqa ulangan qurilmalar bilan yaxshiroq aloqada bo'lishni xohlasangiz, buning o'rniga Modbus kabi yanada ilg'or tizimdan foydalanish mumkin, lekin bu ishni sekinlashtiradigan qo'shimcha xarajatlarni qo'shadi.

Davlat mashinasi uchta holatdan iborat:

1) buyruqlarni kutish

2) parametrlarni qabul qilish

3) javob bering

Uch davlat o'zaro ta'sir qiladi:

1) Biz eng muhim bitlar to'plamiga ega bo'lgan baytga ega bo'lmaguncha buferdagi kiruvchi baytlardan o'tamiz. Biz bunday baytni olganimizda, biz uni ma'lum buyruqlar ro'yxati bilan tekshiramiz. Agar biz moslikni topsak, biz protokolga mos keladigan baytlar va qaytariladigan baytlar sonini belgilaymiz. Agar parametr baytlari bo'lmasa, biz bu erda buyruqni bajaramiz yoki 3 -holatga o'tamiz yoki 1 -holatni qaytadan boshlaymiz. Agar parametr baytlari bo'lsa, biz 2 -holatga o'tamiz.

2) Biz barcha parametrlarni saqlamagunimizcha, ularni saqlaydigan kiruvchi baytlardan o'tamiz. Barcha parametrlarga ega bo'lgach, biz buyruqni bajaramiz. Qaytish baytlari bo'lsa, biz 3 -bosqichga o'tamiz. Agar yuboriladigan baytlar bo'lmasa, biz 1 -bosqichga qaytamiz.

3) Biz kiruvchi baytlardan o'tamiz va har bir bayt uchun echo baytini to'g'ri qaytish bayti bilan yozamiz. Qaytish baytlarini yuborganimizdan so'ng, biz 1 -bosqichga qaytamiz.

Men dasturiy ta'minotni ishlab chiqish uchun Flowcode -dan foydalandim, chunki u nima qilayotganimni ingl. Xuddi shu narsani Arduino yoki boshqa o'rnatilgan dasturlash tillarida ham yaxshi bajarish mumkin.

Birinchi qadam - kompyuter bilan aloqa o'rnatish. Buning uchun mikrofonni to'g'ri tezlikda ishlashini sozlash kerak va biz USB va UART tashqi qurilmalarini haydash uchun kod qo'shishimiz kerak. Flowcode -da, bu loyihaga Comms komponentlari menyusidan USB Serial komponenti va UART komponentini tortish kabi oson.

Biz UART -ga kiruvchi buyruqlarni qabul qilish uchun RX uzilishi va buferini qo'shamiz va biz USB -ni muntazam ravishda so'roq qilamiz. Biz bo'sh vaqtimizda buferni bo'shatishimiz mumkin.

Flowcode loyihasi va yaratilgan C kodi biriktirilgan.

4 -qadam: Oqim kodi orqali interfeys

Oqim kodi orqali interfeys
Oqim kodi orqali interfeys
Oqim kodi orqali interfeys
Oqim kodi orqali interfeys
Oqim kodi orqali interfeys
Oqim kodi orqali interfeys

Flowcode simulyatsiyasi juda kuchli va boshqaruv paneli bilan gaplashish uchun komponent yaratishga imkon beradi. Komponentni yaratishda biz hozirda komponentani o'z loyihamizga tortib olib boramiz va darhol taxta funktsiyalari mavjud bo'ladi. Qo'shimcha bonus sifatida simulyatsiyada SPI, I2C yoki UART atrof -muhit qurilmalariga ega bo'lgan har qanday mavjud komponentdan foydalanish mumkin va aloqa ma'lumotlari Injektor komponenti orqali interfeys kartasiga o'tkazilishi mumkin. Qo'shilgan rasmlar displeyga xabarni chop etish uchun oddiy dasturni ko'rsatadi. Interfeys platasi orqali I2C Display, I2C Injektor va Interface Board komponentlari yordamida displeyning haqiqiy uskunasiga va komponentlar sozlamalariga yuboriladi.

Flowcode 8.1 uchun yangi SCADA rejimi - bu qo'shimcha qo'shimcha bonus, chunki biz Flowcode simulyatorida biror narsa qiladigan dasturni olib, uni eksport qila olamiz, shunda u har qanday kompyuterda litsenziyasiz muammosiz ishlaydi. Bu sinov qurilmalari yoki sensorlar klasterlari kabi loyihalar uchun ajoyib bo'lishi mumkin.

Men ushbu SCADA rejimidan SSID va parolni sozlash hamda modulning IP -manzilini yig'ish uchun ishlatilishi mumkin bo'lgan WIFI konfiguratsiya vositasini yaratish uchun foydalanaman. Bu menga hamma narsani USB ulanishi yordamida sozlash va keyin ishlayotganidan keyin WIFI tarmog'iga o'tkazish imkonini beradi.

Ba'zi namunali loyihalar ilova qilingan.

5 -qadam: Boshqa interfeys usullari

Flowcode -dan tashqari, siz interfeys kartasi bilan muloqot qilish uchun o'zingiz xohlagan dasturlash tilidan foydalanishingiz mumkin. Biz Flowcode -dan foydalandik, chunki uning qismlari kutubxonasi bor edi, biz uni darhol ishga tushirishimiz mumkin edi, lekin bu boshqa ko'plab tillarga ham tegishli.

Bu erda interfeys paneli bilan muloqot qilish uchun tillar va usullar ro'yxati.

Python - Ma'lumotlarni COM portiga yoki IP -manzilga uzatish uchun ketma -ket kutubxonadan foydalanish

Matlab - Ma'lumotlarni COM portiga yoki IP -manzilga uzatish uchun Fayl buyruqlaridan foydalanish

C ++ / C# / VB - oldindan yozilgan DLL yordamida, to'g'ridan -to'g'ri COM portiga yoki Windows TCP / IP API -ga kirish.

Labview - oldindan yozilgan DLL, VISA Serial komponenti yoki TCP/IP komponentidan foydalanish

Agar kimdir yuqoridagi tillarning bajarilishini ko'rishni istasa, menga xabar bering.

6 -qadam: tayyor mahsulot

Tayyor mahsulot
Tayyor mahsulot
Tayyor mahsulot
Tayyor mahsulot
Tayyor mahsulot
Tayyor mahsulot

Tayyor mahsulot, ehtimol, ko'p yillar davomida mening ko'milgan asboblar to'plamimda muhim xususiyat bo'lib qoladi. Bu menga Grove -ning turli displeylari va datchiklari uchun komponentlar ishlab chiqishga yordam berdi. Endi men har qanday kompilyatsiya yoki dasturlashdan oldin kodni to'liq mixlangan qilib olishim mumkin.

Hatto men hamkasblarimga ish oqimini yaxshilashlari uchun bir nechta taxtalarni tarqatdim va ular juda yaxshi qabul qilindi.

Mening ko'rsatmalarni o'qiganingiz uchun tashakkur, umid qilamanki, siz uni foydali deb topdingiz va umid qilamanki, bu sizga o'z mahsuldorligingizni tezlashtirish uchun ilhom beradi.

Tavsiya: