Orodha ya maudhui:

Kuanzisha I2C na Moduli za Zio na Qwiic: Hatua 6
Kuanzisha I2C na Moduli za Zio na Qwiic: Hatua 6

Video: Kuanzisha I2C na Moduli za Zio na Qwiic: Hatua 6

Video: Kuanzisha I2C na Moduli za Zio na Qwiic: Hatua 6
Video: Управление 16 серводвигателями с использованием модуля PCA9685 и Arduino V2 2024, Novemba
Anonim
Kuanzisha I2C na Moduli za Zio na Qwiic
Kuanzisha I2C na Moduli za Zio na Qwiic

Robin Sharma alisema: 'Maboresho madogo ya kila siku kwa wakati husababisha matokeo mazuri'. Labda unafikiria, 'Aw, chapisho lingine la I2C?'. Kweli, kuna maelfu ya habari linapokuja I2C. Lakini kaa karibu, hii sio tu nakala nyingine ya I2C. Mfumo wa Kuunganisha wa Qwiic na bodi za kuzunguka kwa pembeni za Zio hakika ni wageuzi wa mchezo wa I²C!

Utangulizi

Ikiwa unaunda miradi ya elektroniki na unafanya vitu vya kushangaza, unaweza kuwa umegundua kuwa miradi yako inapozidi kuwa kubwa, ubao wako wa mkate unaanza kuonekana kama shimo la nyoka (sawa sawa?).

Kwa kuongeza, ikiwa una miradi mingi inayoendelea, unatumia rundo la muda kubadilisha waya kutoka mradi hadi mradi.

Sisi ni watunga, kwa hivyo tunaelewa mapambano. Mchango wetu wa hivi karibuni kwa jamii ya OHS ni mfumo wa prototyping wa msimu unaoitwa ZIO, ukitumia mfumo wa unganisho wa Qwiic. Qwiic ni njia rahisi sana ya kuwasiliana na bodi ya mzunguko inayoweza kupangiliwa kwa sensorer, watendaji na bodi za kuzuka kupitia I²C.

Hatua ya 1: I IsC ni nini na kwa nini tunapenda

I²C ni nini na kwanini tunaipenda
I²C ni nini na kwanini tunaipenda

I²C ndio basi inayotumiwa zaidi ya mabwana anuwai, ikimaanisha kuwa chips anuwai zinaweza kushikamana na basi moja. Inatumika katika matumizi mengi kati ya bwana na mtumwa au vifaa vingi vya bwana na watumwa. Kutoka kwa watawala wadogo, hadi kwa simu mahiri, kwa matumizi ya viwandani, haswa kwa vifaa vya video kama wachunguzi wa kompyuta. Inaweza kutekelezwa kwa urahisi katika miundo mingi ya elektroniki (na hivi karibuni ni rahisi zaidi na kiunganishi cha Qwiic).

Ikiwa tulilazimika kuelezea I²C kwa maneno mawili, labda tungetumia unyenyekevu na kubadilika.

Moja ya faida kubwa ya I²C juu ya itifaki zingine za mawasiliano ni kwamba ni kiunganishi cha waya mbili maana yake inahitaji waya mbili tu za ishara, SDA (Serial Data Line) na SCL (Serial Clock Line). Inaweza kuwa sio itifaki ya haraka zaidi, lakini inajulikana kwa kubadilika sana, ikiruhusu kubadilika kwa voltage ya basi.

Sifa nyingine muhimu inayofanya basi hii kuvutia ni ushirika kati ya bwana na mtumwa. Vifaa vingi vinaweza kushikamana na basi moja na hakuna haja ya kubadilisha wiring kati ya vifaa kwani kila kifaa kina anwani ya kipekee (bwana huchagua kifaa kuwasiliana).

Hatua ya 2: Wacha Tuchunguze Zaidi

Wacha Tuangalie Kwa Ukaribu
Wacha Tuangalie Kwa Ukaribu
Wacha Tuangalie Kwa Ukaribu
Wacha Tuangalie Kwa Ukaribu
Wacha Tuangalie Kwa Ukaribu
Wacha Tuangalie Kwa Ukaribu
Wacha Tuangalie Kwa Ukaribu
Wacha Tuangalie Kwa Ukaribu

Kwa hivyo, jinsi I²C inafanya kazi? Hapo awali tulitaja kuwa moja ya huduma muhimu zaidi ni posho ya voltage, hii inawezekana kwani I²C hutumia mtoza wazi (anayejulikana pia kama mtaro wazi) kwa laini zote za mawasiliano za SDA na SCL.

SCL ni ishara ya saa, inasawazisha uhamishaji wa data kati ya vifaa kwenye basi ya I²C na inazalishwa na bwana. Wakati SDA inabeba data kutuma au kupokea kutoka kwa sensorer au vifaa vingine vilivyounganishwa na basi.

Pato kwa ishara hiyo imeunganishwa ardhini, ikimaanisha kuwa kila kifaa huwekwa chini. Ili kurejesha ishara kuwa juu, laini zote mbili zimeunganishwa na voltage nzuri ya usambazaji kupitia kontena la kuvuta ili kusitishwa.

