Forum: PC-Programmierung Wie ein schlecht dokumentierte Arduino Library nutzen?


von ProgAnfänger (Gast)


Lesenswert?

Hallo

Leider sind nicht alle Librarys die für den Arduino geschrieben wurden 
gut dokumentiert.
Bei so manchen sind nicht mal Beispiele, oder halt nur sehr 
Oberflächlich die bei weiten nicht alle Möglichkeiten der entsprechenden 
Library erklären vorhanden.
Wenn man Glück hat findet man irgendwelche Leute die auf ihren 
Internetseiten oder bei Youtube dann die Möglichkeiten solcher Librarys 
erklären.
Das ist aber nun mal nicht immer der Fall.

Also müsste man dann eigentlich in die Library (alle Dateien der 
Library) schauen da dort letztendlich alle Funktionen und Parameter- 
Variablen, usw. Namen vorhanden sind.
Nun sind aber Librarys besonders wenn sie der Nutzung vom komplexer 
Hardware dienen (z.B. ein Grafikdisplay) alles andere als leicht lesbar, 
ja so eine Library dient ja gerade dazu das die Nutzung der komplexen 
Hardware einfach gemacht wird und man sich nicht mit den Details der 
Hardware auseinandersetzen muss (Wer will kann es ja trotzdem machen), 
und C bzw. C++ bis in die tiefsten Tiefen verstehen und beherrschen 
muss.
Innerhalb der Librarys wird nun mal im Allgemeinen ziemlich komplexer 
Code verwendet der oft alle sehr spezielle "Tricks", Abkürzungen und 
"Hardcorekonstrukte"  nutz die selbst für den fortgeschrittenen 
Arduinonutzer der sogar die Grundlagen von  C und C++ beherscht sehr 
schwer bis überhaupt nicht verständlich sind.

Wie also wie erkannt man als Arduinonutzer (der aus guten Grund eben im 
Arduinouniversum bleibt und nicht jahrelang bis auf Bitebene C und C++ 
am besten noch aufgepeppt mit ein große Portion Assembler erlernt => 
Genau das steht ja hinter der Idee Arduino und ähnlichen Projekten) den 
mun wie eine schlecht Dokumentiert Library funktioniert wenn es halt 
keine "Anleitungen" aus anderer Quelle gibt?
Meckern, andere Librarys suchen und Anfrage beim Autor in Foren den 
sozialen Medien oder gar "echten" Menschen im realen Leben ;-)  nehme 
ich jetzt mal als nicht möglich gegeben hin, das lege ich bezüglich 
meiner Frage jetzt mal keine machbaren Lösungen fest- weil es in der 
Realität tatsächlich oft auch so ist.

Also wie geht man dann vor?

Und ja:
"Lass es ein", "Verzichte drauf", "lerne C und C++ bis in die Tiefen", 
"Lese und Verstehe das Datenblatt bis ins jede Detail sind keine 
Lösungen - wenn ich bzw. all die Nutzer es könnten bräuchte es kein 
Arduino oder höhere Programmiersprachen bzw. wir wären wieder auf den 
Stand 1982 ;-) und davor...

von MaWin (Gast)


Lesenswert?

ProgAnfänger schrieb:
> Also wie geht man dann vor?

Man gibt auf.
Denn alle möglichen Lösungen schließt du ja bereits aus.

> Und ja:
> "Lass es ein", "Verzichte drauf", "lerne C und C++ bis in die Tiefen",
> "Lese und Verstehe das Datenblatt bis ins jede Detail sind keine
> Lösungen - wenn ich bzw. all die Nutzer es könnten bräuchte es kein
> Arduino oder höhere Programmiersprachen bzw. wir wären wieder auf den
> Stand 1982 ;-) und davor...

von Heiner (Gast)


Lesenswert?

MaWin schrieb:
> ProgAnfänger schrieb:
>> Also wie geht man dann vor?
>
> Man gibt auf.
> Denn alle möglichen Lösungen schließt du ja bereits aus.
>
>> Und ja:
>> "Lass es ein", "Verzichte drauf", "lerne C und C++ bis in die Tiefen",
>> "Lese und Verstehe das Datenblatt bis ins jede Detail sind keine
>> Lösungen - wenn ich bzw. all die Nutzer es könnten bräuchte es kein
>> Arduino oder höhere Programmiersprachen bzw. wir wären wieder auf den
>> Stand 1982 ;-) und davor...

+1👍👍

von Sebastian (Gast)


Lesenswert?

"Nicht alle sind gut dokumentiert"? Ich würde eher sagen, alle sind 
nicht gut dokumentiert.

LG, Sebastian

von J. S. (jojos)


Lesenswert?

Gerade Grafiklibs gibt es viele. Funktionieren sollten alle, sofern die 
vorhandene Hardware unterstützt wird, das muss man als erstes prüfen.
Dann sind in Arduino Beispiele ein Bestandteil einer Library, da sollte 
man beim einfachsten anfangen und dann die weiteren probieren.
Grafik ist nicht das einfachste Thema für den Anfang, da gibt es viele 
verschiedene Konzepte. Einfache die direkt Zeichnen (Adafruit_GFX, ug8, 
eTFT, lovyan), entweder in einen Puffer oder direkt in den 
Grafikspeicher des Displays. Und es gibt aufwändigere wie lvgl die mit 
Zeichenobjekten arbeiten was einige Vorteile bietet. Das braucht aber 
mehr Speicher, wobei man für Grafik generell leistungsfähigere 
Controller verwenden sollte. Heute gibt es 32 Bitter, da sollte man sich 
nicht am kleinsten AVR festklammern.
Und der wichtigste Tipp: hier im Forum nicht nach Arduino Hilfe fragen. 
Hier sind nur maximal viele Arduino Hasser unterwegs.

von J. S. (jojos)


Lesenswert?

Sebastian schrieb:
> Ich würde eher sagen, alle sind
> nicht gut dokumentiert.

Dann zeige doch mal deine Mustergültigen Beispiele. Oder wolltest du 
auch nur mal im 'Arduino ist ja so Kacke' Karussel mitfahren?

von Schlaumaier (Gast)


Lesenswert?

Wieso soll mich das interessieren wie es dokumentiert ist. ?!?!

Es reicht völlig aus, wenn ich die Aufrufe und die Parameter weiß. Und 
wenn ich weiß/merke ob es seinen Zweck erfüllt.

Es gibt für mich seit ich programmiere nur 2 Varianten.

Variante 1 : Ich weiß die Aufrufe , teste die Funktion und wenn gut dann 
gut. Wie bei jeder DLL etc. auch

Variante 2 : Ich schreibe die Lib/Funktion etc. selbst.

Ich habe und werden NIE in einer fertigen Lib/Funktion herum basteln. 
Der Aufwand durch den Mist anderer Leute durch zu blicken habe ich mir 
schon zu Zeiten einen ZX-81 abgewöhnt.

Grund: Wenn man das versucht muss man die Gedankengänge des Coders 
nachvollziehen. Und das bedeutet i.d.R. für eine einfache Lib eine 
Dokumentation die größer ist als die ungekürzte Fassung von "Krieg + 
Frieden". Und liest sich auch ähnlich zäh.

Das einzige was ich schon mal mache ist sich "Codeschnipsel" anzusehen, 
um zu sehen wie andere Leute das gelöst haben.

MEHR NICHT.

