Dernière fois C'était une compilation et un téléchargement depuis la ligne de commande en utilisant ʻino, mais cette fois j'ai noté la méthode en utilisant
platformio`.
Comme ʻino,
platformio` est introduit sur la page officielle d'arduino. Actuellement, j'utilise principalement ceci.
L'avantage de platformio
est que vous n'avez pas besoin d'un IDE. ʻIno nécessitait un IDE séparé, mais
platformio` ne l'est pas. Il sera téléchargé automatiquement sous forme de package. Mieux encore, il prend en charge une variété de cartes intégrées.
Il semble que les lieux célèbres soient parfaitement supprimés, et les cartes récentes telles que STM32 Nucleo sont également supportées. (http://platformio.org/#!/boards)
Comme ʻino, il est écrit en
python et n'a pas de dépendances majeures, il est donc facile à installer. Je pense que c'est plus facile que ʻino
car il n'y a pas d'IDE installé.
platformio
platformio
a également une fonction de moniteur série. Cependant, dans le cas d'ubuntu, il est nécessaire d'ajouter un fichier à la règle ʻudev` en raison de l'autorité. (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).
[Fichier de règles ʻUdev](https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules) est bien, mais il existe des exemples de projets pour différentes cartes, donc
githubTéléchargez l'unité principale depuis
.
#Projet DL platformio
$ git clone https://github.com/platformio/platformio.git
Copiez 99-platformio-udev.rules
dans le projet
#Copiez le fichier de règles udev dans votre dossier de règles
$ sudo cp ./platformio/script/99-platformio-udev.rules /etc/udev/rules.d/
platformio
Installez sous l'environnement virtuel de virtualenv
. (La construction de l'environnement virtualenv
est indiquée dans ici, veuillez donc jeter un coup d'œil si vous êtes intéressé.)
#Créer virtualenv
$ mkvirtualenv --no-site-package platformio
(platformio)$ pip install platformio
(platformio)$ pip install --egg scons #Un outil de construction qui remplace make. Je pense que c'est également nécessaire.
Si vous spécifiez une carte dans l'option d'initialisation (--board = <nom de la carte>
), divers réglages seront effectués. Si vous ne connaissez pas le nom de votre forum, vous pouvez voir la liste, ou vous pouvez la rechercher sur Site.
(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)
#Omis ci-dessous
Vous pouvez le presser avec grep
, ou vous pouvez le presser avec des options supplémentaires. Je suis «uno», donc je vais chercher ici.
(platformio) $ platformio boards | grep uno
uno atmega328p 16Mhz 31Kb 2Kb Arduino Uno
Un autre exemple est nano.
(platformio) $ platformio boards | grep nano
nanoatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Nano ATmega168
nanoatmega328 atmega328p 16Mhz 30Kb 2Kb Arduino Nano ATmega328
Vous pouvez spécifier l'élément type
qui apparaît dans la recherche avec l'option tableau.
platformio init
Créer un projet est simple. platformio init --board = <nom de la carte>
générera un sous-dossier vide et un fichier projet (platformio.ini
). Le format de platformio.ini
est fichier INI, et il existe diverses options pour les paramètres détaillés. (http://docs.platformio.org/en/latest/projectconf.html)
Créez un dossier vide pour votre projet
(platformio) $ mkdir uno; cd ./uno
Création d'un projet arduino (cette fois généré avec une carte uno générale)
(platformio) $ platformio init --board=uno
#Demandez si vous souhaitez activer les téléchargements automatiques.
#plus tard`platformio.ini`Vous pouvez également éditer et changer le fichier
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
#Conseils que vous pouvez modifier le répertoire du projet
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.
#Où créer un fichier confi`/home/hoge/uno`Mais est-ce que ça va? Question.
#N'hésitez pas`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
#Succès
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)
liste des ports série platformio
Le micrologiciel intégré est téléchargé via le port série. La valeur par défaut est / dev / ttyUSB0
, donc si vous connectez Arudino, la mise à jour échouera si elle est laissée telle quelle car le nom du port est différent. Par conséquent, il est nécessaire de vérifier le nom du port série et de le spécifier dans platformio.ini
. Il existe de nombreuses façons de le savoir, mais essayez d'utiliser la commande platformio
.
La commande platformio serialports list
affiche une liste d'informations série. Vous devez savoir à partir de l'élément Description
s'il s'agit d'un port Arduino. Principalement / dev / ttyACM0
pour Ubuntu et tty.usbserial- *
pour Mac.
(platformio)$ platformio serialports list
: #réduction
/dev/ttyACM0
----------
Hardware ID: USB VID:PID=1a86:7523
Description: QinHeng Electronics USB2.0-Serial
Ajoutez le nom du port série d'Arduino à platformio.ini
. Le nom de l'option est upload_port.
(platformio)$ echo -e "\nupload_port = /dev/ttyACM0" >> platformio.ini
Le clignotement habituel de la LED et l'affichage en série. Mettez la source dans . / Src
.
(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
S'il n'y a pas de package de plate-forme cible de construction, un message de téléchargement sera affiché, alors entrez y
pour l'obtenir. La destination du téléchargement est ~ / .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!
Une fois le téléchargement terminé, il sera construit et téléchargé tel quel. Lorsque vous regardez le corps principal, la LED doit clignoter.
: #réduction
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
a également une fonction de surveillance série en standard. Vous n'avez pas besoin d'installer un autre minicom
ou picocom
, mais je pense que c'est là que vous avez des goûts différents.
(platformio)$ platformio serialports monitor -p /dev/ttyACM0 -b 9600
#début du moniteur
#Ctrl pour quitter+ ]
--- 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
Vous pouvez facilement télécharger des packages et mettre à niveau l'unité principale à partir des commandes.
--platformio upgrade
: mise à jour de platformio
(platformio)$ platformio upgrade
You're up-to-date!
PlatformIO 1.4.0 is currently the newest version available.
--platformio update
: mise à jour du package
(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]
De plus, les bibliothèques externes peuvent être facilement installées et il existe diverses fonctions. Pour plus d'informations, veuillez lire le Document officiel.
Voici quelques commandes de base à jouer tout de suite.
command | Description |
---|---|
platformio boards |
Affichage de la liste des cartes |
platformio init --board=<Nom du conseil> |
Création de projet |
platformio run |
Construire(Téléchargement automatique en fonction des paramètres) |
platformio run --target=upload |
Construire et télécharger |
platformio run --target=clean |
nettoyer |
platformio serialports list |
Affichage de la liste des ports série |
platformio serialports monitor -p <dispositif> -b <débit en bauds> |
Moniteur série |
À l'avenir, j'aimerais importer des bibliothèques externes et essayer des cartes d'autres plates-formes. Dans tous les cas, je suis heureux de pouvoir développer facilement diverses cartes embarquées avec une seule ligne de commande.
et
platformio` sont plus faciles à utiliser.Recommended Posts