Orodha ya maudhui:

Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI: Hatua 6
Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI: Hatua 6

Video: Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI: Hatua 6

Video: Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI: Hatua 6
Video: Meeting #5 - 4/29/2022 | ETF team meeting and dialogue 2024, Novemba
Anonim
Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI
Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI
Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI
Iliyopachikwa Bodi ya Maingiliano ya Ulimwenguni - Udhibiti wa USB / Bluetooth / WIFI

Mara nyingi mimi huona ninaunda maktaba za moduli mpya zilizopachikwa kutoka mwanzoni kulingana na data ya kifaa. Katika kutengeneza maktaba naona nimeshikwa na mzunguko wa nambari, kukusanya, mpango na mtihani wakati wa kuhakikisha mambo yanafanya kazi na hayana mdudu. Mara nyingi nyakati za kukusanya na programu zinaweza kuwa ndefu zaidi na wakati inachukua kuhariri nambari na hivyo njia ya kukata hatua hizi wakati wa kukuza itakuwa rahisi sana.

Mara nyingi pia ninaona nataka kusanikisha moduli iliyoingia na PC. Ikiwa moduli haina muunganisho wa USB haswa ambayo huwa ni kesi basi inabidi ununue kibadilishaji cha USB kilichozidi ambacho kitafanya kazi moja kama SPI tu au I2C tu.

Ni kwa sababu hizi niliamua kuunda bodi ya kiolesura cha ulimwengu. Imeundwa kuruhusu mawasiliano rahisi ya PC na moduli zilizoingia.

Vipengele vya kiolesura vilivyoingia vya bodi niliyokaa ni pamoja na.

  • Digital I / O.
  • I2C
  • SPI
  • UART
  • PWM
  • Servo Motor
  • Uingizaji wa ADC
  • Pato la DAC

Yote ambayo inaweza kutumika kwa kujitegemea kabisa.

Bodi ya interface inaweza kudhibitiwa kupitia unganisho la USB kwa PC, lakini pia ina unganisho la moduli ya WIFI au moduli ya Bluetooth ili kuruhusu bodi itumike kwa mbali au katika hali ya aina ya IoT.

Kwa kutumia vichwa vya kawaida vya kiwango cha SIL 2.54mm inawezekana kuunganisha nyaya za kike za dupont kati ya bodi na moduli iliyoingia ili kuruhusu unganisho la bure, la kuaminika na la solder.

Nilifikiri pia juu ya kuongeza vitu kama CAN, LIN, H-daraja nk lakini hizi zinaweza kuja baadaye na marekebisho ya v2.

Hatua ya 1: Kubuni PCB

Kubuni PCB
Kubuni PCB
Kubuni PCB
Kubuni PCB
Kubuni PCB
Kubuni PCB
Kubuni PCB
Kubuni PCB

Wakati wa kubuni PCB napenda kujaribu kuweka vitu rahisi iwezekanavyo. Wakati utakuwa unaunda bodi kwa mkono ni muhimu kuongeza tu vifaa wakati hufanya kusudi maalum na kutumia vitu vingi vya ndani vya mdhibiti mdogo iwezekanavyo.

Kuangalia muuzaji wangu wa elektroniki niliyempendelea nilipata chip ambayo nilikuwa na urahisi nayo ambayo ilikuwa na huduma ambazo nilikuwa nikitafuta na ilikuwa gharama nzuri. Chip nilichotua kilikuwa PIC18F24K50.

Na pini 23 za I / O zilizopo hii iliniruhusu huduma hizi

  • Digtal I / O
  • I2C
  • SPI
  • UART
  • PWM x 2
  • Servo Motor x 6
  • Uingizaji wa ADC x 3
  • Pato la DAC x 1
  • I / O inaendeshwa kutoka 5V au 3V3
  • Hali ya LED

Upungufu mmoja wa IC niliyochagua ni moja tu ya pembeni ya UART na kwa hivyo kutumia njia ya kudhibiti Bluetooth au Wifi itakuacha uweze kutumia unganisho la UART.

Imeonyeshwa kwenye picha hapo juu ni skimu ya kumaliza na PCB.

Hatua ya 2: Kubuni Itifaki

Kubuni Itifaki
Kubuni Itifaki

Hatua ya kwanza katika kubuni itifaki ni kuamua ni nini haswa utahitaji bodi iweze kufanya. Kuvunja vitu kunaongeza kiwango bora cha udhibiti wakati kuchanganya vitu pamoja kunarahisisha interface na hupunguza trafiki kati ya bodi na PC. Ni mchezo wa kusawazisha na ni ngumu kukamilisha.

Kwa kila kazi ya bodi unapaswa kuonyesha vigezo na kurudi yoyote. Kwa mfano kazi ya kusoma pembejeo ya ADC inaweza kuwa na kigezo cha kutaja ni pembejeo gani ya sampuli na thamani ya kurudi iliyo na matokeo.

Katika muundo wangu hapa kuna orodha ya kazi ambazo nilitaka kujumuisha:

  • Digital I / O.

    • SetPin (PinNumber, Jimbo)
    • Hali = GetPin (PinNumber)
  • SPI

    • Awali (Njia ya SPI)
    • DataIn = Uhamisho (DataOut)
    • ControlChip Chagua (Kituo, Jimbo)
    • SetPrescaler (Kiwango)
  • I2C

    • Awali ()
    • Anza ()
    • Anzisha tena ()
    • Simama ()
    • SlaveAck = Tuma (DataOut)
    • DataIn = Pokea (Mwisho)
  • UART

    • Awali ()
    • TX Byte (DataOut)
    • BytesInapatikana = Hesabu ya RX ()
    • DataIn = RX Byte ()
    • SetBaud (Baud)
  • PWM

    • Washa (Kituo)
    • Lemaza (Kituo)
    • SetFrequency (Kituo, Mzunguko)
    • Wajibu wa GetMaxDuty
    • SetDuty (Ushuru)
  • Servo

    • Washa (Kituo)
    • Lemaza (Kituo)
    • WekaPosition (Kituo, Nafasi)
  • ADC

    Mfano wa ADC = Mfano (Kituo)

  • DAC

    • Washa
    • Lemaza
    • Kuweka Pato (Voltage)
  • WIFI

    • KuwekaSSID (SSID)
    • Weka Nenosiri (Nenosiri)
    • Hali = CheckConnectionStatus ()
    • IP = Anwani ya Anwani ()

Vigezo vinaonyeshwa kwenye mabano na kurudi huonyeshwa kabla ya ishara sawa.

Kabla ya kuanza kuweka nambari napeana kila kazi nambari ya amri kuanzia 128 (binary 0b10000000) na kufanya kazi juu. Ninaandika itifaki kikamilifu ili kuhakikisha kuwa kichwa changu kinapokuwa kwenye nambari nina hati nzuri ya kurejelea. Hati kamili ya itifaki ya mradi huu imeambatanishwa na inajumuisha nambari za amri zinazoingia na upana kidogo.

Hatua ya 3: Kubuni Firmware

Kubuni Firmware
Kubuni Firmware
Kubuni Firmware
Kubuni Firmware
Kubuni Firmware
Kubuni Firmware

Mara itifaki itakapoanzishwa basi kesi ya kutekeleza utendaji kwenye vifaa.

Ninachukua njia rahisi ya aina ya mashine ya serikali wakati wa kuunda mifumo ya watumwa kujaribu na kuongeza uwezo wa kupitisha amri na data wakati wa kuweka firmware rahisi kuelewa na utatuzi. Mfumo wa hali ya juu zaidi kama Modbus unaweza kutumika badala yake ikiwa unahitaji mwingiliano bora na vifaa vingine vilivyounganishwa lakini hii inaongeza kichwa cha juu ambacho kitapunguza mambo.

Mashine ya serikali ina majimbo matatu:

1) Kusubiri amri

2) Kupokea vigezo

3) Jibu

Mataifa hayo matatu yanaingiliana kama ifuatavyo:

1) Tunapita baiti zinazoingia kwenye bafa mpaka tuwe na kaiti ambayo ina seti muhimu zaidi. Mara tu tunapopokea baiti kama hiyo tunaiangalia dhidi ya orodha ya amri zinazojulikana. Ikiwa tunapata mechi basi tunapeana idadi ya ka za parameta na ka za kurudi ili zilingane na itifaki. Ikiwa hakuna baiti za parameta basi tunaweza kutekeleza amri hapa na ama kuruka hadi hali 3 au kuanzisha upya hali 1. Ikiwa kuna baiti za parameter basi tunahamia hali 2.

2) Tunapita kupitia ka zinazoingia kuzihifadhi hadi tuhifadhi vigezo vyote. Mara tu tunapokuwa na vigezo vyote tunafanya amri. Ikiwa kuna baiti za kurudi basi tunahamia hatua ya 3. Ikiwa hakuna baiti za kurudi za kutuma basi tunarudi kwa hatua ya 1.

3) Tunapita baiti zinazoingia na kwa kila baiti tunaandika byte ya mwangwi na baiti halali ya kurudi. Mara tu tutakapotuma kaiti zote za kurudi tunarudi kwenye hatua ya 1.

Nilitumia Flowcode kubuni firmware kwani inaonyesha vizuri kuibua kile ninachofanya. Jambo lile lile linaweza kufanywa sawa sawa katika Arduino au lugha zingine za programu zilizopachikwa.

Hatua ya kwanza ni kuanzisha mawasiliano na PC. Ili kufanya hivyo ndogo inahitaji kusanidiwa ili kuendesha kwa kasi inayofaa na lazima tuongeze nambari ya kuendesha vifaa vya USB na UART. Katika Flowcode hii ni rahisi kama kuvuta kwenye mradi sehemu ya Serial ya USB na sehemu ya UART kutoka kwa menyu ya sehemu ya Comms.

Tunaongeza usumbufu wa RX na bafa ili kukamata amri zinazoingia kwenye UART na tunachagua USB mara kwa mara. Tunaweza wakati wa mchakato wetu wa burudani bafa.

Mradi wa Flowcode na nambari iliyozalishwa ya C imeambatishwa.

Hatua ya 4: Kuingiliana kupitia Flowcode

Kuingiliana kupitia Njia ya mtiririko
Kuingiliana kupitia Njia ya mtiririko
Kuingiliana kupitia Njia ya mtiririko
Kuingiliana kupitia Njia ya mtiririko
Kuingiliana kupitia Njia ya mtiririko
Kuingiliana kupitia Njia ya mtiririko

Uigaji wa Flowcode ni nguvu sana na inatuwezesha kuunda sehemu ya kuzungumza na bodi. Katika kuunda sehemu tunaweza sasa kuburuta sehemu kwenye mradi wetu na mara moja kazi za bodi zipatikane. Kama bonasi iliyoongezwa sehemu yoyote iliyopo ambayo ina SPI, I2C au pembeni ya UART inaweza kutumika katika uigaji na data za comms zinaweza kupigwa kwa Bodi ya Maingiliano kupitia sehemu ya Injector. Picha zilizoambatanishwa zinaonyesha mpango rahisi wa kuchapisha ujumbe kwenye onyesho. Takwimu za comms ambazo zinatumwa kupitia Bodi ya Maingiliano kwa vifaa halisi vya onyesho na usanidi wa sehemu na Uonyesho wa I2C, I2C Injector na vifaa vya Bodi ya Maingiliano.

Njia mpya ya SCADA ya Flowcode 8.1 ni bonasi iliyoongezwa kabisa kwa kuwa tunaweza kuchukua programu ambayo hufanya kitu kwenye simulator ya Flowcode na kuisafirisha ili iweze kusimama peke yake kwenye PC yoyote bila maswala yoyote ya leseni. Hii inaweza kuwa nzuri kwa miradi kama vifaa vya majaribio au nguzo za sensorer.

Ninatumia hali hii ya SCADA kuunda zana ya usanidi ya WIFI ambayo inaweza kutumika kusanidi SSID na nywila na pia kukusanya anwani ya IP ya moduli. Hii inaniruhusu kuweka kila kitu kwa kutumia unganisho la USB na kisha kuhamishia kwa muunganisho wa mtandao wa WIFI mara tu mambo yanapoanza.

Baadhi ya miradi imeambatanishwa.

Hatua ya 5: Njia zingine za Kuingiliana

Pamoja na Flowcode unaweza kutumia sana lugha yako ya programu ya kuchagua kuwasiliana na bodi ya kiolesura. Tulitumia Flowcode kwani ilikuwa na maktaba ya sehemu zilizojumuishwa tayari ambazo tunaweza kuamka na kukimbia mara moja lakini hii inatumika pia kwa lugha zingine nyingi.

Hapa kuna orodha ya lugha na mbinu za kuwasiliana na bodi ya Interface.

Python - Kutumia maktaba ya serial kusambaza data kwenye bandari ya COM au anwani ya IP

Matlab - Kutumia maagizo ya Faili kutiririsha data kwenye bandari ya COM au anwani ya IP

C ++ / C # / VB - Kutumia ama DLL iliyoandikwa mapema, kufikia moja kwa moja bandari ya COM au Windows TCP / IP API

Labview - Kutumia ama DLL iliyoandikwa mapema, sehemu ya VISA Serial au sehemu ya TCP / IP

Ikiwa mtu yeyote angependa kuona lugha hizo hapo juu zinatekelezwa basi tafadhali nijulishe.

Hatua ya 6: Bidhaa iliyokamilishwa

Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa

Bidhaa iliyokamilishwa inaweza kuwa sifa maarufu katika kitanda changu cha zana kilichopachikwa kwa miaka ijayo. Tayari imenisaidia kukuza vifaa vya maonyesho na sensorer anuwai za Grove. Ninaweza sasa kupata nambari iliyotundikwa kabisa kabla ya kutumia mkusanyiko wowote au programu ya shenanigans.

Nimetoa hata bodi zingine kwa wenzao ili waweze kuboresha mtiririko wao wa kazi pia na hizi zimepokelewa vizuri sana.

Asante kwa kusoma kitabu kinachoweza kufundishwa natumai umeona ni muhimu na tunatumahi kwamba itakupa msukumo wa kuunda zana zako ili kuharakisha uzalishaji wako.

Ilipendekeza: