Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Uunganisho wa Kimwili
- Hatua ya 2: Jinsi ya Kutumia Maktaba
- Hatua ya 3: Peleka Takwimu za Msingi
- Hatua ya 4: Pokea Takwimu za Msingi
- Hatua ya 5: Upimaji
Video: Mawasiliano ya Siri ya Arduino: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Miradi mingi ya Arduino inategemea kupitisha data kati ya Arduino kadhaa.
Ikiwa wewe ni hobbyist anayejenga gari la RC, ndege ya RC, au kubuni kituo cha hali ya hewa na onyesho la mbali, utahitaji kujua jinsi ya kuhamisha data ya serial kutoka Arduino hadi nyingine. Kwa bahati mbaya, ni ngumu kwa wanaopenda kupata mawasiliano ya data ya serial kufanya kazi katika miradi yao wenyewe. Hii ni kwa sababu data ya serial hutumwa kama mkondo wa ka.
Bila muktadha wa aina yoyote ndani ya mtiririko wa ka, haiwezekani kutafsiri data. Bila kuwa na uwezo wa kutafsiri data, Arduino zako hazitaweza kuwasiliana kwa uaminifu. Muhimu ni kuongeza data hii ya muktadha kwenye mkondo wa baiti kwa kutumia muundo wa pakiti ya kawaida.
Ubunifu wa pakiti ya serial, kujaza pakiti, na kuchambua pakiti ni ngumu na ngumu kufikia. Kwa bahati nzuri kwa watumiaji wa Arduino, kuna maktaba zinazoweza kufanya mantiki hii ngumu nyuma ya pazia ili uweze kuzingatia kupata mradi wako ufanye kazi bila kichwa cha ziada. Inayoweza kufundishwa itatumia maktaba SerialTransfer.h kwa usindikaji wa pakiti za serial.
Kwa kifupi: hii inayoweza kufundishwa itaenda juu ya jinsi unaweza kutekeleza data dhabiti ya seri kwa urahisi katika mradi wowote ukitumia maktaba SerialTransfer.h. Ikiwa unataka kujifunza zaidi juu ya nadharia ya kiwango cha chini juu ya mawasiliano thabiti ya serial, angalia mafunzo haya.
Vifaa
-
2 Arduino
Inatiwa moyo sana kwamba utumie Arduino zilizo na vifaa vingi vya UARTs (i.e. Arduino Mega)
- Kuunganisha waya
-
Sakinisha SerialTransfer.h
Inapatikana kupitia Meneja wa Maktaba ya Arduino IDE
Hatua ya 1: Uunganisho wa Kimwili
Wakati wa kutumia mawasiliano ya serial, vidokezo vichache vya wiring vinahitaji kuzingatiwa:
- Hakikisha misingi yote imeunganishwa!
- Pini ya Arduino TX (Transmit) inahitaji kushikamana na pini nyingine ya RX (Pokea) ya Arduino
Hatua ya 2: Jinsi ya Kutumia Maktaba
SerialTransfer.h hukuruhusu kutuma kwa urahisi idadi kubwa ya data ukitumia itifaki ya pakiti ya kawaida. Hapa chini kuna maelezo ya huduma zote za maktaba - nyingi ambazo tutatumia baadaye kwenye mafunzo haya:
SerialTransfer.txBuff
Hii ni safu ya baiti ambapo data zote za kulipwa ambazo zitatumwa juu ya serial zinakumbwa kabla ya kupitishwa. Unaweza kujaza bafa hii na ka data za kutuma kwa Arduino nyingine.
SerialTransfer.rxBuff
Hii ni safu ndogo ambayo data yote ya malipo inayopokelewa kutoka kwa Arduino nyingine imefungwa.
SerialTransfer.bytesSoma
Idadi ya baiti za malipo zinazopokelewa na Arduino nyingine na kuhifadhiwa kwenye SerialTransfer.rxBuff
SerialTransfer.begin (Mkondo & _port)
Inazindua mfano wa darasa la maktaba. Unaweza kupitisha kitu chochote cha "Serial" kama kigezo - hata vitu vya darasa "SoftwareSerial"!
SerialTransfer.sendData (const uint16_t & ujumbeLen)
Hii inafanya Arduino yako itume "messageLen" idadi ya ka kwenye kiboreshaji cha kupitisha kwa Arduino nyingine. Kwa mfano, ikiwa "messageLen" ni 4, baiti 4 za kwanza za SerialTransfer.txBuff zitatumwa kupitia serial kwa Arduino nyingine.
SerialTransfer haipatikani ()
Hii inafanya picha yako ya Arduino ipokee data ya serial kutoka kwa Arduino nyingine. Ikiwa kazi hii inarudisha boolean "kweli", inamaanisha kuwa pakiti mpya imechanganuliwa vizuri na data ya pakiti mpya iliyopokelewa imehifadhiwa / inapatikana katika SerialTransfer.rxBuff.
SerialTransfer.txObj (const T & val, const uint16_t & len, const uint16_t & index = 0)
Stuffs "len" idadi ya ka ya kitu holela (baiti, int, kuelea, maradufu, muundo, n.k …) kwenye bafa ya kupitisha kuanzia faharisi kama ilivyoainishwa na hoja ya "faharisi".
SerialTransfer.rxObj (const T & val, const uint16_t & len, const uint16_t & index = 0)
Inasoma idadi ya "len" ya ka kutoka kwa bafa ya kupokea (rxBuff) kuanzia faharisi kama ilivyoainishwa na hoja ya "faharisi" katika kitu kiholela (baiti, int, kuelea, mara mbili, muundo, n.k …).
KUMBUKA:
Njia rahisi ya kusambaza data ni kwanza kufafanua muundo ambao una data yote unayotaka kutuma. Arduino kwenye mwisho wa kupokea inapaswa kuwa na muundo sawa uliofafanuliwa.
Hatua ya 3: Peleka Takwimu za Msingi
Mchoro ufuatao hupitisha thamani ya ADC ya AnalogRead (0) na thamani ya AnalogRead (0) iliyogeuzwa kuwa voltage kuwa Arduino # 2.
Pakia mchoro ufuatao kwa Arduino # 1:
# pamoja na "SerialTransfer.h"
SerialTransfer myTransfer; muundo STRUCT {uint16_t adcVal; voltage ya kuelea; } data; kuanzisha batili () {Serial.begin (115200); Serial1.anza (115200); myTransfer.begin (Serial1); } kitanzi batili () {data.adcVal = analogRead (0); data.voltage = (data.adcVal * 5.0) / 1023.0; myTransfer.txObj (data, saizi (data)); myTransfer.sendData (sizeof (data)); kuchelewesha (100); }
Hatua ya 4: Pokea Takwimu za Msingi
Nambari ifuatayo inachapisha ADC na maadili ya voltage yaliyopokelewa kutoka Arduino # 1.
Pakia nambari ifuatayo kwa Arduino # 2:
# pamoja na "SerialTransfer.h"
SerialTransfer myTransfer; muundo STRUCT {uint16_t adcVal; voltage ya kuelea; } data; kuanzisha batili () {Serial.begin (115200); Serial1.anza (115200); myTransfer.begin (Serial1); } kitanzi batili () {if (myTransfer.available ()) {myTransfer.rxObj (data, sizeof (data)); Serial.print (data.adcVal); Serial.print ("); Serial.println (data.voltage); Serial.println (); } kingine ikiwa (myTransfer.status <0) {Serial.print ("ERROR:"); ikiwa (myTransfer.status == -1) Serial.println (F ("CRC_ERROR")); vinginevyo ikiwa (myTransfer.status == -2) Serial.println (F ("PAYLOAD_ERROR")); vinginevyo ikiwa (myTransfer.status == -3) Serial.println (F ("STOP_BYTE_ERROR")); }}
Hatua ya 5: Upimaji
Mara tu michoro yote imepakiwa kwa Arduinos zao, unaweza kutumia Monitor Serial juu ya Arduino # 2 ili kuhakikisha unapata data kutoka Arduino # 1!
Ilipendekeza:
Msingi wa Siri ya Siri: Hatua 5
Msingi wa Siri ya Siri: Daima ni muhimu kuwa na msingi wa siri, haswa katika wachezaji wengi. Misingi ni ya usalama kwa kujificha mali na kujificha kutoka kwa umati na wachezaji wengine.
PIC MCU na Mawasiliano ya Siri ya Python: Hatua 5
PIC MCU na Mawasiliano ya Siri ya Python: Halo, jamani! Katika mradi huu nitajaribu kuelezea majaribio yangu juu ya mawasiliano ya serial ya PIC MCU na Python. Kwenye wavuti, kuna mafunzo na video nyingi juu ya jinsi ya kuwasiliana na PIC MCU juu ya terminal halisi ambayo ni muhimu sana. Howev
Fimbo ya ndani ya Siri ya USB na Kubadilisha Siri: Hatua 5
Fimbo ya Siri ya ndani ya USB na Kubadilisha Siri: Hivi karibuni nilikuwa na shida kwamba nilitaka kuwa na Mikia OS * kama mfumo wa pili wa kufanya kazi daima na mimi. Lakini sikutaka kubeba fimbo ya USB na usakinishaji wa gari ngumu kwa bidii haukusudiwa na waendelezaji. Kwa hivyo nilikuja na kitu els
Droo ya Siri ya Duka la Siri: Hatua 5
Droo ya Siri ya Sehemu ya Siri: Hii inayoweza kufundishwa itakuonyesha jinsi nilivyotengeneza kabati la droo na sehemu ya siri. Nitaitumia maelezo madogo kuelezea matendo niliyoyafanya
Mawasiliano ya Siri Kutumia ARM Cortex-M4: 4 Hatua
Mawasiliano ya Siri Kutumia ARM Cortex-M4: Huu ni mradi wa msingi wa ubao wa mkate ambao hutumia ARM Cortex-M4 (Texas Instruments EK-TM4C123GXL) kwa Mawasiliano ya Siri ukitumia Virtual Terminal. Pato linaweza kupatikana kwenye Skrini ya LCD ya 16x2 na pembejeo kwa Mawasiliano ya Siri inaweza kutolewa katika Serial Mo