Orodha ya maudhui:
- Hatua ya 1: I IsC ni nini na kwa nini tunapenda
- Hatua ya 2: Wacha Tuchunguze Zaidi
- Hatua ya 3: I²C na ZIO
- Hatua ya 4: Je! Urefu wa Cable ya Juu ni upi?
- Hatua ya 5: Jinsi ya Kuunganisha Vifaa Vingi kwenye Basi Moja?
- Hatua ya 6: Je! Kukomeshwa kwa I2C ni Nini?
Video: Kuanzisha I2C na Moduli za Zio na Qwiic: Hatua 6
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
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 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
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
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?
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:
Misingi ya VBScript - Kuanzisha Hati zako, Ucheleweshaji na Zaidi !: Hatua 5
Misingi ya VBScript - Kuanzisha Maandiko Yako, Kuchelewesha na Zaidi !: Karibu kwenye mafunzo yangu ya kwanza juu ya jinsi ya kutengeneza VBScript na notepad. Na faili za.vbs, unaweza kuunda pranks za kuchekesha au virusi hatari. Katika mafunzo haya, nitakuonyesha amri za msingi kama kuanza hati yako, kufungua faili na mengi zaidi. Katika t
Uonyesho wa LCD wa I2C / IIC - Tumia LCD ya SPI kwa Uonyesho wa LCD wa I2C Kutumia SPI kwa Moduli ya IIC Na Arduino: Hatua 5
Uonyesho wa LCD wa I2C / IIC | Tumia LCD ya SPI kwa Uonyesho wa LCD wa I2C Kutumia SPI kwa Moduli ya IIC Pamoja na Arduino: Halo jamani kwani kawaida SPI LCD 1602 ina waya nyingi sana kuungana kwa hivyo ni ngumu sana kuiunganisha na arduino lakini kuna moduli moja inayopatikana sokoni ambayo inaweza badilisha onyesho la SPI kuwa onyesho la IIC kwa hivyo basi unahitaji kuunganisha waya 4 tu
Mkono wa Roboti Pamoja na Moduli za Zio Sehemu ya 3: 4 Hatua
Arm Robotic Pamoja na Moduli za Zio Sehemu ya 3: Chapisho hili la blogi ni sehemu ya Zio Robotic Series.Utangulizi Katika blogi yetu iliyopita, tulichapisha sehemu ya 1 na 2 ya mafunzo juu ya jinsi ya kudhibiti mkono wa Robotic ukitumia moduli za Zio. Sehemu ya 1 imejikita zaidi katika kudhibiti kiatomati Claw ya Robotic Arm yako
Mkono wa Roboti Pamoja na Moduli za Zio Sehemu ya 2: Hatua 11
Mkono wa Robotic Pamoja na Moduli za Zio Sehemu ya 2: Katika mafunzo ya leo, tutatumia huduma zote 4 na mtawala wa wireless wa PS2 kudhibiti mkono wa roboti. Chapisho hili la blogi ni sehemu ya Zio Robotic Series. Utangulizi Katika blogi yetu iliyopita, tulichapisha Sehemu ya 1 mafunzo juu ya jinsi ya kudhibiti Robotic Ar
Dhibiti mkono wa Roboti Ukiwa na Moduli za Zio Sehemu ya 1: Hatua 8
Dhibiti mkono wa Roboti na Moduli za Zio Sehemu ya 1: Chapisho hili la blogi ni sehemu ya Zio Robotic Series. Utangulizi Katika mafunzo haya, tutaunda mradi ambapo tutatumia moduli za Zio kudhibiti Nguvu ya Roboti. Mradi huu utakufundisha jinsi ya kutengeneza claw yako ya Robotic Arm kufungua na kufunga. Hii n