Keresés

Részletes keresés

John Zero Creative Commons License 2014.08.18 0 0 371

Ha ez RF24 - NRF24L01+ akkor az már önmagában csomagokat küldő, CRC-zett, akár még ACK-zott is protokollt használ. Még automatikus újrapróbálkozást is tud.

Ez elég robusztus, ráadásul 250kbps - 1/2 mbps sebességet tud, ami szintén elég jó.

 

Nekem a tippjeim: 1. rossz felparaméterezés (bár nem valószínű) 2. vevő oldalon hibás kezelés, esetleg puffer betellik??

 

Másrészt érdemes arra is gondolni majd a jövőben, hogy a millis() túlcsordul, bár ez csak 49 nap után történik meg, lehet, hogy itt felesleges ezt kezelni. (Utolsó szavak.)

Előzmény: Vargham (366)
Razidargh Creative Commons License 2014.08.18 0 0 370

Egyszerre tudom most is monitorozni putty nélkül a két eszközt. Az adót olvassa a serial monitor, a vevőre pedig egy LCD kijelzőt kötöttem, és ott jeleníti meg a kapott adatokat (ha kap).

Előzmény: Vargham (367)
Razidargh Creative Commons License 2014.08.18 0 0 369

Köszi, akkor ebben az irányban keresek tovább. Nem tudsz valami példakódot (esetleg linkelni) erre a módszerre?

Előzmény: Vargham (366)
Razidargh Creative Commons License 2014.08.18 0 0 368

A serial.print köröket már lefutottam, mindhárom ciklusban kiírja adó oldalon a megfelelő értékeket, tehát a ciklus lefut a feltételek teljesülése esetén, a paraméterek pedig megfelelők.

Előzmény: Prof (365)
Vargham Creative Commons License 2014.08.18 0 0 367

Az Arduino IDE-ben nem lehet.

Javaslom a Putty nevű, full extrás terminál programot. Akárhányat lehet egyszerre futtatni.

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Előzmény: Prof (365)
Vargham Creative Commons License 2014.08.18 0 0 366

A rádió nagyon megbízhatatlan csatorna. Azt feltételezed, hogy mindig, minden byte a megfelelő helyen érkezik. Pedig a két eszköz nincs szinkronizálva.

 

Szerintem nem jó ötlet folyamatosan küldeni az adatokat. Ha lemarad egy-egy byte, azt honnan tudja a vevő?

Először készíts belőle adatcsomagokat (packet).

Adj hozzá headert, footert, esetleg CRC-t.

A vevő oldal pedig keresse ki a stream-ből a csomagot, dekódolja, és utána adjon értéket a tömb elemeinek.

 

Ha kétirányú a rádiód:

Utána legyen mindig nyugtázás. Amíg nem jött a másik féltől nyugtázás, addig ne küldje a következő csomagot.

 

Röviden: A rádiós library annyit tesz, hogy a kapott adatokat ráülteti a fizikai rétegre. Nem ellenőriz, nem szinkronizál, stb. Ezeket neked kell megoldanod.

Előzmény: Razidargh (364)
Prof Creative Commons License 2014.08.18 0 0 365

Nem volt időm alaposan átrágni magam rajta. Első körben a Serial.print a megoldáshoz vezető első kulcs a változók kiírásával. A kódfejtésben mondjuk némi segítség lenne a void.Setup().

Persze mindez az adó és a vevő oldalon is (szívás, mert ugye két futó terminálképernyő kell hozzá, és nem tudom, hogy ez megvalósítható-e, soha nem próbáltam).

Előzmény: Razidargh (364)
Razidargh Creative Commons License 2014.08.17 0 0 364

Sziasztok!

 

Egy mozgásérzékelőt kötöttem egy Nano-ra, s a kapott adatokat RF24 rádióval átlőni egy másik RF24-gyel felszerelt Uno-ra. A következő kódom van adó oldalon:

 


void loop()
{

  xtengely=(analogRead(xpin));
  ytengely=(analogRead(ypin));
  ztengely=(analogRead(zpin));
  helyzet=(xtengely/3+ytengely/3+ztengely/3);

  riaszt=abs(helyzet-x);
  if (riaszt > erzekenyseg)   // csak mozgás esetén küld rádiójelet
  {
    joystick[0] = 1;
    joystick[1] = riaszt;
    joystick[2] = ztengely;
    radio.write( joystick, sizeof(joystick) );
  }


  // 2 másodperces eltolással vizsgálja a helyzetet - lassú mozgásokra
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > 2000) {
    previousMillis = currentMillis;   
    riaszt=abs(longhelyzet-x);

    if (riaszt > erzekenyseg)
    {
      joystick[0] = 2;
      joystick[1] = riaszt;
      joystick[2] = ztengely;
      radio.write( joystick, sizeof(joystick) );

    }
    longhelyzet=(xtengely/3+ytengely/3+ztengely/3);
  }

  // Bejelentkezés 2 másodpercenként
  if(currentMillis - previousMillis2 > 2000) {
    previousMillis2 = currentMillis;
    joystick[0] = 3;
    joystick[1] = riaszt;
    joystick[2] = ztengely;
    radio.write( joystick, sizeof(joystick) );
  }
  x = helyzet+1;

}//--(end main loop )---

 

Az a gondom vele, hogy a mozgást simán átlövi, és annak megfelelően a vevő rendesen megkapja az adatokat. Tehát az első if lefut. A második és harmadik feltétel is lefut, de ott a rádió már nem küld jelet. A Nano-n látom felvillanni a 13. kimenethez csatlakozó ledet, ami jelzi, hogy rádiókommunikáció van. A vevő mégis csak az első feltétel teljesülése esetén fogadja az adatokat. A vevő lényes kódja:

 

      done = radio.read( joystick, sizeof(joystick) );

 

Ugyanazt a tömböt használom, a tömb minden eleme mindig integer, mégsem kapom meg a két másodpercenkénti bejelentkező jelet. A bejelentkezést néha akkor kapom meg véletlenszerűen, ha megmozgatom a szenzort, s akkor több csomag között esetleg megy egy bejelentkezés is. Van valakinek esetleg ötlete? Próbáljak más libraryt a rádiókhoz?

Prof Creative Commons License 2014.08.04 0 0 363

Honnan kapja a tápot?

Tippem szerint (nem mértem) táp-gond lesz. A 3 ultrahang plusz ez a negyedik opto már határra húzhatja a Nano-t. Bár a specifikációk szerint összesen nincs ki 100 mA, de jobb kétszer mérni. Feszültséget és áramokat is mérj, külön-külön és egybe is.

Plusz nem lenne nagyon hátrány egy Fritzing rajz sem a bekötésről.

 

Előzmény: Spike89 (361)
Törölt nick Creative Commons License 2014.08.04 0 0 362

Nem vagyok guru, de nem is értem a problémát. Az ultrahangos szenzorokkal nem távolságot mérsz? Akkor miért kell ez a cucc? Vagy ezzel elmozdulást akarsz érzékelni? A specifikáció egyébként 10 uF-ot javasol, és az eszköz közelében.

Előzmény: Spike89 (361)
Spike89 Creative Commons License 2014.08.04 0 0 361

Üdv.

 

Arduino nano-ra van rákötve 3 ultrahangos szenzor, amik jól is működnek, míg rá nem csatlakoztatom ezt:

http://www.sharpsma.com/webfm_send/1487 Ekkor ugyanis elkezdek hibás értékeket kapni az ultrahangos szenzorok felől. 100 nF -os kondit kötöttem az 5V és a GND közé. Mi lehet a hiba? 

John Zero Creative Commons License 2014.07.29 0 0 360

Nem, ahhoz túl buta. Összesen 32 kbyte a programtár, és 2 kbyte a RAM. Abba nem sok minden (nagy adat) fér bele :-)

 

Előzmény: Tomizom (359)
Tomizom Creative Commons License 2014.07.28 0 0 359

Az arduinohoz, zenét lejátszani, csak az mp3 shield, el lehet? Mármint azt valahogy nem lehet megoldani, hogy egy mp3 fájlt, küldjek ki az arduinora, az meg továbbítsa, egy hangszóróra?

Vargham Creative Commons License 2014.07.14 0 0 358

Ha ide teszed fel a kérdésed, akkor később abból mások is tanulhatnak. Pont ez lenne a fórum lényege. :-)

Előzmény: Sári Bence (356)
Törölt nick Creative Commons License 2014.07.11 0 0 357

Nem lenne egyszerűbb ide feltenni a kérdéseid? Akkor többen olvassák, nagyobb az esélye, hogy találsz hozzáértőt.

Előzmény: Sári Bence (356)
Sári Bence Creative Commons License 2014.07.11 0 0 356

Sziasztok, keresek egy illetőt aki segítene nekünk, először is néhány kérdés megválaszolásával. Aki úgy érzi elég toppon van az elektronikában és az arduino világában, írjon erre az emailcímre: zlapser@gmail.com. 

Röviden kis motorok vezérléséről lenne szó majd, remélem lesz pár érdeklődő aki segítene. 

Törölt nick Creative Commons License 2014.07.10 0 0 355

Például:

https://learn.adafruit.com/adafruit-arduino-lesson-13-dc-motors/arduino-code

Előzmény: Tomizom (354)
Tomizom Creative Commons License 2014.07.10 0 0 354

Egy kis kérdés, hogyan lehet egy dc motor sebességét szabályozni legegyszerűbben, és ha lehet potenciométer nélkül, teljesen a gépről irányítva.

Törölt nick Creative Commons License 2014.07.04 0 0 353

Utánanéztem, van egyszerűbb megoldás is. A legtöbb terminál program tudja ezt, bár ez nem kényemes. De találtam egy Gobetwino nevű programot, az többek között ezt is tudja, valószínűleg azt fogom használni.

Előzmény: Prof (352)
Prof Creative Commons License 2014.07.03 0 0 352

Mármint az Arduino IDE alapja.

Előzmény: Prof (351)
Prof Creative Commons License 2014.07.03 0 0 351

Az Arduino alapja egy Processing nevű szoftver. Valamivel komplexebb, mint az Arduino IDE, de alapvetően hasonló elveken működik. Ebben lehet olyan szoftvert írni, amelyik ezt meg tudja csinálni (mondjuk kell hozzá már némi programozási ismeret). Van rá pár egyéb szoftver is.

 

Azzal kell vigyázni, hogy:

1. a baud rate a mintavételezést is befolyásolja sajnos,

2. ha magas baud rate-tel dolgozol, akkor kegyetlen nagy lesz a redundanciád (ami lehet jó is), illetve hatalmas fájlok fognak keletkezni nagyon gyorsan.

 

Elvileg ezzel a felállással, ha elég stabil a géped, elég komplex telemetriát lehet csinálni, ha a grafikai részt leprogramozod, akár F1-szinten is. Riasztásokkal, szélsőértékekkel, ilyen-olyan mérési adatokkal. Sőt, a számításigényesebb műveletekre (pl. PID-szabályozás) simán lehet a gépet használni és csak az analóg/digitális vezérlőjelet visszaküldeni. ez esetben az arduino csak egy sima A/D konverterként működik (a D/A konverzióhoz az UNO kevés, ilyen emlékeim szerint csak a Due-n van, már külön D/A konverter és valódi analóg kimenet).

 

De van pár megoldás erre az arduino.cc oldal tudástárában (kommunikáció PC-vel rész alatt).

Előzmény: Törölt nick (350)
Törölt nick Creative Commons License 2014.07.03 0 0 350

Én is kérdeznék: hogy lehet azt Win 7 alatt megoldani, hogy a terminálra küldött adatokat egy file-be mentsük. Mondjuk a turbinán mért hőmérséklet értékeket szeretném naplózni.

Előzmény: Prof (348)
Törölt nick Creative Commons License 2014.07.03 0 0 349

Én is inkább kíváncsiságból vettem, bár ez annyira nem volt olcsó, szálítással 31 USD, de műxik rendesen.

Előzmény: Prof (348)
Prof Creative Commons License 2014.07.03 0 0 348

Hát ez sok pici kínai másolatnál előfordul sajnos... :-)

Nekem gsm egyelőre nem kell, de jó tudni, hogy van és funkcionál rendesen.

Előzmény: Törölt nick (347)
Törölt nick Creative Commons License 2014.07.03 0 0 347

Ja, meg annyi, hogy a saját könyvtárát kell hozzá használni, mert amit gyárilag adnak az IDE környezethez, az nem jó.

Előzmény: Prof (344)
Törölt nick Creative Commons License 2014.07.03 0 0 346

Ez nem eredeti, kell hozzá SIM kártya. (Kár hogy nem lehet a hozzászólást utólag szerkeszteni.)

Előzmény: Prof (344)
Törölt nick Creative Commons License 2014.07.03 0 0 345

Nekem működik, mindn további nélkül egy feltöltőkátyával, Európában.

Előzmény: Prof (344)
Prof Creative Commons License 2014.07.03 0 0 344

A GSM-re kíváncsi vagyok, hogy működik-e itthon rendesen. Vagy nem eredeti és kell bele magyar sim?

Előzmény: Törölt nick (343)
Törölt nick Creative Commons License 2014.07.03 0 0 343

Megjött a GSM és az ethernet shield. Folyt. köv.

Törölt nick Creative Commons License 2014.07.02 0 0 342

Üdv a fórumnak! Nemrég vettem egy Arduino Uno-t, elkezdtem az ismerkedést vele. A célom egy ECU építése egy gázturbinához, amit szintén én építek. (Akit érdekel, megnézheti a Gázturbina építés topikot.) Először csak mérném a turbina paramétereit, (hőmérsékletek, nyomások, furdulatszám) utána vezérelném is a cuccot. Nem tudom hogy egy UNO elég lesz-e, majd elválik.

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!