Stránka 1 z 1

Arduino NANO nelze kompilovat

Napsal: 07 zář 2021, 14:30
od Romisek
Ahoj všem,
pustil jsem se do jednoho projektu, který jsem našel zde:

https://create.arduino.cc/projecthub/Ce ... n-2-bfa619

Bohužel se mi nedaří naklopit do Arduina kód. Atrduino IDE mi zahlásí při kompilaci:

In file included from C: \ Users \ Kugler \ Documents \ Arduino \ sketch_sep03a \ sketch_sep03a.ino: 5: 0:
C: \ Users \ Kugler \ Documents \ Arduino \ libraries \ Adafruit-GFX-Library-master / Adafruit_GrayOLED.h: 30: 10: fatal error: Adafruit_I2CDevice.h: No such file or directory
#include <Adafruit_I2CDevice.h>
^ ~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
An error occurred while compiling on the Arduino Nano board.

Je podotýkám, že všechny knihovny mám v IDE nahrané. Nevíte někdo kde by mohl být problém. Prototypové zapojení mám hotové, ale zasekl jsem se na tomto problému.
Předem moc děkuji za pomoc.

Napsal: 07 zář 2021, 14:40
od petrfilipi
Problém bych viděl v tom, že používáš knihovnu "Adafruit_GrayOLED.h", která se odkazuje na knihovnu "Adafruit_I2CDevice.h". A "Adafruit_I2CDevice.h" chybí.

PF

Napsal: 07 zář 2021, 14:53
od Cowley
Taky koukám, že už si stačil napsat v angličtině do jejich dotazů.

Určitě uveď také verzi IDE, a doporučuji projít všechny odkazy na použité knihovny, zda v nich nejsou požadovány jiné knihovny, které ještě nemáš.

Napsal: 07 zář 2021, 15:07
od Romisek
Přesně tak, snažil jsem se dotázat i přímo u zdroje, ale bohužel zatím bez výsledku. Knihovny jsem prošel všechny, ale zmiňovanou Adafruit_I2CDevice.h jsem nikde nenašel. Co jsem tak pročítal komentáře, tak stejný dotaz už tam někdo měl, ale také bez odpovědi. Nicméně další komentáře chválí jak vše funguje, tak si nedovedu vysvětlit , že by tam auto zapomněl něco přidat.

Napsal: 07 zář 2021, 15:11
od Romisek
Dohledal jsem si knihovnu Adafruit_I2CDevice.h na jejich GitHub:
https://github.com/adafruit/Adafruit_BusIO

PO přidání do IDE už kompilace proběhla, tak snad to bude OK. Až se vrátím domů z práce, zkusím nahrát a ověřím funkčnost jestli to bude OK. Prozatím děkuji za nasměrování.

Napsal: 08 zář 2021, 18:10
od mluno
Je to asi týden, co jsem chtěl zprovoznit přesně tento (nebo podobný) oled a všechny použitelné programy jsem uklidil tak dobře, že jsem se radši než pro archeologický průzkum, rozhodnul to sestavit znovu z examplů. Ono jde o znovusestavení jedné konstrukce, a trochu mě i štve, že nedokážu oprášit to, co jsem před dvěma roky udělal a musím to sestavovat znova, i když na tom mého vlastního know-how bylo minimum.
A právě přesně tato chyba na mě vyskočila při kompilaci jednoho. Ale žádný problém, zkusil jsem deset dalších (jiných knihoven), a možná bych zkoušel další, kdyby ten desátý nefungoval. Těch knihoven je velká spousta, stačí zadat do správce knihoven oled nebo ssd1306 a postupně je zkoušet. Nemá cenu pitvat se v jedné, když jiná funguje (to bych nechal, až by vše selhalo). Teda aspoň když se dělá nová konstrukce. Tady je to přecejenom jiná situace; zasahovat do programu někoho jiného je složitější.
Papír, kde mám poznámky, co mi fungovalo (nejde jen o displej, jde i o sd a snímač teploty a několik dalších částí) leží doma na stole, ale myslím si, že pro další použití jsem uvažoval Ucglih a vycházel bych z GraphicTest, kde je prakticky vše, co potřebuju.
Arduino ide teda moc rád nemám, ale to, že tam je spousta věcí hotových mě vždy přesvědčí. Radši jsem programoval v AVR studiu, ale dostat tam příslušné knihovny dá zabrat (párkrát se mi to i podařilo, ale je to vždy po takovém boji, že to nejsem schopný zopakovat).

Napsal: 08 zář 2021, 19:20
od hafca
Tak jsem to zkusil cvičně zkompilovat a prošlo to na první dobrou.

Napsal: 09 zář 2021, 12:01
od mluno
Tak jsem mířil těsně vedle, program, který mi fungoval bez větších úprav byl sice Graphictest.ino, ale ve skupině Ug8lib.
Bylo potřeba odkomentovat konstruktor podle použitého displeje (..._SSD1306_128x64 pro hw iic/twi).
Pro zápis do souboru použiju jako základ z knihovny SD datalogger.ino
Pro RTC potom ds1307.ino z RTClib by neiroN

Včera jsem to zkusil začít dávat dohromady, zatím tyto tři moduly (přibude minimálně ještě led displej a DS18B20) a zjistil jsem, že jsem na tom udělal asi víc práce, než si pamatuju, jak jsem se tak rozpomínal.

Ale co je hlavní je jak sloučit několik programů do jednoho. Každý má setup a loop. Prvním nápadem by bylo tyto funkce sloučit (prostě do jedné nakopírovat příkazy z ostatních), ale přišel jsem na elegantnější postup. Začnu založením nového projektu. Do něj na začátek zkopíruju jeden exampl. Jeho funkce setup a loop vhodně přejmenuju (např. setup_oled, loop_oled) a volám je v příslušných funkcích setup a loop projektu. A tak postupuju s dalšími. Je dobré průběžně kontrolovat zachování přeložitelnosti (mohou nastat různé konflikty) a správné funkčnosti, aby se včas podchytil případný začátek problémů. Pak bude následovat očištění a některé společné inicializace (třeba sériové linky) dám zvlášť.
Asi by bylo dobré potom rozumně choditelný (hotový nebude nikdy) projekt někde zveřejnit, abych ho po létech našel. Vůbec nechápu, kam se vypařil, prohledal jsem všechny počítače, včetně těch, kde by to být ani nemělo, a nenašel jsem.
Já vím, že jsem mimo téma, ale cítil jsem potřebu sdělit tu světu (a kolegům) část získaných zkušeností.
Mimochodem pro AVR studio existoval doplněk VisualMicro, který umožňuje v něm pracovat s projekty (alias skeči) arduina (ovšem jen do verze 1.6.3 což většinou nevadí, narazil jsem zatím snad na jedinou knihovnu, která vyžadovala novější verzi a snad se to dalo i opravit). Je inzerovaný jako bezplatný, po nainastalování se dozvíte, že je to zkušební verze na 14 dnů (jinak se musí zaplatit), ale chcípne po týdnu. Pak se po novém start trial tváří jakoby nic až po nějakém asi půl roce, když už si na nutnost nové aktivace co týden zvyknete, se už znovu aktivovat odmítne. Tehdy jsem to hodnotil jako velice šikovný doplněk (omezení v trial verzi byla naprosto nepodstatná), ale to bylo před dvěma lety a pro už tehdy dost zastaralé AVR Studio verze 6 takže dneska už bude vše jinak, já skončil tím, že sedmička vyžaduje windows verze 7.1/8/8.1 a to na žádném z počítačů nemám, takže používám stále pětku a šestku (koelga vyprávěl, že současné AVR studio je ještě větší bloatware o velikosti 10 giga a to už mi i ty 2 giga šestky přisly jako moc).