Aber ich bin ja auch altmodisch.  Was vermutlich zu folge hat, das ich 
noch nie eine "Freie Lib" austauschen musste. ;)

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Naja, geschenkten Gauls schaut man ja auch nicht ins Maul, heißt es.

Bei der Mehrzahl von Arduino Libs die über Github kommen, merkt man 
schon, daß sich die Leute vielfach sehr viel Mühe gegeben haben und 
meistens funktioniert auch alles wenn man sich an die Vorgaben hält, 
nicht hudelt oder schlampig vorgeht. Auch darf man nicht vergessen, daß 
für viele Autoren, diese Beiträge "Liebeswerk" oder eine Möglichkeit 
sind, herzuzeigen was man kann und in gewisser Hinsicht ein 
Aushängeschild eigener Fertigkeiten.

Was mich betrifft, bin ich den Leuten sehr dankbar, oft an echt guten 
Lösungen frei heranzukommen die ich mir sonst mit tagelangem Zeitaufwand 
erst mühselig selber erarbeiten müßte. Was Libs für viele ICs betrifft, 
dienen die oft mehr oder weniger gut als "Referenz Design" und ersparen 
bei komplizierten Gesellen viel Frustration und Gehirnschmalz und können 
bei weiterführender Arbeit auch recht dienlich sein.

Was die Qualität der Doku betrifft, ist das Spektrum natürlich breit und 
hin und wieder flucht man natürlich auch wieder fast, wenn man sich fast 
die Haare ausreisst durchzublicken. Aber das ist eben so und könnte als 
Ansporn dienen, es vielleicht, selber besser zu machen.

Im Fazit, finde ich, wäre es konsequent, allen dankbar sein die uns mit 
ihrer Freiwilligen-Arbeit zur Seite stehen und auch versuchen könnten 
mit-beizutragen, und wenn möglich, es doch besser machen zu versuchen. 
Allzuoft, sind wir alle zusammen leider eher nur "Nehmende". Open Source 
bedeutet aber im Spirit, beidseitige Zusammenarbeit und fruchtbare 
Aktivitäten.

My two cents worth...

Gerhard

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

ProgAnfänger schrieb:
> Meckern, andere Librarys suchen und Anfrage beim Autor in Foren den
> sozialen Medien oder gar "echten" Menschen im realen Leben ;-)  nehme
> ich jetzt mal als nicht möglich gegeben hin,

Doch. Könnte man. Genauso, wie man die Grundlagen zu dem lernen könnte, 
was du da zu tun versuchst.

Dir bleiben daher wenig Alternativen.

Wenn du mit einer lib nicht klarkommst, nimm die nächste. Ist die für 
dich auch nicht geeignet, nimm die übernächste. Überfordert die die auch 
noch, wechsle das Hobby.

Man muß das nicht so machen, aber dein Ansatz lässt halt nichts anderes 
zu.

Oliver

: Bearbeitet durch User
von Euro (Gast)


Lesenswert?

ProgAnfänger schrieb:
> Also müsste man dann eigentlich in die Library (alle Dateien der
> Library) schauen da dort letztendlich alle Funktionen und Parameter-
> Variablen, usw. Namen vorhanden sind.

Examples/Funktionstests sind doch nahezu immer dabei. Das ist, wenn 
sonst nix beiliegt,  die zu lesende Minimaldokumentation, auf deren 
Basis man sich seinen eigenen Prototypen bauen kann.
Gleichzeitig ist es die Einstiegshürde: Wenn die Examples nicht laufen, 
ist die Lib wahrscheinlich "out of date" oder schlicht nicht vernünftig 
getestet.

von DerEgon (Gast)


Lesenswert?

Euro schrieb:
> Das ist, wenn
> sonst nix beiliegt,  die zu lesende Minimaldokumentation, auf deren
> Basis man sich seinen eigenen Prototypen bauen kann.

Die tatsächliche Minimaldokumentation ist das public-Interface der 
Klassendeklaratin in der entsprechenden Headerdatei.
Hier auch auf die Basisklasse achten.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ich fasse mal zusammen:

- Es ist eine technische Entwicklung geplant.

- Die Fähigkeiten zur Umsetzung dieses Vorhabens fehlt.

- Die Bereitschaft, sich diese Fähigkeiten anzueignen, ist nicht
  vorhanden.

- Der Verzicht auf das Vorhaben ist keine Option.

Lern von den BWLern, die jeden Tag vor solchen und ähnlichen Problemen
stehen:

Lass einfach andere machen. Dafür musst du entweder eine angemessene
Summe Geld investieren oder – und das ist die hohe Kunst der BWL – einen
Freiwilligen finden, da alles kostenlos für dich macht.

von Sebastian (Gast)


Lesenswert?

J. S. schrieb:
> Sebastian schrieb:
>> Ich würde eher sagen, alle sind
>> nicht gut dokumentiert.
>
> Dann zeige doch mal deine Mustergültigen Beispiele. Oder wolltest du
> auch nur mal im 'Arduino ist ja so Kacke' Karussel mitfahren?

Nehmen wir z.B. 
https://www.arduino.cc/reference/en/libraries/ethernet/ethernet.maintain:
* Keine Angabe welche Zeit die Funktion maximal benötigt.
* Keine Angabe ob die Funktion (selbst, oder indirekt) Interrupts 
sperrt, und wenn ja für wie lange maximal.

Arduino ist wie es ist, oft hilfreich, manchmal zun Haareraufen.

LG, Sebastian

von Εrnst B. (ernst)


Lesenswert?

Sebastian schrieb:
> * Keine Angabe welche Zeit die Funktion maximal benötigt.

Wenn der DHCP-Server nicht reagiert: 60 Sekunden (default für timeout, 
wenn du es nicht anders initialisierst)
1
static int begin(uint8_t *mac, unsigned long timeout = 60000, unsigned long responseTimeout = 4000);

Sebastian schrieb:
> Keine Angabe ob die Funktion (selbst, oder indirekt) Interrupts
> sperrt, und wenn ja für wie lange maximal.

Macht sie nicht. d.H. du solltest in deinen ISRs die Finger vom SPI 
lassen.


Sind aber beides Fragen, die den "typischen Arduino-User" nicht im 
geringsten Interessieren. Der hat nix mit ISRs am Hut, und will einfach 
dass das Netzwerk funktioniert.
Und dazu eine möglichst einfache Dokumentation, die nicht mit für ihn 
irrelevanten technischen Details überfrachtet ist.

von Hobby (Gast)


Lesenswert?

Wenn "ich" die Library unbedingt verwenden will und keine Lust fürs 
Neuprogrammieren habe - ich mache das als Hobby - lese ich mir den Code 
durch. Denn der ist für das Durchlesen durch einen Menschen gedacht. 
Natürlich ist es blöd, wenn der Schreiber möglichst unleserlichen Code 
abliefert.

Wird mir das ganze dann zu blöd, denke ich schon mal ans 
Neuprogrammieren.
Oder ich lasse das ganze, denn es ist nur Hobby und nicht 
Überlebenswichtig.

von W.S. (Gast)


Lesenswert?

ProgAnfänger schrieb:
> Also wie geht man dann vor?

