In diesem Tutorial möchte ich erläutern wie man Notepad++ als IDE für den Arduino einsetzt.
Wie man Notepad++ für Java verwendet habe ich im Tutorial Einrichten von Notepad++ als IDE erläutert.
Installieren von Notepad++
Die neueste Version von Notepad++ kann unter https://notepad-plus-plus.org/ bezogen werden.
Es stehen 2 verschiedene Versionen bereit 32Bit und 64Bit.
Des Weiteren stehen noch verschiedene Pakete zum Download bereit:
- Notepad++ Installer – ausführbare EXE Datei welche die Software installiert
- Notepad++ zip package – gepackte Version im *.zip Format, ohne Installationsroutine
- Notepad++ 7z package – gepackte Version im *.7z Format, hierfür wird das Tool 7zip benötigt.
Da ich bereits eine Version von Notepad++ installiert habe, wähle ich in diesem Beispiel das Paket “Notepadd++ zip package 32-bit x86”.
Das Paket “Notepadd++ zip package 64-bit x64” ist nicht mit dem Plugin kompatibel und daher nicht zu empfehlen.
Nachdem Download der ca. 3 MB großen Datei kann diese in ein beliebiges Verzeichnis entpackt werden.
Ich habe das Paket in das Verzeichnis “.\Notepad++” entpackt.
Installieren und konfigurieren der Arduino IDE
Da für den Arduino einige Treiber und Sourcen benötigt werden, muss die Arduino IDE bezogen werden.
Die kann auf der Seite des Herstellers Arduino.org heruntergeladen werden.
Auch hier stehen mehrere Pakte zur Auswahl:
- Windows Installer – installiert die Software
(Für diese Installationsroutine werden Admin Rechte benötigt.) - Windows ZIP FILE – zum Entpacken der Software in ein beliebiges Verzeichnis
- Mac OS X – für die Mac User unter uns
- Linux 32 BITS – für die Linuxbenutzer (32Bit Version)
- Linux 64 BITS – für die Linuxbenutzer (64Bit Version)
Da ich ein Microsoft Windows 10 Home 64Bit habe wähle ich “Windows ZIP FILE”.
Nachdem Download der ca. 275 MB großen Datei wird diese entpackt
(siehe Entpacken der Notepad++ IDE)
Einrichten von Notepad++
Nachdem Notepad++ und die Arduino IDE bezogen und entpackt wurden kann nun mit dem Einrichten des Notepad++ begonnen werden. Als erstes benötigt man ein Plugin für die Unterstützung der Arduino Bibliotheken.
Installieren und konfigurieren von Plugins
Notepad++ Arduino Plugin
Das benötigte Plugin wird von https://sourceforge.net/projects/narduinoplugin/ geladen.
Nachdem entpacken sind folgende Dateien im Verzeichnis vorhanden
Kopieren und einrichten des Plugins
Das Verzeichnis APIs wird nach “.\Notepad++\plugins” kopiert.
Die Sprache wird in der Software unter “Language\Define your Language” eingestellt.
Im nun geöffneten Dialog wählen Sie die Schaltfläche “Import…” und navigieren Sie zum entpackten Verzeichnis des Plugins.
Dort wählen Sie nun die Datei “Arduino_Language_0.2.0.xml” und betätigen die Schaltfläche “Öffnen”.
Bei erfolgreichem import der Datei wird der Dialog “Import successfull” angezeigt.
Es muss nun die importierte Datei aus der Auswahlliste der “User language” ausgewählt werden und unter einem beliebigen (jedoch eindeutigen) Namen abgespeichert werden.
Der Name “Arduino” ist bereits reserviert und kann nicht benutzt werden!
Ich habe das Plugin in “ArduinoPlugin” benannt.
Zum testen, ob das Plugin funktioniert laden Sie einen beliebigen Sketch, es sollte nun die Syntax des Quellcodes gehighlightet sein.
NppExec
das Plugin NppExec dient zum Ausführen von Dateien und wird für
- das kompilieren,
- und den upload
des Sketches verwendet.
Installieren des Plugins
Dieses Plugin wird über den PluginManager installiert, welcher über das Menü “Plugins\Plugin Manager\Show Plugin Manager” erreichbar ist.
Im nun geöffneten Dialog wird aus der Liste das Plugin “NppExec” ausgewählt und mit Betätigen der Schaltfläche “install” installiert.
Es wird nun das Plugin heruntergeladen und installiert.
Konfigurieren des Scriptes
Wie aus dem oben genannten Tutorial bekannt, kann das Plugin “NppExec” ein Script ausführen, welches parametrisiert werden kann.
Um ein Sketch auszuführen, betätigen Sie entweder die Taste F6 oder navigieren Sie über das Menü “Plugins\NppExec\Execute“. Es sollte sich nun folgendes Fenster öffnen wo sie das unten stehende Script eingeben können. Natürlich müssen Sie hier die Pfade zu der Arduino IDE angepasst werden.
set local arduinoPath = "E:\9999_Arduino\arduino17\arduino" npp_save $(arduinoPath) --upload "$(full_current_path)"
Um das Script zu Speichern betätigen Sie die Schaltfläche “Save…” und vergeben Sie im folgenden Dialog einen Namen für das Script. Da man über die Commandozeile nicht nur compilieren und hochladen kann, kann man hier mit mehreren Scripten auch nur compilieren (prüfen) oder auch für andere Boards fertige Scripte ablegen.
Während der Ausführung des Skriptes wird KEIN zusätzliches Fenster angezeigt, daher ist es sinnvoll sich die Konsole anzeigen zu lassen (siehe unten). Es kann auch je nach Rechenleistung, Größe des Sketches usw. etwas dauern bis der Vorgang beendet ist.
Arduino Compiler Parameter
Eine Seite mit den möglichen Parametern für die Arduino IDE befindet sich im GitHub auf der Seite https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc
Anzeigen der Konsolenausgabe in Notepad++
Auch wenn im Script die Konsolenausgabe in eine Textdatei umgeleitet wurde, ist es sinnvoll sich diese in der IDE anzeigen zu lassen. Dies ist besonders wichtig, wenn in der Textdatei nichts steht, sprich es keine Ausgabe gibt. Um dieses Fenster anzeigen zu lassen, navigieren Sie über das Menü “Plugins\NppExec\Show Console Dialog“. Es sollte nun folgendes, zusätzliches Fenster sichtbar sein. Wenn man nun das oben genannte Script ausführt (und die Pfade angepasst hat) so wird folgender Output angezeigt.
Codevervollständigung
Um die Codevervollständigung zu aktivieren, muss nun über das Menü “Settings\Preferences…” zum Einstellungsdialog navigiert werden.
Dort wählen Sie aus der Liste im linken Bereich den Menüpunkt “Auto-Completion” aus und aktivieren die Checkboxen “Enable auto-completion on each input” & “Function parameters hint on input”, per default sollten diese jedoch bereits aktiviert sein.
Fazit
Als Fazit möchte ich gerne anmerken das Notepad++ als solider Ersatz dienen kann aber, wenn man doch einmal etwas speziellen haben möchte wie zbsp. den seriellen Monitor oder den seriellen Plotter dann muss man doch wieder die Arduino IDE benutzen.
Herzlichen Dank, das hilft mir sehr, da ich mit den Augen Probleme habe beim Arduino-Editor.
Frage: Fehlt in dem 3-zeiligen Script die Umlenkung der Arduino-Ausgabe in eine Textdatei und weiter in die npp-exec-Konsole? Wie geht das?
Viele Grüße
Reinhardt
Hallo Reinhardt,
wahrscheinlich ist es ein bisschen spät für eine Antwort,
aber wenn du eine Ausgabe in der Konsole haben möchtest,
musst du im Script anstatt der arduino.exe die arduino_debug.exe
aus dem selben Verzeichnis verwenden. Die arduino.exe gibt nämlich
überhaupt keine Ausgabe zurück.
Ich kann dir außerdem empfehlen, dir die in der Anleitung erwähnte
Seite im GitHub anzuschauen, denn dort stand
das nämlich.
Ich habe mir beispielsweise praktische Scripts mit NppExec gemacht,
welche die Funktionen der Buttons in der Arduino IDE haben.
Durch die Verwendung der Debugversion der IDE,
erhältst du die gleiche Ausgabe wie in der IDE.
Die erstellten Scripts kann man übrigens unter NppExec’s Optionen, sehr praktisch auf Tastatur-Kürzel legen. Alles unter der
Voraussetzung, dass du die korrekten Parameter an arduino_debug.exe übergibst.
Schau mal bei GitHub rein und lies
dir die SYNOPSIS durch.
Ich fand dort folgendes:
“The arduino.exe GUI version of the launcher may perform some of the functions described below, but will not output any messages to the console, meaning it is pretty useless if you want any feedback or to be able to keep log files for automated testing, etc.”
Viele Grüße zurück,
Oliver Probst
Hallo,
Vielen Dank für die Anleitung, hat bei mir super geklappt.
Jetzt kann ich endlich mit meinem geliebten Notepad++ weiterarbeiten.
Ein Problem habe ich allerdings: Das Schöne an NPP ist ja, das ich mir die Funktionen auflisten und dann dirkt hinsprinen kann. Dies klappt bei ino-Files nicht.
Und die Functionlist manuell anzupassen, dazu fehlt mir Erfahrung und Können. Gibt es evtl. jemanden, der mir freundlicherweise eine aktualisierte functionlist zur Verfügung stellt oder mir zumindest sagen kann, wo ich eine solche finden kann? Ich habe schon das halbe Internet durchsucht.
Vielen Dank
Hi,
danke, das ist schön das es bei dir gut geklappt hat.
Also das mit der functionlist habe ich mal angefangen aber das ist wirklich übelst mühseelig diese aufzubauen.
Gruß,
Stefan Draeger
Hallo
Bei mir werden Zahlen und Keywords nicht richtig gehighlightet, wenn sie von einem Semikolon gefolgt werden.
Beheben lässt sich das scheinbar, indem unter “Define your language” der “User language” im Tab “Operators & Delimiter” ein Semikolon hinzugefügt wird.
(ist zwar etwas pedantisch, aber ein bisschen hübscher 😀 )
LG