Letztes Mal Es war ein Build und Upload von der Befehlszeile mit ino
, aber dieses Mal habe ich die Methode mit platformio
notiert.
Wie ino
wird platformio
auf der offiziellen Seite von arduino eingeführt. Derzeit benutze ich dies hauptsächlich.
Das Tolle an platformio
ist, dass Sie keine IDE benötigen. Für "ino" ist eine separate IDE erforderlich, für "platformio" jedoch nicht. Es wird automatisch als Paket heruntergeladen. Noch besser, es unterstützt eine Vielzahl von eingebauten Boards.
Es scheint, dass die berühmten Orte perfekt unterdrückt werden und aktuelle Boards wie STM32 Nucleo ebenfalls unterstützt werden. (http://platformio.org/#!/boards)
Wie ino
ist es in python
geschrieben und hat keine größeren Abhängigkeiten, so dass es einfach zu installieren ist. Ich denke, es ist einfacher als "ino", weil keine IDE installiert ist.
platformio
platformio
hat auch eine serielle Monitorfunktion. Im Fall von Ubuntu ist es jedoch aufgrund der Berechtigung erforderlich, der "udev" -Regel eine Datei hinzuzufügen. (http://docs.platformio.org/en/latest/platforms/atmelavr.html)
Linux Users: Don’t forget to install “udev” rules file 99-platformio-udev.rules (an instruction is located in the file).
udev
Regeldatei ist in Ordnung, aber es gibt Beispielprojekte für verschiedene Boards, also github
Laden Sie das Hauptgerät von `herunter.
#DL-Plattformprojekt
$ git clone https://github.com/platformio/platformio.git
Kopieren Sie 99-platformio-udev.rules
in das Projekt
#Kopieren Sie die udev-Regeldatei in Ihren Regelordner
$ sudo cp ./platformio/script/99-platformio-udev.rules /etc/udev/rules.d/
platformio
Installieren Sie unter der virtuellen Umgebung von "virtualenv". (Die Konstruktion der "virtualenv" -Umgebung ist in hier vermerkt. Schauen Sie also bitte vorbei, wenn Sie interessiert sind.)
#Erstellen Sie virtualenv
$ mkvirtualenv --no-site-package platformio
(platformio)$ pip install platformio
(platformio)$ pip install --egg scons #Ein Build-Tool, das make ersetzt. Ich denke das ist auch notwendig.
Wenn Sie in der Initialisierungsoption eine Karte angeben (--board = <Kartenname>
), werden verschiedene Einstellungen vorgenommen. Wenn Sie Ihren Boardnamen nicht kennen, können Sie die Liste anzeigen oder unter Site nachschlagen.
(platformio) $ platformio boards
Platform: atmelavr
---------------------------------------------------------------------------
Type MCU Frequency Flash RAM Name
---------------------------------------------------------------------------
flora8 atmega32u4 8Mhz 28Kb 2Kb Adafruit Flora
protrinket3ftdi atmega328p 16Mhz 28Kb 2Kb Adafruit Pro Trinket 3V/12MHz (FTDI)
protrinket3 atmega328p 12Mhz 28Kb 2Kb Adafruit Pro Trinket 3V/12MHz (USB)
#Unten weggelassen
Sie können es mit "grep" oder mit zusätzlichen Optionen drücken. Ich bin "uno", also werde ich hier suchen.
(platformio) $ platformio boards | grep uno
uno atmega328p 16Mhz 31Kb 2Kb Arduino Uno
Ein weiteres Beispiel ist nano.
(platformio) $ platformio boards | grep nano
nanoatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Nano ATmega168
nanoatmega328 atmega328p 16Mhz 30Kb 2Kb Arduino Nano ATmega328
Sie können das Element "Typ", das bei der Suche angezeigt wird, mit der Option "Karte" angeben.
platformio init
Das Erstellen eines Projekts ist einfach. platformio init --board = <Boardname>
generiert einen leeren Unterordner und eine Projektdatei (platformio.ini
). Das Format von "platformio.ini" ist INI-Datei, und es gibt verschiedene Optionen für detaillierte Einstellungen. (http://docs.platformio.org/en/latest/projectconf.html)
Erstellen Sie einen leeren Ordner für Ihr Projekt
(platformio) $ mkdir uno; cd ./uno
Erstellen eines Arduino-Projekts (diesmal generiert mit einem allgemeinen Uno-Board)
(platformio) $ platformio init --board=uno
#Fragen Sie, ob Sie automatische Uploads aktivieren möchten.
#später`platformio.ini`Sie können die Datei auch bearbeiten und ändern
Would you like to enable firmware auto-uploading when project is successfully built using `platformio run` command?
Dont forget that you can upload firmware manually using `platformio run --target upload` command. [y/N]: y
#Anleitung, wie Sie das Projektverzeichnis ändern können
The current working directory /home/hoge/uno will be used for the new project.
You can specify another project directory via
`platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.
#Wo mache ich eine Confi-Datei?`/home/hoge/uno`Aber ist es okay? Frage.
#Zögern Sie nicht`y`
The next files/directories will be created in /home/hoge/uno
platformio.ini - Project Configuration File. |-> PLEASE EDIT ME <-|
src - Put your source code here
lib - Put here project specific or 3-rd party libraries
Do you want to continue? [y/N]: y
#Erfolg
Project has been successfully initialized!
Useful commands:
`platformio run` - process/build project from the current directory
`platformio run --target upload` or `platformio run -t upload` - upload firmware to embedded board
`platformio run --target clean` - clean project (remove compiled files)
platformio serialports list
Die erstellte Firmware wird über die serielle Schnittstelle hochgeladen. Der Standardwert ist "/ dev / ttyUSB0". Wenn Sie also eine Verbindung zu Arudino herstellen, schlägt das Update fehl, wenn es unverändert bleibt, da der Portname unterschiedlich ist. Daher ist es notwendig, den Namen der seriellen Schnittstelle zu überprüfen und in "platformio.ini" anzugeben. Es gibt viele Möglichkeiten, dies herauszufinden, aber versuchen Sie es mit dem Befehl platformio
.
Der Befehl platformio serialports list
zeigt eine Liste der seriellen Informationen an. Sie sollten anhand des Beschreibungselements wissen, ob es sich um einen Arduino-Port handelt. Meistens / dev / ttyACM0
für Ubuntu und tty.usbserial- *
für Mac.
(platformio)$ platformio serialports list
: #Kürzung
/dev/ttyACM0
----------
Hardware ID: USB VID:PID=1a86:7523
Description: QinHeng Electronics USB2.0-Serial
Fügen Sie den Namen der seriellen Schnittstelle von Arduino zu "platformio.ini" hinzu. Der Optionsname lautet upload_port.
(platformio)$ echo -e "\nupload_port = /dev/ttyACM0" >> platformio.ini
Die übliche LED blinkt und serielle Anzeige. Geben Sie die Quelle in . / Src
ein.
(platformio)$ vim ./src/sketch.ino
#define LED_PIN 13
void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.println("Hello Arduino");
digitalWrite(LED_PIN, HIGH); delay(100);
digitalWrite(LED_PIN, LOW); delay(900);
}
platformio run
Wenn es kein Build-Zielplattformpaket gibt, wird eine Nachricht zum Herunterladen angezeigt. Geben Sie also "y" ein, um sie abzurufen. Das Download-Ziel ist "~ / .platformio / packages".
(platformio)$ platformio run
If you like PlatformIO, please:
- follow us on Twitter to stay up-to-date on the latest project news > https://twitter.com/PlatformIO_Org
- give us a star on GitHub > https://github.com/platformio/platformio
Thanks a lot!
[Wed May 6 13:06:53 2015] Processing autogen_uno (targets: upload, platform: atmelavr, board: uno, framework: arduino)
---------------------------------------------------------------------------------------------------------
The platform 'atmelavr' has not been installed yet. Would you like to install it now? [y/N]: y
Installing toolchain-atmelavr package:
Downloading [####################################] 100%
Unpacking [####################################] 100%
Installing tool-avrdude package:
Downloading [####################################] 100%
Unpacking [####################################] 100%
Installing framework-arduinoavr package:
Downloading [####################################] 100%
Unpacking [####################################] 100%
Installing tool-micronucleus package:
Downloading [####################################] 100%
Unpacking [####################################] 100%
The platform 'atmelavr' has been successfully installed!
Wenn der Download abgeschlossen ist, wird er so wie er ist erstellt und hochgeladen. Wenn Sie sich den Hauptkörper ansehen, sollte die LED blinken.
: #Kürzung
Reading | ################################################## | 100% 0.13s
avrdude: verifying ...
avrdude: 998 bytes of flash verified
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (H:00, E:00, L:00)
avrdude done. Thank you.
=================================== [SUCCESS] Took 64.38 seconds ===================================
platformio serialports monitor
platformio
hat standardmäßig auch eine serielle Monitorfunktion. Sie müssen kein weiteres "Minicom" oder "Picocom" installieren, aber ich denke, hier haben Sie unterschiedliche Geschmäcker.
(platformio)$ platformio serialports monitor -p /dev/ttyACM0 -b 9600
#Monitorstart
#Strg zum Beenden+ ]
--- Miniterm on /dev/ttyACM0: 9600,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Hello Arduino
Hello Arduino
Hello Arduino
Hello Arduino
Sie können problemlos Pakete hochladen und das Hauptgerät über Befehle aktualisieren.
--platformio upgrade
: Update von platformio
(platformio)$ platformio upgrade
You're up-to-date!
PlatformIO 1.4.0 is currently the newest version available.
--platformio update
: Paketaktualisierung
(platformio)$ platformio update
Platform atmelavr
--------
Updating toolchain-atmelavr package:
Versions: Current=2, Latest=2 [Up-to-date]
Updating tool-avrdude package:
Versions: Current=3, Latest=3 [Up-to-date]
Updating framework-arduinoavr package:
Versions: Current=16, Latest=16 [Up-to-date]
Updating tool-micronucleus package:
Versions: Current=1, Latest=1 [Up-to-date]
Darüber hinaus können externe Bibliotheken einfach installiert werden und es gibt verschiedene Funktionen. Weitere Informationen finden Sie im Offiziellen Dokument.
Hier sind einige grundlegende Befehle, die Sie sofort spielen können.
command | Description |
---|---|
platformio boards |
Anzeige der Kartenliste |
platformio init --board=<Boardname> |
Projekterstellung |
platformio run |
Bauen(Automatischer Upload abhängig von den Einstellungen) |
platformio run --target=upload |
Erstellen und hochladen |
platformio run --target=clean |
sauber |
platformio serialports list |
Anzeige der Liste der seriellen Anschlüsse |
platformio serialports monitor -p <Gerät> -b <Baudrate> |
Serieller Monitor |
In Zukunft möchte ich externe Bibliotheken importieren und Boards von anderen Plattformen ausprobieren. Auf jeden Fall bin ich froh, mit einer Kommandozeile problemlos verschiedene Embedded Boards entwickeln zu können.
Recommended Posts