WiFi modul NRF24L01

Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: WiFi modul NRF24L01

Příspěvek od Le-Ze »

Jirka píše: 19 úno 2018, 15:39 Myslím, že celá chyba je v tom, že ve skutečnosti neodesílám.
http://www.14core.com/using-two-nordic- ... d-arduino/

Toto je funkční a mam odzkoušené a ten joystick udělaný a použivam.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: WiFi modul NRF24L01

Příspěvek od Jirka »

DavidO - Jasně. Díky za pomoc. Takže :
dle https://www.elec-cafe.com/nrf24l01-basi ... d-arduino/

int msg[1];
.......
bool done = false;
while (!done)
{
done = radio.read(msg, 1); // hlasi chybu v tomto radku
...........
chyba = "void value not ignored as it ought to be"
Což jsem si přeložil překladačem (anglicky nevládnu) ale moudrý nejsem.
Zdá se mi divné i že msg pole v tom read není použito.
Rozpohybovat tlačítlo -> LED vidím jen jako základ. Takové "Hello World".
Knihovnu si myslím mám dobře dle testu http://azuzula.blogspot.cz/2017/03/ardu ... ikace.html
Naposledy upravil(a) Jirka dne 20 úno 2018, 12:06, celkem upraveno 1 x.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: WiFi modul NRF24L01

Příspěvek od Jirka »

Le-Ze - Zdravím,
hlásí mi to stejný problém. Zase v řádku
done = radio.read( joystick, sizeof(joystick) );
Když vymažu "done =" tak kontrola IDE projde.
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: WiFi modul NRF24L01

Příspěvek od DavidO »

No bodejť by neprošla. Ta hláška kompilátoru "void value not ignored as it ought to be" znamená, že voláš funkci, která nic nevrací a přitom její výsledek chceš přiřadit do nějaké proměnné. Tak když to přiřazování odmažeš, asi to projde. Ale náhodně mazat kusy kódu a zkoušet, co to udělá, není dobrá metoda, protože to ukazuje na hlubší problém (obzvlášť když jde o příklad, který někomu funguje, což sice ve světě Arduina mnoho neznamená, ale když se postupuje přesně jako ten autor, tak je velmi velká pravděpodobnost, že to taky dopadne jako jemu).
Podívej se, kde je funkce read deklarovaná (jen hlavička, soubor s koncovkou .h), kde je definovaná (tělo funkce, soubor s koncovkou .c nebo .cpp) a co tam je přesně napsáno. V knihovně, odkazované v článku na elec-cafe i v knihovně na Github co jsem psal já to je v pořádku, funkce vrací bool. Nicméně tobě kompilátor hlásí, jako kdyby funkce byla deklarovaná void read(něco). Opravdu se ta knihovna používá při kompilaci? Zapni si výpis detailních informací při kompilaci (v Arduino IDE menu File / Preferences, checkbox Show verbose output during: compilation) a ověř, že tam je opravdu tahle knihovna. A také ověř, že máš správně nastavenou cílovou desku Arduino. Příklad je pro Arduino Uno a i kdybys ho fyzicky neměl, zkompilovat to musí jít. Pokud používáš jiné Arduino, tak to může znamenat problém (ale nemusí nutně).
Úplně mě nerajcuje hledat chyby v neznámém cizím kódu (bohatě mi stačí moje), ale když vidím, jak se v tom plácáš, tak jsem si stáhnul jak knihovnu, tak příklad, pustil Arduino IDE a zkompilovalo se to všechno naprosto v pořádku.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: WiFi modul NRF24L01

Příspěvek od Jirka »

David O - Jsem to nějak zkusil ale v tom co píšeš v předchozím odstavci "plavu".
vypíše mi to hlášku :

Using library SPI in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI
Using library RF24 in folder: C:\Program Files (x86)\Arduino\libraries\RF24-master

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\libraries\RF24-master C:\Users\114000~1\AppData\Local\Temp\build4571144771005560365.tmp\sketch_feb20a.cpp -o C:\Users\114000~1\AppData\Local\Temp\build4571144771005560365.tmp\sketch_feb20a.cpp.o
sketch_feb20a.ino: In function 'void loop()':
sketch_feb20a.ino:27:6: error: void value not ignored as it ought to be
Chyba kompilace.
------------------------------
Nyní jsem zkusil 1. z exemples a hlásí :
sketch_feb20a.ino:16:18: fatal error: WiFi.h: No such file or directory
compilation terminated.
Už jsem párkrát narazil na to, že musím zkopírovat soubor.h (z vnitřního adresáře knihovny) přímo do složky librares ale teď nepomohlo.
Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: WiFi modul NRF24L01

Příspěvek od Le-Ze »

Ted jsem zkoušel zkompilovat oba příklady z toho mého odkazu a ok.
By mně zajímalo proč to maš vše nasmolene v C:\Program Files (x86)
Pokud máš ty užasne win 10, tak muže být prblem.
Ja mam ID úplně na jiném disku než systém.
Projekty patři do C:\Users\Leo\Documents\Arduino
Knihovny c:\Users\Leo\Documents\Arduino\libraries\
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: WiFi modul NRF24L01

Příspěvek od Jirka »

Ahoj, mám Windows7profesional,64bit. V tomto adresáři to je instalováno proto, že si to tak instalace vybírají samy. Všechny. Projekty jako takové nemám prakticky nikde. Jejich uchování je na SD kartě (přenositelnost). Vždy si nakopíruji do IDE ten potřebný. Zatím se miv tomto směru problém neobjevil.
Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: WiFi modul NRF24L01

Příspěvek od Le-Ze »

A knihovný máš kde?
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: WiFi modul NRF24L01

Příspěvek od DavidO »

Myslím, že máš bordel v instalaci. Když instaluješ knihovnu, jak to děláš? Jestli ne přes Library Manager nebo instalaci knihovny ze ZIP (oboje v menu Sketch/Include Library), tak se nediv. Ruční kopírování souborů by sis mohl bezpečně dovolit leda kdybys opravdu věděl, jak celá ta mašinerie Arduina + gcc funguje (a to podle tvých dotazů nevíš, bez urážky).
Ve Windows by se ti taky mohl projevit mechanizmus ochrany systému před aplikacemi, a to že v adresářích s aplikacemi Windows automaticky vytvářejí verze souborů, pokud tam zapisuje neadministrátor (třeba aplikace puštěná normálním uživatelem), pak se při různých přístupech ke stejnému souboru používá různý obsah.
Ale to jen hádám z neúplných příznaků.
Doporučuju udělat úplnou odinstalaci Arduina, čistou instalaci aktuální verze, nastavení prostředí (např. cestu ke sketchbooku), instalaci knihoven metodickým způsobem podle pokynů autorů Arduina a teprve pak opětovné pokusy. Jinak ti budeme těžko radit, když na jiných počítačích (mém a Le-Zeově) to funguje na první pokus. Chybu, co se ti ukazuje, dokážu taky nasimulovat, ale to musím knihovnu úmyslně poškodit - změnit funkci read, aby místo bool vracela nic (tj. void jak jsem psal už dřív).

Na dálku už v tomhle případě nechci radit - pořád jen zvenku usuzujeme, co tam asi můžeš mít špatně a je to závislé na tvé instalaci, o které nevíme nic a na tvém pozorování, které nám sem částečně píšeš. Jestli chceš poradit, tak si ten konkrétní počítač přines na příští Robodoupě.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: WiFi modul NRF24L01

Příspěvek od Jirka »

Le-Ze
Knihovny jsou C:\Program Files (x86)\Arduino\libraries tam kde jsou ostatní z instalace.
Odpovědět