Na moduli za ZIO tulikufunika, bodi zetu zote za kuzuka zinajumuisha kontena muhimu la kuvuta.

I²C inafuata itifaki ya ujumbe ili kuwasiliana na bwana na vifaa vya watumwa. Mistari miwili (SCL na SDA) ni ya kawaida ndani ya watumwa wote wa I²C, watumwa wote kwenye basi wanasikiliza ujumbe.

Itifaki ya ujumbe ifuatavyo fomati iliyoonyeshwa kwenye picha iliyoambatishwa:

Inaweza kuonekana ngumu katika mtazamo wa kwanza, lakini tumepata habari njema. Unapotumia Arduino IDE kuna maktaba Wire.h, kurahisisha usanidi wote kwa itifaki ya ujumbe wa I²C.

Hali ya kuanza hutengenezwa wakati laini ya data (SDA) inapungua chini wakati laini ya saa (SCL) bado iko juu. Wakati wa kuanzisha mradi kwenye kiolesura cha Arduino hatuhitaji kuwa na wasiwasi juu ya kutengeneza hali ya kuanza, itaanzishwa na kazi maalum (Wire.beginTransmission (slaveAddress)).

Kwa kuongezea, kazi hii pia huanzisha usambazaji na anwani maalum ya mtumwa. Ili kuchagua mtumwa kuwasiliana kwenye basi iliyoshirikiwa, bwana anaendelea kupeana anwani kwa mtumwa ili awasiliane. Baada ya anwani kuwekwa kuwasiliana na mtumwa anayefaa, ujumbe unafuata na kusoma au kuandika kidogo, kulingana na hali iliyochaguliwa.

Chumvi hutoa jibu kwa kukubali (ACK au NACK), na vifaa vingine vya watumwa kwenye basi hupunguza data iliyobaki hadi ujumbe ukamilike na basi ni bure. Kufuatia ACK, mlolongo wa rejista ya anwani ya watumwa inaendelea kupitisha.

Wakati data inatumwa, ujumbe wa uhamisho unaisha na hali ya kuacha. Ili kumaliza usambazaji laini ya data hubadilika kwenda juu na laini ya saa inabaki kuwa juu.

Hatua ya 3: I²C na ZIO

I²C na ZIO
I²C na ZIO

Tuligundua kuwa ningekuwa bora kuchora maelezo yote hapo juu katika mazungumzo kati ya bwana (a.k.a Zuino, micro yetu) na watumwa (bodi za kuzuka za ZIO).

Katika mfano huu wa kimsingi tunatumia sensorer ya umbali wa ZIO TOF na ZIO OLED Display. TOF inatoa habari ya umbali wakati ZIO Oled inaonyesha data. Vipengele na vifaa vilivyotumika:

  • ZUINO M UNO - Mwalimu
  • Onyesho la ZIO OLED - Mtumwa_01
  • Sensorer ya Umbali wa ZIO TOF - Mtumwa_02
  • Cable ya Qwiic - Uunganisho rahisi kwa vifaa vya I²C

Hapa kuna jinsi ilivyo rahisi kuunganisha bodi kwa kila mmoja kwa kutumia Qwiic, hakuna ubao wa mkate unaohitajika, nyaya za ziada zilizo na pini au pini za ZUINO. Mstari wa Saa na Takwimu ya ZUINO imeunganishwa kiatomati kwa sensa ya Umbali na OLED kwa kutumia kiunganishi cha Qwiic. Kamba zingine mbili ni 3V3 na GND.

Kwanza kabisa, wacha tuangalie habari inayohitajika, kuwasiliana na bwana na watumwa ambao tungehitaji kujua anwani za kipekee.

Kifaa: Sensor ya Umbali wa ZIO

  • Nambari ya Sehemu: RFD77402
  • Anwani ya I2C: 0x4C
  • Kiungo cha Hati

Kifaa: Onyesho la ZIO OLED

  • Nambari ya Sehemu: SSD1306
  • Anwani: 0x3C
  • Kiungo cha Hati

Ili kupata anwani ya kipekee ya vifaa vya watumwa fungua data iliyotolewa. Kwa sensa ya Umbali anwani hutolewa kwenye sekunde ya Moduli ya Muunganisho. Kila sensorer au sehemu ina lahajedwali tofauti na habari tofauti iliyotolewa. Wakati mwingine inaweza kuwa ngumu kuipata kwenye hati ya kurasa 30 (dokezo: fungua zana ya kupata kwenye mtazamaji wa PDF na andika "anwani" au "Kitambulisho cha kifaa" kwa utaftaji wa haraka).

Sasa kwa kuwa anwani ya kipekee kwa kila kifaa inajulikana, kusoma / kuandika data, anwani ya rejista ya ndani inapaswa kutambuliwa (pia kutoka kwa data). Kuangalia data ya sensorer ya umbali wa ZIO anwani ili kupata umbali inalingana na 0x7FF.

Katika kesi hii haswa hatuhitaji habari hii kwa kutumia sensa kama maktaba inafanya tayari.

Hatua inayofuata, mikono kwenye nambari. ZUINO M UNO inaambatana na Arduino IDE, ambayo inafanya usanidi iwe rahisi sana. Maktaba zinazohitajika kwa mradi huu ni zifuatazo:

  • Waya.h
  • Matunda_GFX.h
  • Adafruit_SSD1306
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h ni maktaba ya arduino, maktaba mbili za Adafruit hutumiwa kwa OLED na zile za mwisho hutumiwa kwa sensa ya umbali. Angalia mafunzo haya juu ya jinsi ya kuunganisha *.zip maktaba kwa Arduino IDE.

Kuangalia nambari, kwanza maktaba zinapaswa kutangazwa na anwani ya OLED.

Katika usanidi () usambazaji huanza na maandishi huonyeshwa kwa utendaji wa sensa ya umbali.

Kitanzi () kinachukua vipimo kwa umbali na OLED inachapisha.

Angalia mfano wa chanzo kwenye kiunga cha github.

Kutumia bodi zote za kuzuka ni rahisi sana kwa maana zote. Kwa upande wa kiunganishi kontakt ya Qwiic hufanya usanidi wa vifaa haraka na kwa fujo kuliko kuwa na ubao wa mkate na jumper. Na kwa firmware, kwa kutumia maktaba zinazoendana kwa mawasiliano ya I2C, sensa na onyesho hufanya nambari iwe rahisi zaidi.

Hatua ya 4: Je! Urefu wa Cable ya Juu ni upi?

Urefu wa juu hutegemea vivutaji vya kuvuta vilivyotumika kwa SDA na SCL na uwezo wa kebo. Vipinga pia huamua kasi ya basi, chini kasi ya basi, kikomo cha kebo ndefu zaidi. Uwezo wa kebo hupunguza idadi ya vifaa kwenye basi, na urefu wa kebo. Matumizi ya kawaida hupunguza urefu wa waya hadi 2.5-3.5m (9-12ft) lakini kuna tofauti kulingana na kebo iliyotumiwa. Kwa marejeleo, urefu wa juu wa matumizi ya I2C ukitumia waya 22 za AWG zilizopotoka ni karibu m 1 (3 ft) kwa 100 kbaund, 10 m (30ft) saa 10kbaud.

Kuna tovuti kama mogami au WolframAlpha inayoruhusu kukadiria urefu wa kebo.

Hatua ya 5: Jinsi ya Kuunganisha Vifaa Vingi kwenye Basi Moja?

Jinsi ya Kuunganisha Vifaa Vingi kwenye Basi Moja?
Jinsi ya Kuunganisha Vifaa Vingi kwenye Basi Moja?
Jinsi ya Kuunganisha Vifaa Vingi kwenye Basi Moja?
Jinsi ya Kuunganisha Vifaa Vingi kwenye Basi Moja?

I2C ni basi ya serial, ambapo vifaa vyote vimeunganishwa kwenye basi iliyoshirikiwa. Na kiunganishi cha Qwiic bodi tofauti za kuzuka zinaweza kushikamana moja baada ya nyingine kwa kutumia kiunganishi cha Qwiic. Kila bodi ina angalau viunganisho 2 vya Qwiic.

Tuliunda bodi tofauti kusuluhisha mapungufu ya Qwiic na I2C. Bodi ya adapta ya Zio Qwiic hutumiwa kuungana kupitia vifaa vya Qwiic bila kiunganishi cha Qwiic, ikitumia Qwiic kwa kebo ya kichwa cha kiume cha mkate. Ujanja huu rahisi huunda uwezekano wa ukomo.

Ili kuunganisha vifaa tofauti kwenye mtandao wa basi au mti tulikuja na Zio Qwiic Hub.

Mwishowe, Zio Qwiic MUX inaruhusu unganisho la vifaa viwili au zaidi kwa kutumia anwani moja.

Hatua ya 6: Je! Kukomeshwa kwa I2C ni Nini?

I2C inahitajika kumaliza, kwa hivyo laini hiyo ni bure kuongeza vifaa vingine. Hii inaweza kuwa ya kutatanisha, kwani neno la kukomesha hutumiwa kawaida kuelezea vipinga-vuta vya kuvuta basi (kutoa hali ya msingi, katika kesi hii kusambaza sasa kwa mzunguko). Kwa bodi za Zuino, thamani ya kupinga ni 4.7kΩ.

Ikiwa kukomeshwa kutaachwa, hakutakuwa na mawasiliano kabisa kwenye basi - bwana hangeweza kutoa hali ya kuanza, kwa hivyo ujumbe hautasambazwa kwa watumwa.

Kwa habari zaidi na uwezo wa Zio angalia bidhaa mpya za Zio. Lengo kwenye nakala hii ni kuelezea misingi ya mawasiliano ya I²C na jinsi inavyofanya kazi na kiunganishi cha Zio na Qwiic. Endelea kufuatilia taarifa zaidi.

Ilipendekeza: