Përmbajtje:

Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI: 6 hapa
Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI: 6 hapa

Video: Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI: 6 hapa

Video: Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI: 6 hapa
Video: CS50 2013 - Week 9, continued 2024, Korrik
Anonim
Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI
Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI
Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI
Bordi i Ndërfaqes Universale të Integruar - Kontrolli USB/Bluetooth/WIFI

Shpesh gjej se krijoj biblioteka për module të reja të integruara nga e para bazuar në fletën e të dhënave të pajisjes. Në gjenerimin e bibliotekës gjej se jam mbërthyer në një cikël kodesh, përpiloj, programoj dhe testoj kur sigurohem që gjërat funksionojnë dhe janë pa gabime. Shpesh kohët e përpilimit dhe programit mund të jenë shumë më të gjata se koha që duhet për të redaktuar kodin dhe kështu një mënyrë për të prerë këto hapa kur të zhvillohet do të ishte shumë e dobishme.

Unë gjithashtu shpesh gjej që dua të ndërlidh një modul të ngulitur me një kompjuter. Nëse moduli nuk ka në mënyrë specifike një lidhje USB, e cila është shpesh rasti, atëherë në përgjithësi duhet të blini një konvertues USB të mbivlerësuar që do të bëjë një punë të vetme, siç është vetëm SPI ose vetëm I2C.

Për këto arsye vendosa të krijoj bordin e ndërfaqes universale. Designedshtë projektuar për të lejuar komunikime të lehta të bazuara në PC me module të ngulitura.

Karakteristikat e integruara të ndërfaqes së tabelës për të cilën u vendosa përfshijnë.

  • I/O dixhitale
  • I2C
  • SPI
  • UART
  • PWM
  • Servo Motor
  • Hyrja ADC
  • Dalja DAC

Të gjitha mund të përdoren plotësisht në mënyrë të pavarur.

Bordi i ndërfaqes mund të kontrollohet përmes një lidhje USB me PC, por gjithashtu ka lidhje opsionale WIFI ose module Bluetooth për të lejuar që bordi të përdoret në distancë ose në një skenar të tipit IoT.

Duke përdorur titujt standardë 2.54 mm SIL të katranit, është e mundur të lidhni drejtpërdrejt kabllot femra dupont midis tabelës dhe modulit të ngulitur duke lejuar lidhje të shpejta, të besueshme dhe pa saldim.

Mendova gjithashtu për shtimin e gjërave si CAN, LIN, H-bridge etj, por këto ndoshta mund të vijnë më vonë me një rishikim v2.

Hapi 1: Projektimi i PCB

Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB

Kur hartoj PCB -në më pëlqen të përpiqem t'i mbaj gjërat sa më të thjeshta të jetë e mundur. Kur do të ndërtoni dërrasa me dorë është e rëndësishme të shtoni vetëm përbërës kur ato bëjnë një qëllim specifik dhe të përdorin sa më shumë karakteristika të brendshme të mikrokontrolluesit.

Duke parë furnizuesin tim të preferuar elektronik, gjeta një çip me të cilin isha rehat që kishte veçoritë që kërkoja dhe ishte një kosto e arsyeshme. Çipi në të cilin zbrita ishte PIC18F24K50.

Me 23 kunjat në dispozicion I/O kjo më lejoi këto veçori

  • Digtal I/O
  • I2C
  • SPI
  • UART
  • PWM x 2
  • Servo Motor x 6
  • ADC input x 3
  • Dalja DAC x 1
  • I/O i drejtuar nga 5V ose 3V3
  • LED i statusit

Një pengesë e IC që zgjodha është se ka vetëm një periferik UART dhe kështu përdorimi i metodës së kontrollit Bluetooth ose Wifi do t'ju ndalojë të jeni në gjendje të përdorni lidhjen UART.

Në imazhet e mësipërme paraqitet skema e përfunduar dhe PCB.

Hapi 2: Hartimi i Protokollit

Hartimi i Protokollit
Hartimi i Protokollit

Hapi i parë në hartimin e protokollit është të vendosni se çfarë do t'ju duhet konkretisht bordi për të qenë në gjendje të bëni. Thyerja e gjërave shton një nivel më të mirë kontrolli ndërsa kombinimi i gjërave së bashku thjeshton ndërfaqen dhe zvogëlon trafikun e komunikimit midis bordit dhe kompjuterit. Gameshtë një lojë balancuese dhe e vështirë për tu përsosur.

Për secilin funksion të tabelës duhet të tregoni çdo parametër dhe kthim. Për shembull, një funksion për të lexuar një hyrje ADC mund të ketë një parametër për të specifikuar se cila hyrje në mostër dhe një vlerë kthyese që përmban rezultatin.

Në modelin tim këtu është lista e funksioneve që doja të përfshija:

  • I/O dixhitale

    • SetPin (PinNumber, State)
    • Gjendja = GetPin (PinNumber)
  • SPI

    • Fillimi (modaliteti SPI)
    • DataIn = Transferimi (DataOut)
    • ControlChipSelect (Channel, State)
    • SetPrescaler (Vlerësoni)
  • I2C

    • Fillimi ()
    • Fillo ()
    • Rifillo, fillo përsëri ()
    • Ndalo ()
    • SlaveAck = Dërgo (DataOut)
    • DataIn = Merr (e fundit)
  • UART

    • Fillimi ()
    • Byte TX (DataOut)
    • BytesAvailable = Numri RX ()
    • DataIn = Byte RX ()
    • SetBaud (Baud)
  • PWM

    • Aktivizo (kanalin)
    • Çaktivizo (kanalin)
    • Set Frekuenca (Kanali, Frekuenca)
    • GetMaxDuty (Detyrë)
    • SetDuty (Detyrë)
  • Servo

    • Aktivizo (kanalin)
    • Çaktivizo (kanalin)
    • SetPosition (Kanali, Pozicioni)
  • ADC

    ADCsample = Mostër (Kanal)

  • DAC

    • Aktivizo
    • Çaktivizo
    • SetOutput (Tensioni)
  • WIFI

    • SetSSID (SSID)
    • Vendosni fjalëkalimin (fjalëkalimin)
    • Statusi = CheckConnectionStatus ()
    • IP = GetIPAddress ()

Parametrat tregohen në kllapa dhe kthimet tregohen para simbolit të barabartë.

Para se të filloj kodimin, i caktoj secilit funksion një kod komandimi duke filluar nga 128 (binar 0b10000000) dhe duke punuar lart. Unë e dokumentoj protokollin plotësisht për të siguruar që sapo koka ime të jetë në kod, kam një dokument të mirë për t'iu referuar. Dokumenti i plotë i protokollit për këtë projekt është i bashkangjitur dhe përfshin kodet e komandës në hyrje dhe gjerësinë e bitit.

Hapi 3: Dizajnimi i firmuerit

Dizajnimi i firmuerit
Dizajnimi i firmuerit
Dizajnimi i firmuerit
Dizajnimi i firmuerit
Dizajnimi i firmuerit
Dizajnimi i firmuerit

Pasi të jetë krijuar protokolli, atëherë është një rast i zbatimit të funksionalitetit në harduer.

Unë miratoj një qasje të thjeshtë të tipit të makinerisë shtetërore kur zhvilloj sisteme skllevërish për të provuar dhe maksimizuar komandën potenciale dhe xhiros së të dhënave, duke e mbajtur firmware -in të thjeshtë për tu kuptuar dhe korrigjuar. Një sistem më i avancuar i tillë si Modbus mund të përdoret në vend të tij nëse keni nevojë për ndërveprim më të mirë me pajisjet e tjera të lidhura, por kjo shton shpenzimet që do të ngadalësojnë gjërat.

Makina shtetërore përbëhet nga tre gjendje:

1) Në pritje të komandave

2) Marrja e parametrave

3) Përgjigju

Të tre shtetet ndërveprojnë si më poshtë:

1) Ne kalojmë nëpër bajtët e ardhur në tampon derisa të kemi një bajt që ka bitin më të rëndësishëm. Pasi marrim një bajt të tillë e kontrollojmë atë kundër një liste të komandave të njohura. Nëse gjejmë një ndeshje atëherë caktojmë numrin e bajtëve të parametrave dhe kthejmë bajtë që të përputhen me protokollin. Nëse nuk ka byte parametrash atëherë mund ta kryejmë komandën këtu dhe ose të kalojmë në gjendjen 3 ose të rinisim gjendjen 1. Nëse ka parametra byte atëherë kalojmë në gjendjen 2.

2) Ne kalojmë nëpër bajtët në hyrje duke i ruajtur ato derisa të kemi ruajtur të gjithë parametrat. Pasi të kemi të gjithë parametrat ne kryejmë komandën. Nëse ka bajt kthyes atëherë kalojmë në fazën 3. Nëse nuk ka bajt kthyes për t'i dërguar atëherë kthehemi në fazën 1.

3) Ne kalojmë nëpër bajtët e ardhur dhe për secilin bajt mbishkruajmë një bajt eko me një bajt kthyes të vlefshëm. Pasi të kemi dërguar të gjithë bajtët e kthimit kthehemi në fazën 1.

Kam përdorur Flowcode për të hartuar firmuerin pasi tregon bukur vizualisht atë që po bëj. E njëjta gjë mund të bëhet po aq mirë në Arduino ose gjuhë të tjera programimi të ngulitura.

Hapi i parë është krijimi i komunikimit me PC. Për ta bërë këtë mikro duhet të konfigurohet që të funksionojë me shpejtësinë e duhur dhe ne duhet të shtojmë kod për të drejtuar periferikët USB dhe UART. Në Flowcode kjo është aq e lehtë sa të tërhiqni në projekt një komponent Serial USB dhe një komponent UART nga menyja e komponentit Comms.

