60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 15:10

Sziasztok,

nem tudom hogy ez-e a megfelelő forum a 60 napos ingyenes tanfolyam anyagainak megvitatására. Ha nem, kérlek javasoljatok jobb helyet.

az elmúlt néhány lecke alatt kezd kirajzolódni, hogy a leckék olvasása után nyitva maradnak kérdések az adot anyaggal kapcsolatosan. Igy volt ez korébban a frekvencia-moduláció kapcsán és most is igy van a soros portoknál.

A tanfolyami leckében a következő példa szerepel soros komunikációra. El tudja valaki magyarázni hogy hol és hogyan definiáljuk a soros kommunikáció "nyelvét" azaz hogy milyen adatok (betük vagy számok vagy más) érkezik a soros kommunikáció során? A char paranccsal csak a figyelembe vett értékeket definiáljuk, ha jól értem, de gondolom nem csak B és K értékből áll a soros kommunikáció. Honnan tudjuk egyáltalán hogy B és K szerepel majd a kapott adatok között?

A program

Kód: Egész kijelölése

/*
  SerialLED
  Soros porton kapcsolgathato LED
  60 nap alatt arduino tanfolyam
  (c) TavIR http://www.tavir.hu
 */
 
int inByte = 0;
  // bejovo adat
int adatjott =0;
  //eddig hany adatot kaptam?
char be ='B';
  // Valtozo bekapcsolashoz
char ki ='K';
  // Valtozo kikapcsolashoz
 
void setup()
{
  Serial.begin(9600);
    // soros sebesseg
  pinMode(13, OUTPUT);
    // D13: LED
  Serial.println("Start...");
}
 
void loop()
{
  if (Serial.available() > 0) {
    // van adat feldolgozasra?
    inByte = Serial.read();
      // 1 byte beolvasasa
    delay(100);
      // 100 ms szunet
    adatjott++;
      // szamlalo novelese
    if (inByte == be) {
      digitalWrite(13, HIGH);
        // Ha B jon, bekapcsol
    }
    if (inByte == ki) {
      digitalWrite(13, LOW);
        // Ha K jon, kikapcsol
    }   
    Serial.print("Eddig jott: ");
      // Soroson visszairjuk mi is volt
    Serial.println(adatjott, DEC);
  }
}



Admin, szerk: CODE gombot használni kell! Különben nem lesz programszerű....

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9970
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Robert » 2016. december 4. vasárnap, 15:21

A program előtt a leckét _figyelmesen_, és _többször, tagoltan_ kell elolvasni:

Például a fejezet így kezdődik:

" Sorosporti programozás

A soros kommunikáció Arduino nyelven igen egyszerűen megvalósítható. Két fő részből áll:
1, inicializálás,
2, adatküldés/fogadás

Feladat: hogyan oldanád meg, hogyha soros porton B betű jön, bekapcsoljon a LED; míg ha K betű, akkor kikapcsoljon?"


A tanfolyam anyagai egy helyen vannak. A soros #14 fejezet pl itt:
60 nap alatt Arduino #14 (Soros kommunikáció)
viewtopic.php?f=34&t=1174&start=15


Az összes többi:
viewforum.php?f=34

A kódbeszúrás a CODE gombbal készül.
Valamint javasolt olvasmány:
Fórum hozzászólások: viewtopic.php?f=23&t=828
http://www.tavir.hu - a gazda :)

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 20:05

Róbert, a kérdésem a tobbi programozóhoz szólt. Szerintem mi nem egy nyelvet beszélünk, a kérdésemre sem most, sem a korábbi próbálkozásaim során nem kaptam Töled releváns választ. Ha egy kezdó a küldött lecke után veszi a fáradtságot és beir a fórumra, gondolod hogy nem olvasta el előtte kétszer is a leckét?

Ha estleg valaki veszi a fáradtságot és elmagyarázza a fenti programot, azt megköszönöm.

Üdv.

Avatar
csabeszq
Bitfaragó
Hozzászólások: 676
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: csabeszq » 2016. december 4. vasárnap, 20:19

Te definiálod a soros kommunikáció nyelvét. A fenti program ellenőrzi, hogy B, vagy K betű jött-e, ennek megfelelően kapcsolgatja a LED-eket.

Ha átírod a kódot Q-ra és Y-ra, akkor arra fog a LED kapcsolni.
Megnyitod a soros monitort, beírod, hogy "B", megnyomod a küldés gombot, akkor a LED-nek fel kellene kapcsolnia. Ez a nyelv.

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 20:24

köszi. Épp azt nem értem, hogyan definiálom a soros kommunikáció nyelvét? A fenti példában pl. ?

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 20:28

Pontosabban, azt értem hogy én irom be a betűket a monitoron és ez alapján kapcsolgat, de mi történik ha pl. kérdőjelet irok be? az - ha jol tudom -, nem része a byte-nak...

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1030
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: SanyiSay » 2016. december 4. vasárnap, 20:44

Tiborx8 írta:Róbert, a kérdésem a tobbi programozóhoz szólt.

Tiborx8 írta:köszi. Épp azt nem értem,



Kedvesem átkiabált a másik szobából hogy min kacagok hangosan. Hát ezeket a sorokat olvastam épp. :lol:
Ma a nagy beszólások világnapja van ahogy látom.

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1030
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: SanyiSay » 2016. december 4. vasárnap, 21:12

char be ='B';

helyett írd hogy

char be ='?';

de nem igazán ez a lényeg, hanem a szám amit ez a karakter takar, mert ha nem betüket küldesz hanem számot 0-255 között nem mindegyiknek lesz megjeleníthető karakter formálya. ASCII

Küldeni meg te tudod mit küldesz a soros porton. Célszerű olyan terminál programot használni ami nem csak szöveges megjelenítésre képes.
Mondjuk a HTerm.
Ott látod ASCII, HEX, BIN, DEC, formában a bájtot ami vagy amik érkeznek, és amit küldtél azt is.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9970
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Robert » 2016. december 4. vasárnap, 21:15

Tipp:
A processzor agyában a char/byte egy szám. 0...255 közt.
Ezt mi láthatjuk: számként (bináris, hexa, decimális formában); a számokhoz rendelt karakterként (ASCII kódtábla).

Körülbelün ennek analógiája:
- Mennyi pénz van nálad a buksza első zsebében?
A válasz:
- 124 Ft 30 fillér.
- egy százas, két tizes és 2 db 2 Ft-s és 3 db 10 filléres.
Ugyanaz az lényegi információ - többféleképp megközelítve.
http://www.tavir.hu - a gazda :)

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 5. hétfő, 16:31

Megértettem a programot. Köszönöm a segítséget.

Avatar
etwg
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2011. február 7. hétfő, 7:00
Tartózkodási hely: Ausztria
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: etwg » 2019. október 8. kedd, 0:19

Sajnos számomra is ez a lecke nagyon kilo a sorból. Egyre inkább hiányolom a sorozatbol a konzekvenciát, a didaktikát. A témák össze vissza ugrálnak, ahelyett, hogy az eddig tanultak témái közül bármelyik is be lett volna fejezve ("ki lett volna vesézve") a kezdö számára érthetö modon. A legkirivobb a PWM esete (#13), ahogy itt is olvasom, mindenki azt várta, hogy a PWM-t arra használja amire valo pl a LEDedk folyamatos fel- illetve lekapcsolása - semmi, ilyen. A tapasztaltabbak megcsinálták, de minden visszacsatolás nélkül, azaz a többiek semmit nem tanulhattak - a tananyagbol viszont hiányzik.
Ahelyett jön egy olyan téma, ami nem okvetlenül olyan kezdönek valo, aki eddig elolvasott és megcsinált 13 leckét és abbol ha jol számolom 5 olyan volt amiben programozás is volt.
Irják meg itt a nagy programozo guruk hányszor volt eddig igényük a PC-böl direkt az Arduinoba olyan kodokat küldeni, ami az Arduinoban valamilyen munkát végez ( LEDeket, motorokat kapcsolgat). Az Arduino és PC között az esetek 90%-ban a kapcsolat csak arra kell, hogy beirjuk a programot, de nem arra, hogy a PC külsö interface-e legyen.
Egy kicsit csalodott lettem.
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9970
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Robert » 2019. október 8. kedd, 7:43

Soros kommunikáció gyakorlati haszna:
- paraméterbeállítás,
- gyűjtött adatok exportálása (logger),
- debug (futás közbeni hibakeresés),


Illetve a soros eszközökkel kommunikáció:
- GSM modulok,
- GPS modulok,
- Modbus ipari kommunikáció (RS-485; RS-422)
- riasztórendszerek....


Szóval van létjogosultsága.....


A tanfolyam kiegészítés alatt / bővítés alatt van (fekete dobozon belül mi van, pl.)
http://www.tavir.hu - a gazda :)

Avatar
etwg
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2011. február 7. hétfő, 7:00
Tartózkodási hely: Ausztria
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: etwg » 2019. október 8. kedd, 8:02

Ez nekem világos, évtizedekig ilyen berendezésekkel foglalkoztam ( nem Arduino platformon), de aligha hiszem, hogy az ilyenfajta ismeret a kezdöknek ezen a szinten fontos lenne. Ha jol emlélkszem a kezdö eddig eljutott vagy 5 feladatig (egyik sem volt komolyabb egy LED vagy kapcsolo használatánál illetve a PWM-g de azt is csak éppen, hogy emlitési szintig) igy a kommunikácio a külsö berendezésekkel ezektöl a feladatoktol még fényévekre van.
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682

Avatar
Verjoz
SzínkódFestő
Hozzászólások: 94
Csatlakozott: 2018. március 13. kedd, 7:18

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Verjoz » 2019. október 8. kedd, 23:35

Ez egy ingyenes tanfolyam, ami az alapokra világít rá és bemutatja az arduino rendszer alapvető funkcióit.
Sajnálom, hogy ha csalódnod kellett! Ez nem az a tanfolyam amit te szeretnél! A bővebb tudás elsajátítására vannak intézmények ahol egy ütemtervet követve bőséges feladatokkal és információval látnak el amiért viszont már fizetni kell.
A TavIR os tanfolyam minden egyes leckéje fontos alaptudást közvetít, egy kis önszolgalommal ezt feljebb lehet tornázni. Kinek mennyi ideje van.
De az iskolapadot koptatva sem 60 nap alatt fogsz megtanulni C ben profin írni!
De ha nem tetszik ez a rendszer, akkor azzal az önszorgalommal amivel regeltél ide, ugyanúgy le is iratkozhatsz. Nics szükség negatív emberekre!

Avatar
etwg
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2011. február 7. hétfő, 7:00
Tartózkodási hely: Ausztria
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: etwg » 2019. október 9. szerda, 11:22

Köszönöm a kommentet, teljesen félreértetted akkor az irásomat, sajnálom.
A tanfolyam a meghirdetett oldalon a kezdöknek szol. Te gondolod, hogy ha valaki megirt eddig 5-6 primitiv programot ( leckék szerint), annak már fogalma van hogyan kell egy PC- n (stb). keresztül az Arduinoval kommunikálni? Ez olyasmi, mint amikor az elemi iskolában számtanbol a 3. honapban már az integrálokrol meg a diff. egyenletekröl értekezne a tanitonéni.
Évek ota irogatok ilyen komminikácios programokat ASM-ben AVR procikra, igy kb tudom miröl van szo meg azt is, hogy mennyit szenvednek a berendezések profi használoi, amikor egy PC-röl be kell állitani a kommunikácios protokollt, hogy utánna betöltsenek a gépbe valamilyen uj infot. Csak ez, és csakis ez volt a lényege a mondokámnak.
Tudtommal az Arduinot sem a profi programozok használják, ezért iratkoztam fel én is majd 8 évvel késöbb, mert eddig nem is igen került Arduino a kezembe, igy a programozása sem igen érdekelt. Gondolom ugyanilyen elöélettel jelentkezett a többség is - ezt talán csak Robi tudná elmondani, de elég ha visszaolvasol a 8-12 leckék kommentjeibe, láthatod, hogy kinek mi okoz gondot. Ahelyett, hogy azok a kérdések lettek volna tisztázva átugortunk a kommunikácios protokollra.

Ahogy nézegetem az Arduinoval kapcsolatos tanfolyamokat (szerencsére van egy sereg) meg felhasználási példákat, azok 60-80%-k kimondottan csak az alaplap meg talán egy shield (motor, szervo) felhasználására alapulnak, és csak egy nagyon kis szegmens foglalkozik a kommunikácioval ( dronosok, BT kapcsolatok telefonnal, esetleg WiFi stb), de azok már meglehetösen magas foku applikáciok és egy sereg ilyen program készen elérhetö (mert kell hozzá a külsö berendezés is - távvezérlö, telefon, stb ami egyáltalán nem tárgya ennek a tanfolyamnak) igy kétlem, hogy azok a felhasználók azt maguk irták, legfeljebb hozzáidomitották az adott környezethez. ( amugy nekem is sikerült összehoznom a tanfolyam nélkül, egy kis BT kapcsolatot a telefon meg az Arduino között - természetesen az alkotoja segitségével, és most a kommunikácio paramétereit csiszolgatom a berendezéseimhez).
Szoval nem az a baj, hogy a soros kommunikácio lett emlegetve, hanem az, hogy ez már a 14. leckében, holott az elözményekben még az alaplap funkcioinak a végére sem értünk el. ( a Arduino C nyelvezet kihivásairol nem is beszélve).
Az ügyet már megbeszéltem Robival is, igy felesleges erröl tovább vitatkozni.
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég