Satura rādītājs:
- 1. solis: PCB projektēšana
- 2. darbība. Protokola izstrāde
- 3. solis: programmaparatūras projektēšana
- 4. darbība: saskarne, izmantojot plūsmas kodu
- 5. darbība. Citas saskarnes metodes
- 6. darbība. Gatavs produkts
Video: Iebūvēta universālā interfeisa plate - USB/Bluetooth/WIFI vadība: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Es bieži uzskatu, ka es izveidoju bibliotēkas jauniem iegultiem moduļiem, pamatojoties uz ierīces datu lapu. Radot bibliotēku, es uzskatu, ka es iestrēdzu koda, apkopošanas, programmēšanas un pārbaudes ciklā, nodrošinot, ka lietas darbojas, un bez kļūdām. Bieži vien kompilēšanas un programmas laiks var būt daudz garāks nekā laiks, kas nepieciešams koda rediģēšanai, tāpēc veids, kā šīs darbības pārtraukt izstrādes laikā, būtu ļoti ērts.
Es arī bieži atklāju, ka vēlos savienot iegulto moduli ar datoru. Ja modulim nav īpaši USB savienojuma, kas bieži notiek, tad jums parasti ir jāiegādājas pārāk dārgs USB pārveidotājs, kas veiks vienu darbu, piemēram, tikai SPI vai tikai I2C.
Šo iemeslu dēļ es nolēmu izveidot universālo interfeisa plati. Tā ir izstrādāta, lai ar iebūvētiem moduļiem varētu ērti sazināties ar datoru.
Tā dēļa iegultās saskarnes funkcijas, par kurām es apmetos, ietver.
- Digitālā I/O
- I2C
- SPI
- UART
- PWM
- Servo motors
- ADC ievade
- DAC izeja
To visu var izmantot pilnīgi neatkarīgi.
Interfeisa paneli var kontrolēt, izmantojot USB savienojumu ar datoru, bet tam ir arī papildu WIFI vai Bluetooth moduļa savienojumi, lai varētu izmantot plati attālināti vai IoT tipa scenārijā.
Izmantojot standarta 2,54 mm piķa SIL galvenes, ir iespējams tieši savienot sieviešu dupontkabeļus starp plati un iegulto moduli, nodrošinot ātrus, uzticamus un bez lodēšanas savienojumus.
Es arī domāju par tādu lietu pievienošanu kā CAN, LIN, H-bridge utt., Bet tās var nākt vēlāk ar v2 pārskatīšanu.
1. solis: PCB projektēšana
Izstrādājot PCB, man patīk censties padarīt lietas pēc iespējas vienkāršākas. Ja jūs gatavojat būvēt dēļus ar rokām, ir svarīgi pievienot komponentus tikai tad, ja tie veic noteiktu mērķi un izmanto pēc iespējas vairāk mikrokontrollera iekšējo funkciju.
Aplūkojot savu vēlamo elektronikas piegādātāju, es atradu mikroshēmu, ar kuru es biju apmierināta un kurai bija funkcijas, kuras es meklēju, un tā bija par saprātīgām izmaksām. Mikroshēma, uz kuras es nokļuvu, bija PIC18F24K50.
Ar pieejamajām 23 I/O tapām tas ļāva man izmantot šīs funkcijas
- Digitālais I/O
- I2C
- SPI
- UART
- PWM x 2
- Servomotors x 6
- ADC ieeja x 3
- DAC izeja x 1
- I/O darbina no 5V vai 3V3
- Statusa gaismas diode
Viens no manis izvēlētā IC trūkumiem ir tas, ka tam ir tikai viena UART perifērija, un tāpēc, izmantojot Bluetooth vai Wifi vadības metodi, jūs nevarēsit izmantot UART savienojumu.
Iepriekš redzamajos attēlos ir redzama gatavā shēma un PCB.
2. darbība. Protokola izstrāde
Pirmais solis, izstrādājot protokolu, ir izlemt, kas tieši jums būs nepieciešams, lai tā varētu rīkoties. Sadalot lietas, tiek nodrošināts labāks kontroles līmenis, turpretī lietu apvienošana vienkāršo saskarni un samazina komiksu trafiku starp plati un datoru. Tā ir līdzsvarojoša spēle, kuru ir grūti pilnveidot.
Katrai tāfeles funkcijai jānorāda visi parametri un atdeve. Piemēram, funkcijai ADC ievades nolasīšanai var būt parametrs, kas norāda paraugu, un ievades vērtība, kas satur rezultātu.
Savā dizainā šeit ir to funkciju saraksts, kuras vēlējos iekļaut:
-
Digitālā I/O
- SetPin (PinNumber, State)
- Statuss = GetPin (PinNumber)
-
SPI
- Inicializēt (SPI režīms)
- DataIn = pārsūtīšana (DataOut)
- ControlChipSelect (kanāls, valsts)
- SetPrescaler (likme)
-
I2C
- Inicializēt ()
- Sākt ()
- Restartēt ()
- Apturēt ()
- SlaveAck = Sūtīt (DataOut)
- DataIn = saņemt (pēdējais)
-
UART
- Inicializēt ()
- TX baits (DataOut)
- BytesAvailable = RX skaits ()
- DataIn = RX baits ()
- SetBaud (Baud)
-
PWM
- Iespējot (kanāls)
- Atspējot (kanāls)
- SetFrequency (kanāls, frekvence)
- GetMaxDuty (nodeva)
- SetDuty (nodeva)
-
Servo
- Iespējot (kanāls)
- Atspējot (kanāls)
- SetPosition (kanāls, pozīcija)
-
ADC
ADC paraugs = paraugs (kanāls)
-
DAC
- Iespējot
- Atspējot
- Iestatītā izeja (spriegums)
-
BEZVADU INTERNETS
- SetSSID (SSID)
- Iestatīt paroli (paroli)
- Statuss = CheckConnectionStatus ()
- IP = GetIPAddress ()
Parametri ir norādīti iekavās, un atdeve tiek parādīta pirms simbola “vienāds”.
Pirms sākt kodēšanu, es katrai funkcijai piešķiru komandas kodu, sākot no 128 (binārais 0b10000000) un strādājot uz augšu. Es pilnībā dokumentēju protokolu, lai nodrošinātu, ka, tiklīdz mana galva ir ievadīta kodā, man ir jauks dokuments, uz kuru atsaukties. Pilns šī projekta protokola dokuments ir pievienots un ietver ienākošos komandu kodus un bitu platumus.
3. solis: programmaparatūras projektēšana
Kad protokols ir izveidots, ir jāīsteno aparatūras funkcionalitāte.
Izstrādājot vergu sistēmas, es izmantoju vienkāršu stāvokļa mašīnas tipa pieeju, lai mēģinātu maksimāli palielināt iespējamo komandu un datu caurlaidspēju, vienlaikus saglabājot programmaparatūras vienkāršu izpratni un atkļūdošanu. Tā vietā, ja jums ir nepieciešama labāka mijiedarbība ar citām pievienotajām ierīcēm, tā vietā var izmantot modernāku sistēmu, piemēram, Modbus, taču tas rada papildu izmaksas, kas palēninās darbību.
Stāvokļa mašīna sastāv no trim stāvokļiem:
1) Gaida komandas
2) Parametru saņemšana
3) Atbildēt
Trīs valstis mijiedarbojas šādi:
1) Mēs ejam cauri ienākošajiem baitiem buferī, līdz mums ir baits, kuram ir visnozīmīgākais bitu komplekts. Kad esam saņēmuši šādu baitu, mēs to salīdzinām ar zināmo komandu sarakstu. Ja mēs atrodam atbilstību, mēs piešķiram parametru baitu skaitu un atdodam baitus, lai tie atbilstu protokolam. Ja nav parametru baitu, mēs varam izpildīt komandu šeit un vai nu pāriet uz 3. stāvokli, vai restartēt 1. stāvokli. Ja ir parametru baiti, mēs pārietam uz 2. stāvokli.
2) Mēs ejam cauri ienākošajiem baitiem, tos saglabājot, līdz esam saglabājuši visus parametrus. Kad mums ir visi parametri, mēs izpildām komandu. Ja ir atgriešanās baiti, mēs pārietam uz 3. posmu. Ja nav nosūtāmu atgriešanās baitu, mēs atgriežamies 1. posmā.
3) Mēs ejam cauri ienākošajiem baitiem un katram baitam pārrakstām atbalss baitu ar derīgu atgriešanās baitu. Kad esam nosūtījuši visus atgriešanās baitus, mēs atgriežamies pirmajā posmā.
Es izmantoju Flowcode, lai izstrādātu programmaparatūru, jo tā vizuāli labi parāda, ko es daru. To pašu varētu izdarīt arī Arduino vai citās iegultās programmēšanas valodās.
Pirmais solis ir izveidot sakarus ar datoru. Lai to izdarītu, mikro ir jākonfigurē, lai tas darbotos pareizajā ātrumā, un mums ir jāpievieno kods, lai vadītu USB un UART perifērijas ierīces. Plūsmas kodā tas ir tik vienkārši, kā ievilkt projektā USB seriālo komponentu un UART komponentu no Comms komponenta izvēlnes.
Mēs pievienojam RX pārtraukumu un buferi, lai uztvertu ienākošās komandas UART, un mēs regulāri aptaujājam USB. Tad mēs varam savā atpūtas procesā izmantot buferšķīdumu.
Plūsmas koda projekts un ģenerētais C kods ir pievienoti.
4. darbība: saskarne, izmantojot plūsmas kodu
Plūsmas koda simulācija ir ļoti spēcīga un ļauj mums izveidot komponentu sarunai ar valdi. Izveidojot komponentu, mēs tagad varam vienkārši ievilkt komponentu mūsu projektā un uzreiz iegūt pieejamās tāfeles funkcijas. Kā papildu bonuss simulācijā var tikt izmantots jebkurš esošs komponents, kuram ir SPI, I2C vai UART perifērija, un komutācijas datus var ievadīt saskarnes panelī, izmantojot inžektora komponentu. Pievienotajos attēlos ir redzama vienkārša programma, lai displejā izdrukātu ziņojumu. Komunikācijas dati, kas tiek nosūtīti, izmantojot saskarnes paneli, uz faktisko displeja aparatūru un komponentu iestatīšanu, izmantojot I2C displeja, I2C inžektora un saskarnes paneļa komponentus.
Jaunais SCADA režīms Flowcode 8.1 ir absolūts papildu bonuss, jo pēc tam mēs varam uzņemties programmu, kas Flowcode simulatorā kaut ko dara, un eksportēt to, lai tā darbotos atsevišķi jebkurā datorā bez jebkādām licencēšanas problēmām. Tas varētu būt lieliski piemērots tādiem projektiem kā testa iekārtas vai sensoru kopas.
Es izmantoju šo SCADA režīmu, lai izveidotu WIFI konfigurācijas rīku, ko var izmantot, lai konfigurētu SSID un paroli, kā arī apkopotu moduļa IP adresi. Tas ļauj man visu iestatīt, izmantojot USB savienojumu, un pēc tam pārsūtīt uz WIFI tīkla savienojumu, kad viss darbojas.
Pievienoti daži projektu piemēri.
5. darbība. Citas saskarnes metodes
Tāpat kā Flowcode, jūs varat diezgan daudz izmantot savu izvēlēto programmēšanas valodu, lai sazinātos ar interfeisa paneli. Mēs izmantojām Flowcode, jo tajā jau bija iekļauta daļu bibliotēka, kuru mēs varētu nekavējoties sākt darbināt, bet tas attiecas arī uz daudzām citām valodām.
Šeit ir saraksts ar valodām un metodēm, kā sazināties ar interfeisa paneli.
Python - seriālās bibliotēkas izmantošana, lai straumētu datus uz COM portu vai IP adresi
Matlab - Failu komandu izmantošana, lai straumētu datus uz COM portu vai IP adresi
C ++ / C# / VB - izmantojot iepriekš ierakstītu DLL, tieši piekļūstot COM portam vai Windows TCP / IP API
Labview - izmantojot vai nu iepriekš uzrakstītu DLL, VISA sērijas komponentu vai TCP/IP komponentu
Ja kāds vēlas redzēt iepriekš minēto valodu ieviešanu, lūdzu, informējiet mani.
6. darbība. Gatavs produkts
Gatavais produkts, iespējams, būs ievērojama iezīme manā iegultajā instrumentu komplektā vēl vairākus gadus. Tas jau man ir palīdzējis izstrādāt komponentus dažādiem Grove displejiem un sensoriem. Tagad es varu pilnībā nokodēt kodu, pirms ķerties pie apkopošanas vai programmēšanas kļūdām.
Esmu pat izdalījis dažus dēļus kolēģiem, lai arī viņi varētu uzlabot savu darba plūsmu, un tie ir ļoti labi uzņemti.
Paldies, ka izlasījāt manu pamācību. Es ceru, ka tas jums šķita noderīgs, un cerams, ka tas iedvesmos jūs izveidot savus rīkus, lai paātrinātu produktivitāti.
Ieteicams:
12v universālā mirgojošā ķēde: 3 soļi
12v universālā mirgojošā ķēde: Kad mēs iegādājāmies lietotu automašīnu, pie automašīnas raga bija piestiprināts zibspuldzes ckt. man bija tik kaitinoši, ka man bija mirgojošs rags, tāpēc es noņēmu zibspuldzes ckt un saglabāju to citam mērķim. Šis ir universālais 12vdc zibspuldze mirgošanai
Iebūvēta LED 3D drukāta Ziemassvētku eglīte: 10 soļi (ar attēliem)
Iebūvēta LED 3D drukāta Ziemassvētku eglīte: Šī ir 3D drukāta Ziemassvētku eglīte, kuras iekšpusē ir iestrādātas adresējamas gaismas diodes. Tātad ir iespējams ieprogrammēt gaismas diodes jaukiem gaismas efektiem un izmantot 3D drukāto struktūru kā difuzoru. Koks ir atdalīts 4 posmos un pamata elements (koks
ESP8266 RGB LED STRIP WIFI vadība - NODEMCU kā IR tālvadības pults LED joslai, kas tiek kontrolēta, izmantojot Wifi - RGB LED STRIP viedtālruņa vadība: 4 soļi
ESP8266 RGB LED STRIP WIFI vadība | NODEMCU kā IR tālvadības pults LED joslai, kas tiek kontrolēta, izmantojot Wifi | RGB LED STRIP viedtālruņa vadība: Sveiki, puiši, šajā apmācībā mēs iemācīsimies izmantot nodemcu vai esp8266 kā IR tālvadības pulti, lai kontrolētu RGB LED sloksni, un Nodemcu vadīs ar viedtālruni, izmantojot wifi. Tātad būtībā jūs varat kontrolēt RGB LED STRIP ar savu viedtālruni
Izliekta lietotāja interfeisa izveidošana vienotībā virtuālajai realitātei: 4 soļi
Izliekta lietotāja interfeisa izveide Unity virtuālajai realitātei: ja meklējat bezmaksas un vienkāršu risinājumu, lai izveidotu izliektu lietotāja interfeisu savai virtuālās realitātes lietojumprogrammai vai VR spēlei, jūs esat īstajā vietā. Šajā emuārā jūs iemācīsities izveidot izliektu lietotāja interfeisa elementu, izmantojot Unity UI paplašinājumus
IPod interfeisa kabeļa uzstādīšana Toyota Corolla: 5 soļi
IPod interfeisa kabeļa uzstādīšana Toyota Corolla: Ja vēlaties IPod savienojumu ar Corolla rūpnīcas stereo, jūs varētu maksāt vietējam elektronikas veikalam USD 50 - USD 100 par uzstādīšanu; vai arī varat bez maksas instalēt šo kabeli. Es gribu jums parādīt, cik viegli ir instalēt