Man befaßt sich mit den Prinzipien dessen, was so eine fertige Lib 
leisten soll. Sowas soll dem eigenen Verständnis dienen und bedeutet 
keineswegs, sich nur in irgendeine Programmiersprache zu verbohren. Das 
ist m.E. gerade die verkehrteste Ecke. Nicht das Detailwissen, welcher 
Kringel von anderen an welche Stelle geschrieben wurde, sondern wie und 
mit welchen Algorithmen man eine Aufgabe lösen kann und wie man eine 
komplexe Sache wie eine Firmware für einen µC in sinnvolle Teile 
aufteilt. Wenn du dich mit dem Entwickeln von elektronischen Geräten 
befassen willst, dann kommst du nicht umhin, Fachwissen zu erlernen und 
Fertigkeiten zum Lösen von Problemen zu erwerben. Wenn dir das zu mühsam 
ist, dann wechsle das Hobby.

Oliver S. schrieb:
> Wenn du mit einer lib nicht klarkommst, nimm die nächste. Ist die für
> dich auch nicht geeignet, nimm die übernächste.

Dieser Vorschlag hätte direkt vom Teufel kommen können. Anstatt zu 
begreifen soll er solange blind probieren, bis er entweder wie das 
berühmte blinde Huhn das Korn gefunden hat oder alles den Bach runter 
gegangen ist. Ach nö.

W.S.

von Sebastian (Gast)


Lesenswert?

Εrnst B. schrieb:
> Sebastian schrieb:
>> * Keine Angabe welche Zeit die Funktion maximal benötigt.
> Wenn der DHCP-Server nicht reagiert: 60 Sekunden (default für timeout,
> wenn du es nicht anders initialisierst)static int begin(uint8_t *mac,
> unsigned long timeout = 60000, unsigned long responseTimeout = 4000);
>
> Sebastian schrieb:
>> Keine Angabe ob die Funktion (selbst, oder indirekt) Interrupts
>> sperrt, und wenn ja für wie lange maximal.
> Macht sie nicht. d.H. du solltest in deinen ISRs die Finger vom SPI
> lassen.

QED

Εrnst B. schrieb:
> Sind aber beides Fragen, die den "typischen Arduino-User" nicht im
> geringsten Interessieren. Der hat nix mit ISRs am Hut, und will einfach
> dass das Netzwerk funktioniert.
> Und dazu eine möglichst einfache Dokumentation, die nicht mit für ihn
> irrelevanten technischen Details überfrachtet ist.

Das ist ja genau die Arduino-"Falle" die in diesem Thread (und in vielen 
anderen dieses Forums) thematisiert wird: Der Pfad aus der 
Arduino-Bastelwelt hin zu einigermassen robusten Anwendungen (sagen wir, 
eine automatische Gartenbewässerung) ist eben doch steiniger als es 
zunächst den Eindruck macht, weil man dazu dann doch einen Grossteil 
dessen was im Arduino-Quellcode passiert durchdringen MUSS.

LG, Sebastian

von J. S. (jojos)


Lesenswert?

Sebastian schrieb:
> (sagen wir,
> eine automatische Gartenbewässerung)

oder man schaut sich das openSprinkler Projekt an. Es gibt soviele 
Community Projekte mittlerweile, da muss man sich wirklich fragen was an 
der Einzelkämpferlösung noch besser ist.

Habe gestern ein Display WT32-SC01 bekommen, 3,5" TFT mit ESP32 kompakt 
zusammengebaut. Dazu findet man fertige Projekte, mit PIO und Arduino 
oder IDF Framework und lvgl, das liefert in wenigen Minuten ein 
lauffähiges binary. Sowas ist schon nett mal eben so ein komplexes 
System zum Laufen zu bekommen.

von Oliver S. (oliverso)


Lesenswert?

W.S. schrieb:
> Dieser Vorschlag hätte direkt vom Teufel kommen können. Anstatt zu
> begreifen soll er solange blind probieren, bis er entweder wie das
> berühmte blinde Huhn das Korn gefunden hat oder alles den Bach runter
> gegangen ist. Ach nö.

Das basiert auf seiner Vorstellung davon, wie Arduino funktionieren 
soll, nicht meiner.

Oliver

von member of the big Johnson community (Gast)


Lesenswert?

ProgAnfänger schrieb:
> st.
>
> Also wie geht man dann vor?

Man arbeitet sich ein und nutzt es. Wasn das fürne bekloppte Frage?
Gestern kam der selbe Schmarrn, gibs zu das warst doch du?

Thread löschen und verbrennen. 90% der Postings hier sind 
Trivialitätenmüll von Kindern.

von Heiner (Gast)


Lesenswert?

member of the big Johnson community schrieb:
> ProgAnfänger schrieb:
>> st.
>>
>> Also wie geht man dann vor?
>
> Man arbeitet sich ein und nutzt es. Wasn das fürne bekloppte Frage?
> Gestern kam der selbe Schmarrn, gibs zu das warst doch du?
>
> Thread löschen und verbrennen. 90% der Postings hier sind
> Trivialitätenmüll von Kindern.

+1 👍👍

von Olaf (Gast)


Lesenswert?

Gerade wenn man Arduino mit eigenen Sourcen kombinieren möchte, ist es 
in der Tat wirklich manchmal doof, dass man nicht weiß welche Hardware 
benutzt wird. Und das ist ja natürlich noch Platform abhängig.

Ich finde z.B. eine Grafiklibrary oder einen Sensor-Treiber super 
praktisch. Das spart schon einiges an Zeit und Mühen. Das ist ja auch 
der Sinn dahinter. Es kommt ja auch nicht aus dem Nichts, dass die 
Prozessor Hersteller selber Frameworks etablieren...

Was einen bei Arduino aber oft interessiert - welche Resourcen sind weg. 
Bei avr stößt JEDER wohl auf die Frage: welcher Timer ist eigentlich 
frei? Nachher fragt man sich (ich benutze z.B. gerne den alten Arduino 
Due) benutzt eine lib dma und wenn welchen kanal oder so.
Das wäre schon recht praktisches Wissen - durch die explosionsartig 
zunehmenden Platformen aber rein theoretisch.


Erinnert euch doch mal an früher....15 Jahre zurück. Was hat denn na an 
bare metal Code und Treibern aus dem Internet so funktioniert wie 
erhofft. So gesehen laufen doch super viele libs reibungslos und 
meistens gibt es noch Beispiel Projekte dazu.

von Gerhard O. (gerhard_)


Lesenswert?

Ich bin nach wie vor der Ansicht, daß oft über einen zu breiten Kamm 
geschert wird. Viele, nicht alle, über Github publizierte 
"Unterstützungen" sind ausreichend brauchbar präsentiert und kommen mit 
Beispielen zum Testen. Ich hatte jedenfalls noch nie Probleme eine Lib 
für mich erfolgreich einzusetzen. Man sieht sich die vorhandenen 
Informationen an, nachvollzieht oder ausprobiert die fast immer 
mitgegebenen Beispiele und evaluiert die Ergebnisse. Dann kann man immer 
noch entscheiden ob "Feinarbeit" vonnöten ist.

Hier ist ein Beispiel einer für mich vollkommen ausreichenden Lib für 
einen Schrittmotor:

https://github.com/clearwater/SwitecX25

Ich probierte es aus und erweiterte die Treiber, so daß man den Motor 
anstatt einzelner Port-Pins über ein Shift Register betreiben konnte. Es 
gab keinerlei Probleme.

Was übrigens Benutzer von existierenden Libs und Beispiel Code nicht 
übersehen sollten, ist, daß dieselbe Bord Package Version benutzt wird 
die auch der Autor verwendete. Mir ist schon passiert, daß z.B das 
neueste bei mir installierte Bord Package auf eine andere GCC Version 
baute und die Anwendung nicht mehr ohne Fehler kompilierte. Ich rate 
ernsthaft, daß in der Doku solcher Ressourcen solche Informationen 
dokumentiert werden sollten.

Jedenfalls, finde ich, daß in der Mehrzahl der angebotenen freien Libs 
die Dokumention ausreichend, wenn auch oft ziemlich spärlich, sind und 
fast immer als Startpunkt erfolgreich dienen können. Ich finde, was mich 
betrifft, die Beanstandungen des Threads Themas etwas überzogen und man 
sollte froh sein, daß es überhaupt was Nutzvolles gibt. Eigene 
Anstrengungen, wenn notwendig, aufzubringen, ist auch kein Malheur.

Perfektion findet man selten. Ich weiß, ihr mögt solche Predigen nicht 
gern, aber ich sehe die Welt bei weiten nicht so schwarz wie manche hier 
und finde, daß positive Aspekte klar überwiegen.

: Bearbeitet durch User
Beitrag #7125986 wurde von einem Moderator gelöscht.
von W.S. (Gast)


Lesenswert?

Gerhard O. schrieb:
> Ich bin nach wie vor der Ansicht, daß oft über einen zu breiten Kamm
> geschert wird.

Ich hingegen sehe das ein ganzes Stück verdrießlicher: Irgendwelche 
vorbereiteten Dinge wie z.B. Arduino machen es einem deutlich leichter, 
mal eben zu einem Ziel zu gelangen - aber zugleich verleiten sie die 
Leute auch, Wissen und Können, das sie eigentlich brauchen würden, als 
unnötig (oder zumindest vernachlässigbar) anzusehen, denn es gibt ja 
eine Lib zum Herunterladen die es erledigt. Mag sein, daß sowas auf die 
Schnelle nützt, aber auf lange Sicht ist es schädlich. Nicht weil von 
anderen geschaffene Projekte schlecht wären, oh nein. Sondern weil die 
Nachnutzer es sich bequem machen und deshalb nix dazulernen.

W.S.

von Norbert (Gast)


Lesenswert?

W.S. schrieb:
> …aber zugleich verleiten sie die
> Leute auch, Wissen und Können, das sie eigentlich brauchen würden, als
> unnötig (oder zumindest vernachlässigbar) anzusehen…

Wahre Worte souverän gesprochen.

(Und das Ergebnis sieht man jeden Tag.)

von Gerhard O. (gerhard_)


Lesenswert?

W.S. schrieb:
> Gerhard O. schrieb:
>> Ich bin nach wie vor der Ansicht, daß oft über einen zu breiten Kamm
>> geschert wird.
>
> Ich hingegen sehe das ein ganzes Stück verdrießlicher: Irgendwelche
> vorbereiteten Dinge wie z.B. Arduino machen es einem deutlich leichter,
> mal eben zu einem Ziel zu gelangen - aber zugleich verleiten sie die
> Leute auch, Wissen und Können, das sie eigentlich brauchen würden, als
> unnötig (oder zumindest vernachlässigbar) anzusehen, denn es gibt ja
> eine Lib zum Herunterladen die es erledigt. Mag sein, daß sowas auf die
> Schnelle nützt, aber auf lange Sicht ist es schädlich. Nicht weil von
> anderen geschaffene Projekte schlecht wären, oh nein. Sondern weil die
> Nachnutzer es sich bequem machen und deshalb nix dazulernen.
>
> W.S.

Ist bestimmt wahr. Aber es liegt halt an jedem Einzelnen wie weit er 
gehen möchte und sollte. Es steht mir nicht zu das zu kritisieren. Ich 
bin froh, wenn ich einen neuen Peripheral-IC ausprobieren möchte, eine 
fertige Lib dafür (gleichzeitig) bekommen kann. Meist sind sie auch gar 
nicht so schlecht geschrieben, als dass man sie dann für eigene Zwecke 
später noch besser anpassen könnte.

Ehrlich gesagt hätte ich wenig Motivation ohne guten Grund von unten auf 
z.B. eine Dateisystem oder einen komplizierten Datenstack entwickeln zu 
müssen mit dem dafür notwendigen Zeitaufwand. Sicher, man wird dann eine 
Zeitlang Experte sein. Aber mit der Zeit verschwindet auch dieses 
Detailwissen wieder.

Was mich betrifft schäme ich mich nicht das zuzugeben.
Da konzentriere ich mich lieber auf die eigentliche Designarbeit in HW 
und die Anwendungs-FW und freue mich ein Dateisystem zur Verfügung haben 
zu können. Das war früher am PC auch nicht anders wo man schon fertige 
externe Bibliotheksfunktionen im Turbo-C oder QB45 unter MSDOS oder auch 
Linux hatte. Da gibt es ja auch alle möglichen Betriebssystem Services 
und Funktionen.

Im Prinzip sind da fertige Arduino Libs nicht viel Anderes und sehe 
keinen großen Unterschied zu PC-Programmieren. Dort mussten wir ja auch 
nicht nur mit dem einfachen C internen Kommandos ein FAT von Grund auf 
entwerfen nur um einen Datenlogger zu schreiben.

So gesehen, dürfen wir in aller Fairness die Arduino Users die solche 
Utilitären Sachen verwenden wollen, nicht verurteilen. Wer lernwillig 
ist und sich dann aus eigener Motivation weiter reinkniet, dem gebührt 
unsere Anerkennung. Der große Unterschied beim uC Programmieren und 
Computer System mit einem vollständigen Betriebssystem ist, dass beim uC 
meisten nichts existiert, wenn man von rpi und Co. mal absieht. Ein uC 
ist genauso "nackig" wie ein PC ohne BIOS Services und BS. Der PC würde 
ohne BIOS nach dem Einschalten nicht einmal einen Piepser machen.

Ganz abgesehen bin ich nicht sicher ob ich die ganzen Standards für FAT 
oder TCP wirklich gut genug verstehen könnte in meinem Alter. Da tut man 
sich schon etwas schwerer.

Jeder muss selber entscheiden wie er da sieht. Mir steht es nicht zu 
irgendwelche fremden unbekannten Leute runter zumachen. Es gibt immer 
jemand der (weit) voraus ist. Der wirkliche Fachmann weiß das auch und 
benimmt sich bescheiden;-)

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

Gerhard O. schrieb:
> So gesehen, dürfen wir in aller Fairness die Arduino Users die solche
> Utilitären Sachen verwenden wollen, nicht verurteilen.

Darum geht es ja eigentlich nicht in diesem Thread.

Es geht zum einen darum, daß der TO den Anspruch hat, selber mit Arduino 
ohne auch nur die geringste Ahnung von Mikroprozessoren was zusammen 
stöpseln zu können, während er erwartet, daß alle anderen, die ihre 
genauso zusammen getöpselten Werke als lib im Netz veröffentlichen, 
gefälligst ausgewiesene Experten zu sein haben.

Oder, anders ausgedrückt: Das System Arduino hat seine Berechtigung, hat 
aber eben auch zur Folge, daß da sehr viel unausgegorener Code im Netz 
herumschwirrt.

Oliver

von PittyJ (Gast)


Lesenswert?