Ne shtojmë një ndërprerje dhe tampon RX për të kapur komandat hyrëse në UART dhe ne anketojmë rregullisht USB. Ne pastaj mund të në procesin tonë të lirë tampon.

Projekti Flowcode dhe kodi C i gjeneruar janë bashkangjitur.

Hapi 4: Ndërfaqja përmes kodit të rrjedhës

Ndërfaqja përmes kodit të rrjedhës
Ndërfaqja përmes kodit të rrjedhës
Ndërfaqja përmes kodit të rrjedhës
Ndërfaqja përmes kodit të rrjedhës
Ndërfaqja përmes kodit të rrjedhës
Ndërfaqja përmes kodit të rrjedhës

Simulimi i Flowcode është shumë i fuqishëm dhe na lejon të krijojmë një komponent për të folur me tabelën. Në krijimin e komponentit ne tani thjesht mund ta tërheqim komponentin në projektin tonë dhe menjëherë t'i kemi funksionet e bordit në dispozicion. Si një bonus i shtuar çdo komponent ekzistues që ka një periferi SPI, I2C ose UART mund të përdoret në simulim dhe të dhënat e komunikimit mund të futen në bordin e ndërfaqes përmes një komponenti Injector. Imazhet e bashkangjitura tregojnë një program të thjeshtë për të printuar një mesazh në ekran. Të dhënat e komunikimit që dërgohen përmes Bordit të Ndërfaqes në pajisjen aktuale të ekranit dhe konfigurimin e komponentit me përbërësit I2C Display, I2C Injector dhe Interface Board.

Mënyra e re SCADA për Flowcode 8.1 është një bonus absolut i shtuar në atë që ne pastaj mund të marrim një program që bën diçka në imituesin Flowcode dhe ta eksportojmë atë në mënyrë që të funksionojë vetëm në çdo kompjuter pa ndonjë çështje licencimi. Kjo mund të jetë e shkëlqyeshme për projekte si pajisjet e testimit ose grupet e sensorëve.

Unë e përdor këtë mënyrë SCADA për të krijuar mjetin e konfigurimit WIFI që mund të përdoret për të konfiguruar SSID dhe fjalëkalimin, si dhe për të mbledhur adresën IP të modulit. Kjo më lejon të vendos gjithçka duke përdorur lidhjen USB dhe pastaj të transferoj në një lidhje rrjeti WIFI pasi gjërat të jenë në punë.

Disa projekte shembull janë bashkangjitur.

Hapi 5: Metoda të tjera të ndërlidhjes

Si dhe Flowcode ju mund të përdorni shumë gjuhën tuaj të programimit të zgjedhur për të komunikuar me bordin e ndërfaqes. Ne përdorëm Flowcode pasi kishte një bibliotekë të pjesëve të përfshira tashmë të cilat ne mund t'i ngrinim dhe të funksiononim menjëherë, por kjo vlen edhe për shumë gjuhë të tjera.

Këtu është një listë e gjuhëve dhe metodave për të komunikuar me bordin e Ndërfaqes.

Python - Përdorimi i një biblioteke serike për të transmetuar të dhëna në një port COM ose adresë IP

Matlab - Përdorimi i komandave File për të transmetuar të dhëna në një port COM ose adresë IP

C ++ / C# / VB - Duke përdorur ose një DLL të para -shkruar, duke hyrë drejtpërdrejt në portën COM ose Windows TCP / IP API

Labview - Duke përdorur ose një DLL të para -shkruar, përbërësin VISA Serial ose përbërësin TCP/IP

Nëse dikush dëshiron të shohë zbatimin e gjuhëve të mësipërme, ju lutem më tregoni.

Hapi 6: Produkt i përfunduar

Produkt i perfunduar
Produkt i perfunduar
Produkt i perfunduar
Produkt i perfunduar
Produkt i perfunduar
Produkt i perfunduar

Produkti i përfunduar ka të ngjarë të jetë një veçori e spikatur në kompletin tim të veglave të ngulitura për vitet në vazhdim. Tashmë më ka ndihmuar të zhvilloj përbërës për ekranet dhe sensorët e ndryshëm të Grove. Tani mund ta kap kodin plotësisht para se t'i drejtohem ndonjë komploti ose programimi mashtrimesh.

Unë madje kam shpërndarë disa borde për kolegët në mënyrë që ata të përmirësojnë rrjedhën e tyre të punës gjithashtu dhe këto janë pritur shumë mirë.

Faleminderit për leximin e Instructable tim, shpresoj se e keni gjetur të dobishme dhe shpresoj se do t'ju frymëzojë të krijoni mjetet tuaja për të përshpejtuar produktivitetin tuaj.

Recommended: