Hallo zusammen. Ich weiß nicht wie ich die Frage anders stellen muss um eine hilfreiche Antwort bei google oder hier angezeigt zu bekommen.
Hoffentlich könnt Ihr mir weiterhelfen.
Wenn ich ein Sketch schreibe und Bibliotheken einbinde, muss eine andere Person auf einem anderen Rechner erst die Bibliotheken installieren. Das ist mir klar.
Ich habe schon mal gesehen, dass wenn man das Sketch öffnet, Bibliotheken etc. als weitere Tabs angezeigt wurden.
Ich würde gerne die verwendeten Bibliotheken im Sketch speichern bzw. jene auch als Tab einbinden, so dass man nichts mehr herunterladen oder installieren muss, wenn der Sketch verwendet wird.
Ich kann in der IDE Bibliothek einbinden machen aber dann habe ich da nur die .h Datei drin. Zu der Bibliothek gehört doch auch die .cpp Datei oder nicht?
Also zusammengefasst: Wie kann ich alle im Sketch aufgeführten und nachträglich installierten Bibliotheken integrieren, so dass man das Sketch theoretisch überall / auf einem anderen Rechner (Arduino IDE) öffnen und ausführen kann, ohne dann man erst noch die Bibliotheken installieren muss?
Also das mit den Tabs ist ja super. Wenn das so funktioniert, perfekt. Das wusste ich halt nicht.
Ich wusste auch nicht was ich da alles einbinden muss (.h, .cpp?) und ob es über Bibliothek einbinden richtig ist.
Muss man im Quellcode was umschreiben bezüglich #include < > oder #include " "?
also du kannst ja wie bereits angesprochen alle notwendigen Datein der library auch lokal im Sketch speichern.
Meines Erachtens ist das aber total kontraproduktiv.
Man erstellt ja eine Library genau zum Zwecke den Code immer wieder verwenden zu können.
Wenn du nun die Dateien lokal beim Sketch hast, müsstest du bei einem anderen Sketch wieder diese Dateien doppelt anlegen.
Ich würde das definitiv so nicht machen.
Lieber einen deutlichen Hinweis im Sketch wo die Library zu finden ist - bzw. einen Downloadlink als Kommentar setzen.
Arduino - IDE starten
Ganz normal arbeiten.
Neue libraries normal installieren.
Da entstehen noch Ordner "logs" und "sketchbook" sowie da drunter "libraries".
Es liegt jetzt alles im ordner "portable"
Diesen "portable" Ordner kannst Du jetzt von einer Installation zur nächsten übertragen.
Jeder Sketch wird in einern Ordner mit dem gleichen Namen der .ino gespeichert.
Sind im Ordner mehrere .ino oder .h Dateien Vorhanden werden diese in mehreren Tabs in der IDE geöffnet.
Du kannst Deinen Sketch auch auf mehrere Tabs verteilen. Manchmal gibt das Probleme weil die Reihenfolge der Funktionsdeklarationen falsch ist und der zusammengesetzte Sketch (Alle .ino Dateien in alfabetischer Reihenfolge) nicht kompiliert.
Zum includieren der Bibliothek:
Die Schreibweise in #include<bibliothek.h> sucht die Bibliotkek in den Bibliothakordnern der IDE. #include"bibliothek.h" sucht die Bibliothek im lokalen Ordner (Sketchordner bzw in dem Angegebenen Path).
Aehm ja, und noch einen Nachtrag:
Du kannst in der .h auch z.B. weitere globale Libs einbinden Damit bleibt der Code vor dem setup() schön übersichtlich.
Na dann - viel Erfolg.
Also wenn es darum geht, ein fertiggestelltes Programm von einem anderem Rechner aus auf einen Mikrocontroller zu übertragen dann würde es genügen die complilierte Binärdatei zu übertragen.
Wenn das Programm verändert werden soll dann führt natürlich kein Weg dran vorbei das Programm neu zu compilieren und dazu braucht man dann alle Quelltextdateien.
Manchmal haben Bibliotheken Abhängigkeiten also das Bibliothek "A" intern auch noch ein #inklude <andereBibliothek.h> hat.
Die müssen dann alle auch lokal gespeichert werden.
Deshalb halte ich die Variante portable Arduino-IDE einrichten für die bessere Variante.
Aber alles hat seine Vor- und Nachteile. Wenn du einen anderen Mikrocontroller als Arduino Uno/Mega/Nano verwendest dann muss auf dem anderen Rechner auch noch die Boardunterstützung installiert werden.
Bei ESP8266/ESP32 sind das hunderte Megabyte.
Um was geht es dir am Ende eigentlich?
Willst du bei Bekannten die selber nicht programmieren können Softwareupdates machen?
Besteht dieses Softwareupdate nur aus dem Anpassen einiger Einstellwerte oder wird da die Programmfunktionalität geändert?
Einstellwerte ändern ==> Werte über serielle Schnittstelle eingeben können und im EEPROM speichern
Willst du an einem X-beliebigen Rechner an einem eigenen Programm weiter programmieren?
==> Umsteigen auf portable IDE und die portable IDE auf eine externe USB 3.0 SSD kopieren