ProgAnfänger schrieb:
> Also müsste man dann eigentlich in die Library (alle Dateien der
> Library) schauen da dort letztendlich alle Funktionen und Parameter-
> Variablen, usw. Namen vorhanden sind.
> Nun sind aber Librarys besonders wenn sie der Nutzung vom komplexer
> Hardware dienen (z.B. ein Grafikdisplay) alles andere als leicht lesbar,
> ja so eine Library dient ja gerade dazu das die Nutzung der komplexen
> Hardware einfach gemacht wird und man sich nicht mit den Details der
> Hardware auseinandersetzen muss (Wer will kann es ja trotzdem machen),
> und C bzw. C++ bis in die tiefsten Tiefen verstehen und beherrschen
> muss.
> Innerhalb der Librarys wird nun mal im Allgemeinen ziemlich komplexer
> Code verwendet der oft alle sehr spezielle "Tricks", Abkürzungen und
> "Hardcorekonstrukte"  nutz die selbst für den fortgeschrittenen
> Arduinonutzer der sogar die Grundlagen von  C und C++ beherscht sehr
> schwer bis überhaupt nicht verständlich sind.

Ne, das kann ich nicht nachvollziehen.
Ich bin mal zu
https://www.arduino.cc/reference/en/libraries/
gegangen, und habe mir wahlos 3 Libraries herausgegriffen.
Ok, die waren alle etwas spärlich kommentiert, doch habe ich keine 
spezielle "Tricks", Abkürzungen und "Hardcorekonstrukte" gefunden. War 
alles mehr Basiswissen.

Und wenn ich eine Library brauche, und es nichts gibt, dann besorge ich 
mir das Datenblatt, und mache es selbst. Da weiss man, was man hat. 
Dafür brauche ich auch keine tiefsten Tiefen. Eigentlich müssen nur 
Buffer gefüllt und transferiert werden. Das war es. Wie man die Buffer 
füllt, das ist Fleißarbeit. Aber manche Leute habe dazu wohl keine Lust.

von J. S. (jojos)


Lesenswert?

PittyJ schrieb:
> Wie man die Buffer
> füllt, das ist Fleißarbeit. Aber manche Leute habe dazu wohl keine Lust.

die Libs machen aber einen Tick mehr als nur Buffer zu füllen.
Async HTTP Server, MQTT, lvgl, KNX, mDNS, Matrixdisplay mit zig Modi, 
usw. Alles Dinge die ich in letzter Zeit benutzt habe und nicht alle 
selber schreiben möchte.

von ProgAnfänger (Gast)


Lesenswert?

Hallo

J. S. schrieb:
> Alles Dinge die ich in letzter Zeit benutzt habe und nicht alle
> selber schreiben möchte.

Und vor allen:
Nicht kann (Ich spreche mal für mich und die Mehrzahl der 
Arduinosystemnutzer)

Erstmal müsste ich C bzw++. am besten ergänzt mit Assemblerkenntnissen 
wirklich gut beherrschen
Nur ein willkürlich gewähltes Beispiel
https://github.com/arduino-libraries/ArduinoBLE/blob/master/src/BLEDevice.h

Und sollte eben natürlich auch die gewünschte Hardware und alles was im 
deren Datenblatt beschrieben ist verstehen.
Oft sind da noch viele Protokolle dahinterstehend - die man sich 
entweder wiederum aus fertigen Librarys die hoffentlich gut 
dokumentierten sind nimmt und "einfach" (...) einbindet oder dann, wenn 
man so wie sich das hier einige Profiprogrammierer vorstellst,  neu 
schreiben müsste.

Man muss jetzt nicht gleich bis zum USB Protokoll gehen um zu sehen das 
so was sehr schnell sehr aufwendig wird und sehr viel Wissen vorhanden 
sein muss.

So und jetzt sollten sich alle Profiprogrammierer und mit Vorwürfen um 
sich schmeißenden mal ansehen für welche Zielgruppe Arduino (und 
ähnliche halt nicht so erfolgreiche Projekte) eigentlich ursprünglich 
gedacht waren...
Da kann und muss man schon froh sein (und zwar in Sinn von Dankbar und 
gut das du mehr machst als eigentlich Ursprünglich von der Idee her 
verlangt wurde) wenn sich ein Teil dieser ursprünglichen Zielgruppe ein 
wenig tiefer gehend mit C und C++ auseinandersetzt.
Immer dran denken:
Die Profis und Hardcore Hobbyprogrammier vom Typ seid 1980 mit dabei - 
alles aus Büchern gelernt mit Assembler aufgewachsen und alle Register 
von mehreren Generationen µC auswendig drauf sollten sich klar werden 
für wenn Arduinon (und Co.) gedacht sind und das sie die Minderheit und 
"Extrawürstchen" sind sich mit ihren Aussagen und Wertung von über 95% 
der Nutzer zurückhalten sollten.

von J. S. (jojos)


Lesenswert?

ProgAnfänger schrieb:
> So und jetzt sollten sich alle Profiprogrammierer

Die Profis haben auch schon immer Libs benutzt um Zeit zu sparen. Nur 
das man für ein Betriebssystem, TCP/IP Stack und Grafik fürchterlich 
viel Geld ausgeben musste.
Und auch da haben die Entwickler nur mit Wasser gekocht und man hat laut 
über die schlechte Doku und nicht funktionierende Beispiele geschimpft.

von Michael U. (amiga)


Lesenswert?

Hallo,

ProgAnfänger schrieb:
> Immer dran denken:
> Die Profis und Hardcore Hobbyprogrammier vom Typ seid 1980 mit dabei -
> alles aus Büchern gelernt mit Assembler aufgewachsen und alle Register
> von mehreren Generationen µC auswendig drauf sollten sich klar werden
> für wenn Arduinon (und Co.) gedacht sind und das sie die Minderheit und
> "Extrawürstchen" sind sich mit ihren Aussagen und Wertung von über 95%
> der Nutzer zurückhalten sollten.

Der Witz ist: ich seit 1980 dabei und etlichen Op-Codes von Z80, 6510 
usw. und deren Register weiß ich teilweise heute noch.
Ich bin von da über AVR-ASM (avra, Port für den Amiga...) über AVR 
Studio dann bei C gelandet (mehr notgedrungen weil ich Radigk's 
Webserver für das NetIO und meine Wünsche anpassen wollte.
Bei der ArduinoIDE bin ich gelandet als die ersten ESP8266 auftauchten.
Ich kenne keine andere Umgebung, wo ich so problemlos mal schnell mit 
einer anderen CPU-Familie rumspielen kann.
Mein Vorteil ist natürlich, daß ich notfalls in die Tiefen steigen kann, 
auch komplexe Datenblätter lesen und ausreichend verstehen kann.

Was z.B. bei der Arduino-Diskussion gern übersehen wird:
man erstellt eine neue .ino und löscht alles raus.
Dann kopiert man ein (vollständiges) Beispiel hier aus dem 
AVR-GCC.Tutorial rein und compiliert es. Dann eben noch einen Arduino 
Nano o.ä. wegen des Bootloaders und man kann das so aus der IDE flashen 
und testet,

Damit ist man zum üben schon ziemlich weit unten angekommen ohne ein 
AtmelStudio o.ä. mit seinen dutzenden Einstellungen erst einrichten zu 
müssen. Es wird auch in der ArduinoIDE ohne setup(), loop() und include 
arduino.h der Source einfach nur dem GCC in die Hand gedrückt.

Gruß aus Berlin
Michael

von W.S. (Gast)


Lesenswert?

Gerhard O. schrieb:
> Aber es liegt halt an jedem Einzelnen wie weit er
> gehen möchte und sollte.

Eben. Normalerweise sollte es da nichts zu kritisieren geben - aber wenn 
es ein gar zu krasses Mißverhältnis gibt zwischen dem Projekt und dem, 
was der Arduin-Benutzer überhaupt stemmen kann, dann ist Kritik 
angesagt, daß er mehr abgebissen hat als er schlucken kann. Oder in 
andere Worten: daß er erst noch einiges dazulernen muß. Man muß es den 
Leuten sagen, das ist ein Stück Ehrlichkeit.

W.S.

von Oliver S. (oliverso)


Lesenswert?

Michael U. schrieb:
> Damit ist man zum üben schon ziemlich weit unten angekommen ohne ein
> AtmelStudio o.ä. mit seinen dutzenden Einstellungen erst einrichten zu
> müssen.

Atmel wäre froh gewesen, wenn das Studio Dutzende Einstellungen gehabt 
hätte…

Oliver

von Norbert (Gast)


Lesenswert?

Hinzu kommt noch Folgendes (selbst in den mitgelieferten - nennen wir 
sie mal - libs):
Es wird gerade solange herumprogrammiert bis es irgendwie funktioniert.
Darauf folgt die Phase des großen Vergessens…
Vor vielleicht drei Jahren kam jemand auf mich zu weil er Probleme mit 
der ›eingebastelten‹ USB Funktionalität hatte.
Daraufhin warf ich zum ersten Mal einen Blick in den sourcecode des 
USB-moduls. Das hätte ich besser nicht getan:
1
int USB_Send(u8 ep, const void* d, int len)
2

3
u8 timeout = 250;               // 250ms timeout on send? TODO
1
else if ((len == 0) && (ep & TRANSFER_RELEASE)) { // ...or if forced with TRANSFER_RELEASE
2
                                // XXX: TRANSFER_RELEASE is never used can be removed?
3
                                ReleaseTX();
4
5
//      This really needs dynamic endpoint allocation etc
6
//      TODO
7
8
 // TODO: handle the HALT state of an endpoint here
9
10
 //TODO
11
                // WAKEUPI shall be cleared by software (USB clock inputs must be enabled before).
12
                //USB_ClockEnable();

…und so weiter und so fort. Wie gesagt, ist Jahre her, ist immer noch 
drin.

Das sind wie gesagt keine Libraries die von Dritten zur Verfügung 
gestellt werden, das Zeug kommt mit der IDE (noch so ein Euphemismus)

Wenn dann ein Anfänger in Probleme läuft, dann war es das eben. Ende.
Die Leute die mit Arduinos arbeiten haben nur in den seltensten Fällen 
solides Know-How um über solche Stolpersteine zu klettern. Aber nach 
eigenen Vorgaben richtet sich Arduino an Künstler und Werbetexter. (sehr 
freie Interpretation meinerseits)

Viele der ›hinzufügbaren‹ libs sind auch nicht wesentlich besser.
Blinky wird aber oft getestet, das funktioniert.

Dokumentation: Wenn man schon ›setup‹ und ›loop‹ anbietet, so gehört 
zumindest bei der sleep Funktion und allen mit Timeouts behafteten 
Dingen eine solide, anfängertaugliche Warnung und Erklärung dazu.

»Aber das heißt doch loop, da muss es doch endlos im Kreis laufen. Warum 
stoppt es bei mir?«
Ich vermute mal solch einen Satz haben schon viele gehört.

von Zeno (Gast)


Lesenswert?

ProgAnfänger schrieb:
> So und jetzt sollten sich alle Profiprogrammierer und mit Vorwürfen um
> sich schmeißenden mal ansehen für welche Zielgruppe Arduino (und
> ähnliche halt nicht so erfolgreiche Projekte) eigentlich ursprünglich
> gedacht waren...
Ja die Zielgruppe sind schon Elektronik-/Hardwareanfänger gewesen. Ganz 
am Anfang waren das ja auch einfache Projekte, die man mit ein bischen 
guten Willen und Engagement auch als Anfänger übersehen konnte. Das 
Projekt war eigentlich dafür gedacht Leute für die Elektronik im 
Allgemeinen und die µC-Technik zu begeistern.
Das bedeutet aber eben nicht das man das Hirn nicht benutzen soll, einem 
die gebratenen Tauben in den Mund fliegen und andere für einen die 
Arbeit machen sollen, die sie dann auch noch quasi für jeden so 
dokumentieren das er es ohne Hirnnutzung versteht.

Mittlerweile hat sich das Ganze aber mehr oder weniger verselbständigt 
und die Projekte werden immer umfänglicher. Zugleich meinen aber immer 
mehr Leute das alles so einfach und easy ist und es völlig ausreichend 
ist, wenn man einen Draht von einem Stück Bindfaden unterscheiden kann. 
So einfach ist es eben nicht. Man muß sich schon mit der Thematik 
auseinandersetzen um die Zusammenhänge zu verstehen. Man sollte auch 
nicht vergessen, das die meisten Leute dafür eine entsprechende 
Ausbildung durchlaufen müssen, wenn sie ihre Brötchen mit Elektronik 
verdienen wollen. Es hat schon seinen Grund warum es da eine Vielzahl 
von Ausbildungsberufen und Studienrichtungen gibt.

Eigentlich bist Du sogar recht unverschämt, wenn Du von den Leuten die 
die Libs schreiben und das meist noch in ihrer Freizeit tun, auch noch 
verlangst das sie gefälligst eine ausgefeilte Dokumentation bei zu legen 
haben, damit es auch der Dümmste in der letzten Reihe begreift. Ne so 
funktioniert das nicht. Wenn Du schon zu faul bist, es ist nichts 
anderes als Faulheit, Dir eigene Gedanken zu machen, dann mußt Du Dich 
halt durch die Libs durcharbeiten. Dazu muß man auch nicht jede 
Querlltextzeile verstehen, oftmals reicht es aus wenn man die 
Hauptheaderdatei der Lib anschaut, denn da sind meist die Prototypen der 
exportierten Funktionen mit den zugehörigen Parametern deklariert.

Wie Gerhard schrieb, spricht nichts dagegen fertige Lib's zu benutzen. 
Das entbindet einen aber eben nicht davon das eigene Hirn zu benutzen 
und sich das eine oder andere zu erarbeiten. Und ja der Weg bis zu einem 
Ergebnis ist dann halt etwas steiniger und steiler, aber man kann es 
schaffen wenn man will. Das alles ist Dir aber ganz offensichtlich viel 
zu mühsam. Du solltest da mal Deine diesbezügliche Einstellung 
überdenken und Dich befleißigen Dir das Wissen zu erarbeiten. Wenn Du 
das nicht willst, dann ist wohl Elektronik eher nichts für Dich und Du 
solltest Dir, wie schon öfters geraten,  ein anderes Betätigungsfeld 
suchen.

von Kilo S. (kilo_s)


Lesenswert?

Ich bastel ja derzeit das erste mal so richtig mit arduino. Also eines 
muss man "Lobend" erwähnen, es ist wirklich relativ leicht zumindest ein 
erstes "Funktionierendes" Programm zu Basteln.

Negativ:
Encoder Libs, egal welche ich bisher ausprobiert habe zählen nicht 
vernünftig obwohl eine sogar verspricht dies zu tun, dank der Verwendung 
von Greycode und Statemachine.

Nun stehe ich auch hier vor einem "Halbfertigen" Programm das allerdings 
schon die Grundfunktionen hat und eigentlich Funktioniert, nur eben 
nicht reibungslos. Das ist zum Teil meine eigene Schuld, denn für den 
encoder habe ich mir am ende ein "Snippet" geschnappt das Interrupts 
verwendet und das ich halbwegs kapiert habe um es anzupassen und den 
ganzen Kram erst nur "Testweise" zusammengewürfelt und ohne 100% zu 
verstehen ausgeführt habe weil der Compiler nix zu meckern fand.

Für den Anfang ist das halt schon OK. Magnetic Loop Steuerung also 
Stepper Motor mit dem encoder steuern zwei Relais mit Tastern und ein 
bisschen LCD an einem Tag mit einer Menge Fehlversuchen zum laufen 
bringen, könnten in C für einen Anfänger doch eher in 3-4 Tagen und 
deutlich mehr Frust enden.

Gut, mein Beispiel ist deutlich leichter als eine LCD lib mit Grafiken 
ect. Aber viele Anfänger haben vielleicht sowas ähnliche leichtes 
versucht wie ich und sich von da an stetig verbessert.

Aber bei der Dokumentation, da muss man echt viel suchen um wirklich 
tief einzusteigen und am Ende auch mit arduino was "Haushaltstaugliches" 
zu programmieren.

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

>Erstmal müsste ich C bzw++. am besten ergänzt mit Assemblerkenntnissen
>wirklich gut beherrschen

Ist ja auch logisch. Arduino ist schließlich auch c++.
Du kommst ja auch ziemlich weit auch ohne jegliche Kenntnisse, aber 
irgendwo ist dann einfach das Ende erreicht. Da geht es dann eben nicht 
mehr ohne intimere Kenntnisse weiter. Würde ich eigentlich auch gar 
nicht anderes erwarten.

Am besten freust du dich einfach über die libs und die Möglichkeiten, 
die gut für dich funktionieren und machst damit Projekte. Wenn das 
Projekt mehr Code enthält als nur das einfachste Beispiel aus der 
library dann ergeben sich zwangsläufig Fragen und Probleme. Da wirst du 
am Anfang hier Fragen stellen müssen und immer mehr selber hinbekommen. 
Eins gibt das andere, braucht aber Zeit. Und Zeit hast du genug, es ist 
ja aus Spaß. Michael (amiga) hat einen guten Rat geschrieben. In der IDE 
compilieren, kleine Brötchen backen und die hello world Programme 
ausprobieren geht. Und macht auch Spaß.

Es haben schon viele hier geschrieben, die durch Code ihre Brötchen 
verdienen: selbst die schätzen Libraries für aufwendige Dinge; schon aus 
Zeitgründen. Ich finde das ist erst recht beim Hobby sehr sinnvoll und 
spricht nicht gegen Arduino.

Eine Library für autonomes fahren, die in ein demo Bord geladen wird und 
ein car.start() braucht, ist illusorisch und auch nicht sinnvoll. Sollte 
deine Motivation in die Richtung gehen, dann denke ich, ist das zum 
Scheitern verurteilt.

von Michael U. (amiga)


Lesenswert?

Hallo,

Kilo S. schrieb:
> Negativ:
> Encoder Libs, egal welche ich bisher ausprobiert habe zählen nicht
> vernünftig obwohl eine sogar verspricht dies zu tun, dank der Verwendung
> von Greycode und Statemachine.

ich nutze relativ selten gängige Dreh-Encoder, was die Libs angeht, 
könnte ich Dir schon zustimmen, nur: es gibt Encoder-Typen wie Sand am 
Meer. Es gibt verschiedene Schaltverhalten der Typen usw.
Dann gibt es noch "die Chinesen", die Arduino-Nutzer kaufen für Ihre 
Projekte möglichst günstig, ich auch. Damit ist sichergestellt, daß man 
ganicht weiß, was man da wirklich bekommen hat. Dann kommt erst die Lib. 
Deren Programmierer hat alle diese Abweichungen garnicht berücksichtigt, 
weil er nicht ein Dutzend Encoder des scheinbar gleichen Typs rumliegen 
hat...

Kilo S. schrieb:
> Gut, mein Beispiel ist deutlich leichter als eine LCD lib mit Grafiken
> ect. Aber viele Anfänger haben vielleicht sowas ähnliche leichtes
> versucht wie ich und sich von da an stetig verbessert.

Es gibt nichts schöneres als das Sammelsuriom Grafik-LCD. Da kommt dann 
noch die Hardwareseite dazu. Controller, die 3,3V Typen sind, bekommen 
einen 3,3V Regler vom Anbieter des Moduls verpasst, 2k Widerstände in 
die Datenleitungen, und werden dann für den 5V Arduino UNO verkauft. Das 
geht nur gut wenn die Sonne günstig steht, weil man sich da auf die 
Schutzdioden der ICs verläßt. Der H-Pegel der Daten hebt die Spannung 
hinter dem 3,3V Regler so gern mal dynamisch auf 3,9V an, nur wie 
zuverlässig spielt das Display dann mit?

Kilo S. schrieb:
> Aber bei der Dokumentation, da muss man echt viel suchen um wirklich
> tief einzusteigen und am Ende auch mit arduino was "Haushaltstaugliches"
> zu programmieren.

Jaein... Ich mache recht viel mit ESP8266 und ESP32. Das Hauptproblem da 
ist es, rauszufinden mit welcher Umgebung ein im Netz gefundenes Projekt 
überhaupt gebaut wurde. Angaben wie mit ArduinoIDE 1.8.12, ESP8266 
1.7.2, Lib-Versionen xx.x. würde mir da helfen, weil ich sowas dann eben 
erstmal genauso durch eine portable-IDE jage.
Fehlt aber fast immer wenn jemand ein Projekt ins Netz wirf, bei den 
Libs ist oft auch library.properties unvollständig oder sogar falsch 
ausgefüllt.

Jemand, der nicht mit der Arduino-Umgebung arbeitet, ist sich solcher 
Probleme aber schnell bewusst, nur hat der auch schon wesentlich mehr 
Einarbeitungszeit hinter sich, bis die IDE überhaupt auf seinem Rechner 
läuft und das erstmal was compiliert.
Ich würde mir da eher wünschen, daß die, die das eben können, sich mal 
eine ArduinoIDE portable auf Ihren Rechner werfen und es mal testen, um 
einem Arduino-User zu helfen. Das kostet nämlich verblüffend wenig Zeit.
Bei den Arduino-Usern würde ich mir wünschen, daß die Infos zur 
benutzten Umgebung und der genauen Herkunft ihrer Libs wenigstens auf 
Nachfrage beantwortet werden.

Gruß aus Berlin
Michael

von Kilo S. (kilo_s)


Lesenswert?

Michael U. schrieb:
> Ich würde mir da eher wünschen, daß die, die das eben können, sich mal
> eine ArduinoIDE portable auf Ihren Rechner werfen und es mal testen, um
> einem Arduino-User zu helfen. Das kostet nämlich verblüffend wenig Zeit.
> Bei den Arduino-Usern würde ich mir wünschen, daß die Infos zur
> benutzten Umgebung und der genauen Herkunft ihrer Libs wenigstens auf
> Nachfrage beantwortet werden.

Nun, Anfänger beim Programmieren bin ich ja sogesehen nicht mehr, Dank 
vieler Jahre PHP muss ich nur gelegentlich den Syntax prüfen und eben 
die Sprache selbst richtig erlernen. Damals bei PHP hab ich auch nur 
XAMPP und den Download von PHP.net gehabt.
Aber bis auf den Syntax hat es ansonsten nicht viel mit PHP gemeinsam.

Herkunft der Libs ist aus dem Manager der IDE, IDE ist 1.8.x und OS 
Xubuntu.
(Stepper, Liquid Crystal I2C, wire)

Ich mach später einen neuen Beitrag auf, dann lade ich den Code Mal 
hoch.

Michael U. schrieb:
> ich nutze relativ selten gängige Dreh-Encoder, was die Libs angeht,
> könnte ich Dir schon zustimmen, nur: es gibt Encoder-Typen wie Sand am
> Meer.

Das stimmt. Nun, ich habe einen (ohne Platine, ist bei mir aus einer 
alten Stereoanlage) der sieht exakt gleich aus zu den Modulen hier, hat 
die selben funktionen (also auch mit Taster) und ich hab die gleichen 
"Probleme" wie alle anderen häufig auch.

https://www.amazon.de/degree-encoder-compatible-Arduino-Raspberry/dp/B09Q8RSK6T

Im Prinzip zählt er nur dann richtig wenn ich schnell genug drehe das 
ich eine Rastposition überspringe und im Prinzip an der Rastposition 
lande an der er bereits den zweiten zählen sollte. Als ob da irgendwo 
noch ein count--; versteckt wäre.

Oder (nicht unwahrscheinlich) ich hab es verbockt! Das LCD ist "Lahm" 
und ich schreibe aktuell direkt nach dem ausführen der betreffenden 
Codezeilen ins LCD, also in dem Moment wo der interrupt kommt ist der 
Nano eventuell gerade gar nicht richtig anpsrechbar weil er das Display 
schreibt ect...

Und beim testen letzte Nacht, gab es ab und an die Situation das sich 
der Nano beim Drehen des Stepper "aufhängt" und nicht mehr reagiert. 
Allerdings dreht der Stepper in der Zeit einfach in die Richtung weiter 
in der er sich beim "Ausfall" gedreht hat. Ich Versuche schon das ganze 
zu provozieren und zu sehen ob dieser Hänger irgendwann stoppt, dann 
wäre es der Code in dem für den Stepper die Anzahl steps falsch Gesetz 
wird.

Wie gesagt, später wenn ich am Laptop bin mach ich ein Thema dazu auf.

von Kilo S. (kilo_s)


Lesenswert?

Hier hab ich mal den beitrag dazu erstellt: 
Beitrag "Magnetic Loop Steuerung (Arduino)"

von J. S. (jojos)


Lesenswert?

Michael U. schrieb:
> Jaein... Ich mache recht viel mit ESP8266 und ESP32. Das Hauptproblem da
> ist es, rauszufinden mit welcher Umgebung ein im Netz gefundenes Projekt
> überhaupt gebaut wurde. Angaben wie mit ArduinoIDE 1.8.12, ESP8266
> 1.7.2, Lib-Versionen xx.x. würde mir da helfen, weil ich sowas dann eben
> erstmal genauso durch eine portable-IDE jage.

das hat PlatformIO IMHO ganz gut gelöst, die Abhängigkeiten werden in 
die Konfigdatei eingetragen und das Buildsystem installiert die wenn 
nötig. Viele größere Projekte sind ja schon auf PIO umgestiegen weil es 
da sehr einfach ist das Projekt zu reproduzieren.

von Oliver S. (oliverso)


Lesenswert?

Michael U. schrieb:
> Ich würde mir da eher wünschen, daß die, die das eben können, sich mal
> eine ArduinoIDE portable auf Ihren Rechner werfen und es mal testen, um
> einem Arduino-User zu helfen. Das kostet nämlich verblüffend wenig Zeit.

Für jemanden wie den TO? Sicherlich nicht.

Ich habs ein paarmal gemacht, und der Spaßfaktor ist doch arg begrenzt. 
Es geht ja in den allermeisten Fällen nicht um Probleme in selbst 
geschriebenen Sourcen, sondern um Fragen der Art: "Ich habe da irgendwo 
irgend eine Software/lib/Source herunter geladen, und das funzt irgenwie 
nicht". Unendliche Weiten, die alle irgendwie irgendwo zusammen ein 
Problem sind.

Und da wühlt doch niemand freiwillig durch die Arduino- und weiteren 
Sourcen von unbeteiligten Dritten. Alleine der Arduino-Kram ist ja 
leider nicht immer erfreulich...

Oliver

Beitrag #7127820 wurde von einem Moderator gelöscht.
von Michael U. (amiga)


Lesenswert?

Hallo,

Oliver S. schrieb:
> Michael U. schrieb:
>> Ich würde mir da eher wünschen, daß die, die das eben können, sich mal
>> eine ArduinoIDE portable auf Ihren Rechner werfen und es mal testen, um
>> einem Arduino-User zu helfen. Das kostet nämlich verblüffend wenig Zeit.
>
> Für jemanden wie den TO? Sicherlich nicht.
Der TO hat kein wirkliches Problem, nur mit sich selbst... ;)

> Ich habs ein paarmal gemacht, und der Spaßfaktor ist doch arg begrenzt.
> Es geht ja in den allermeisten Fällen nicht um Probleme in selbst
> geschriebenen Sourcen, sondern um Fragen der Art: "Ich habe da irgendwo
> irgend eine Software/lib/Source herunter geladen, und das funzt irgenwie
> nicht". Unendliche Weiten, die alle irgendwie irgendwo zusammen ein
> Problem sind.
Ich mache es manchmal schon, gerade bei solchen Projektfragen aaus dem 
Netz. Naja, bin eben Rentner, da hat man die Lust und Zeit manchmal.
Bedingung ist da eben, daß eindeutig ist, wo er das herhat und die 
Hardware entweder bei mir sowieso rumliegt oder nicht zwingend ist.

> Und da wühlt doch niemand freiwillig durch die Arduino- und weiteren
> Sourcen von unbeteiligten Dritten. Alleine der Arduino-Kram ist ja
> leider nicht immer erfreulich...

War eigentlich selten wirklich nötig. Häufig eben Lib für andere CPU 
weil der Ersteller der Lib die properties falsch ausgefüllt hat. 
Parameterfehler, da reicht mir meist ein Blick in die .h datei usw. usw.
Projekt mit älteren Versionen gebaut, wo der Ersteller die Lib nicht 
sehr lieblos aktualisiert. Ganz nach unten krame ich eigentlich nur, 
wenn es mich direkt selbst interessiert und ich es unbedingt nutzen.
Eine ArduinoIDE ist eben portable in relativ wenigen Minuten soweit 
eingerichtet, Libs eines Anwenders sind auch schnell runtergelden und 
eingebunden, wenn die Sachen bei github liegen.

Gruß aus Berlin
Michael

von trollolo (Gast)


Lesenswert?

MaWin schrieb:
> ProgAnfänger schrieb:
>> Also wie geht man dann vor?
>
> Man gibt auf.
> Denn alle möglichen Lösungen schließt du ja bereits aus.
>
+1👍👍

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.