Moin! Da ich "mal wieder" mit dem Pro Mini etwas mache arbeite ich mit einer LoRa Library, die ich über den Lib Manager eingebunden habe. Es funktionierte erstmal nichts... LoRa-begin(...) lief einwandfrei, zeigte keinen Fehler. Angeblich sendete das Modul auch, selbst wenn ich noch keinen Empfänger gebaut habe. Naja, die Lib meldete auch alles "ok", wenn ich das Modul aus dem Sockel zog oder eine Leitung der SPI abklemmte. In den Source Code rein... oha.. das C Kommentare erlaubt war dem Coder wohl fremd. Nicht mal die Public Class hat er kommentiert, was machen seine Routinen eigentlich ??? Welchen Wertebereich haben die Parameter? Was sind die Rückgabewerte? Es ist doch eben Sinn des Arduino Konzeptes dass jemand NICHT das komplexe Datenblatt des SX1278 lesen muss. Hat ja nicht jeder Nachrichtentechnik studiert. Im gesamten Code kommt nicht ein einziges Mal eine Prüfung vor, ob das Modul überhaupt da ist! Ob abgezogen oder im Sockel, völig egal. Also wenigstens mal ein Register auslesen, ob da zb ein richtiger Wert drin steht. Den gleichen totalen Mist habe ich bei einem SIM800L GSM Modul festgestellt, letztlich alles selbst geschrieben nach Einarbeitung in das Datenblatt. So dass es auch funktionierte. Die Libs waren völlig unbrauchbar. Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen Library Quellen hochladen kann? Gibt es keine Maintainer, wie bei Linux? Gruss, Christian
Willkommen in der heutigen IT-Welt. Kritisiert man genau dies, dass jeder seinen quick'n'dirty Code hoch lädt, dann ist man wahlweise undankbar, soll es selbst besser machen, zu dumm die library zu benutzen usw. In jedem Fall ist der Uploader der Held und der Kritiker der Depp. Also macht man es in der Konsequenz gleich selbst. Und bei Linux gibt es auch nicht DIE Maintainer. Manche Distris haben sorgfältige Maintainer, manche nicht.
A. N. schrieb: > Kritisiert man genau dies, dass jeder seinen quick'n'dirty Code hoch > lädt, dann ist man wahlweise undankbar, soll es selbst besser machen, zu > dumm die library zu benutzen usw. In jedem Fall ist der Uploader der > Held und der Kritiker der Depp. Och, das kenne ich.. "Sei froh,dass überhaupt was da ist!" Ich habe 1987 bei meinem damaligen Lehrer Volker Pagel die Grundlagen der Programmierung auf einem Apple II gelernt, Fortran und Pascal. Und jedes Modul hatte einen Kommentar-Header, wo drin stand: Eingabe Ausgabe Funktion Veränderte Globale Werte Letzte Änderung Damit wurde der Code lesbar, auch für jene, die erst später damit in Kontakt kamen. Dann kamen die Freaks, die alles besser wussten, C lese sich von allein, sie sehen den Code und wissen sofort was dahinter steckt. Je weniger Kommentare desto mehr "Elite" war der Coder. Variablen länger als 1 Buchstabe waren schon Luxus! Und jeder erstarrte in Ehrfurcht vor diesen Elite-Codern. Schwachsinn! Das System Arduino ist so konzipiert,dass es die Komplexität auf eine leicht zu beutzende API reduziert. Und wer dafür was macht sollte sich dran halten, basta! Beim SIM800L gab es einige Hardware Revisionen. Befehle verschwanden, neue kamen dazu. Die alten Libs, die schon lange nicht mehr laufen sind aber weiter in der Shell drin. Kümmert sich ja keiner drum. Und hier weiss auch jeder gleich was gemeint ist... und wie die Funktion zu benutzen ist.... PLONK. Die Sandeep Mistry Lib ist Murks! Angeblich am MIT geschrieben worden.
1 | void LoRaClass::setSpreadingFactor(int sf) |
2 | {
|
3 | if (sf < 6) { |
4 | sf = 6; |
5 | } else if (sf > 12) { |
6 | sf = 12; |
7 | }
|
8 | |
9 | if (sf == 6) { |
10 | writeRegister(REG_DETECTION_OPTIMIZE, 0xc5); |
11 | writeRegister(REG_DETECTION_THRESHOLD, 0x0c); |
12 | } else { |
13 | writeRegister(REG_DETECTION_OPTIMIZE, 0xc3); |
14 | writeRegister(REG_DETECTION_THRESHOLD, 0x0a); |
15 | }
|
16 | |
17 | writeRegister(REG_MODEM_CONFIG_2, (readRegister(REG_MODEM_CONFIG_2) & 0x0f) | ((sf << 4) & 0xf0)); |
18 | setLdoFlag(); |
19 | }
|
Warum erwartest du bei Arduino libs bessere Qualität als bei Open Source Software generell? Irgendwer hat halt mal irgendwas gebraucht, sich selbst was gebastelt und hat sich dann noch die Mühe gehabt es auf github zu werfen. Am geschenkt'n Gaul...
Beitrag "Arduino Librarys - Wer prüft diese ?" Soviel hat sich in einem Jahr nicht geändert. Bis auf die Corona Scheiße, aber Corona kann jetzt nicht auch noch Schuldig sein an schlechter Code Qualität.
A. N. schrieb: > Und bei Linux gibt es auch nicht DIE Maintainer. Manche Distris haben > sorgfältige Maintainer, manche nicht. Welche z.B:?
Christian J. schrieb: > Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen > Library Quellen hochladen kann? Gibt es keine Maintainer, wie bei Linux? Ich sag nur Google Play unter Android - aktuelle Fehlermeldung bei Suche nach "Corona-Warn-App" (Standort D) auf meinem Tablet. Die Meldung kann man glauben, muss man aber nicht. Und nein, bei Suche nach z.B."Corona" werden durchaus andere Apps zu Corona angezeigt.
Christian J. schrieb: > Den gleichen totalen Mist habe ich bei einem SIM800L GSM Modul > festgestellt, letztlich alles selbst geschrieben nach Einarbeitung in > das Datenblatt. So dass es auch funktionierte. Kann ich gebrauchen, lade mal hoch!
Hallo Niemand - behaupte ich mal, wird aber tatsächlich auch so sein - warum aber auch?! Arduino als Gesamtsystem ist ein Produkt von Hobbyisten für Hobbyisten. Auch wenn mit der Hardware natürlich Geld gemacht wird - übrigens in den bescheidenen Umfang das sich Selbstbau, wenn es nicht unbedingt ein Original Arduino (der mit den "echten" Namen und Made in Italiy) sein muss- finanziel und vom Aufwand nur in Ausnahmefällen lohnt. Auch den Anfänger oder reinen Nutzer einer fertigen Anwendung (oft aber nicht nur im Modelleisenbahnumfeld) ist klar das das erstellen schon eines relativ einfachen Sketches geschweige den einer Bibliothek sehr aufwendig ist und viele Stunden und einiges an "Nerven" benötigt. Natürlich ist es schön wenn eine Bibliothek sehr gut Dokumentiert ist, viele praxisnahe und erklärende Beispiele vorhanden sind, eventuell sogar weiter Unterstützung und Information durch externe Quellen wie z.B. Tutorials oder Videos zur Verfügung stehen, aber das auch nur ansatzweise für ein kostenloses und der Freizeit des Autors entstandenes Produkt zu erwarten wäre eine Frechheit. Aber wie nun mal die meisten die Bibliotheken und teilweise auch Sketches nutzen ist doch so: Einfach einbinden und die zu Verfügung gestellten Methoden und Funktionen nutzen - was im Hintergrund passiert bzw. was alles möglich ist interessiert nicht - Hauptsache es funktioniert. Und wenn es nicht funktioniert sucht man sich in der sehr großen Community bzw. im WWW halt eine andere Bibliothek oder gar komplettes lauffähigen Sketch. Ja für den "richtigen" Programmeier für den eher der Weg als das fertige Produkt das Ziel ist und der alles aus einer Bibliothek herauskitzeln möchte, aus ihr lernen will (und zwar besonders bei umfangreichen die mit anspruchsvollen Sensoren und Protokollen hantieren) ist das alles andere als ansprechend - es ist aber nun mal öfter so, man muss damit leben und sich selbst an die Nase packen ehrlich zu sich selbst sein und überlegen wie viel Arbeit man in eine Biblothek bzw. ein Sketch stecken würde den man kostenlos der Allgemeinheit zur Verfügung stellen würde und ob man wenn es endlich so Funktioniert wie es soll, alles nochmal Tagelang durcharbeitet und schaut wo man besser verständliche Kommentare schreiben könnte, eine "echte" Dokumentation erstellt, noch mehr Beispiele erstellt usw. Würdest -"Du" (gemeint ist jetzt mit den "Du" jeder der sich angesprochen fühlt und nicht der TO speziell) und eben nicht ein anderer selbst es machen - nur für die Ehre und oft noch kontraproduktive Kritik und Anfeindungen, egal wie sehr du dich bemüht hast...? Verlangen und Ansprüche stellen ist natürlich einfacher, und auch der Blick aus der bezahlten Profiecke ist ein ganz anderer. Hinzu kommt das zwischen Programmierer und Programmierer riesengroße Unterschiede bestehen und nicht zuletzt - wie es auch einige Foren immer wieder beweisen ;-) -Programmierer, Elektronikbegeisterte, Bastler, Halbprofis, "alte" Hasen usw. oft recht spezielle Typen sind die sich nur sehr schwer von ihren Vorstellungen und "Ideologien" (auch manchmal Vorurteile oder leben im ewig gestrigen auch bei der Technik) verabschieden und in diesen Punkten lernfähig sind. "Friss oder stirb" ist oft deren Grundeinstellung und auch das sie jenseits der 40 Lebensjahre sind (das schreibe ich als ein kurz vor der 50 stehender) und das alleine schon als Leistung sehen ("Lebenserfahrung" lol), oder sich als was bessere fühlen weil sie Anno 1984 schon in der Schule Basic auf irgendeinen Apple II von irgendeiner "Berühmtheit" erlernt haben... Hennes
Christian J. schrieb: > Im gesamten Code kommt nicht ein einziges Mal eine Prüfung vor, ob das > Modul überhaupt da ist! Ob abgezogen oder im Sockel, völig egal. Also > wenigstens mal ein Register auslesen, ob da zb ein richtiger Wert drin > steht. > > Den gleichen totalen Mist habe ich bei einem SIM800L GSM Modul > festgestellt, letztlich alles selbst geschrieben nach Einarbeitung in > das Datenblatt. So dass es auch funktionierte. Die Libs waren völlig > unbrauchbar. > > Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen > Library Quellen hochladen kann? Gibt es keine Maintainer, wie bei Linux? Was definierst du als offizielle Arduino Library Quelle? Und wer oder was hindert dich daran, deinen funktionierenden/verbesserten Code dort hochzuladen, damit nicht andere in die gleichen Probleme hineinlaufen?
Kolter schrieb: > Was definierst du als offizielle Arduino Library Quelle? Man könnte das auf die Libraries beziehen, die vom Bibliotheksverwalter in der Arduino IDE angeboten werden.
Hallo Wohl dass hier hindert ihn: (Leider Eigenzitat kommt hoffentlich nicht überheblich rüber...) Hennes schrieb: > Würdest -"Du" (gemeint ist jetzt mit den "Du" jeder der sich > angesprochen fühlt und nicht der TO speziell) und eben nicht ein anderer > selbst es machen - nur für die Ehre und oft noch kontraproduktive Kritik > und Anfeindungen, egal wie sehr du dich bemüht hast...? > Verlangen und Ansprüche stellen ist natürlich einfacher, und auch der > Blick aus der bezahlten Profiecke ist ein ganz anderer. Allerdings sollte der wer mir da jetzt zustimmt auch so fair sein selbst nicht über andere her zu ziehen - was ja nicht bedeutet auf Kritik zu verzichten. Aber Kritik darf nie(!) ein persönlicher Angriff sein, verallgemeinern, darf nicht nur den Frustabbau dienen sondern sollte Alternativen aufzeigen oder zumindest in ruhigen und sachlichen Worten beschreiben was verbesserungswürdig ist. Hennes
Christian J. schrieb: > Gibt es keine Maintainer, wie bei Linux? Interessante Erwartungshaltung - nichts bezahlen (wollen), aber Qualität erwarten. Es hindert Dich niemand, eine Library an Deine Qualitätsvorstellungen anzupassen und der "Community" zur Verfügung zu stellen.
A. N. schrieb: > Willkommen in der heutigen IT-Welt Naja. Arduino hat mit "heutige IT-Welt" ungefähr so viel zu tun, wie ein Seifenkistenrennen an der Grundschule mit der Formel 1. > Kritisiert man genau dies, dass jeder seinen quick'n'dirty Code hoch > lädt, dann ist man wahlweise undankbar, soll es selbst besser machen, > zu dumm die library zu benutzen usw Polemik. Jemand hat den Code mal geschrieben und er hat (vermutlich?) für ihn funktioniert. Also hat er ihn der Allgemeinheit zur Verfügung gestellt. Wenn er deinen Anforderungen nicht genügt, dann benutze ihn nicht. Aber da es wesentlich mehr schlechte als gute Programmierer gibt, ist es nur logisch, daß es auch wesentlich mehr schlechten als guten Code gibt. Und einmal darfst du raten, welche Art von Programmierern Arduino mit seiner Zielsetzung "für Laien" anzieht. Eine QA oder ein Maintainer hätte an der Situation nur dahingehend etwas geändert, daß niemand den kaputten Code zu sehen bekommen hätte. Das Ergebnis wäre das gleiche: keine (funktionierende) Arduino-Library. Für ein funktionierendes Open-Source Ökosystem fehlt hier noch etwas: das Feedback, z.B. in Form eines Bugreports. Sich in einem Forum auskotzen ist eine Sache. Aber das macht die Software nicht besser. Ein Bugreport an den Autor, idealerweise gleich mit konkreten Verbesserungsvorschlägen, würde die Situation verbessern (können). Macht aber viel mehr Arbeit. Weniger Arbeit als das Selberschreiben aber auch. Mein Fazit: Fehler in Open Source Software zu finden und zu bemängeln ist nicht nur vollkommen ok, es ist sogar explizit erwünscht. Nur sollte die Mängelanzeige dann in Form eines Bugreports erfolgen. Dann ist das nämlich ein Beitrag zu Open Source, der genauso wichtig ist, wie das Schreiben von Code.
:
Bearbeitet durch User
Die Hassparade geht wieder los... ----------------- Also erstmal zu den Fakten.... Die mit der IDE ausgelieferten Libs sind recht ok. Meines Wissens nach mittlerweile fehlerfrei, und recht gut Dokumentiert. Die über den Bibliotheksmanager erreichbaren sind zumindest so geprüft, dass sie mit eben diesem Bibliotheksmanager und dem Builder zusammenarbeiten und nicht das ganze System destabilisieren. Inhalt und Funktionalität liegt ganz in der Hand des Erstellers. Es findet also keine Zertifizierung statt, wie es z.B. WinzigWeich für seine Treiber macht. Ich denke mal, dafür fehlen einfach schlicht die Ressourcen. Dann gibts eine ganz Menge von freien Libs, die man sich einfach so von hinten ins System stopfen kann. Bei denen gibts keine Garantie auf garnix. Das System lebt davon, dass Fehler und Anforderungen an den Ersteller gemeldet werden und dieser dann eben die Lib verbessert. Hier die Vorgaben: https://arduino.github.io/arduino-cli/library-specification/
Beitrag #6309902 wurde von einem Moderator gelöscht.
Jens U. schrieb: >> Manche (Linux) Distris haben sorgfältige Maintainer, manche nicht. > Welche z.B:? Ich bevorzuge Debian vor Ubuntu, weil ich in Ubuntu des öfteren auf schwerwiegende Fehler gestoßen bin, die viele Monate lang nicht behoben wurden (auch in LTS Versionen). Da nehme ich dann lieber das potentiell weniger aktuelle Debian und aktualisiere einzelne Programme manuell, wenn es sein muss. Wer es detaillierter wissen will: Seit Ubuntu 18.10 habe ich massive Probleme mit der Zwischenablage - die ich bei meiner täglichen Arbeit mit intensiv nutze. Ich muss Strg-C oft mehrmals drücken, damit es funktioniert. Wenn ich es aber zu oft drücke, stürzt der Rechner ab. Am stärksten (95%) sind SQLYog (wine) und Heidi SQL (wine) betroffen, aber es betrifft zu 50% auch Eclipse, NetBeans, IntelliJ, SOAP UI und 25% LibreOffice. Natürlich gibt es dafür bereits Bug Reports. Nicht nur einen sondern gefühlt hunderte. Diese Sache kommt bei Ubuntu seit über 10 Jahren immer wieder hoch. Komischerweise aber nur bei Ubuntu, keine andere Linux Distribution ist davon betroffen. Ich bin längst bei Debian, aber ich behalte Ubuntu weiter im Blick weil ich der "Vorarbeiter" bin, der den jüngeren Kollegen ihre Arbeitsmittel empfiehlt.
Hennes schrieb: > Arduino als Gesamtsystem ist ein Produkt von Hobbyisten für Hobbyisten. mensch Hennes; BRAVO! (nein, weder sarkasmus oder Ironie!) Ich wollte nach dem Eingangspost meinen Standpunkt darlegen, aber wie ich sehe hast Du das schon für uns Beide getan :D bleibt mir noch zu sagen, dass sich viele libs mit nem code-analyzer erschliessbar machen lassen.. ne codeflow-chart und in out change kenntniss reichen in der Regel um einen ausreichend festen Griff an den Hals des Quellcodes zu bringen um diesen zu Boden zu ringen. Ja das ist Arbeit! Es kostet Mühe und Zeit; die Mühe und Zeit, die sich der Autor sparte um Dir ein kostenlosen Ansatz zu liefern Dir bei Deinem Problem (eventuell) behilflich zu sein. Das Arduino Konzept war und ist, dir zu ermöglichen dich mehr um Code als um µC Hardware zu kümmern, um schnell zu prototypisieren oder eben kleine Hobbyprojekte möglichst einfach zu realisieren; nicht dir für 1€ (nano klon aus china) alle Arbeit abzunehmen. Du musst dennoch Datenblätter lesen und dir undokumentierte Quelltexte selber erarbeiten. github ist ein Angebot (und damit 99,9% der bibliotheks-libraries) kein Zwang.. benutz es wenn Du möchtest, lass es wenn Du es nicht magst. 'sid
sid schrieb: > Das Arduino Konzept war und ist, > dir zu ermöglichen dich mehr um Code als um µC Hardware zu kümmern, > um schnell zu prototypisieren oder eben kleine Hobbyprojekte möglichst > einfach zu realisieren; > nicht dir für 1€ (nano klon aus china) alle Arbeit abzunehmen. Genau - sehr gut ausgedrückt. Ich nutze die Librarys, wenn ich mal eben mit einem Sensor Display ... etwas herumspielen will, ohne gleich tiefer einzusteigen - nur um mal Ergebnisse zu sehen. Wenn es für mich interessant ist, dann baue ich mir i.d.R. meine eigene Umgebung, da die Librarys oft nicht genau das abdecken, was ich möchte. Das kann und soll aber jeder für sich entscheiden. Ich finde die Arduino-Idee sehr gut und nehme immer wieder auch Anregungen aus den Librarys in eigene Hobby-Projekte auf.
Christian J. schrieb: > Es ist doch eben Sinn des Arduino Konzeptes... ...viel Geld mit dem Verkauf von 'shields' zu verdienen. Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche Routinen welche Timer verwenden. Wer erwartet da bessere Doku von denen die mitverdienen wollen ?
MaWin schrieb: > Christian J. schrieb: >> Es ist doch eben Sinn des Arduino Konzeptes... > > ...viel Geld mit dem Verkauf von 'shields' zu verdienen. > Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche > Routinen welche Timer verwenden. Wer erwartet da bessere Doku von denen > die mitverdienen wollen ? Woher nimmst du dieses Unwissen? Bei Arduino ist alles dokumentiert. Die Baupläne liegen offen. Der Quellcode liegt offen. Was sollen die noch offen legen? Zum Eingangspost von Christian. Ebenfalls geballtes Unwissen. Von Arduino.cc sind die mitgelieferten Libs. Alles andere ist nicht von Arduino.cc. Man baut es sich selbst ein, genauso wie du es getan hast. Die Qualität der Libs ist genauso gut oder schlecht als wenn hier jemand sein Code zur freien Verfügung stellt. Welche andere Person soll das vorher geprüft haben? Wobei ich hier noch keine fertige Lib für Arduino gesehen habe. Man muss hier mitlesen, den Code aufschnappen und anpassen. Auf Github kann jeder seine Lib oder sonstiges hosten wie er lustig ist. Man kann Glück haben oder auch Pech. Wenn man es jedoch selbst nicht gebacken bekommt, dann muss man mit dem glücklich werden was man kostenfrei angeboten bekommt. Dann hätte man wenigstens einen Ansatz in die wahrscheinlich richtige Richtung, kann es ausbessern, bleiben lassen oder wenn verstanden neu schreiben und am Ende der Community zurückgeben. Stichpunkt Open Source und deren Lizenzen. Also Christian, raffe dich auf, schreib die Lib neu und gib sie der Community zurück. Danach kannste meinetwegen über andere meckern.
MaWin schrieb: > ...viel Geld mit dem Verkauf von 'shields' zu verdienen. > Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche > Routinen welche Timer verwenden. Wer erwartet da bessere Doku von denen > die mitverdienen wollen ? Bist Du neidisch? Es ist mir vollkommen egal, wer welche Shields verkauft - ich nutze die Nano-Boards gerne für Prototypen auf dem Brad-Board. Ich habe genau ein Shield - ein Ethernet-Shield - mit dem ich mal spielen wollte, das hat sich aber nicht ergeben. MaWin schrieb: > Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche > Routinen welche Timer verwenden. Lesen bildet.
Beitrag #6310433 wurde von einem Moderator gelöscht.
Beitrag #6310453 wurde von einem Moderator gelöscht.
Beitrag #6310538 wurde von einem Moderator gelöscht.
Beitrag #6310623 wurde von einem Moderator gelöscht.
Veit D. schrieb: > Bei Arduino ist alles dokumentiert. Du hast die Doku offenbar nicht gelesen. Ein oberflachliches Pamphlet, das mehr Fragen aufwirft, als beantwortet. > Die Baupläne liegen offen. Der > Quellcode liegt offen Ja, man muss in den Quellcode gucken, wenn man Fakten braucht. Das heisst aber: es ist nicht dokumentiert.
Beitrag #6310653 wurde von einem Moderator gelöscht.
MaWin schrieb: > Ja, man muss in den Quellcode gucken, wenn man Fakten braucht. > Das heisst aber: es ist nicht dokumentiert. Dann setz dich hin und dokumentier's. Der Quellcode ist da. Viel Spaß. Ach, du bist zu faul? Na dann reg dich ab. Ich hab mit Profizeug zu tun, da ist die Dokumentation auf dem gleichen Niveau, aber die Quelltexte liegen nicht vor. Das macht einen Spaß.
S. R. schrieb: > Dann setz dich hin und dokumentier's. Die Kritik ist, dass keine Doku existiert. Danke für die Bestätigung.
> Wer will, findet Wege. > Wer nicht will, findet Gründe. Die Arduino Hauptverwendung der Timer ist PWM, und die millis() delay() Abhandlung. Also muss man auch da suchen, wenn man Arduino spezifische Aussagen zu den Timern finden möchte. z.B. hier: https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM Auf jeden Fall findet sich auch da der Rat, das Datenblatt zu untersuchen. Ok, ok, das wird auch nicht "jeden" hier zufrieden stellen, wie auch ... Denn dem Arduino Basher ist mit Argumenten nicht beizukommen. Der finden mit Sicherheit die nächste Sau welche er durch die Arena treiben kann.
Hallo es wurde von den besonnen Diskussionsteilnehmer doch schon erwähnt: Arduino wendet sich offiziell schon immer an "Künstler" im weitesten Sinn - also streng genommen nicht mal an E-Technik Hobbyisten wie ich es behauptet habe. Künstler haben zu großen Teil noch weniger Wissen im E-Technik und Programmierbereich als Hobbyisten und Anfänger unseres Interessenbereichs. Das das Gesamtsystem Arduino so erfolgreich geworden ist, und für ein Nischenprodukt derartig verbreitet ist das es teilweise sogar immer wieder in den Massenmedien erwähnt wird ist doch nicht die Schuld von der "Firma" Arduino auch wenn sie das natürlich gerne hinnehmen. "Wir" hier waren und sind immer noch nicht die ->offizielle<- Zielgruppe des System Arduino - alle Auftritte, Foren, Bücher, Bibliotheksautoren die ihre Arbeiten via Github und Co. der Gemeinschaft weitergeben sind reine "Privatveranstaltungen" von den schon erwähnten "Hobbyisten" - auch wenn dabei sicherlich einige aus den Profibereich stammen - das ist im Amateurfunk auch nicht anders, dort gibt es sogar mindestens einen Nobelpreisträger der sein Werk zu Verfügung stellt (auch wenn er den Preis dafür sicherlich nicht erhalten hat, aber das Wissen und die Forschung die ihn den Nobelpreis eingebracht haben sind sicherlich auch in sein Werk -ein Programm und Datenübertragungsverfahren- eingeflossen und Notwendigkeit gewesen). Zu den Preisen: Ja für "uns" sind die Originalen Boards und die Shilds die soweit mir bekannt es gar nicht direkt von Arduino gibt, zumindest bei den großen bekannten Namen (Adafruit und Co.) sehr teuer wenn nicht gar überteuert. Aber erstens gibt es die sehr preiswerten Clones und zweitens: Schaut euch mal in der "Künstler" und Ausbildungsszene um - da ist das Preisniveau eher noch höher bei oft nicht mal besserer Dokumentation, und bei allen persönlicher Kritik und ignorieren von Originalen Produkten von z.B. Ardafruit: Ihre Dokumentation und Tutorials sind vorbildlich für die Zielgruppen an die sie sich wenden (das sind eben nicht die "Hardcoreprogrammierer und Datenblattfetischisten" die sich seit ihren 10 Lebensjahr mit der Materie beschäftigen) - und nicht nur ich als jemand der ein schon ein wenig(oder ein wenig mehr...) zu den "Hardcore" E-Technikern gehört verwende ihre Bibliotheken oft und gerne "übersetze" mit Hilfe des Netzes und eigenen Wissen die Wortschöpfungen von Ardafruit (und Co.) in die "normalen" Begrifflichkeiten und kaufen diese Produkte dann billig aus den bekannten Quellen ein. Die Sache ist ganz einfach und universell - unabhängig von Arduino: Wir (Du) sind (bist) nicht der Mittelpunkt der Welt. Unsere (Deine) Einstellungen, Ideen, Vorstellungen, Interessen gelten nicht automatisch für andere - wie natürlich auch anders herum gilt und das vor allem bei wesentlich wichtigeren Themenbereichen als Arduino und Hobbys immer beachtet werden muss (und immer wieder nicht wird). Hennes
Du kannst auch kommentierte und getestete Bibliotheken bekommen. Die gibt es alle bei mir. Allerdings muss ich dafür auch 99 Euro pro Zeile Sourcecode verlangen. Qualität kostet eben. Dafür komme ich dann bei Problemen auch persönlich vorbei, und debugge mit. Du mußt jetzt entscheiden, wieviel dir Qualität und Support wert ist. Du kannst auch bei Umsonst-Code bleiben, mußt aber evtl mit einem Fehler leben.
Das ist doch wieder mal typisch. Da ist einer zu bequem sich seinen Kram selber zu programmieren und lädt sich eine Bibliothek herunter, die dann nicht wie gewünscht funktioniert. Also wird jetzt über das gesamte Projekt hergezogen. Dabei ist noch nicht einmal klar ob diese Lib überhaupt mit der benutzten Hardware zusammenarbeitet. Da Arduino, wie schon mehrfach beschrieben, ein Projekt von Hobbyisten für Hobbyisten ist, ist es durchaus möglich das der Autor dieser speziellen Lib das auch mit einer bestimmten Hardware gemacht hat und dort, das unterstelle ich jetzt mal, hat es funktioniert. Offenbar war er mit dem Ergebnis seiner Arbeit so zufrieden, das er das der Allgemeinheit zu VErfügung gestellt hat. Das ist allerdings keine Garantie dafür das die Lib nun bei jeden und mit jeder Hardware funktioniert. Welche Bibliothek Du überhaupt einsetzt, es gibt mehrere für diesen Zweck, welche Hardware Du genau verwendest (es gibt auch mehrere Varianten des Pro Mini) und welches Funkmodul Du verwendest, über all das schweigst Du Dich - könnte ja sein man verifiziert das und dabei stellt sich heraus das Deine Kombination nicht funktionieren kann. Das wäre natürlich blöd, da Du ja offenbar der Beste bist - hast ja gleich herausgefunden das da keine Kommentare und nach Deinem Dafürhalten ein paar Fehler sind. Ja wenn Du so gut bist dann schreibe den Kram doch gleich selbst man muß nicht für Arduino und Co. die dafür vorgesehene IDE und Libs benutzen - man ist an dieser Stelle völlig frei. Ob Dir Dein Lehrer Pagel beigebracht hat einen Kommentarheader zuschreiben und ob Du das machst oder nicht interessiert hier niemanden und Du kanns es auch von niemanden verlangen. Das und Kommentare im Allgemeinen liegen im Ermessensspielraum des Programmieres. Ich verwende mittlerweile auch gern Kommentare, aber nicht ursächlich dafür um es anderen leichter zu machen, sondern vorallem deshalb damit ich nach einem Jahr selber noch weis warum ich das so gemacht habe wie ich es gemacht habe. Also setz Dich auf den Hosenboden und schreibe einen eigenen Code und wenn Du magst darfst Du auch die Allgemeinheit daran teilhaben lassen. Und Du darfst das auch besser machen also mit Kommentarheader und reichlich Kommentaren, Überprüfungen etc. etc.. Ich finde das Arduinokonzept gar nicht so schlecht. Für viele Projekte kommt man damit recht schnell zum Ziel und das ist für viele Hobbyisten das Entscheidente. Viele interessiert dabei schlichtweg nicht wie man es zum Beispiel genau macht einen Port umzuschalten. Die wollen dafür eine einfach zu handhabende Funktion, die das erledigt und für viele ist das auch so in Ordnung. Wenn man mehr über Mikrokontroller lernen möchte, dann benutzt man nur Hardware, liest die Datenblätter der dort verbauten Komponenten und schreibt sich den erforderlich Coder auf der IDE seiner Wahl selbst. Dieser Weg ist halt steiniger, dafür lernt man mehr. Jeder ist hier in seiner Wahl frei. Habe auch den Eindruck das Du aus Langerweile nur mal einen Thread lostreten wolltest, da Du ja schon lang nicht mehr teil nimmst.
Hallo Hennes schrieb: > Wir (Du) sind (bist) nicht der Mittelpunkt der Welt. > Unsere (Deine) Einstellungen, Ideen, Vorstellungen, Interessen gelten > nicht automatisch für andere -... Schade das das auch Zeno und geschweige denn PittyJ wie leider viele weitere andere schon vorher so überhaupt nichts verstanden haben. Der TO hat halt eine andere Einstellungen und Selbstverständnisse, die mir persönlich auch nicht gefallen, die ich aber als seine Meinung akzeptiere (akzeptieren muss - auch einen Trump aber auch eine Wagenknecht muss man akzeptieren...)und höchstens versuche meinen Standpunkt und das "übliche" (aber auch die "üblichen" sind nicht der Mittelpunkt der Welt sind) klar zu machen und ihn meine Gedanken freundlich (!)näher zu bringen, ihn aber nicht zu beleidigen und verunglimpfen oder zu missionieren. Verbal "Kloppen" kann man wenn man sich persönlich gegenüber steht oder sich gut kennt - eventuell auch in der Politik. Aber Missionieren, Beleidigen, Vorschriften machen (na ja versuchen), und vorführen: Das geht nicht im Umgang in eine Forum miteinander egal wie anders die Vorstellung des Gegenübers gegenüber meiner (deiner) ist. Wobei das ein K(r)ampf gegen Windmühlen ist... :-( Hennes
Ich verfolge diesen Thread nicht mehr weiter, da ich schon vorher wusste, dass der Glaubenskrieg ab dem 3.ten Beitrag losgehen würde. Das immer gleiche Argument heisst dann "Mach es doch selbst!" Naja, wenn die Schaffer des Open Source Systems Linux in alle seinen Varianten auch so denken würden, dann würde das kein Mensch verwenden können. Glücklicherweise hat Toprvalds da aber noch ein sehr deutliches Wort zu reden, was den Kernel angeht. (Nicht das Paketbauer daraus machen) Seit die Chinesen Klone und Billigmaterial auf den Markt werfen, Fake-Chips, die nicht das tun was sie sollen (Fake Gyro Sensoren, Fake BME 280; Fake NR24L01 TxRX usw) und die Geiz ist Geil Mentalität das Zeug auch noch kauft geht es mit der guten Idee den Berg runter, der Library Manager für "externe Libs" (also nicht die eingebauten) wird zur Müllkippe. Aber was jammer ich? Ist doch alles umsonst.. gibt ja heute sogar ernsthaft Studenten, die Wikipedia als "Quelle" zitieren...
Ach ja, nur die anderen schreiben Schrott-Code. Der eigene Code ist ja perfekt und fehlerfrei. Nennt sich Wahrnehmungs-Bias... Habt ihr das in eurem Leben noch nicht bemerkt? Qualität und Preis haben nichts miteinander zu tun! So auch bei Software: "Kommerzielle" Software ist kein Deut besser, meiner Erfahrung nach eher schlechter. Denn da kannst Du erst gar nicht rein schauen, wie es innen aussieht. Nur weil Du etwas nicht siehst, bedeutet es nicht, dass es nicht da ist.
MaWin schrieb: > Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche > Routinen welche Timer verwenden. Kann ich nicht so bestätigen, die offizielle Seite ist schon informativ. Und welche Timer ist doch völlig egal. Es geht doch darum dass man das nicht wissen muss. >>Ach ja, nur die anderen schreiben Schrott-Code. Der eigene Code ist ja >>perfekt und fehlerfrei. Nennt sich Wahrnehmungs-Bias... Erzähl das jemandem, der 10 Jahre beim TÜV war und tausende Zeilen Code geprüft hat... Schrott ging zurück, nochmal machen! Damit das blaue Siegel und das GS seinen guten Namen verdient, damit die Nutzer etwas haben worauf sie sich verlassen können! Und nicht wie bei VW Betrugssoftware im Auto kaufen, nur weil niemand den Source Code überprüft hat. Richtige Klopper kommen aber dann rein, wenn ein "Schaffender" Libs hochlädt, die sämtliche Ressouren ungefragt beanspruchen, zb. die Interrupt On Change Fähigkeit mal eben für alle Ports umstellt, so dass keine andere Lib mehr neben ihm existieren kann. Es schaut eben niemand drauf, es verbreitet sich und erzeugt Frust. Das macht aber Hpffnug und dafür zahle ich auch gern mehr Geld: https://www.elektronikpraxis.vogel.de/arduino-praesentiert-mkr-board-fuer-industrielle-anwendungen-a-894870/
Zeno schrieb: > Welche Bibliothek Du überhaupt einsetzt, es gibt mehrere für diesen > Zweck, welche Hardware Du genau verwendest (es gibt auch mehrere > Varianten des Pro Mini) und welches Funkmodul Du verwendest, über all > das schweigst Du Dich - könnte ja sein man verifiziert das und dabei > stellt sich heraus das Deine Kombination nicht funktionieren kann. Das war nicht die Frage und darum ging es nicht. Egal welche Lib, die Frage war wer die Qualität kontrolliert und so einfache Sachen wie die Doku einfordert. Die Antwort ist also einfach: niemand. Auch die Libs und Plattformen die über die Arduino IDE direkt gefunden werden, die werden offensichtlich nicht oder minimal auf Kompatibilität geprüft. Und andere, wie die ESP Plattformen, muss man ja selber in die Suchliste eintragen und haben damit noch weniger mit Arduino.cc zu tun. Wobei gerade die ESP sehr gut funktionieren. BTW: wie kommt ein Third Party eigentlich in die Arduino Liste für Boards/Libs? Es gibt einfach gute und schlechte Libs, da muss man selber aussieben oder auf die Empfehlungen anderer hören aber möglichst trotzdem erstmal unter die Haube sehen. Das eine Lib vielfach genutzt wird heißt nicht das sie auch gut ist. Christian J. schrieb: > Das macht aber Hpffnug und dafür zahle ich auch gern mehr Geld: Top. Da wird nämlich Mbed benutzt. Das ist mal ein Beispiel für ein gut kontrolliertes und gewartetes System. Bevor etwas in den master Branch gemerged wird durchläuft es CI Tests die auf Style, Formalismen und Kompilirbarkeit prüfen, dann Funktionstests und es muss von zwei Reviewern freigegeben werden. Mitwirkende werden freundlich unterstützt und Issues und PR werden ernst genommen und geprüft. Freigaben dauern aber teilweise mehrere Wochen oder Monate und erfordern Geduld und Zeit. Und eine Diskussionskultur und Teamfähigkeit wie sie hier selten zu finden ist. Das betrifft bisher nur das OS, bei Libs stösst man auf das gleiche Problem wie bei Arduino Third Partys. Und Mbed Libs sind oft angepasste Arduino Libs... Aber auch da soll sich was tun, mit dem neuen Mbed6 Release sind viele alte Zöpfe abgeschnitten worden und bei vielen alten Libs gibts Mecker vom Compiler.
Johannes S. schrieb: > BTW: wie kommt ein Third Party eigentlich in die Arduino Liste für > Boards/Libs? Hier eins von vielen vielen Beispielen: https://github.com/arduino/Arduino/issues/10394
Doku schrieb: > S. R. schrieb: >> Dann setz dich hin und dokumentier's. > Die Kritik ist, dass keine Doku existiert. > Danke für die Bestätigung. Ich finde Dokumentation, ich finde Quellcode und ich finde das Datenblatt. Für mich reicht die vorhandene Dokumentation. Wenn dir das nicht passt...
Hennes schrieb: > Schade das das auch Zeno und geschweige denn PittyJ wie leider viele > weitere andere schon vorher so überhaupt nichts verstanden haben. Achja was habe ich denn nicht verstanden? Bist Du hier der Einzige der für sich eine eigene Meinung reklamieren darf? Ich habe im Wesentlichen das geschrieben was andere, u.a. auch Du, schon geschrieben hatten. Der TO hat eine Erwartungshaltung, die ich in diesem Fall so nicht in Ordnung finde und da darf man auch sagen. Ich habe ihn weder beleidigt oder verunglimpft noch habe ich versucht ihn zu missionieren. Es ist ganz einfach wenn einem etwas Angebotenes nicht gefällt, egal aus welchen Gründen, dann muß man sich damit auseinandersetzen und es halt selbst machen. Aber der TO läßt sich gleich im ersten Post zu dieser Aussage hinreisen: Christian J. schrieb: > Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen > Library Quellen hochladen kann? Da stellt sich dann schon die Frage wer hier beleidigt oder verunglimpft. Ist wohl in diesem Fall der TO. In seinem 2. Post wird es nicht besser. Johannes S. schrieb: > Das war nicht die Frage und darum ging es nicht. ... Jaein, denn er läßt sich erstmal darüber aus was alles nicht funktioniert und wie "scheiße" die Lib eigentlich die Lib geschrieben ist. Die Frage zu seinem Postthema ist der allerletzte Satz im Eröffnungspost. Es wäre schon gut gewesen wenn er geschrieben hätte um welhe Lib es sich genau handelt und was er genau für Hardware benutzt. Mit diesen Informationen wäre hier ganz bestimmt jemand gewesen, der ihm da hätte weiterhelfen können. Ansonsten gebe ich Dir recht, das es keiner kontrolliert. Es ist halt ein Projekt von Hobbyisten für Hobbyisten, was ja erst mal nicht schlecht ist. Aber das weis man wenn man die Komponenten des Projektes einsetzt, es gibt keinerlei Garantien.
Ich denke, dass die Problematik "normal" ist. Soweit mir bekannt war die ursprüngliche Intension tatsächlich ein für Künstler gedachter, einfach anzuwendender Steuerrechner. Aber wie auch immer, spätestens, wenn ein Stecker für Erweiterungen zu sehen ist, dauert es nicht lange, bis jemand sagt: "Man, da kann man doch..." Die Macher des ersten IBM-PC können davon ein (lukratives) Liedchen singen. Will jetzt jemand für "sein" IC oder für "seine" Anwendung eine Bibliothek schreiben, so hat er im Grunde genommen zwei Möglichkeiten: 1. Er floht sie einfach so hin (Quick & Dirty) Das geht schnell und der Schreiber weiß ja was er macht. Natürlich benutzt er auch seine Anwenderdaten zur Prüfung. 2. Er schreibt ein hervorragend, dokumentiertes Modul. Das ist etwas, was er gar nicht braucht und erst mal viel Zeit kostet. Im Übrigen: Der Hersteller braucht das Teil auch nicht, da die Stückzahlen im Bereich: "Uninteressant" liegen. Da das Teil auch noch Waschen und Bügeln können soll, werden die Tests schnell endlos. Alles, was zwischen eins und zwei liegt, fällt schnell in die Kategorie: "Wollte und konnte nicht". Landen jetzt beide Module in der "freien Wildbahn", so kann man ja mal eine Suchmaschine drauf loslassen. Irgendwas zwischen Null und Zwei Treffern ist dann möglich. Ob das Ganze was Taugt ist aber in beiden Fällen nicht gesagt. Möglicherweise ist sogar Modul 1 fehlerfrei, aber bei dem Sende-/Empfänger wird der Empfangsteil gar nicht verwendet. Modul 2 ist toll dokumentiert, aber im Grunde genommen sagt das nichts über die Qualität aus. Im Gegenteil. Eventuell ist bei all der Dokumentation keine Zeit mehr für die Qualitätssicherung über geblieben. Wie gesagt: Beide Module kämpfen um "ihren" Treffer bei der Suche aber, wozu auch immer eine Suchmaschine gedacht ist, diese Bewertung liegt außerhalb ihrer Möglichkeiten.
Jetzt muss ich mal zurück 'kotzen'. Ich kenne noch eine Zeit, da mußte man für jedes Stück Software Geld bezahlen. Mein erster Compiler hat 500 Mark gekostet, für einen Studenten damals eine riesen Summe. Dann kam der erste GNU Compiler (ca 1987) raus, und was ging für ein Aufschrei durch die Presse: ein kostenloser Compiler. Das geht doch nicht. Denkt keiner an die arbeitslosen Compiler-Entwickler.Der Stallmann wurde regelrecht angefeindet. So nun zu heute. Fast alles ist kostenlos, und dank Internet innerhalb in Sekunden auch zur Verfügung. Doch das reicht den Leuten nicht. Der Code muß kommentiert sein, vielleicht noch mit Doxygen Diagrammen. Am besten noch mehrsprachig. Aber, ... nur nichts mehr selber machen müssen! Wenn ich einen Treiber zu einen Chip brauche, dann schaue ich auch, was gibt es da. Das kann man als Beispiel nehmen, und sein eigenes Ding damit machen. Immerhin will ich den Treiber ja auch selber verstehen. Dabei habe ich auch schon Fehler bei anderen gefunden, und Kommentare waren suboptimal. Nur, es ist kostenlos, ich bekomme deren Code als Hilfe. Manchmal gebe ich auch Code frei, kann jeder benutzen. Der ist evtl auch nicht optimal kommentiert. Bei der Indentation habe ich meinen eigenen Geschmack. Und da ich bei Embedded eigentlich nie Objekte lösche, fehlt meist ein getesteter Destruktor. Wer den braucht, kann ihn ja selber schreiben. Es sollte doch jeder froh sein, dass es soviele kostenlose Beispiele gibt. Aber nein, es wird nur gemeckert. Das fördert nicht die Lust, weiterhin etwas kostenlos zur Verfügung zu stellen.
Christian J. schrieb: > ... Kommerzielle Software kostet Geld. Dort kannst du auch Kommentare und Dokumentation erwarten. Arduino ist halt irgenwas zusammengeklöppelt dass es geht, mehr nicht. Das ist nicht unbedingt abwertend gemeint, you get what you pay for. Die Gegenleistung ist bei dem Arudinokram für den Preis doch ganz ok. Was hast du denn erwartet? Wer soll denn die Entwicklung bezahlen?
Hallo, Christian J. schrieb: > Da ich "mal wieder" mit dem Pro Mini etwas mache arbeite ich mit einer > LoRa Library, die ich über den Lib Manager eingebunden habe. > > Es funktionierte erstmal nichts... LoRa-begin(...) lief einwandfrei, > zeigte keinen Fehler. Angeblich sendete das Modul auch, selbst wenn ich > noch keinen Empfänger gebaut habe. > > Naja, die Lib meldete auch alles "ok", wenn ich das Modul aus dem Sockel > zog oder eine Leitung der SPI abklemmte. Ich benutze die LoRa-Lib von https://github.com/sandeepmistry/arduino-LoRa Die läuft hier problemlos und meldet auch sauber einen Fehler zurück, wenn LoRa.begin() die Chip-Revision nicht auslesen kann. Ich hatte noch nichtmal Grund, in den Source reinzuschauen. Datenblätter kann ich lesen, auch das eines SX127x. Reinschauen mache ich aber nur bei einer Unklarheit z.B. eines Registerwertes und dann eben zielgerichtet. Komplett lese ich Datenblätter nur noch, wenn ich den Kram komplett selber machen muß, weil es noch nichts dazu gibt. Früher, in meiner Vor-Arduino-Zeit, war das die Regel, da habe ich das auch gelernt. Arduino ist für mich heute vor allem Zeitersparnis durch die fertigen Libs und auch die Breakoutboards, dafür bin ich dem Arduino-Kram auch ewig dankbar. Fragwürde Nachbauanleitungen gab es auch vor dem Internet schon, nur viel seltener und solch ein Autor war dann schnell dafür bekannt, daß man das besser nicht nachbaut. Dank Internet landen eben alles im Netz, wird gern ungeprüft und kritiklos übernommen. Natürlich bleinen dann die "Anwender" auf der Strecke, die merken, daß auch das Arduino-Ökosystem nicht nur "Malen nach Zahlen" ist. Gruß aus Berlin Michael
Johannes S. schrieb: > Es gibt einfach gute und schlechte Libs, da muss man selber aussieben > oder auf die Empfehlungen anderer hören aber möglichst trotzdem erstmal > unter die Haube sehen. Das eine Lib vielfach genutzt wird heißt nicht > das sie auch gut ist. und da ist es doch gut wenn man in den Quellcode schauen kann! z.B. ESP32, lt. Arduino ist es bei der onboard LED -> LED_BUILTIN GPIO5 aber bei meinen GPIO2 ist aber auch egal findet man raus und macht andere defines
1 | #if defined(__AVR_ATmega328P__)
|
2 | #define ON_BOARD_LED LED_BUILTIN
|
3 | |
4 | #elif defined(ESP32)
|
5 | #define ON_BOARD_LED 2 // bei den letzten gelieferten WEMOS LOLIN32 sonst 5
|
6 | |
7 | #endif
|
Was mich betrifft, halte ich es lieber mit der Devise "Einem geschenkten Gaul schaut man nicht ins Maul". Ich bin jedenfalls dankbar, daß es vielfach schon fertigen Beispielscode gibt um z.B. ein neu geliefertes OLED Display innerhalb kürzester Zeit im Betrieb begutachten zu können weil sich jemand (z.B. Adafruit) die Mühe gemacht hat ein Beispielsprogram mit Sourcecode frei und ohne Registrierung jedermann ohne Fragen ums Warum zur Verfügung zu stellen. Anstatt mir nun nächtelang um die Ohren zu schlagen zu müssen einen eigenen Displaytreiber zu schaffen und Graphikunterstützung zu erstellen, kann ich die Displayfähigkeiten nach Belieben sofort ergründen. Immerhin stellen vieler solcher Bibliotheken und Beispielscode das Referenzframework für den kleinen Mann dar der sich nicht die teuren Evalboards und FAE Unterstützung namhafter Hersteller leisten kann. Wenn es dann wirklich mal Probleme gibt, was eigentlich sehr selten vorkommt, dann versuche ich das Problem eben durch eigene Anstrengungen anzugehen. Aber ich beklage mich deswegen nicht. Die meisten Probleme lassen sich oft leicht eingrenzen. Auch bei Arduinoprojekten hilft es ungemeinen sich alle Sourcen anzusehen und das DaBla zu konsultieren. Man darf auch nicht übersehen, daß viele Beispiele, was Fehlererkennung und Behebung betrifft, relativ spartanisch sind und der Anwender verantwortlich ist zu entscheiden wie robust seine Anwendung in der realen Welt sein muß. Oft sind die zur Verfügung gestellten Bibliotheken eine guter Anfangspunkt für eigene Arbeiten. Und man lernt auch oft durch Beispiel. Da ich ferner nicht beanspruche ein verkapptes Genie zu sein kommt mir das hin und wieder auch in nützlicher Weise zugute. Schlechte Erfahrungen mit externen Bibliotheken habe ich bis jetzt eigentlich kaum gemacht. Die meisten funktionieren zumindest grundsätzlich im Rahmen der Designervorstellungen. Jedenfalls würde eine etwas großzügigere Denkweise und mehr Toleranz nicht schaden. Man sollte denjenigen dankbar sein die ihre Arbeit, mehr oder weniger gut, der Öffentlichkeit anheim kommen zu lassen. Verbesserungen sind lediglich eine persönliche Sache die jedem freistehen. Mit einer miesen Kotzbrockeneinstellung ist niemandem gedient und versauert meist nur die nähere Umgebung. Es gilt auch wie immer "Caveat emptor" was die Nützlichkeit frei zugänglicher kostenloser Ressourcen betrifft. Nur meine 2 cents...
:
Bearbeitet durch User
Hallo, irgendwo hatte ich mal gelesen das man sich bei der Entwicklung der Arduino Programmiersprache an C orientiert hat. Das merkt man stark an dem Library Desaster. Das was bei C nur halbwegs funktioniert und C-Programme zu Dauerbaustellen macht, funktioniert bei den Arduinos noch schlechter. Die ständige Software Patcherei entstand, weil von Programmierern Kode in Form von Librarys übernommen wird den sie nicht kennen oder die Doku so schlecht ist das es hinterher zu Nacharbeiten kommt. Ich habe 25 Jahre in C programmieren müssen und habe es gehasst fremde Librarys in meine Programme zu übernehmen. Am Anfang hatte ich noch Zeit und konnte durch eigene Programmteile fremde Librarys vermeiden. Aber im Laufe der Jahre wurde der Zeitdruck immer größer und man war gezwungen den fremdem Mist zu übernehmen. Mit den schon erwähnten Folgen, Nacharbeit, Sicherheitslücken......... und schon war der Zeitgewinn zum Teufel. Ich komme aus der Großrechner Ecke und habe mit Fortran und Cobol angefangen. Da hat man sich keine Nacharbeit leisten können, denn Rechenzeit war sauteuer und man war gezwungen sauberen Kode zu liefern. Programmpatche gab es nur bei Funktionserweiterungen, ansonsten liefen die Programme von Anfang an Störungsfrei. Das war selbstverständlich. Das war dann nicht mehr so als es mit C losging. Anfangs konnte die Qualität gehalten werden aber im Laufe der Jahre wurde es immer schlimmer. Die aktuellen C Programmierer werden mich jetzt steinigen wollen, aber sie sollten vielleicht mal überlegen was sie so den ganzen Tag machen und für was sie ihre Zeit verbraten. :))) Salu Hans
Ja, die Software Dinos die Git nicht verstehen und immer noch lieber ihre Versionen in Zip Files halten. Und Code von anderen ist NIH, also schlecht. Übrigens, Arduino ist C++. Das verstehen leider auch nicht alle Lib Anbieter. Oder selbst wenn, dann werden Instanzen durch globale Variablen torpediert.
Johannes S. schrieb: > Ja, die Software Dinos die Git nicht verstehen und immer noch lieber > ihre Versionen in Zip Files halten. Und Code von anderen ist NIH, also > schlecht. Woher willst du das jetzt wissen. Ziemlich dumm und pauschal diese Aussage! Salu Hans
HBose schrieb: > irgendwo hatte ich mal gelesen das man sich bei der Entwicklung der > Arduino Programmiersprache an C orientiert hat. Wenn die Einleitung schon so anfängt, dann kannste dein Bashing auch gleich stecken lassen. Bedeutet nichts weiter, du hast keinerlei Ahnung vom Arduino Ökosystem, aber erstmal draufhauen. Ich kann da nur mit Kopf schütteln. Übrigens fällt mir ein, ist Linux nicht in C bzw. überwiegend in C programmiert? Ist eigentlich keine Frage sondern Fakt. Linux gilt doch allgemein als sicher? Bedeutet, die Code Qualität hängt in erster Linie vom Programmierer ab. Nächste Frage, gilt Linux noch als sicher wenn Torvalds irgendwann nicht mehr ist? Torvalds der gnadenlose Codechecker. Bedeutet erneut, die Code Qualität hängt in erster Linie vom Programmierer ab.
Hallo, im Grunde ist es mir auch egal was du und andere von Arduino denken. Es regt einem nur auf solchen Mist immer wieder lesen zu müssen. Ich nutze es jedenfalls gern. Vor kurzem dachte ich noch ich muss mich wegen neuen Controller Zwangsweise verabschieden und selbst was aufbauen. Dann tauchte plötzlich von Jemanden auf Github für die Arduino IDE das gewünschte komplette Controller Package auf. Dafür sagt man herzlichst Danke, legt los und muss lieb gewonnene Komfort Funktionen nicht aufgeben bzw. mühsam nachbauen.
Johannes S. schrieb: > Übrigens, Arduino ist C++. mag sein, kommt aber wunderbar mit meinen C-Sourcen (sogar seit 1990 aus qc für DOS) zurecht, ich versuche ja cpp zu lernen, aber da bin ich wohl zu alt und ich weiss nicht wie ökonomisch cpp mit dem knappen SRAM umgeht, wenn ich eine temporäre char txt[15] erstelle weiss ich das ich 15 Byte brauche die von txt[0]-txt[14] geht mit terminierender 0 wenn ich String Ausgabe_pfad_String=""; Ausgabe_pfad_String.reserve(c_count2+2); mache weiss ich nicht ob der Speicherplatz wieder freigegeben wird. Ist mir noch unheimlich. ausserdem was bietet mir cpp was ich nicht mit c machen kann?
HBose schrieb: > Woher willst du das jetzt wissen. Ziemlich dumm und pauschal diese > Aussage! Weil Arduino C++ und nicht C ist, du hast dich also offensichtlich nicht damit beschäftigt. Opa erzählt vom Krieg, aber da könnte ich mitreden, habe im Studium auch noch PL1 Programme in Lochkarten gestanzt und Mikroprozessoren in PL/M programmiert. Im Arduino System ist das Finden und leichte Einbinden von fremden Bibliotheken ein Teil des erfolgreichen Konzeptes. Das Bibliotheken dann auch eine gewisse Qualität haben sollten ist wünschenswert, aber in der Praxis eben nicht so. Und da helfen die Arbeitsweisen aus Großrechnerzeiten nu mal gar nich. Im Gegenteil, die Leute die damit groß geworden sind die sind einfach die Bremser heute. Meine Meinung.
Veit D. schrieb: > Übrigens fällt mir ein, ist Linux nicht in C bzw. überwiegend in C > programmiert? Ist eigentlich keine Frage sondern Fakt. Linux gilt doch > allgemein als sicher? Bedeutet, die Code Qualität hängt in erster Linie > vom Programmierer ab. Ich behaupte, dass alle Betriebssysteme, bzw. deren Kern, mit einem Marktanteil über 1%, hauptsächlich in C geschrieben sind. So ist auch der Arduino Core zum größten Teil in C. Etwas Assembler, und die Libraries nahezu alle in C++ HBose schrieb: > irgendwo hatte ich mal gelesen das man sich bei der Entwicklung der > Arduino Programmiersprache an C orientiert hat. Nöö... An Processing, hat man sich orientiert. Die aktuelle Haupt-Arduino-Sprache ist C++, genauer C++11, in der Variante gnu++11. Der aktuelle, mitgelieferte, Kompiler kann bis gnu++17 Auch das ist ein Punkt, in dem Arduino Jünger gerne unterschätzt werden. C++ dürfte so mit eine der schwersten, vielseitigsten und kompliziertesten Sprachen sein, welche z.Zt. weite Verbreitung haben. Klar stellen sich Einsteiger damit anfangs etwas unbeholfen an. Dauert eben ein paar Jahre, bis man darin halbwegs fit ist.
Joachim B. schrieb: > String Ausgabe_pfad_String=""; Da muss man nachsehen wie String implementiert ist bzw. ist es idealerweise dokumentiert (in diesem Fall ist es ja von Arduino geliefert). Und über C vs. C++ wurde hier im Forum ja wohl wirklich genug diskutiert, das ist an dieser Stelle mit Sicherheit nicht nötig.
Joachim B. schrieb: > ausserdem was bietet mir cpp was ich nicht mit c machen kann? OOP, Funktionale Programmierung, Templates, TypeTraits, ... (und das Gedönse drumrum) Joachim B. schrieb: > Ist mir noch unheimlich. Dann hast du die Wahl: Kundig machen, oder wegducken. Joachim B. schrieb: > weiss ich nicht ob der Speicherplatz wieder freigegeben wird. Natürlich kann man auch in C++ Mist bauen. Aber es hat eben auch Destruktoren, welche dir solche Probleme abnehmen können. Und die String Klasse hat einen solchen. ------- Johannes S. schrieb: > Und über C vs. C++ wurde hier im Forum ja wohl wirklich genug > diskutiert, das ist an dieser Stelle mit Sicherheit nicht nötig. Ich weiß nicht... Ich vermute, dass eine Ursache der Arduino Ablehnung das Resultat einer C++ Verweigerung ist.
Joachim B. schrieb: > mag sein, kommt aber wunderbar mit meinen C-Sourcen (sogar seit 1990 aus > qc für DOS) zurecht, Finde ich auch nicht verwerflich oder schlimm. Es gibt durchaus gute C Bibliotheken und die können auch so gebaut werden das mit C++ kooperieren. Beispiel: lvgl Grafik. Die ist eben nicht exklusiv für C++, kann aber gut damit kombiniert werden weil die Datenstrukturen einen Universalpointer haben in den man das C++ this ablegen kann. Gut, da hat ein begabter Programmierer viele Jahre Arbeit rein investiert, so sind nicht alle Libs gebaut.
Hallo, Danke für deine näheren Erläuterungen. Ich denke jedoch nicht das Arduino wegen C++ abgelehnt wird. Wissen eh nur die Auskenner. Ich denke es wird abgelehnt weil der Einstieg und Umgang damit zu einfach ist, weil es damit jeder kann der Lust und Muse hat. Es zwingt einem ja niemand damit unbedingt C++ zu programmieren. Man kann auch wie du schon genannt hast in der IDE auch C oder Assembler programmieren. Viele Profis programmieren Controller ja generell in C. Können sie ja meinetwegen machen. Von denen hört man auch kein Bashing. Der Hauptgrund wird sein, denke ich, man kann und muss sich nicht hinter einer überfrachteten IDE verstecken. Dieses ich kann es bedienen und du nicht Gehabe fällt plötzlich weg. Die künstlich aufgebaute Fasade gibts nicht mehr. Einfachheit gewinnt. Damit trennt sich die Spreu vom Weizen. Die Arduino IDE ist einfach aber klar aufgebaut und damit übersichtlich. Okay, verdient jetzt vielleicht nicht den Namen IDE, weil man sich darunter viel mehr vorstellt, aber genau das ist der Punkt, die Einstiegshürde ist auf ein Minimum gesunken, man muss sich eben nicht erst mit der IDE rumschlagen und zurechtfinden. Später können die Ansprüche an eine IDE natürlich steigen, dann nimmt man eine andere die einem gefällt. Dem echten Profi stört das Arduino Ökosystem überhaupt nicht. Der weiß sowieso was er kann. Der kann auch damit umgehen. Ein echter Profi würde sich auch freuen wenn jemand mit Arduino überhaupt erstmal anfängt zu programmieren und dann selbst vielleicht zum Profi wird. Programmieren soll ja auch in den Schulen gefördert werden, hoffentlich wird die Schul-Digitalisierung nun auch endlich einmal Flächendeckend durchgeboxt und nicht nur darüber diskutiert. Kurzum. Allgemein rumheulen tun doch immer nur die, dass lehrt meine Erfahrung, die sich mit Nichtwissen hinter irgendwas verstecken müssen. Die andere Gruppe, also die Wissenden, hat das wie gesagt nicht nötig. Ende.
Veit D. schrieb: > Kurzum. Allgemein rumheulen tun doch immer nur die, dass lehrt meine > Erfahrung, die sich mit Nichtwissen hinter irgendwas verstecken müssen. > Die andere Gruppe, also die Wissenden, hat das wie gesagt nicht nötig. > Ende. Wahre Worte.
Hi >Ich vermute, dass eine Ursache der Arduino Ablehnung das Resultat einer >C++ Verweigerung ist. Ist doch klar: Wenn man seit den 90ern mit Turbo Pascal/Turbovision + Delphi unterwegs ist, dann interessiert einen C++ nicht im geringsten. Damit entfällt auch das Interesse für Ardudgingsda. Abgesehen davon halte dieses weltweite produzieren von Shields/Breadboards die für irgendwelche Kinderspielreien eingesetzt werden für absolute Unmeltsauererei. Die C&P-Fraktion lernt eh nichts davon. MfG Spess
Was ist eine "C&P-Fraktion"? Google weiß da auch nichts bestimmtes... Also, nein. Wie ihr immer mit euren Abkürzungen herumwerft, do soll man sich in meiner Ecke der Welt noch auskennen. Naja, daß uC Teufelszeug ist, wissen eh nur die Eingeweihten;-)
Hi Was ist eine "C&P-Fraktion"? Copy&Paste MfG Spess
spess53 schrieb: > Hi > Was ist eine "C&P-Fraktion"? > > Copy&Paste > > MfG Spess Da muß ich wohl auf dem Schlauch gestanden haben. Schlimm. Ich werde doch langsam alt...
HI Ich werde doch langsam alt... Geht den Menschen wie den Leuten. MfG Spess
spess53 schrieb: > HI > > Ich werde doch langsam alt... > > Geht den Menschen wie den Leuten. > > MfG Spess Hmm. Da will ich lieber ein Mensch sein;-)
:
Bearbeitet durch User
Ab und zu schreibe ich eine Arduino-Library und veröffentliche diese. Die kann dann so benutzt werden "as it is". Wer die dann verbessern möchte kann das tun. Es gibt auch Leute, die nutzen die Library als Codegrundlage und schreiben eine bessere, ohne die Verbesserungen zurückzuspielen. Das betrachte ich gelinde gesagt als eine Unverschämtheit: Kostenlos Dinge benutzen, nörgeln und nichts beitragen mit der Erwartungshaltung: Ist ja eh alles umsonst.
Veit D. schrieb: > Ich denke jedoch nicht das Arduino wegen C++ abgelehnt wird. Wissen eh > nur die Auskenner. Ich denke es wird abgelehnt weil der Einstieg und > Umgang damit zu einfach ist, weil es damit jeder kann der Lust und Muse > hat. Das mag bei einigen hier im Forum so aussehen. Ich halte es eher für den Anspruch, eine vollständig dokumentierte API zu haben und nicht im Code nachsehen zu müssen, ob analogRead einen int (zwischen 0 und x?), short, long, float (zwischen 0.0 und 1.0? So las sich die Doku für ESP8266-Arduino mal...) oder sonstwas zurückliefert. Was mittlerweile (wenn auch ziemlich verschwurbelt) dokumentiert ist - als ich das letzte Mal nachgeschaut habe, war das noch nicht so: https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ Gleiches Problem bei digitalRead - was sind HIGH und LOW für ein Datentyp? So, wie das im Beispiel dargestellt ist, wohl int? Und pin? So kann zum Beispiel aussehen: https://linux.die.net/man/3/fabs Und natürlich könnte ich einen Teil davon zuliefern. Aber dann hätte ich weniger Zeit, hier im Forum mehr oder weniger sinnvolle Kommentare abzuliefern ;) MfG, Arno
Oh man, wenn man das hier so liest wird mir immer mehr bewusst das die welt der Programmierer sich in 2 Lager spaltet. Die einen sind die super Gurus die alles verstehen und keinen Kommentar brauchen. Und die konservativen die auch in einem Jahr noch einmal da rein schauen und alles ordentlich machen. Ich gehöre zu der zweiten Hälfte. Vielleicht auch weil ich aus der Medizintechnik komme. Ich muss leider öfter mal fremden Code mir ansehen (benutzen kann man den meist nicht) und könnte fast immer nur brechen weil der sowas von schlecht geschrieben ist. Wie der TO schon am Anfang erwähnt hat: es kümmert sich keiner um die Qualität der libs und das ist sehr schade. Gerade weil bei arduino nicht die Gurus sondern mehr die Einsteiger was machen.
Arno schrieb: > Gleiches Problem bei digitalRead - was sind HIGH und LOW für ein > Datentyp? So, wie das im Beispiel dargestellt ist, wohl int? Und pin? Ja, den aus meiner Sicht schlampigen Umgang mit Datentypen, habe ich schon mal mit den/einigen Entwicklern besprochen.... Die Antwort war einerseits logisch, und andererseits auch etwas unbefriedigend, da mir die Wichtigkeit der Typen schon bewusst war/ist. Also: Die API ist so gestaltet, dass sie einerseits gut funktioniert, egal ob ein 8Bit, 32Bit oder 64Bit System gerade vor einem liegt. Dann ist int der "natürliche" C Datentype. Die meisten Funktionen sind in C geschrieben, verwenden dieser Logik folgend auch gerne int als Parameter/Rückgabe, wo immer es möglich ist. Zur Not erfolgt ein impliziter Cast. Dunnemals gab es noch keinen gemeinsamen bool Datentype in der C und C++ Welt. Sonst hätte man ihn evtl. verwendet, statt HIGH und LOW. Die API und auch die Beispiele sind so gebaut, dass man verwendbare Datentypen "intuitiv" aus den Beispielen erfassen kann. Zumindest so immer auf brauchbare Typen kommt. Es hat also viel mit der niedrigen Einstiegsschwelle zu tun, dass die Typen so lax gehandhabt werden. Man muss keinen Lehrgang auf C/C++ Datentypen gemacht haben, für die ersten Schritte. Das folgt dann später, wenn man die Sprache(n) im Detail lernen möchte. Der zentrale Punkt: Es ist nicht die Code Effizienz, welche an er erster Stelle steht, sondern, der einfache erste Zugang zu der Welt. Es gibt also die zwei Ansätze: 1. Lerne die Sprache, dann programmiere 2. Spiele erst ein bisschen rum, und dann mache dich kundig, wenn du "mehr" erreichen willst. Arduino verfolgt klar den zweiten Ansatz. Ja, ich kann mir schon vorstellen, dass dieser Ansatz den hart gesottenen Praktiker/Profi etwas verstört. (ging mir ähnlich) Aber dieser ist eben nicht die Hauptzielgruppe. Zielgruppe sind die völlig Fachfremden, die Einsteiger. Vergleich: Kinder lernen auch Fahrrad fahren, ohne vorher Fahrphysik studiert zu haben. Das kommt erst später, wenn die Rundenzeiten wichtig werden. Peter schrieb: > es kümmert sich keiner um die > Qualität der libs und das ist sehr schade. Gerade weil bei arduino nicht > die Gurus sondern mehr die Einsteiger was machen. Eben drum, die Einsteiger schreiben die Libs. Es ist ein Prozess..... Viele Libs werden stetig weiter entwickelt.
Hallo Arno, du kennst doch die Doku https://www.arduino.cc/reference/en/ Dort ist High und Low dokumentiert. High ist alles was größer 0 ist. Daneben gibts noch true und false als bool Type. Ebenso ist return von analogRead dort dokumentiert. Seit einer Weile gibts die Doku auch auf deutsch, hat ein fleißiger Forumsteilnehmer gemacht. Nicht aus diesem Forum. Ich weiß jetzt ehrlich gesagt nicht worüber du meckerst? Und wer es noch genauer wissen möchte, der muss nun einmal in den Code schauen. Wer in den Code schaut, der will dann eher wissen wie es gemacht wurde. Nicht was es macht. Was soll ich dazu noch sagen?
Hallo Arduino Fanboy, 1+ für deinen Beitrag.
Hier ist ein schönes Beispiel dafür, wie ein Library-Programmierer reagieren kann, wenn zu viele Beschwerden und zu wenig Support vorhanden ist: http://wiringpi.com/wiringpi-deprecated/
Arduino Fanboy D. schrieb: > Die API ist so gestaltet, dass sie einerseits gut funktioniert, egal ob > ein 8Bit, 32Bit oder 64Bit System gerade vor einem liegt. > Dann ist int der "natürliche" C Datentype. Die meisten Funktionen sind > in C geschrieben, verwenden dieser Logik folgend auch gerne int als > Parameter/Rückgabe, wo immer es möglich ist. Aha. Und ist das auch so dokumentiert? Die Frage war ja nicht, wie breit ein int für die Arduino Plattform ist, sondern welchen Typ eine API Funktion für den Parameter erwartet bzw. als Resultat zurückgibt. Daß der Compiler casten kann, ist klar, ersetzt aber nicht die Dokumentation. > Die API und auch die Beispiele sind so gebaut, dass man verwendbare > Datentypen "intuitiv" aus den Beispielen erfassen kann Das ist bestimmt gut gemeint, ersetzt aber ebenfalls nicht die Dokumentation.
Axel S. schrieb: > ersetzt aber nicht die Dokumentation. Deine Erwartungshaltung wird nicht befriedigt. Da kann man sich fragen, ob das "dein" Problem ist. Wenn es "dein" Problem ist: 1. Kannst du daran was ändern? 2. Kannst du es mit Geduld und Langmut hinnehmen? 3. Besitzt du die Weisheit zwischen 1 und 2 unterscheiden zu können? Ansonsten: Da du nicht konkret wirst, kann ich dir nur raten die Doku wirklich mal zu lesen, und wenn da ernsthafte Verbesserungen NÖTIG sind, diese anzustoßen. https://www.arduino.cc/reference/de/ -- Nachtrag: Es wäre nett, wenn du dich an deine eigenen Ansagen halten würdest: Axel S. schrieb: > Für ein funktionierendes Open-Source Ökosystem fehlt hier noch etwas: > das Feedback, z.B. in Form eines Bugreports. Sich in einem Forum > auskotzen ist eine Sache. Aber das macht die Software nicht besser. Ein > Bugreport an den Autor, idealerweise gleich mit konkreten > Verbesserungsvorschlägen, würde die Situation verbessern (können). Macht > aber viel mehr Arbeit. Weniger Arbeit als das Selberschreiben aber auch. > > Mein Fazit: Fehler in Open Source Software zu finden und zu bemängeln > ist nicht nur vollkommen ok, es ist sogar explizit erwünscht. Nur sollte > die Mängelanzeige dann in Form eines Bugreports erfolgen. Dann ist das > nämlich ein Beitrag zu Open Source, der genauso wichtig ist, wie das > Schreiben von Code.
Hallo, ich finde es Klasse das es hier Leute gibt die das Qualitätsproblem bei C, C++, Arduino usw. ebenfalls erkannt haben. Die Schwächen sind offensichtlich und müssten selbst den engagiertesten Verfechtern dieser Umgebungen auffallen, wenn sie ehrlich wären. Manche Argumentationen haben schon was religiöses und zeigen eine tiefe Betroffenheit das ihre heilige Programmierumgebung in Frage gestellt wird. Ok, man kann ihnen zu Gute halten, das nix anderes gelernt haben und sie sich auf moderneres umstellen müssten, was nicht so einfach ist. Aber es geht. Habe ich in meinem Berufsleben alle paar Jahre machen müssen. Die Argumente der Fraktion C usw. sind recht billig da ist nichts dabei was einen überzeugen kann. Ausser Beschimpfungen (Bremser, Nihilist etc.) ist den Herren noch nichts eingefallen was für diese Programmierumgebungen spricht. Die offensichtlichen Schwächen werden einfach ignoriert. Am lustigsten finde ich die Argumente der Copy und Paste Fraktion. Können nicht programmieren. Ohne Copy und Paste wären sie hilflos und müssten mit den Glas-Klickern spielen. Aber das ganze dann als unverzichtbares Ökosystem bezeichnen. Was ist da Öko wenn Millionen von Arduino Boards und Sketche unter haarsträubenden Umweltbedingungen produziert und verramscht werden. Ich wette 90% dieser Boards verschwinden im Müll und belasten die Umwelt, weil die Programmierumgebungen so schrottig sind und die Leute damit nicht zurecht kommen. Auch kommen viele über das Stöpsel Stadium nicht hinaus. Eine fertige Elektronik mit ordentlichem Board wird aus diesen Stöpsel Aufbauten nur in den seltesten Fällen. Wie gesagt irgendwann landet es im Müll. Deshalb wäre mehr Qualität bei der Software ein wichtiger Beitrag unsere Umwelt zu entlasten! Salu Hans PS: Ihr dürft mich ruhig weiterbeschimpfen. Vielleicht macht es ja bei dem einen oder anderen "Klick" und er sieht die Sache mit offenen Augen, dafür halte ich die Beschimpfungen gerne aus. ;)
HBose schrieb: > Wie gesagt irgendwann landet es im Müll. Wie jedes andere Elektronikgerät auch. Ich wette die meisten Arduinos leben länger, als das Dummfon des Besitzers.
Arduino Fanboy D. schrieb: > Axel S. schrieb: >> ersetzt aber nicht die Dokumentation. > Deine Erwartungshaltung wird nicht befriedigt. Ich habe keine Erwartungen. Ich habe vollumfänglich aktzeptiert, daß ich nicht zur Zielgruppe des Arduino-Frameworks gehöre. Ich verwende es auch nicht. Außer mal zum Spielen. Mach dir nichts draus. Ich verwende auch eine ganze Menge anderer Dinge nicht. Hardware von Apple z.B. Oder Software von Microsoft. > Ansonsten: > Da du nicht konkret wirst, kann ich dir nur raten die Doku *wirklich* > mal zu lesen, und wenn da ernsthafte Verbesserungen NÖTIG sind, diese > anzustoßen. > https://www.arduino.cc/reference/de/ Zitat aus: https://www.arduino.cc/reference/de/language/functions/digital-io/digitalread/
1 | Syntax |
2 | |
3 | digitalRead(pin) |
Wäre jetzt irgend jemandem ein Zacken aus der Krone gebrochen, wenn er da jeweils den Typ für den Returnwert und den Parameter dazu geschrieben hätte? War das zu aufwendig? Würde das die Zielgruppe verwirren? Hat der Schreiber dieser "Dokumentation" jemals eine API Dokumentation gesehen? Eine reine Aufzählung von Funktionsnamen ist vollkommen witzlos. So würde das korrekt aussehen:
1 | $man read |
2 | |
3 | READ(2) Linux Programmer's Manual READ(2) |
4 | |
5 | NAME |
6 | read - read from a file descriptor |
7 | |
8 | SYNOPSIS |
9 | #include <unistd.h> |
10 | |
11 | ssize_t read(int fd, void *buf, size_t count); |
12 | ... |
Du erkennst den Unterschied? Da steht, welches Headerfile man #includen
muß und ein vollständiger Prototyp der Funktion.
> Es wäre nett, wenn du dich an deine eigenen Ansagen halten würdest
Ich halte das ganze Arduino-Projekt, zumindest was die Softwareseite
angeht, für vollkommen überflüssig. Ich möchte da gar nichts dazu
beitragen. Aber ich verfasse auch keine freistehenden Rants darüber.
Andererseits halte ich mich in einer Diskussion auch nicht mit meiner
Meinung zurück. Ich hätte gar nichts dazu gesagt, wenn nicht die
Behauptung gefallen wäre, das Arduino-Framework wäre gut dokumentiert.
:
Bearbeitet durch User
Axel S. schrieb: > Wäre jetzt irgend jemandem ein Zacken aus der Krone gebrochen, wenn er > da jeweils den Typ für den Returnwert und den Parameter dazu geschrieben > hätte? Steht doch da: "Rückgabewert HIGH oder LOW." :-D Axel S. schrieb: > War das zu aufwendig? Das wohl nicht... Axel S. schrieb: > Würde das die Zielgruppe verwirren? Das wird wohl der Grund sein! Ich bin da voll bei dir, aber ich denke eher, dass die Philosophie dies nicht verfolgt. Anscheinend ist es eher so: "...man muss nicht wissen warum und wieso, es funktioniert in den meisten Fällen, auch ohne tieferes Wissen." Siehe hier, das konnte ich auch nicht so recht nachvollziehen: Beitrag "Re: D1 MIni - Anfängerprobleme" (ist wohl Geschmackssache)
:
Bearbeitet durch User
HBose schrieb: > Die Argumente der Fraktion C usw. sind recht billig da ist nichts dabei > was einen überzeugen kann. Ausser Beschimpfungen (Bremser, Nihilist > etc.) ist den Herren noch nichts eingefallen was für diese > Programmierumgebungen spricht. sorry so ein Rundumschlag an alle ist nicht nur falsch sondern auch nicht zielführend. Ich gehöre zur C-Fraktion seit 1988 qc für DOS und tue mich schwer mit cpp, aber der Arduino und die IDE haben damit keine Probleme. HBose schrieb: > Ich > wette 90% dieser Boards verschwinden im Müll und mein nano328p funkt seit 2015 meine 433 MHz Rolladenempfänger vom Breadboard an mit den Gratis LIBs RCsend, der wird mich vermutlich überleben, ob er noch auf eine PCB kommt wie bei meiner wordclock12h ist noch offen, da ich miesen DCF77 Empfang hier habe denke ich eher an ESP32 mit NTP
:
Bearbeitet durch User
Veit D. schrieb: > Hallo Arno, > > du kennst doch die Doku https://www.arduino.cc/reference/en/ > Dort ist High und Low dokumentiert. High ist alles was größer 0 ist. Entweder ich kann nicht lesen oder es steht irgendwo, wo ich es nicht erwarte. Unter https://www.arduino.cc/reference/en/language/variables/constants/constants/ steht jedenfalls nicht das, was du schreibst. Veit D. schrieb: > Daneben gibts noch true und false als bool Type. Eben nicht, das sind Integer-Konstanten (und dort gar nicht schlecht erklärt). Ja, der Unterschied hat oft keine Auswirkung, manchmal aber schon. Veit D. schrieb: > Ebenso ist return von analogRead dort dokumentiert. Schrieb ich doch, inzwischen. War nicht immer so. Und ist immer noch reichlich verschwurbelt. Vielleicht ist
1 | int analogRead(int pin) - Returns ADC value |
2 | Return range depends on ADC resolution. By default, it is [0...1023] but on controllers that support higher resolution ADC, higher resolutions can be chosen with void setAnalogResolution(xxx) [mit Link zu der Beschreibung der Methode] |
3 | pin: Pin to read in Arduino pin numbering. Arduino defines constants A0 ... An for easy access. |
ja wirklich so viel schwieriger zu verstehen als das, was da aktuell in der Dokumentation steht, dass man damit das Ziel "Anfängertauglichkeit" verlieren würde. Nicht ausgeschlossen. Veit D. schrieb: > Seit einer Weile gibts die Doku auch auf deutsch, hat ein fleißiger > Forumsteilnehmer gemacht. Nicht aus diesem Forum. Ich weiß jetzt ehrlich > gesagt nicht worüber du meckerst? Ich weiß nicht, wo du mich meckern siehst. Ich merkte nur an, dass es eine ganze Menge Kritikpunkte an Arduino geben kann, die wenig bis nichts damit zu tun haben, dass damit ja "jeder" programmieren kann. MfG, Arno
Hallo, Axel S. schrieb: > Du erkennst den Unterschied? Da steht, welches Headerfile man #includen > muß und ein vollständiger Prototyp der Funktion. Arduino-Framework: man bekommt mit wenig Zeitaufwand und noch weniger Vorkenntnissen relativ schnell ein überschaubares konkretes Projekt zum Laufen. Das nutzt derjenige dann und ist zufrieden und wendet sich seinen anderen Hobbys zu. Wer mehr will kann sich gern reinkniene oder auf eine anderes Framework wechseln, muß das aber nicht. Meine Linuxkenntnisse sind bestenfalls bescheiden, Nutzzung beschränkt sihc hier auf RasPi unter ähnlichen Rahmenbedingungen. FHEM, Mosquitto, IceCast Streamserver laufen darauf und das will ich eben nutzen Und hier scheiden sich auch die Geister: wenn da unter Debian auf dem Raspi was nicht läuft kann ich es entweder in die Ecke werfen oderhoffen, irgendwo Hilfe zu finden. Da sind dann die Linux-Gurus mit den heißen Tipps, eben einfach mal ein halbes Jahr sich mit Linux zu befassen und dann das Problem selber lösen zu können. Könnte ich durchaus, nur warum sollte ich mir für eine einmalige Sache Kenntnisse aneignen, die ich nicht wieder brauche? Die Zeit nutze ich lieber, um mich mit Sachen zu befassen. die ich häufig oder ständig anwenden will... Ansonsten ist es da wie bei Arduino: hunderte Foreneinträge mit tollen falschen Hinweisen, die einer vom anderen abschreibt. Ich kann da zum Glück meinen Bekannten fragen, der kann mir bei Linux schnell und konkret helfen, der weiß sozusagen, wie "Linux geschrieben" wird. Witzigerweise nutzt genau der für seine anderen Hobbysachen die ArduinoIDE, spart ihm Zeit. Bei dem Arduinokram muß ich ihn nicht fragen, da schaue ich eben in die Sourcen und/oder schreibe mir fehlende Sachen eben selber. Bugreport speziell bei ESP8266/ESP32 überlasse ich da gern meinem Bekannten, da ist schon maches eingeflossen, auch weil er eine mögliche Lösung gleich mitliefert. Gruß aus Berlin Michael
Christian J. schrieb: > Das immer gleiche Argument heisst dann "Mach es doch selbst!" Naja, wenn > die Schaffer des Open Source Systems Linux in alle seinen Varianten auch > so denken würden, dann würde das kein Mensch verwenden können Ähm, ist doch so...
Axel S. schrieb: > Ich halte das ganze Arduino-Projekt, zumindest was die Softwareseite > angeht, für vollkommen überflüssig. Ich möchte da gar nichts dazu > beitragen. Gut, dann ist das wenigstens geklärt! Und das mit der "Weisheit" (Punkt 3), auch wohl.... HBose schrieb: > Ihr dürft mich ruhig weiterbeschimpfen. Gar nicht nötig. Du kannst dich auch ohne Hilfe blamieren. --- Mir ist irgendwie unverständlich, dass Leute, die mit Arduino nix zu tun haben, auch nichts zu tun haben WOLLEN, und dazu wenig Ahnung davon haben, so dermaßen das Maul aufreißen müssen. Habt ihr eigentlich keine eigenen Probleme, worum ihr euch kümmern müsstet? Wozu ist das buddeln auf fremden Baustellen gut? Welche Ziele, ihr habt? Was befriedigt euch an dem Kampf gegen die Windmühlen, den ihr sowieso verlieren werdet? Es ist nun mal in der Welt, und wird auch nicht so schnell wieder verschwinden. Klarer: Wenn ich kein Schokoeis mag, dann stecke ich es mir nicht in den Mund! Das ist dann meine Entscheidung! Und wenn der Nachbar Schokoeis isst, sage ich ihm doch auch nicht: 1. Das sieht ja aus wie Scheiße! 2. Das ist Scheiße! Wieso könnt ihr euch das herausnehmen? Ist es die antisoziale Ader in euch?
Michael U. schrieb: > Arduino-Framework: man bekommt mit wenig Zeitaufwand und noch weniger > Vorkenntnissen relativ schnell ein überschaubares konkretes Projekt zum > Laufen. Das unterschreibe ich dann auch mal, denn das ist so. In den restlichen Glaubenskrieg mische ich mich mal nicht ein. Und ja die QM ist ein Makel, einer der vielleicht viel früher hätte beseitigt werden können, bevor der Wildwuchs begann. Jetzt sehe ich höchstens eine Abspaltung, einen Fork als Lösung, wie zb "Industrial Arduino", wo nur geprüfte Dinge übernommen werden.
Arno schrieb: > Veit D. schrieb: > https://www.arduino.cc/reference/en/language/variables/constants/constants/ > steht jedenfalls nicht das, was du schreibst. Häh, ich darf doch bitten. https://www.arduino.cc/reference/en/language/variables/constants/constants/
1 | false: |
2 | false is the easier of the two to define. false is defined as 0 (zero). |
3 | |
4 | true: |
5 | true is often said to be defined as 1, which is correct, but true has a wider definition. Any integer which is non-zero is true, in a Boolean sense. So -1, 2 and -200 are all defined as true, too, in a Boolean sense. |
> Veit D. schrieb: >> Daneben gibts noch true und false als bool Type. > > Eben nicht, das sind Integer-Konstanten (und dort gar nicht schlecht > erklärt). Ja, der Unterschied hat oft keine Auswirkung, manchmal aber > schon. Hier liegst du richtig. :-)
:
Bearbeitet durch User
C evaluiert alles ungleich 0 als true. Selber liefert es als true aber immer 1 zurück. Z.B. der Ausdruck !!4 hat den Wert 1.
Das artet hier schon in einen Glaubenskriegaus. Ist schon fast wie LINUX - Windows. Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren sondern bastetl sich was zusammen. Der hat auch keine Ahnung davon das man den Code Kommentieren sollte. Wenn er Probleme hat fragt er in einem Forum. Alle anderen die Programieren können sollten sich gefälligst auch mal so benehmen und lesbaren Code abliefern (also mit Kommentaren). Ich kenne genug Code wo ich dachte, super ich kann mal faul sein, den Code konnte ich meistens nicht mal als reference nehmen weil kein Kommentar oder zuviele Fehler drin waren. Ich lösche meistens so was schon wenn ich eine Datei öffne und nach 100 Zeilen Copyright Kommetar nicht mal erfahre wofür die Datei überhaupt ist und der Rest so aussieht als wurde der Code durch einen Komentarkiller geschoben.
Und ja es gehört auch eine Doku dazu was an Parameter eine Funktion erwartet und zurück gibt. Und das ist egal in welcher Sprache!
Veit D. schrieb: > Arno schrieb: >> Veit D. schrieb: > >> https://www.arduino.cc/reference/en/language/variables/constants/constants/ >> steht jedenfalls nicht das, was du schreibst. > > Häh, ich darf doch bitten. Meine Antwort bezog sich auf deine Meldung: > du kennst doch die Doku https://www.arduino.cc/reference/en/ > Dort ist High und Low dokumentiert. High ist alles was größer 0 ist. Jetzt hast du die Dokumentation von true und false zitiert. Ist das das gleiche wie HIGH und LOW? Ich vermute erstmal nicht. MfG, Arno
Klaus schrieb: > Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren > sondern bastetl sich was zusammen. Der hat auch keine Ahnung davon das > man den Code Kommentieren sollte. Wenn er Probleme hat fragt er in einem > Forum. So so... Du meinst nicht, dass sich "Der Arduino User" in einem Prozess (des Lernens) befindet? Sondern eher, dass er statisch doof ist.(?) Evtl. solltest du mal annehmen, nur versuchsweise, dass du dich irrst. Und, wenn du dich in dem Punkt schon irrst... wo dann sonst noch? Ansonsten, meinen Glückwunsch, dass deine Mama es geschafft hat, dich als voll ausgebildeten Nerd auf die Welt zu pressen. Schafft auch nicht jede Mama. Merksatz: > Wer über Menschen urteilt, hat meist keine Zeit sie zu lieben!
Klaus schrieb: > Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren > sondern bastetl sich was zusammen. das ist sowas von falsch (jedenfalls so absolut) Ich kann programmieren seit 1979, aber zugegeben nicht cpp und in anderen Augen von "echten" Programmieren (gibts die überhaupt) vielleicht nicht gut. Ein Informatikstudent meinte mal programmieren ist eigentlich nichts, deswegen ist ein Informatiker eher ein SW Architekt. Da geht es um richtiges Design und bekannte plausible Schnittstellen die auch leicht prüfbar sind, nicht um Code! Klaus schrieb: > Und ja es gehört auch eine Doku dazu was an Parameter eine Funktion > erwartet und zurück gibt. guter Code zeichnet sich um Lesbarkeit aus und nicht um geniales Ausnutzen der verschwurbelten Hinterlistigkeiten die so bekannt sind! Klar sind alle Computerheinis faul, auch deswegen werden eher Zeilen eingespart und Kommentare. Ein genialer Einzeiler mag funktionieren ist aber später schwer zu durchschauen, erst Recht wenn der Compiler ein Update bekommt und mancher Trick nicht mehr funktioniert.
"This document discusses recommended practices and style for programmers using the C language ..." https://ntrs.nasa.gov/search.jsp?R=19950022400
Arduino Fanboy D. (ufuf) >22.06.2020 15:56 >Dann ist int der "natürliche" C Datentype. Die meisten Funktionen sind >in C geschrieben, verwenden dieser Logik folgend auch gerne int als >Parameter/Rückgabe, wo immer es möglich ist. Zur Not erfolgt ein >impliziter Cast. Der Grund, warum "int" verwendet wurde, war der Versuch, sich an Java anzulehnen. Das Programmieren sollte möglichst stark an Processing auf der PC-Seite angelehnt sein und da die Umgebung für Künstler und Anfänger gedacht war, wollte man niemanden mit genau definierten Datentypen wie "uin16_t" o.ä. verwirren. https://processing.org/ Zu den Anfangszeiten der C-Compiler gab es hauptsächlich "int" und damit war eine vorzeichenbehaftete Variable mit der Wortlänge des Prozessors gemeint. Die Bitlängendatentypen kamen erst später, als Verarbeitungsbreiten der Prozessoren immer unterschiedlicher wurden. Processing war die Programmierumgebung für die Künstler auf der PC-Seite. >Dunnemals gab es noch keinen gemeinsamen bool Datentype in der C und C++ >Welt. Sonst hätte man ihn evtl. verwendet, statt HIGH und LOW. Nein. Auch dort gilt: In Java und damit in Processsing gibt es "boolean". Hätte man sich an den C++ Syntax angelehnt, wäre es "bool" gewesen. Die Verwendung von HIGH und LOW ist unter Programmiergesichtspunkten äußert korrekt, weil damit der Pin-Zustand abstrahiert wird und theoretisch auch ein "Tristate" als Argument möglich wäre oder inverse Logik.
Marc schrieb: > Die Verwendung von HIGH und LOW ist unter Programmiergesichtspunkten > äußert korrekt, weil damit der Pin-Zustand abstrahiert wird und > theoretisch auch ein "Tristate" als Argument möglich wäre oder inverse > Logik. Nur dass das nicht falsch rüberkommt: Das halte ich auch für sehr korrekt, nur sollte es dann (für mich zumindest) irgendwo knapp, aber halbwegs abschließend dokumentiert sein. Und wenn da steht "HIGH und LOW sind spezielle Werte eines int, die Arduino für Pin-Zustände verwendet - sowohl beim Lesen als Rückgabewert von digitalRead() als auch beim Schreiben als Argument für digitalWrite()". Sowas will ich mir eigentlich nicht aus Code-Beispielen zurechtreimen. Noch korrekter wäre, wenn es dazu auch einen Datentyp "pin_status_t" gäbe, der nur HIGH oder LOW (oder in Zukunft vielleicht auch HIGH_Z oder FLOATING) sein darf. Dann könnte man auch selbsterklärende Funktionsprototypen in die Doku schreiben: pin_status_t digitalRead(pin_number_t pin). Sagt mir mehr als in der ganzen aktuellen Dokumentation zu digitalRead steht. Aber eigentlich wollte ich diese Diskussion gar nicht neu aufmachen, sondern nur dem "Arduino wird nur deswegen ignoriert, weil Laien damit genauso gut programmieren können wie Profis" ein Argument entgegen setzen. MfG, Arno
Arno schrieb: > "Arduino wird nur deswegen ignoriert, weil Laien damit > genauso gut programmieren können wie Profis" Nicht "ignoriert", sondern Ablehnen. Gegen ignorieren hat doch keiner was.... Also anders: Warum wird hier, in diesem Forum, Arduino so aktiv bekämpft, nieder gemacht, die User gedemütigt? Was steckt da hinter?
Arduino Fanboy D. schrieb: > Was steckt da hinter? Territorialer Machtkampf? ;-) Vielleicht sind nur die Grenzen zu fließend...
Nachhinkender schrieb: > Territorialer Machtkampf? Hmm ... Was gibts denn da zu verlieren, oder zu gewinnen? Woraus besteht das Territorium, welches mit solchen Mitteln (der Erniedrigung, Verachtung usw.) zu retten ist? Nöö... Wirtschaftliche Interessen, werden es wohl nicht sein, denke ich mal.
Arduino Fanboy D. schrieb: > Woraus besteht das Territorium, welches mit solchen Mitteln (der > Erniedrigung, Verachtung usw.) zu retten ist? Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist, möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist. Das ist das Territorium im Kopf. Diskutiere mal mit einem Apple Kunden über Preis-/Leistungsverhältnis oder wer bei einer Geschäftsbeziehung mit Apple eigentlich der "König" ist. Das ist genau so aussichtslos.
Stefan ⛄ F. schrieb: > Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist, > möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist. > Das ist das Territorium im Kopf. Vielleicht kann ich das verstehen!? Aber ist das nicht, als wenn man ein paar Kinderlein mit Förmchen im Sandkasten spielen sieht, neidisch wird, auf das naive kindliche Spiel, und dann hin geht, die Förmchen zertritt, und die Kinder mit Sand füttert? Nur zum Zwecke, dass sie genauso verbittert/frustriert werden, wie man selber ist? Unreflektiertes Macho Gehabe? Frei nach dem Motto: Irgendwas stört mich. An mir selber kann es nicht liegen, darum haue ich irgendwem anders die Fresse ein. Nee, so billig ist das nicht. Da muss noch mehr hinter stecken. Denn so blöd können Programmierer nicht sein!
Arduino Fanboy D. schrieb: > Aber ist das nicht .. kindlich Ja klar ist es das. Wir sind unvollkommen, aber immerhin haben wir die Fähigkeit, das zu erkennen - wenn wir wollen.
Beitrag #6312749 wurde von einem Moderator gelöscht.
Stefan ⛄ F. schrieb: > Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist, > möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist. > Das ist das Territorium im Kopf. Das ist es. Trotz allen Problemen zum Trotz wäre dem Arduinouniversum am besten geholfen wenn diejenigen die willig sind, andere an ihrem Wissen mit teilhaben zu lassen, mit guten Beispiel voranzugehen. Dann werden mit der Zeit die rauen Ecken alleine abgeschliffen. Wirklich gute Entwicklung muss gelernt sein. Dazu gehört Problemdefinition, adäquate Projektplanung, komplette und fehlerfreie Dokus auf dem Weg des Projekts, algorithmisches Wissen wie man Schwieriges in die Praxis umsetzt und solide Kenntnis der Spracheigenheiten. Das ist für Anfänger schon ein bischen viel erwartet und muss auch gelernt werden. Im uC-Bereich kommt dann noch das notwendige Elektronik Wissen dazu, die Fähigkeit mit Datenblätter und App Notes richtig umgehen zu können, wissen wie man und wo man im Internet sucht, wie man uC robust einsetzt ohne die üblichen Schwierigkeiten zu haben und last not least, gut bekannte Fehler zu vermeiden und nicht mit dem Kopf stur immer durch die Wand gehen zu wollen und auf andere zu hören. Auch Arduinoanfängern würde es nicht schaden die uC und Komponenten Datenblätter regelmäßig zu studieren um mit den Feinheiten bekannt zu werden. Viele Komponenten haben ein geheimes Eigenleben das einem ab und zu in den Hintern beißen kann. Als Junger sollte man ruhig darauf hören was manche alten Hasen zu vermelden haben die dieselben Probleme schon lange hinter sich haben. Grundlagen bleiben auch in der modernen Zeit noch lange Zeit gültig. Vor dem Laufen kommt das Gehen lernen...
Nachhinkender schrieb: > Vor dem Laufen kommt das Gehen lernen... Alles richtig, was du da sagst, wie mir scheint... Allerdings beschreibst du einen Prozess, welcher sich über Jahre erstreckt. Auch gerne viele Jahre.... Welcher auch nur mit Freundlichkeit und Vertrauen so funktioniert. Nachhinkender schrieb: > Als Junger sollte man ruhig darauf hören was manche alten Hasen zu > vermelden haben die dieselben Probleme schon lange hinter sich haben. > Grundlagen bleiben auch in der modernen Zeit noch lange Zeit gültig. Aber, was tut man, wenn man hier mit solcher Gewalt und Vorurteilen, angegangen wird..... Klaus schrieb: > Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren > sondern bastetl sich was zusammen. Der hat auch keine Ahnung davon das > man den Code Kommentieren sollte. Wenn er Probleme hat fragt er in einem > Forum. Da haben wir so einen "alten Hasen", zumindest einen, der so tut, als wäre es der Vollchecker. (bei weitem nicht der einzige) z.B. Eine jugendliche noch unfertige Persönlichkeit muss man doch nicht so treten. Ja, da sind auch sanfte und friedvolle angehende Genies bei. Ok, sie werden teilweise durch Schule und Ausbildung in die Arduino Ecke gedrängt. Und lass am Ende auch nur 10% das Programmierer Gen richtig ausleben. Aber darum muss man doch nicht ALLE so mit Scheiße übergießen...
Stefan ⛄ F. schrieb: > Wenn man von dem was man besitzt oder was man tut sehr > überzeugt ist, möchte man sich nicht gerne anhören, dass > man da auf dem Holzweg ist. Nicht jeder Mensch verwechselt "Überzeugung" mit "Glauben". Manche wissen auch, dass zu einer Überzeugung Erfahrungen, Wissen und Wertmaßstäbe gehören.
Hi Stefan ⛄ F. schrieb: > Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist, > möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist. Und wer entscheidet wer auf dem Holzweg ist? Die Arduino-Fanatiker oder die Arduino-Gegner? MfG Spess
Wie wäre es denn, wenn man dem Author der Lib (die Mißt ist) einen Brief schreibt und fordert seinen Code binnen 7 Tage mit passender Doku zu versehen? Im Schreiben kann man sich ja als Anwalt ausgeben ;-)
Hi
>Gibts die?
Fühlst du dich angesprochen?
MfG Spess
Wie? Ich Arduino-Fanatiker? Ist nicht dein Ernst, oder? Nöö.. Das ist reines Interesse... Wenn du behauptest, dass es sie gibt, werden sie dir ja sicherlich schon begegnet sein.. Wo? Hier? Belege?!? Oder ist das einfach nur eine dulle Fantasie von dir? Der bedrohliche "Arduino-Fanatiker", der dir den Käse vom Brot klaut.... Ist das Zähne klappern, die Panik vor nix, auch bei dir schon angekommen? Ich bin auf der Suche nach Gründen, für die massive Ablehnung... Aber wenn selbst du schon so auf Panik bist, dass die Fantasie so mit dir durchgeht, dass du Schreckgestalten dahin malen musst... Dann gute Nacht.
Hi >Oder ist das einfach nur eine dulle Fantasie von dir? >Der bedrohliche "Arduino-Fanatiker", der dir den Käse vom Brot klaut.... >Ist das Zähne klappern, die Panik v... >Wenn du behauptest, dass es sie gibt, werden sie dir ja sicherlich schon >begegnet sein.. Jetzt habe ich einen gefunden. MfG Spess
spess53 schrieb: > Stefan ⛄ F. schrieb: >> Wenn man von dem was man besitzt oder was man tut sehr >> überzeugt ist, möchte man sich nicht gerne anhören, >> dass man da auf dem Holzweg ist. > > Und wer entscheidet wer auf dem Holzweg ist? Jeder selbst. Problem: Auch wenn man fühlt, dass man auf dem Holzweg ist, hat man nicht unbedingt eine gangbare Alternative. Deshalb entsteht dann sowas: "Die meisten Glaubenslehrer verteidigen ihre Sätze, nicht weil sie von der Wahrheit derselben überzeugt sind, sondern weil sie die Wahrheit derselben einmal behauptet haben." (Georg Christoph Lichtenberg)
Egon D. schrieb: > Deshalb entsteht dann sowas: > "Die meisten Glaubenslehrer verteidigen ihre Sätze, > nicht weil sie von der Wahrheit derselben überzeugt > sind, sondern weil sie die Wahrheit derselben einmal > behauptet haben." (Georg Christoph Lichtenberg) wie wahr, jede eingestellte Niete wird vom Chef verteidigt weil er NIE Nieten einstellt!
spess53 schrieb: >> Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist, >> möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist. > Und wer entscheidet wer auf dem Holzweg ist? Die Arduino-Fanatiker oder > die Arduino-Gegner? Ich würde sagen, derjenige, der imstande ist, die Lage objektiv zu betrachten. Da viele Menschen unterschiedlichen Hintergrund haben, wird es mehrere unterschiedliche richtige Antworten geben.
>Ich würde sagen, derjenige, der imstande ist, die Lage objektiv zu >betrachten. Da viele Menschen unterschiedlichen Hintergrund haben, wird >es mehrere unterschiedliche richtige Antworten geben. Was Objektivität ist, wurde von Philosophen schon vielfach untersucht. Soweit ich weiß, sind sie noch zu keinem abschließenden Ergebnis gekommen.
Hallo Nachhinkender schrieb: > Als Junger sollte man ruhig darauf hören was manche alten Hasen zu > vermelden haben die dieselben Probleme schon lange hinter sich haben. > Grundlagen bleiben auch in der modernen Zeit noch lange Zeit gültig. Nur wie soll ein "Junger" oder besser Anfänger der auch mal 50 Jahre und älter sein kann, zwischen einen "alten Hasen" im positiven Sinne und einen "alten ewig gestrigen Grummelhasen" unterscheiden? Im direkten Kontakt mag das noch gehen, wobei beim tatsächlich jungen Anfänger (Jugendlicher) oft noch das Problem besteht das sie sich nicht trauen auch mal deutlich zu Fragen bzw. deutlich zu sagen "Hallo alter Hase da redest du aber ziemlichen Unsinn nach meiner Meinung - erzähl jetzt noch mal langsam und deutlich warum das so sein sollte und hör bitte auf mir alle Aufgaben aufzudrücken - du willst (sollst) mir doch was beibringen" Solche notwendigen Rückmeldungen zu geben schafft man im Allgemeinen erst wenn man schon etwas älter ist. Tja und das ganze dann via Foren oder anderen virtuellen Kontakten zwischen Personen die sich persönlich überhaupt nicht kenne?! Da kommt es schnell zu Missverständnissen und falschen Vorstellungen bezüglich des Gegenübers. De "alte Hase" mag es gut meinen wenn er davon erzählt wie er Anno 1985 nach 3 Monate Datenbücher wälzen, aufarbeitung seiner Kenntnisse des Boolschen Algebra das "auswendig" lernen jedes Registerbits es geschafft hat eine LED mittel µC zum leuchten zu bringen - aber das interessiert den Anfänger von 2020 (aber auch schon von 2000) in den seltensten Fällen (höchstens nach vielen Monaten einmal - wenn er selbst zum "alten" Hasen geworden ist)- der möchte aber verstehen was überhaupt eine Variable ist, was verdammt noch mal eine Instanz ist: "Sind wir hier im Justizwesen, hallo, ich möchte lernen wie man einen µC Programmiert?!" ;-) oder wie er endlich den Treiber für seinen China Arduinoclone zu laufen bekommt , warum zum Teufel mal von Funktion mal von Methode und mal von Klasse die Rede ist: "Hähhh jetzt nicht nur Justizwesen sondern auch noch Schule, ja 1998 war ich in der 9b bei Frau Schnulzenbrot in der Klasse, aber was hat das mit dem zu tun was ich meinen Arduinbo beibringen will?!" usw. usw. Der alte Hase setzt unbewusst (wie ein schlechter und ungeduldieger "peitschender" Lehrer, Ausbilder, Tutor) oft viel zu viel voraus gerade im Bereich der µC Programmierung wo es dermaßen viele Begrifflichkeiten gibt die viele Bedeutungen haben unter der sich nicht nur der neuling etwas ganz anderes vorstellt - wie halt die Begriffe Funktion, Klasse, Element ("Ahh Das fünfte Element - der berühmte Film") usw. Die Bedeutung und was damit bei der Programmierung gemeint ist verständlich herüber zu bringen ist die Herausforderung die an einen "echten" alten Hasen zu stellen ist. Aber viele alte Hasen, gerade halt online in Foren, sind tatsächlich vor allem alt und denken im innersten immer noch wie 1982 und haben "vergessen" wie schwierig für sie auch das µC bzw. Programmier- ABC war - eigentlich noch schwieriger da es oft keinerlei Hilfe durch andere gegeben hat und viel Literatur englischsprachig war. Hennes
Marc schrieb: > Was Objektivität ist, wurde von Philosophen schon vielfach untersucht. > Soweit ich weiß, sind sie noch zu keinem abschließenden Ergebnis > gekommen. Vor allem auch zu keinem objektiven Ergebnis.
Einer der "alten Hasen" (Ich) setzt nichts vorraus, jeder fängt mal an. Und auch ich fange regelmässig neue Sachen an, wo ich hilfe brauche. Aber wenn man immer wieder sagt das Kommentare wichtig sind und keiner hört dann macht das auch keinen Spaß. Auch nicht so was sich anzusehen. Auch meine Einschätzung das die meisten Adruino Jungs nicht "Programmieren" sondern Basteln ist halt mein Eindruck, wenn man so die ganzen Foren sich so ansieht. Das der eine oder andere eine Stufe weiter geht ist für den jenigen doch super. Aber die ganzen Code Beispiele/Libs bringen nichts, wenn kein Kommentar drin ist. Selbst ein Kommentar das es ein ungetesteter Code ist oder das es keine Fehlerbehandlung gibt hilft. Wenn wir hier schon meckern dann aber bitte richtig: C++ mit den überlagerten Funktionen ist das schlimmste was man sich ausdenken konnte. Sprachen bei denen man mittendrin durch verscheiben eine neue Variable anlegen kann sind tötlich. So ich bin dann mal weg.
Sach ich ja: Ein Grund für die ganze Arduino Ablehnung ist, dass so manche nicht mit C++ klar kommen. Völlig überfordert sind. Also muss Arduino auch Mist sein. Erwartungshaltungen in die Welt blähen, aber offensichtlich nix selber dagegen tun... Ansonsten das gleiche Lied: Von Einzelnen auf die ganze Gruppe schließen. Alle in einen Sack und Diskriminieren. Fein mit dem Knüppel drauf rum hauen. Armer Kerl... (und vor allen Dingen, armes Umfeld)
Arduino Fanboy D. schrieb: > Erwartungshaltungen in die Welt blähen, aber offensichtlich nix selber > dagegen tun... Was regst Du Dich auf? Das ist doch (hier) immer so. Hier gibt es viele (Möchtegern-) Experten, die auf die Arduino-Niederungen herabsehen. Schon "immer" und wahrscheinlich für "immer" :-). Warum und wozu ich Arduino-(Librarys) nutze habe ich schon geschrieben. Für mich ist das z. B. oft ein guter Aufsetzpunkt, um eigene Entwicklungen zu realisieren. Man muss ein Rad nicht neu erfinden - kann es aber an seine Bedürfnisse anpassen. Ich schaue immer, wie andere etwas umgesetzt haben - man lernt nie aus. Das "abgehobene Gehabe" hier ist halt der Foren-Ton - das hört man irgendwann nicht mehr. Ich lese oft mit und finde z. B. die Artikel - besonders für Anfänger - wirklich gut geschrieben. Leider ist die Zielgruppe in der heutigen Zeit eher Youtube-orientiert. Was mich nervt sind Leute, die ohne die Foren-User-Hilfe keinen Schritt gehen können und zu bequem sind Datenblätter oder andere englischsprachige Literatur zu lesen (ja, es gibt online-Übersetzer).
Hugo H. schrieb: > Das "abgehobene Gehabe" hier ist halt der Foren-Ton - das hört man > irgendwann nicht mehr. Mag sein..... Ist aber dennoch ein klares Symptom schwacher bis nicht vorhandener Empathie. Respektlos und ohne Ehre. Intolerant. Als wenn es außerhalb des Denkvermögens ist, dass in der Arduinowelt Menschen unterwegs sind, oder gerade einsteigen. Kinder/Jugendliche ab ca 10 Jahre, bis zu Leuten, welche schon seit über 20 Jahren in Rente sind. Hugo H. schrieb: > Was regst Du Dich auf? Ich mag es nicht, wenn man Menschen diskriminiert. Egal, ob wegen der Hautfarbe, Religion, der Beschäftigung mit Arduino, dem Alter, oder irgendwas anderem. Meine Versuche da gegenzusteuern, kann man "ärgern" nennen. Ist vielleicht auch hoffnungslos.....
Klaus schrieb: > Aber wenn man immer wieder sagt das Kommentare wichtig > sind und keiner hört dann macht das auch keinen Spaß. > Auch nicht so was sich anzusehen. Das stimmt zwar -- aber ich glaube, Du unterschätzt die Größe des Problems: Es bedarf einer gewissen Erfahrung, um die Quältexte mit NÜTZLICHEN Kommentaren versehen zu können. Darüberhinaus braucht man auch eine übergreifende Methodik beim Programmieren -- wenn man wild an allen Stellen gleichzeitig herumändert, kann man auch nix vernünftig kommentieren, weil die Überlebenswahrschein- lichkeit der Kommentare zu gering ist. > Auch meine Einschätzung das die meisten Adruino Jungs > nicht "Programmieren" sondern Basteln ist halt mein > Eindruck, wenn man so die ganzen Foren sich so ansieht. Das liegt in der Natur der Sache: Feile oder Stemmeisen sind schon WESENTLICH länger bekannt und verändern sich gegenwärtig auch nicht tiefgründig -- also gibt es einen im Wesentlichen feststehenden und akzeptierten Lehrkanon, wie man den Umgang damit erlernt, und den kann man auch in einschlägiger Literatur nachlesen. Die Computertechnik ist seit 50 Jahren im Zustand der permanenten Revolution, und entsprechend dynamisch müssen sich auch die Lehr- und Ausbildungsinhalte anpassen. Für Außenstehende ist es schwierig bis unmöglich, dort so eine Art Lehrkanon zu erkennen und sich diesen anzueignen. Das führt dann auch dazu, dass eigentlich sinnvolle Arbeits- techniken als "...das ist ja voll Achtziger..." abgetan werden. > C++ mit den überlagerten Funktionen ist das schlimmste > was man sich ausdenken konnte. Falls Du das Überladen von Funktionen meinst: Wieso denn das? FreePascal kann das auch, und ich finde es inzwischen -- nach einer Schrecksekunde vor vielen Jahren -- ziemlich praktisch. Man muss sich nicht mehr zwanghaft verschiedene Namen für inhaltlich gleiche Funktionen ausdenken, deren Unterschied nur darin besteht, dass sie über verschiedenen Datentypen operieren. Man kann die alle gleich nennen, und der Compiler sucht sich dann die konkrete Implementierung heraus, die auf die gerade verwendeten Datentypen passt. Starke Typisierung macht ohne überladbare Funktionen keinen Spaß -- das kennen wir von Standard-Pascal... > Sprachen bei denen man mittendrin durch verscheiben eine > neue Variable anlegen kann sind tötlich. Komplett andere Baustelle. Die Schwerpunkte liegen halt bei "rapid prototyping" anders als bei produktionstauglicher Software -- also nimmt man andere Werkzeuge mit anderen Eigenschaften.
Egon D. schrieb: > Man kann die alle gleich nennen, und > der Compiler sucht sich dann die konkrete Implementierung > heraus, die auf die gerade verwendeten Datentypen passt. Hihi, und ich habe eine Codebasis mit dem schönen Funktionsnamen "convert". Davon gibt's ungefähr 200 Stück und es ist jedesmal ein Heidenspaß rauszufinden, welche davon jetzt aufgerufen wird. :-) Und nein, das ist nicht überall trivial herauszufinden.
S. R. schrieb: > Egon D. schrieb: >> Man kann die alle gleich nennen, und >> der Compiler sucht sich dann die konkrete Implementierung >> heraus, die auf die gerade verwendeten Datentypen passt. > > Hihi, und ich habe eine Codebasis mit dem schönen > Funktionsnamen "convert". Davon gibt's ungefähr 200 Stück > und es ist jedesmal ein Heidenspaß rauszufinden, welche > davon jetzt aufgerufen wird. :-) Tja gut... "Fachleute" gibt es überall. Jede gute Idee lässt sich durch Übertreibung ad absurdum führen... Ich bastele in FreePascal gelegentlich an speziellen Dingen zur Bildverarbeitung herum; Grauwerte von Pixeln sind ja häufig vorzeichenlose Bytes -- aber manchmal braucht man halt doch ein Vorzeichen oder mehr geltende Ziffern. Da ist es dann ganz nützlich, wenn inhaltlich gleiche Routinen auch den gleichen Namen bekommen dürfen und trotzdem anhand der Datentypen korrekt unterschieden werden. > Und nein, das ist nicht überall trivial herauszufinden. Kann ich mir vorstellen. Scheint mir aber im Kern ein Problem unsinniger Benennung zu sein -- denn wenn die 200 unterschiedlichen Konvertierungen inhaltlich nicht identisch, sondern verschieden sind, ist es natürlich Frevel, sie gleich zu benennen. Konsequenterweise könnte man ja generell den Universalnamen "do_it" für sämtliche Funktionen des Programms benutzen -- vielleicht noch durch eine laufende Nummer ergänzt...
von Klaus (Gast) >Aber die ganzen Code Beispiele/Libs bringen nichts, wenn kein Kommentar >drin ist. Selbst ein Kommentar das es ein ungetesteter Code ist oder das >es keine Fehlerbehandlung gibt hilft. Wobei sich der Stil, wie man Software schreibt im Laufe der Entwicklungsgeschichte der Informatik stark ändert. Mittlerweile verzichtet man weitgehende auf Kommentare, weil diese bei Änderungen oft nicht nachgezogen werden und veraltet sind ( ein falscher Kommentar nützt nichts ). In der modernen Softwareentwicklung steckt man mehr Zeit in die Verständlichkeit des Codes ( er soll wie ein gutes Buch geschrieben sein). Näheres dazu siehe CleanCode: https://de.wikipedia.org/wiki/Clean_Code Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
Marc schrieb: > von Klaus (Gast) >>Aber die ganzen Code Beispiele/Libs bringen nichts, wenn kein Kommentar >>drin ist. Selbst ein Kommentar das es ein ungetesteter Code ist oder das >>es keine Fehlerbehandlung gibt hilft. > > Wobei sich der Stil, wie man Software schreibt im Laufe der > Entwicklungsgeschichte der Informatik stark ändert. > > Mittlerweile verzichtet man weitgehende auf Kommentare, weil diese bei > Änderungen oft nicht nachgezogen werden und veraltet sind ( ein falscher > Kommentar nützt nichts ). In der modernen Softwareentwicklung steckt man > mehr Zeit in die Verständlichkeit des Codes ( er soll wie ein gutes Buch > geschrieben sein). > > Näheres dazu siehe CleanCode: > > https://de.wikipedia.org/wiki/Clean_Code > > Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. > Martin) Das Problem ist, dass man fremden Code üblicherweise/häufig dann versucht zu verstehen, wenn man darin nach Fehlern sucht. Und es gibt absolut nichts geileres, als in fehlerhaftem, "selbsterklärendem" Code zu versuchen zu verstehen, was die Autoren wohl gewollt haben würden, wenn sie keinen Fehler eingebaut hätten. Das ist der Grund, warum solcher Code dann gerne neu geschrieben wird.
Axel L. schrieb: > Das Problem ist, dass man fremden Code üblicherweise/häufig dann > versucht zu verstehen, wenn man darin nach Fehlern sucht. Und es gibt > absolut nichts geileres, als in fehlerhaftem, "selbsterklärendem" Code > zu versuchen zu verstehen, was die Autoren wohl gewollt haben würden, > wenn sie keinen Fehler eingebaut hätten. deswegen ist es eher sinnvoll den Code OHNE Fehler neu zu schreiben. Ich sollte ein Prüfprogramm von meinem Vorgänger an einen neuen Prüfling anpassen über den schon 100k Baugruppen getestet wurden. Ich fand Fehler, keiner glaubte mir ich sollte den "nur" anpassen. Es dauerte 3 Wochen (natürlich ohne Ergebnis) bis ich dem Vorgestzten die Fehlerhaftigkeit nachweisen durfte. Das Prüfprogramm kam immer in einen Prüfpunkt zum Ergebnis gut auch wenn ein manipulierter Prüfling in diesem Punkt eben schlecht war. Dann erst durfte ich nach 3 verlorenen Wochen das Programm neu schreiben. Ich erhöhte die Prüftiefe, verkürzte die Prüfzeit um 33%, alles war gut. Leider wurden vom neuen Prüfling keine 100k bestellt sondern nur 10k, was den Erfolg schmälerte. (Prüfminute wurde früher mit 1,-DM/Minute kalkuliert).
Marc schrieb: > Mittlerweile verzichtet man weitgehende auf Kommentare, weil diese bei > Änderungen oft nicht nachgezogen werden und veraltet sind Mit Verlaub, aber das ist Unsinn. Selbstverständlich sind Kommentare, die nicht zum Code passen, sinnlos. Aber nur weil manchmal manche Programmierer schlampig sind, ist das doch kein Grund, auf Kommentare zu verzichten. Tatsächlich gibt es sehr gute Gründe, die Dokumentation in Kommentaren nahe beim Code zu halten (siehe javadoc, Doxygen, etc). Denn das erhöht die Wahrscheinlichkeit, daß bei einer Codeänderung auch die Doku nachgezogen wird. Wer den Code ändert, aber den direkt daneben stehenden Kommentar nicht, der wird ganz sicher auch nicht die Dokumentation in einem anderen Dokument pflegen. [clean code] Eine ähnliche, aber dennoch andere Baustelle. Denn man kann ja das eine tun, ohne das andere zu lassen. Selbstverständlich sollte Code so geschrieben werden, daß er gut lesbar (verständlich, wartbar, debugbar) ist. Die Kommentare sollen den Teil dokumentieren, der nicht unmittelbar beim Lesen des Codes klar wird. Wertebereiche von Parametern z.B. Oder die Bedeutung von enum Parametern/Rückgabewerten. Die meisten Programmieranfänger schreiben grottige Kommentare, wahrscheinlich weil das nicht gut gelehrt wird. Eine Zeile
1 | i++; |
braucht selbstverständlich keinen Kommentar a'la
1 | i++; /* i um eins erhöhen */ |
Aber wenn es z.B. um eine Schleife geht
1 | for (i=langer Ausdruck; i<noch laengerer Ausdruck; i++) ... |
dann kann es durchaus hilfreich sein, wenn darüber in einem Kommentar erklärt wird, wie die Schleifengrenzen zustande kommen. Das andere kanonische Beispiel, wo der Code nach einem Kommentar geradezu schreit ist, wenn man in einem switch Statement ein fallthrough von einem case zum nächsten benutzt. Das Schreiben guter Kommentare erfordert mindestens die gleiche Kompetenz wie das Schreiben von gutem Code.
Joachim B. schrieb: > Axel L. schrieb: >> Das Problem ist, dass man fremden Code üblicherweise/häufig dann >> versucht zu verstehen, wenn man darin nach Fehlern sucht. Und es gibt >> absolut nichts geileres, als in fehlerhaftem, "selbsterklärendem" Code >> zu versuchen zu verstehen, was die Autoren wohl gewollt haben würden, >> wenn sie keinen Fehler eingebaut hätten. > > deswegen ist es eher sinnvoll den Code OHNE Fehler neu zu schreiben. Nein, das hängt vom Fehler ab. Aber um das zu beurteilen, muss man den Code und den Fehler erstmal verstanden haben. Und da kommt dann wieder mein Einwand, ein fehlerhafter Code ohne Hinweis auf die Intention des Autors ist extrem schwer zu verstehen. Sowas rutscht auch bei jedem Review durch, weil die meisten davon ausgehen, dass sie die Genialität des Autors nur nicht begreifen und nichts sagen.
Hallo Arduino Fanboy D. schrieb: > Ein Grund für die ganze Arduino Ablehnung ist, dass so manche nicht mit > C++ klar kommen. Völlig überfordert sind. Wobei es aber auch schwierig ist Anfänger taugliche und somit verständliche C++ Lehrmaterialien zu finden die sich an den µC Interssierten Anfänger wenden. (Und eben nicht PC mit den ewig sehr ähnlichen Beispielen beginnend mit "Hello World" bis zu irgendeiner Form einer Mitarbeiterdatenbank...) Ein Anfänger nach meiner Definition hat noch nicht Erfahrungen in einer anderen Programmiersprache, man darf von ihnen nicht erwarten Mathematik oberhalb des Niveaus 8 Klasse Gymnasium zu beherrschen, er beherrscht englisch "nur" so gut das er zwar so einigermaßen den Inhalt erfassen kann aber eben nicht die Feinheiten geschweige denn das "Anleitungen" "Tutorials" und ähnliches entspannt und konzentriert auf den eigentlichen Inhalt genutzt werden können. So unter diesen Voraussetzung nenne mal einer ein Anfänger- (Einsteiger) Lehrgang der sich an den µC Interessierten und eben nicht(!) PC interessierten wendet und in "sauberer" deutscher Sprache vorliegt, also weder der "niedliche" Kurs für Kinder bzw. "junge" Jugendliche (so mit den "süßen" Robbi , irgend ein Außerirdischen oder irgendwelchen Viechern) aber eben auch nicht der Hochschulkurs der zwar vorgibt sich an Anfängern zu wenden aber eine Sprache nutzt die so gar nichts mit Allgemeinwissen zu tun hat und ausschließlich verwirrt und abschreckt (Arme Studenten). Also eigentlich so was wie die "Arduinosprache" (eigentlich ja C++ aber... na ja ) in einigen Büchern gelehrt wird - wobei dort aber eben die für uns hier frag würden Vorteile (?) und Vereinfachungen bzw. Black Boxes Teil des Konzepts sind und zwangsweise zu den "dummen" (Gibt es eigentlich nicht - also eher nervenden) und ewig gleichen Fragen und Problemen führt. Ich habe bis jetzt z.B. noch nie ein Tutorial gefunden wo von Grund aus erklärt oder besser vorgeführt wird wie eine Bibliothek erstellt wird. "Häää, bist du blöd ?! Da gibt es doch hunderte Beispiele! " Ja aber immer nur wie es prinzipiell funktioniert bzw. es werden Bibliotheken entwickelt die praktisch wenig Wert haben (Es blinkt gefühlt irgendwie immer nur). Aber das mal en Detail an Beispiel einer "richtigen" Nutzbibliothek z.B. für ein Display, einen Sensor oder ein Übertragungsprotokoll habe ich noch nie gesehen. Das so ein Beispiel dann auch mal einige dutzend Seiten füllen würde ist mir klar, aber ist das wirklich ein Hindernis? Hennes
Hennes schrieb: > Ich habe bis jetzt z.B. noch nie ein Tutorial gefunden wo von Grund aus > erklärt oder besser vorgeführt wird wie eine Bibliothek erstellt wird. https://www.arduino.cc/en/Hacking/LibraryTutorial was ist daran schlecht? Wenn das Prinzig der Kapselung verstanden wurde ist das schon ein guter Schritt. Für gute Bibliotheken ist nunmal das Verständnis des Werkzeuges (C++) und die Erfahrung im Umgang damit Pflicht. Viele Bibliotheken sind auch gewachsen, mal weil der Autor gelernt hat das es eleganter geht, oft weil die Anwender weitere Anforderungen beigetragen haben. Und keine Kommentare weil die sowieso veraltet sind, naja, tolles Totschlagargument. Genauso sind Tests überflüssig weil die ja auch nicht alles abdecken. Programmier sind einfach faul und wissen das zu begründen...
Axel L. schrieb: > Nein, das hängt vom Fehler ab. > > Aber um das zu beurteilen, muss man den Code und den Fehler erstmal > verstanden haben Den Fehler bei der Prüfung habe ich verstanden den Codefehler nicht, wie sollte ich auch wenn der Code nicht das macht was er soll, denn den Fehler im Programm konnte ich beweisen, also werde ich doch nicht fehlerhaften Code verstehen wollen. Es war 6502 ASM Code vom CBM.
:
Bearbeitet durch User
Bei Arduino muss man nicht unbedingt C++ machen, wobei die ganzen Libs dann probleme bereiten würden. Ist ja auch nur ein GCC dahinter. Aber auch wenn man kein C++ Freak ist sollte das anlegen einer Lib Funktion nicht so schwer sein. So ein bischen muss man auch beim zusammen Kopieren dann doch vom programieren verstehen, oder sich dann aneignen. Da helfen sogar die einfachen Beispielprogramme von Arduino selber. Mein erstes Arduino Program war auch ein abgeändertes Beispiel, das war einfacher als alles in C selber zuschreiben.
Marc schrieb: > Wobei sich der Stil, wie man Software schreibt im Laufe > der Entwicklungsgeschichte der Informatik stark ändert. Zweifellos. > Mittlerweile verzichtet man weitgehende auf Kommentare, > weil diese bei Änderungen oft nicht nachgezogen werden > und veraltet sind ( ein falscher Kommentar nützt nichts ) Änderungen sind gesellig; sie treten meist in Rudeln auf. Es ist natürlich sinnlos, gerade dann die Kommentare zu aktualisieren, wenn sich umfangreiche Umbauten am Code ankündigen -- aber wenn sich die Refactoring-Phase ihrem Ende zuneigt und ohnehin die meisten Änderungen der Lesbarkeit und der Robustheit des Codes dienen, ist ein guter Zeitpunkt, auch die Kommentare auf den neuesten Stand zu bringen.
Hallo mein Nick ist meine Schülern geschuldet. Die fanden das passenden. Sie wollten das ich hier was zu dem mutigen Thema Qulität etwas poste. Ich bin verantwortlich für den Polytechnischen Unterricht an einer Schule in NRW. Meine Vorgänger haben in den letzten Jahren konsequent auf selbst entwickelte PIC Boards, mit einer recht rudiementäten selbst geschriebenen Entwicklungsumgebung gesetzt. Es fehlte halt das Geld was richtiges zu machen. Die Schüler kamen auf die Idee auf Arduino um zu steigen. Da wir einen Sponsor hatten wurde das genehmigt von der Schulleitung. Das war eine einzige Katastrophe. Soviel Frust und Enttäuschung habe ich noch bei keinem Projekt erlebt. Wir hatten den Schülern erlaubt sich frei in Github und auf der Arduino Webseite zu bewegen um die Kompetenz für Brauchbar und Unbrauchbar zu stärken. Das war ein riesen Fehler. In der Zwischenzeit haben wir den Schülern erlaubt BASCOM zu benutzen. Jetzt funktionieren die Aufgabenstellungen und Prüfungen. Ich kann nicht verstehen wo der Hype um Arduino herkommt. Das ist doch alles unbrauchbarer Datenmüll. Christo nimmt wenigsten Stoff um architecktonischen Mist zu verhüllen das geht bei Arduino leider nicht. Selbst eine Taschentuch wäre zu groß :) Aufmerksame Grüße Karin
Ja, die Tippfehler bitte ich zu entschuldigen. Sche..... Technik. Ipads sind auch nicht immer das Wahre!
Beitrag #6315470 wurde von einem Moderator gelöscht.
Kein Wort glaube ich dir! Eine Arduinobasher Sockenpuppe, du bist.
Beitrag #6315497 wurde von einem Moderator gelöscht.
Oh weh, von deiner Sorte hatten wir eine große Anzahl im Kollegium als es um die Neuausrichtung ging, nach der ersten Fehlentscheidung. Die hielten dann irgendwann ihren Mund als sie die Projekt Kontrolle gesehen hatten. Danach hielten sie ihre Münder. Es war nichts mehr zu hören und sie applaudierten zur neuen Lösung. Nach jetzt 3 Jahren gibt es persönliche Rückmeldungen von Kursteilnehmern. Nicht alle wurden Programmierer, aber 90% half der Unterricht sich mit dem Thema Programmierung im Studium an zu freunden. Ein Thema um das man bei einem modernen Studium nicht herum kommt. Einzig Fanatiker die versuchten im Studium andere Wege durch zu setzen, scheiterten an der Kompetenz der von uns ausgebildeten Studenten. Es gibt da einen hässlichen Spruch, der passt aber auf verblendete Fans: "Esst Sche... millionen Fliegen können nicht irren". Aufmerksame Grüße Karin
Hallo, noch eine Nachsatz zum Thema Kommentare. Wichtiges Beurteilungskriterium für die Notenfindung war der verständliche Kommentar. 40% der Note bestehen daraus. 60% der funktionierende Kode. Es war uns didaktisch wichtig das die Schüler ausdrücken konnten was sie da programmierten. Nebeneffekt bei der Formulierung des Kommentares, es fiel programmtechnischer Bullshit sofort auf. "Was habe ich denn da gemacht" war der Standard Spruch. Das sollten sich einige Arduino Fans mal zu Herzen nehmen um zu respektablen Ergebnissen zu kommen. Meinen Schülern helfen die Kommentare ihre Irrwege zu finden. "Try and error" hat bei einer Benotung nichts verloren. Ich freue mich heute über einen vollen Kurs mit Wartezeit. Die Schüler freuen sich über Pluspunkte bei der NC-Quote, der Kurs ist anerkannt bei nicht Informatik Studiengängen als Einstiegsvoraussetzung. Ähnlich wie der Mathematik Vorkurs bei MINT Studiengängen. Aufmerksame Grüße Karin
Lehrerin Fräulein Karin schrieb: > Das war eine einzige Katastrophe. Soviel Frust und Enttäuschung habe ich > noch bei keinem Projekt erlebt. Wir hatten den Schülern erlaubt sich > frei in Github und auf der Arduino Webseite zu bewegen um die Kompetenz > für Brauchbar und Unbrauchbar zu stärken. Das war ein riesen Fehler. Wie hat sich denn dieser Fehler gezeigt? Die Dokumentation auf der Arduino ist eigentlich sehr detailliert und es gibt Beispiele für die korrekte Anwendung des Arduino spezifischen Dialekts. Damit bewaffnet könnte ja der Lehrer den Schülern zum zukünftigen eine strukturierte Ressourceneinführung geben. Auch der Gebrauch und Wahl der Ressourcen muss gelernt sein. Mir kommt vor, da ist der Lehrer möglicherweise auf dem Schlauch gesessen. Am Anfang ist es die Rolle des Lehrers eine gewisse Linie einzuhalten um unnötige Verzettelungen zu vermeiden. > > In der Zwischenzeit haben wir den Schülern erlaubt BASCOM zu benutzen. > Jetzt funktionieren die Aufgabenstellungen und Prüfungen. Nichts gegen BASCOM. Aber in BASCOM werden nicht viele Produkte der Welt entwickelt. Die Industrie verwendet im embedded Bereich hauptsächlich C und C++. Das wird sich noch lange nicht ändern weil die industriellen Werkzeuge auf dieser Sprachenselektion beruhen. Da ist es bestimmt nicht schlecht wenn diejenigen Schüler die sich später für die Informatik entscheiden einen Vorgeschmack bekommen wie in der Industrie gearbeitet wird. Auch wenn es freie Tools gibt werden (Gerüchten zum Trotz) in vielen seriösen Firmen nur die Werkzeuge namhafter Hersteller angewendet. Firmen wie IAR, KEIL, u.v.a. die auch fürs teure Geld Unterstützung geben. Auch wenn T.I und ST freie IDEs anbietet. > > Ich kann nicht verstehen wo der Hype um Arduino herkommt. Das ist doch > alles unbrauchbarer Datenmüll. Mir kommt das eher etwas voreilig vor und es wäre bestimmt hilfreich nicht vorzeitig die Flinte ins Korn zu werfen. Vielleicht sollte die Schule zuerst versuchen sich mit erfahrenen Ingenieuren der einschlägigen Industrie in Verbindung setzen um praktische Hintergrunderfahrung zu bekommen. Im Arduino Framework kann man durchaus sauber programmieren und dokumentieren sofern man will. Ist ja immerhin auf GCC C++/C gestützt. Was mich betrifft, ist es wichtig, dass die Schüler eine gewisse Balance zwischen Erfolg und zielstrebiges Lernen erleben müssen. Die Feinheiten des Programmieren lernen sie später auf dem weiteren Weg. Auch wenn GCC sehr detailliert dokumentiert ist, ist vieles für Anfänger doch nicht wirklich verständlich. Allen Verneinungen zum Trotz finden sich Arduinos in vielen Entwicklungslaboratorien, Universitäten der Welt und sogar auch auf der ISS. Auch NASA hat Verwendung dafür. Arduinos fliegen in der Form von CUBESATs auch im Weltraum. Wer schnell eine HW Lösung braucht findet sich mit Arduino oft gut bedient. Es ist nur eine Frage des Wissens und Disziplin. Um Arduino aufzuhalten ist es schon längst zu spät weil die Pferde nämlich schon vor langer Zeit das Reißaus ergriffen haben und sich in Allerwelt verstreut haben.
Nachhinkender schrieb: > Nichts gegen BASCOM. Aber in BASCOM werden nicht viele Produkte der Welt > entwickelt. Hallo, darum geht es doch garnicht. Die Schüler sollen keine kommerziellen Kode schreiben. Sie sollen verstehen wie ein Prozessor gefüttert werden muss damit er das macht was die Aufgabenstellung verlangt. Das war bei Arduino und der gelassenen Freiheit eine Ansammlung von Frust und nicht funktionierenden Programmen. Nichts passte und selbst der Versuch das ganze mit vorgebenen Versionen und strengen Grundvoraussetzungen zu leiten misslang. Weil selbst während des Kurses Änderungen und Bugfixes die vorgegebenen Lösungswege nicht mehr passten. BASCOM war nur der sicher funktionierende Bleistift der auf dem Papier (Programm) das wiedergab was der Aufgabenstellung am nächsten kam. Ich komme mit dem Arduino Chaos zurecht weil ich beurteilen kann was taugt und um was man besser einen Bogen macht. Das können Anfänger nicht die brauchen eine saubere Umgebung in der nicht irgendwelche Fans ihre Bugs veröffentlichen, um auf dem Schulhof als der Größte dar zu stehen. Arduino Programmierer kommen mir manchmal vor wie "Gangsterrapper": "Große Klappe nix dahinter und irgendwann pleite und wenn sie Pech haben im Knast." Aufmerksame Grüße Karin
Das mit den Kommentaren ist auch ein Strohmann Argument. Eine Blendgranate. Denn: Der Code zeigt WAS getan wird. Der Kommentar sagt WARUM es (so) getan wird. Das ist bei Bascom nichts anderes, als bei C oder C++.
Arduino Fanboy D. schrieb: > Das mit den Kommentaren ist auch ein Strohmann Argument. > Eine Blendgranate. da es mal hiess es wird nach Programmzeilen bezahlt ist es wie beim Skat: wer schreibt der bleibt (hihi) Kommentare sind zwar kein Code aber Zeile ist Zeile
Hi
>Um Arduino aufzuhalten ist es schon längst zu spät...
Die Hoffnung stirb nie.
MfG Spess
Arduino Fanboy D. schrieb: > Der Code zeigt WAS getan wird. > Der Kommentar sagt WARUM es (so) getan wird. Hallo, und eine saubere Programmierumgebung erlaubt es dem Programmierer ordentlich und verständlich zu kommentieren. Weil es einfach und nachvollziehbar ist was der einzelne Befehl bewirkt. Es geht um das Erfolgserlebniss. Das stellt sich schneller ein, bei sauberen Programmierumgebungen, als bei irgendwelchen Hypes. Schüler mit C++ und ähnlichen krptischen Sprachen zu ärgern, überlassen wir den Universitäten. Das ist bei Arduino garnicht möglich da keiner weis was in den undokummentierten Libarys abgeht, ausser dem Verfasser der sie mit "Try and error" hin gemurkst hat. Für Personen die bei Null anfangen ist ein Umgebung wie Arduino zu instabil und viel zu missverständlich. Ich möchte nicht in ein Flugzeug steigen in dem ein Atmega (da werden 1000ten verbaut) werkelt der mit der Arduino Umgebung programmiert wurde. Ich bin mir auch sicher dass das kein Projektleiter, der noch alle Tassen im Schrank hat, machen würde. Es sei denn er sitzt in Bangelor und wird von Boeing bezahlt. Aufmerksame Grüße Karin
Selten so einen Unfug gelesen hier. Das kommt mit Sicherheit nicht von einer Lehrerin, sondern von dem Bascom Freak hier.
Hi
>Aber sie stirbt.
Warum kämpfst du dann so fanatisch? Du könntest dich doch eigentlich
ruhig in deinen Ohrensessel setzen und ruhig abwarten. Oder bist du dir
nicht so sicher?
MfG Spess
Johannes S. schrieb: > Selten so einen Unfug gelesen hier. Das kommt mit Sicherheit nicht > von > einer Lehrerin, sondern von dem Bascom Freak hier. Dummes Zeug. Hat nichts mit Freak zu tun. Es war einfach der Bedarf nach einer vertändlichen und stabilen Programmierumgebung für Anfänger. Das hätte jede andere Umgebung werden können die bis 4k kostenlos ist und eingermassen frei von gravierenden Fehlern ist. Arduino hatte seine Chance. Nur ist das etwas für Leute die die Spreu vom Weizen trennen können. Ohne jahrelange Erfahrung ist das Arduino und Github Geraffel ein Dschungel den man Schülern nicht zumuten darf wenn es um Noten geht! Man will ja fair beleiben, es geht ja immerhin um die Zukunft junger Leute. Arduino wird überleben. Schon Martin Luther kackte tägliche :). Aufmerksame Grüße Karin
Und die Erde ist eine Scheibe. Bruder Johannes
Karin, wenn Du wüßtest was du für einen Mist schreibst,dann wüßtest du auch das alles großer Schwachsinn und alles nur erstunken uns erlogen ist. Besser konnte man sein Unwissen nicht formulieren.
Lehrerin Fräulein Karin schrieb: > Es gibt da einen hässlichen Spruch, der passt aber auf verblendete Fans: > "Esst Sche... millionen Fliegen können nicht irren". Das beisst sich aber dann mit der Verwendung von BASCOM, welches nur unter Windows läuft ;-) Jörg
von Lehrerin Fräulein Karin (Gast) >Die Schüler kamen auf die Idee auf Arduino um zu steigen. Da wir einen >Sponsor hatten wurde das genehmigt von der Schulleitung. >Das war eine einzige Katastrophe. Soviel Frust und Enttäuschung habe ich >noch bei keinem Projekt erlebt. Wir hatten den Schülern erlaubt sich >frei in Github und auf der Arduino Webseite zu bewegen um die Kompetenz >für Brauchbar und Unbrauchbar zu stärken. Das war ein riesen Fehler. Bei Deiner Kritik würde ich jetzt doch mal gerne genauer wissen, was da genau passiert ist. Wie waren denn die Lernziele für die Schüler genau definiert? Wie wurde der Kurs genau organisiert? Welche Projekte in wie vielen Stunden sollten die Schüler umsetzen? Das alles wären jetzt wichtige Fragen, um den Kursablauf etwas genauer beurteilen zu können.
Christoph M. schrieb: > Bei Deiner Kritik würde ich jetzt doch mal gerne genauer wissen, was da > genau passiert ist. Falls ich raten darf: Die Schüler hatten Bibliotheken miteinander kombiniert, die nicht zusammen passen. Und sie hatten viel zu komplexe Bauteile verwendet. Teenager lassen sich durch schöne Youtube Videos leicht dazu verleiten. Ich erlebe das zu hause immer wieder bezüglich Rezepte zum Kochen, Backen und diverse Bau-Projekte (ohne Elektronik). Was einfach aussieht muss auch einfach sein - vor allem wenn es der Youtube sagt. Oder nicht? Das ist der Punkt, wo die Lehrer behutsam gegensteuern. Vorsichtig die Grenzen aufzeigen oder Grenzen setzen, damit die Kids sich nicht massiv übernehmen. Denn (im Gegensatz zum Hobby) ist in der Schule nicht genug Zeit, ein Projekt ggf. 10x zu wiederholen, bis man sein Ziel erreicht hat.
Stefan ⛄ F. schrieb: > Die Schüler hatten Christoph M. schrieb: > was da > genau passiert ist. Ihr beiden glaubt doch nicht die Märchen! Oder? Prüft mal die Aussagen des "Karin" Dingens auf Fakten. Dann werde ihr merken, dass diese wirklich dünn gesät sind. z.B. Arduino existiert Schulen existieren Und Schüler auch Das wars auch schon so ziemlich. Zählt mal die Behauptungen durch... Viele es sind. Welche davon sind nachvollziehbar/belegbar? Eine, zwei, oder eher keine? Wie viele der Behauptungen sind leicht widerlegbar? Ich sehe da einen (bestenfalls) verirrten Menschen, welcher keine Ahnung von Arduino hat, C++ ablehnt, und Stimmung macht, in dem Gefühle und Emotionen vorgespielt werden. Ein Druck auf die Spiegelneuronen. Eine Theaterstück, nicht mal ein gutes.
Arduino Fanboy D. schrieb: > Welche davon sind nachvollziehbar/belegbar? > Eine, zwei, oder eher keine? keine! (Troll bleibt Troll) und wäre es kein Troll dann wäre ein Arduino nano auf dem Steckbrett mit USB Kabel billig beschaffbar für alle Fehler beim Lernen sind ja kein Problem und nur durch Fehler und Wiederholung lernt man so war das schon immer.
:
Bearbeitet durch User
Joachim B. schrieb: > Fehler beim Lernen sind ja kein Problem und nur durch Fehler und > Wiederholung lernt man so war das schon immer. Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug. Quelle: Jean-Paul Sartre
Arduino Fanboy D. schrieb: > Eine Theaterstück, UND auch genügend bedürftige Zuschauer sich hier versammelt!
Arduino Fanboy D. schrieb: > Prüft mal die Aussagen des "Karin" Dingens auf Fakten. > Dann werde ihr merken, dass diese wirklich dünn gesät sind Du hast es ja voll auf dem Schirm... Wenn man sich den Kauderwelsch anschaut den du hier ablieferst dann bekommt man doch das Kotzen! Beitrag "Re: Stoopen Programm" Hässlich! Unkommentiert! Mit delay()! Und dann noch die angehen die auf den delay() Fehler hinweisen... Arrogant bis zum dorthinaus.
Phuu... Meinen Dank für diese "objektive" Kritik. Mehr weiß ich darauf nicht zu sagen. Außer vielleicht, du bist ja ein ganz besonderer Vogel.
Arduino Fanboy D. schrieb: > Phuu... > Meinen Dank für diese "objektive" Kritik. > Mehr weiß ich darauf nicht zu sagen. > > Außer vielleicht, du bist ja ein ganz besonderer Vogel. Nimmst Du anonyme Forenschreiber wirklich ernst? Denen fehlt einfach nur der Kreis um ihren Schwach..nn auszuspeichern. Ersatzweise machen die das in solchen Foren. Wenn es hilft hat es ja Sinn :-)
Hugo H. schrieb: > Wenn es hilft hat es ja Sinn :-) Wollte gerade etwas schreiben, lass es aber, weil der Kommentar ist unübertrefflich. :-)
HBose schrieb: > Salu Hans Lehrerin Fräulein Karin schrieb: > Aufmerksame Grüße Karin Hans und Karin, könntet ihr euch bitte an die Forenregeln halten? Siehe die Nutzungsbedingungen --> nur 1 Name pro Thread!
Hallo, früher (tm) bin ich jeden Tag zum Zeitungsladen gelaufen, um die "BZ am Abend" zu holen. Da ware in Fortsetzungsroman drin, jeden Tag ein kleines Stück. Wa spannend, gut, manchmal pasierte in einer Fortsezumg auch nicht wirklich was... Ihr versaut mir hier jetzt gerade hier meinen Fortzsezungsroman, die letzten Folgen waren nur langweilig! Gruß aus Berlin Michael
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.