Mündəricat:
- Addım 1: PCB dizaynı
- Addım 2: Protokolun hazırlanması
- Addım 3: Firmware Dizaynı
- Addım 4: Flowcode vasitəsilə əlaqə qurun
- Addım 5: Digər Araşdırma Metodları
- Addım 6: Hazır məhsul
Video: Daxili Universal İnterfeys Kartı - USB/Bluetooth/WIFI Nəzarəti: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Tez -tez cihaz məlumat cədvəlinə əsasən sıfırdan yeni quraşdırılmış modullar üçün kitabxana yaratdığımı görürəm. Kitabxana yaratarkən, bir işin içərisində qaldığımı, hər şeyin işləməsini və səhvsiz olmasını təmin edərkən tərtib etməyi, proqramlaşdırmağı və sınadığımı görürəm. Tez -tez tərtib və proqram vaxtları, kodu düzəltmək üçün lazım olan vaxtdan çox daha uzun ola bilər və buna görə inkişaf edərkən bu addımları kəsməyin bir yolu çox lazımlı olardı.
Mən də tez -tez PC ilə əlaqədar modulu birləşdirmək istədiyimi görürəm. Modulun tez -tez olduğu bir USB bağlantısı yoxdursa, ümumiyyətlə yalnız SPI və ya yalnız I2C kimi bir işi yerinə yetirəcək həddindən artıq qiymətli bir USB çeviricisi almalısınız.
Məhz bu səbəblərdən universal interfeys lövhəsi yaratmağa qərar verdim. Daxili modullarla PC əsaslı asan ünsiyyət qurmaq üçün nəzərdə tutulmuşdur.
Yerləşdirdiyim lövhənin quraşdırılmış interfeys xüsusiyyətləri daxildir.
- Rəqəmsal I/O
- I2C
- SPI
- UART
- PWM
- Servo Motor
- ADC girişi
- DAC çıxışı
Hamısı tamamilə müstəqil olaraq istifadə edilə bilər.
İnterfeys lövhəsi PC -yə USB bağlantısı ilə idarə oluna bilər, eyni zamanda lövhənin uzaqdan və ya IoT tipli bir ssenaridə istifadə olunmasına imkan verən əlavə WIFI və ya Bluetooth modulu bağlantılarına malikdir.
Standart 2.54 mm -lik SIL başlıqlarından istifadə edərək, qadın dupont kabellərini lövhə ilə gömülü modul arasında birbaşa birləşdirmək mümkündür ki, bu da sürətli, etibarlı və lehimsiz əlaqələrə imkan verir.
Mən də CAN, LIN, H-körpü və s.
Addım 1: PCB dizaynı
PCB dizayn edərkən hər şeyi mümkün qədər sadə saxlamağı sevirəm. Əl ilə lövhələr quracağınız zaman, komponentləri yalnız müəyyən bir məqsədlə işlədikləri və mikrokontrolörün mümkün qədər çox daxili xüsusiyyətlərindən istifadə etdikləri zaman əlavə etmələri vacibdir.
Tercih etdiyim elektronika tədarükçüsünə baxdığımda axtardığım xüsusiyyətlərə sahib olan və uyğun bir qiymətə sahib olduğum bir çip tapdım. Girdiyim çip PIC18F24K50 idi.
Mövcud 23 G/Ç pinləri ilə bu xüsusiyyətlərə icazə verdim
- Digtal I/O
- I2C
- SPI
- UART
- PWM x 2
- Servo Motor x 6
- ADC girişi x 3
- DAC çıxışı x 1
- G/Ç 5V və ya 3V3 -dən idarə olunur
- Vəziyyət LED
Seçdiyim IC -nin bir çatışmazlığı, yalnız bir UART ətraf qurğusuna sahib olmasıdır və buna görə Bluetooth və ya Wifi nəzarət metodundan istifadə etməklə UART bağlantısından istifadə etməyiniz dayandırılacaqdır.
Bitmiş sxematik və PCB yuxarıdakı şəkillərdə göstərilmişdir.
Addım 2: Protokolun hazırlanması
Protokolun hazırlanmasında ilk addım, lövhənin konkret olaraq nəyə qadir olacağına qərar verməkdir. Şeyi parçalamaq daha yaxşı bir idarəetmə səviyyəsi əlavə edir, halbuki şeyləri bir araya gətirmək interfeysi asanlaşdırır və lövhə ilə kompüter arasındakı əlaqəni azaldır. Balanslaşdırıcı bir oyundur və mükəmməlləşdirmək çətindir.
Lövhənin hər bir funksiyası üçün hər hansı bir parametri və qaytarımı göstərməlisiniz. Məsələn, bir ADC girişini oxumaq üçün bir funksiyada hansı girişin nümunə götürülməsi və nəticəni ehtiva edən bir qaytarma dəyəri ola bilər.
Dizaynımda daxil etmək istədiyim funksiyaların siyahısı budur:
-
Rəqəmsal I/O
- SetPin (PinNumber, Dövlət)
- Vəziyyət = GetPin (PinNumber)
-
SPI
- Başlanğıc (SPI rejimi)
- DataIn = Transfer (DataOut)
- ControlChipSelect (Kanal, Dövlət)
- SetPrescaler (Qiymət)
-
I2C
- Başlanğıc ()
- Başlamaq ()
- Yenidən başlamaq ()
- Dur ()
- SlaveAck = Göndər (DataOut)
- DataIn = Alın (Son)
-
UART
- Başlanğıc ()
- TX Bayt (DataOut)
- BytesAvailable = RX sayı ()
- DataIn = RX Bayt ()
- SetBaud (Baud)
-
PWM
- Aktiv et (Kanal)
- Deaktiv edin (Kanal)
- SetFrequency (Kanal, Tezlik)
- GetMaxDuty (Duty)
- SetDuty (Vəzifə)
-
Servo
- Aktiv et (Kanal)
- Deaktiv edin (Kanal)
- SetPosition (Kanal, Vəzifə)
-
ADC
ADCsample = Nümunə (Kanal)
-
DAC
- Aktiv et
- Deaktiv edin
- Çıxış (Gərginlik)
-
WIFI
- SetSSID (SSID)
- Şifrə təyin edin (Şifrə)
- Status = CheckConnectionStatus ()
- IP = GetIPAddress ()
Parametrlər mötərizədə göstərilir və qaytarmalar bərabər simvolundan əvvəl göstərilir.
Kodlamağa başlamazdan əvvəl hər bir funksiyaya 128 -dən (ikili 0b10000000) başlayaraq yuxarıya doğru işləyən bir əmr kodu təyin edirəm. Başım koda düşdükdən sonra geri qayıtmaq üçün gözəl bir sənədin olmasını təmin etmək üçün protokolu tam sənədləşdirirəm. Bu layihə üçün tam protokol sənədi əlavə olunur və daxil olan əmr kodlarını və bit genişliklərini ehtiva edir.
Addım 3: Firmware Dizaynı
Protokol qurulduqdan sonra, bu, cihazın funksionallığını tətbiq etməkdir.
Firmware proqramını başa düşmək və düzəltmək üçün sadə saxlayarkən potensial əmr və məlumat ötürmə qabiliyyətini artırmaq üçün kölə sistemləri inkişaf etdirərkən sadə bir dövlət maşın tipli bir yanaşma tətbiq edirəm. Digər bağlı qurğularla daha yaxşı qarşılıqlı əlaqəyə ehtiyacınız varsa, bunun əvəzinə Modbus kimi daha inkişaf etmiş bir sistem istifadə edilə bilər, lakin bu, işi ləngidəcək əlavə xərclər əlavə edir.
Dövlət maşını üç vəziyyətdən ibarətdir:
1) Əmrləri gözləyin
2) Parametrlərin alınması
3) Cavab verin
Üç dövlət aşağıdakı kimi qarşılıqlı təsir göstərir:
1) Ən əhəmiyyətli bit dəsti olan bir bayt olana qədər tampondakı daxil olan baytlardan keçirik. Belə bir bayt aldıqdan sonra onu məlum əmrlərin siyahısı ilə yoxlayırıq. Bir uyğunluq tapsaq, protokola uyğun olaraq bayt və qaytarma baytlarının sayını təyin edirik. Parametr baytı yoxdursa, burada əmri yerinə yetirə bilərik və ya 3 -cü vəziyyətə keçə bilərik və ya 1 -ci vəziyyətə yenidən başlaya bilərik. Əgər parametr baytları varsa, 2 -ci vəziyyətə keçirik.
2) Bütün parametrləri saxlayana qədər onları saxlayan gələn baytlardan keçirik. Bütün parametrləri əldə etdikdən sonra əmri yerinə yetiririk. Dönüş baytları varsa, 3 -cü mərhələyə keçirik. Göndəriləcək heç bir geri dönmə baytı yoxdursa, 1 -ci mərhələyə qayıdırıq.
3) Gələn baytlardan keçirik və hər bayt üçün echo baytı etibarlı bir qayıtma baytı ilə yazırıq. Bütün qaytarma baytlarını göndərdikdən sonra 1 -ci mərhələyə qayıdırıq.
Firmware dizayn etmək üçün Flowcode istifadə etdim, çünki nə etdiyimi əyani şəkildə nümayiş etdirir. Eyni şey Arduino və ya digər əlaqədar proqramlaşdırma dillərində də eyni dərəcədə yaxşı edilə bilər.
İlk addım PC ilə əlaqə qurmaqdır. Bunu etmək üçün mikrofonu düzgün sürətlə işləmək üçün konfiqurasiya etməliyik və USB və UART ətraf qurğularını idarə etmək üçün kod əlavə etməliyik. Flowcode -da bu, Comms komponent menyusundan bir USB Serial komponentini və UART komponentini layihəyə sürükləmək qədər asandır.
UART -a daxil olan əmrləri tutmaq üçün bir RX kəsmə və tampon əlavə edirik və USB -ni mütəmadi olaraq sorğu edirik. Ardından boş vaxtımızda tamponu işlədə bilərik.
Flowcode layihəsi və yaradılan C kodu əlavə olunur.
Addım 4: Flowcode vasitəsilə əlaqə qurun
Flowcode simulyasiyası çox güclüdür və lövhə ilə danışmaq üçün bir komponent yaratmağımıza imkan verir. Komponenti yaradarkən, indi sadəcə komponenti layihəmizə sürükləyə bilərik və lövhə funksiyalarını dərhal əldə edə bilərik. Əlavə bir bonus olaraq, bir SPI, I2C və ya UART ətraf qurğusu olan hər hansı bir komponent simulyasiyada istifadə edilə bilər və comms məlumatları bir Enjektör komponenti vasitəsilə İnterfeys Kartına ötürülə bilər. Əlavə edilmiş şəkillər, mesajı ekrana çap etmək üçün sadə bir proqramı göstərir. İnterfeys lövhəsi vasitəsilə I2C Display, I2C Injector və Interface Board komponentləri ilə həqiqi ekran aparatına və komponentlərin qurulmasına göndərilən məlumat.
Flowcode 8.1 üçün yeni SCADA rejimi mütləq əlavə bir bonusdur ki, sonra Flowcode simulyatorunda bir şey edən bir proqramı götürə və ixrac edə bilərik ki, heç bir lisenziyalaşdırma problemi olmadan hər hansı bir kompüterdə tək işləsin. Bu test qurğuları və ya sensor qrupları kimi layihələr üçün əla ola bilər.
Bu SCADA rejimindən SSID və şifrəni konfiqurasiya etmək, həmçinin modulun IP ünvanını toplamaq üçün istifadə edilə bilən WIFI konfiqurasiya vasitəsi yaratmaq üçün istifadə edirəm. Bu, hər şeyi USB bağlantısı ilə qurmağa və işlər bitdikdən sonra WIFI şəbəkəsinə keçməyə imkan verir.
Bəzi nümunə layihələr əlavə olunur.
Addım 5: Digər Araşdırma Metodları
Flowcode ilə yanaşı, interfeys lövhəsi ilə ünsiyyət qurmaq üçün seçdiyiniz proqramlaşdırma dilindən də istifadə edə bilərsiniz. Flowcode -dan istifadə edərək dərhal işə sala biləcəyimiz hissələr kitabxanası olduğu üçün istifadə etdik, lakin bu bir çox digər dillərə də aiddir.
İnterfeys lövhəsi ilə ünsiyyət qurmağın yolları və dillərinin siyahısı burada.
Python - Məlumatların COM portuna və ya IP ünvanına axını üçün seriyalı kitabxanadan istifadə
Matlab - Məlumatların COM portuna və ya IP ünvanına axını üçün Fayl əmrlərindən istifadə
C ++ / C# / VB - COM portuna və ya Windows TCP / IP API -yə birbaşa daxil olaraq əvvəlcədən yazılmış bir DLL istifadə edərək.
Labview - Əvvəlcədən yazılmış DLL, VISA Serial komponenti və ya TCP/IP komponentindən istifadə
Kimsə yuxarıdakı dillərin tətbiq olunmasını görmək istəyirsə, mənə bildirin.
Addım 6: Hazır məhsul
Hazır məhsul, ehtimal ki, gələcək illər ərzində gömülü alət dəstimdə görkəmli bir xüsusiyyət olacaq. Artıq müxtəlif Grove displeyləri və sensorlar üçün komponentlər hazırlamağıma kömək etdi. İndi hər hansı bir tərtibata və ya proqramlaşdırma proqramına müraciət etmədən əvvəl kodu tamamilə mismarlandıra bilərəm.
İş axınlarını yaxşılaşdırmaq üçün həmkarlarım üçün hətta bəzi lövhələr də verdim və bunlar çox yaxşı qarşılandı.
Təlimatımı oxuduğunuz üçün təşəkkürlər Ümid edirəm faydalı oldunuz və inşallah məhsuldarlığınızı sürətləndirmək üçün öz vasitələrinizi yaratmağınıza ilham verəcəkdir.
Tövsiyə:
Raspberry Pi ilə İnterfeys GPS Modulu: 10 addım
Raspberry Pi ilə Qarşılıqlı GPS Modulu: Hey Uşaqlar! GPS modulunu Raspberry Pi ilə birləşdirmək istəyirsiniz? Amma bunu etməkdə çətinlik çəkirsən? "Narahat olmayın, sizə kömək etmək üçün buradayam! Aşağıdakı hissələri istifadə edərək başlaya bilərsiniz:
DS1307 RTC ilə 8051 İnterfeys və LCD -də Zaman Damğasını Göstərmək: 5 Addım
DS1307 RTC ilə 8051 İnterfeys və LCD -də Zaman Damğasını Göstərmək: Bu təlimatda sizə 8051 mikrokontrolörünü ds1307 RTC ilə necə birləşdirə biləcəyimizi izah etdik. Burada proteus simulyasiyasından istifadə edərək RTC vaxtını lcd -də göstəririk
Arduino ilə İnterfeys TM1637 Ekran Modulu: 3 addım
Arduino ilə Interfacing TM1637 Ekran Modulu: Əs-Salam-O-Aleykum! Bu təlimat, TM1637 Ekran modulunu Arduino ilə əlaqələndirməkdir. Bu, Dörd Rəqəmli Yeddi Segmentli Ekran Moduludur. Müxtəlif rənglərdə olur. Mənimki Qırmızı Rəngdir. Tm1637 Ic istifadə edir
Batareyanın daxili müqavimətini ölçmək üçün 4 addım: 4 addım
Batareyanın Daxili Müqavimətini Ölçmək üçün 4 Adım: Hamurun daxili müqavimətini ölçməyə kömək edə biləcək 4 sadə addım
Geek - Köhnə Laptop Sabit Diskindən Kredit Kartı/Vizit Kartı Sahibi .: 7 Addım
Geek - Köhnə Laptop Sabit Diskindən Kredit Kartı / Vizit Kartı Sahibi. Laptop sabit diskim öldükdə və yararsız hala düşəndə bu dəli bir fikirlə gəldim. Tamamlanmış şəkilləri bura daxil etdim