logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:bendia:tutos:platformio-l-arduino-sans-arduino [17/12/2017 18:39]
bendia [Utilisation]
utilisateurs:bendia:tutos:platformio-l-arduino-sans-arduino [07/01/2018 13:02] (Version actuelle)
bendia [Utilisation]
Ligne 3: Ligne 3:
   * Objet : Installation et utilisation de [[http://​platformio.org/​|PlatformIO]],​ un IDE pour développer l'​embarqué   * Objet : Installation et utilisation de [[http://​platformio.org/​|PlatformIO]],​ un IDE pour développer l'​embarqué
   * Niveau requis : {{tag>​débutant}}   * Niveau requis : {{tag>​débutant}}
-  * Commentaires : Avec ça, on peu plus où moins choisir son éditeur de texte pour programmer l'​Arduino ​+  * Commentaires : Avec ça, on peu plus où moins choisir son éditeur de texte pour programmer l'​Arduino. Il n'est plus nécessaire((a priori)) d'​installer l'IDE Arduino, qui commence à dater sous Debian pour des histoires de licences.
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
  
 ===== Introduction ===== ===== Introduction =====
  
-//​platerformIO//​ est un IDE (//​Environnement de Développement Intégré//​) qui permet de programmer de nombreuses cartes à microcontrôleurs et autres bêtes à poils raz.+//​platerformIO//​ est un IDE((//​Environnement de Développement Intégré//)) qui permet de programmer de nombreuses cartes à microcontrôleurs et autres bêtes à poils raz.
  
 On peut simplement installer le //coeur// du système //​platformIOCore//,​ qui fournit des outils en ligne de commande pour simplifier les transferts et autres opérations vers les microcontôleurs. On peut simplement installer le //coeur// du système //​platformIOCore//,​ qui fournit des outils en ligne de commande pour simplifier les transferts et autres opérations vers les microcontôleurs.
Ligne 14: Ligne 14:
 C'est un programme en Python 2.7, non packagé pour Debian. Comme il utilise quelques modules dans des versions différentes de celles de Debian Stretch, on va utiliser un //​Environnement virtuel// pour bien séparer tout ça, et l'​installer via ''​pip''​. C'est un programme en Python 2.7, non packagé pour Debian. Comme il utilise quelques modules dans des versions différentes de celles de Debian Stretch, on va utiliser un //​Environnement virtuel// pour bien séparer tout ça, et l'​installer via ''​pip''​.
  
-On verra ensuite pour l'​intégration dans ce script dans un éditeur de texte, [[doc:​editeurs:​vim:​vim|vim]] par exemple, puisque il fait parti de ceux supportés.+On verra ensuite((Si j'y arrive un jour)) ​pour l'​intégration dans ce script dans un éditeur de texte, [[doc:​editeurs:​vim:​vim|vim]] par exemple, puisque il fait parti de ceux supportés.
 ===== Installation ===== ===== Installation =====
  
Ligne 46: Ligne 46:
  
 <code user>​pip-install platformio</​code>​ <code user>​pip-install platformio</​code>​
 +
 +==== Mettre en place les règles UDEV ====
 +
 +Afin que le système sache quoi faire avec les cartes lorsqu'​elles sont branchées en USB, il faut installer des règles UDEV. Pour ce faire, il suffit de télécharger ce fichier
 +
 +<code - /​etc/​udev/​rules.d/​99-platformio-udev.rules>​
 +# Copyright (c) 2014-present PlatformIO <​contact@platformio.org>​
 +#
 +# Licensed under the Apache License, Version 2.0 (the "​License"​);​
 +# you may not use this file except in compliance with the License.
 +# You may obtain a copy of the License at
 +#
 +#    http://​www.apache.org/​licenses/​LICENSE-2.0
 +#
 +# Unless required by applicable law or agreed to in writing, software
 +# distributed under the License is distributed on an "AS IS" BASIS,
 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +# See the License for the specific language governing permissions and
 +# limitations under the License.
 +
 +#
 +# INSTALLATION
 +#
 +
 +# UDEV Rules for PlatformIO supported boards, http://​platformio.org/​boards
 +#
 +# The latest version of this file may be found at:
 +# https://​github.com/​platformio/​platformio-core/​blob/​develop/​scripts/​99-platformio-udev.rules
 +#
 +# This file must be placed at:
 +# /​etc/​udev/​rules.d/​99-platformio-udev.rules ​   (preferred location)
 +#    or
 +# /​lib/​udev/​rules.d/​99-platformio-udev.rules ​   (req'd on some broken systems)
 +#
 +# To install, type this command in a terminal:
 +# sudo cp 99-platformio-udev.rules /​etc/​udev/​rules.d/​99-platformio-udev.rules
 +#
 +# Restart "​udev"​ management tool:
 +# sudo service udev restart
 +# or
 +# sudo udevadm control --reload-rules
 +# sudo udevadm trigger
 +#
 +# Ubuntu/​Debian users may need to add own “username” to the “dialout” group if
 +# they are not “root”, doing this issuing a
 +#   sudo usermod -a -G dialout $USER
 +#   sudo usermod -a -G plugdev $USER
 +#
 +# After this file is installed, physically unplug and reconnect your board.
 +
 +# CP210X USB UART
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​10c4",​ ATTRS{idProduct}=="​ea60",​ MODE:​="​0666"​
 +
 +# FT232R USB UART
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​0403",​ ATTRS{idProduct}=="​6001",​ MODE:​="​0666"​
 +
 +# Prolific Technology, Inc. PL2303 Serial Port
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​067b",​ ATTRS{idProduct}=="​2303",​ MODE:​="​0666"​
 +
 +# QinHeng Electronics HL-340 USB-Serial adapter
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​1a86",​ ATTRS{idProduct}=="​7523",​ MODE:​="​0666"​
 +
 +# Arduino boards
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​2341",​ ATTRS{idProduct}=="​[08][02]*",​ MODE:​="​0666"​
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​2a03",​ ATTRS{idProduct}=="​[08][02]*",​ MODE:​="​0666"​
 +
 +# Arduino SAM-BA
 +ATTRS{idVendor}=="​03eb",​ ATTRS{idProduct}=="​6124",​ ENV{ID_MM_DEVICE_IGNORE}="​1"​
 +ATTRS{idVendor}=="​03eb",​ ATTRS{idProduct}=="​6124",​ ENV{MTP_NO_PROBE}="​1"​
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​03eb",​ ATTRS{idProduct}=="​6124",​ MODE:​="​0666"​
 +KERNEL=="​ttyACM*",​ ATTRS{idVendor}=="​03eb",​ ATTRS{idProduct}=="​6124",​ MODE:​="​0666"​
 +
 +# Digistump boards
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​16d0",​ ATTRS{idProduct}=="​0753",​ MODE:​="​0666"​
 +KERNEL=="​ttyACM*",​ ATTRS{idVendor}=="​16d0",​ ATTRS{idProduct}=="​0753",​ MODE:​="​0666",​ ENV{ID_MM_DEVICE_IGNORE}="​1"​
 +
 +# STM32 discovery boards, with onboard st/linkv2
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​0483",​ ATTRS{idProduct}=="​374?",​ MODE:​="​0666"​
 +
 +# USBtiny
 +SUBSYSTEMS=="​usb",​ ATTRS{idProduct}=="​0c9f",​ ATTRS{idVendor}=="​1781",​ MODE="​0666"​
 +
 +# USBasp V2.0
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​16c0",​ ATTRS{idProduct}=="​05dc",​ MODE:​="​0666"​
 +
 +# Teensy boards
 +ATTRS{idVendor}=="​16c0",​ ATTRS{idProduct}=="​04[789]?",​ ENV{ID_MM_DEVICE_IGNORE}="​1"​
 +ATTRS{idVendor}=="​16c0",​ ATTRS{idProduct}=="​04[789]?",​ ENV{MTP_NO_PROBE}="​1"​
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​16c0",​ ATTRS{idProduct}=="​04[789]?",​ MODE:​="​0666"​
 +KERNEL=="​ttyACM*",​ ATTRS{idVendor}=="​16c0",​ ATTRS{idProduct}=="​04[789]?",​ MODE:​="​0666"​
 +
 +#TI Stellaris Launchpad
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​1cbe",​ ATTRS{idProduct}=="​00fd",​ MODE="​0666"​
 +
 +#TI MSP430 Launchpad
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​0451",​ ATTRS{idProduct}=="​f432",​ MODE="​0666"​
 +
 +# CMSIS-DAP compatible adapters
 +ATTRS{product}=="​*CMSIS-DAP*",​ MODE="​664",​ GROUP="​plugdev"​
 +
 +# Black Magic Probe
 +SUBSYSTEM=="​tty",​ ATTRS{interface}=="​Black Magic GDB Server"​
 +SUBSYSTEM=="​tty",​ ATTRS{interface}=="​Black Magic UART Port"
 +</​code>​
 +
 +Recharger ensuite les règles
 +<code root>​service udev restart
 +# ou
 +udevadm control --reload-rules
 +udevadm trigger</​code>​
 +
 +==== Ajouter son utilisateur au groupe ''​dialout''​ ====
 +
 +Pour qu'il soit possible d'​utiliser les ports série sans être //root//.
 +
 +<code root>​adduser $USER dialout</​code>​
  
 ===== Utilisation ===== ===== Utilisation =====
  
-FIXME+On peut faire beaucoup de chose avec ce programme. On va prendre un simple petit exemple : charger l'​exemple ''​blink''​ sur un //Arduino Uno// (c'est largement inspiré de [[http://​docs.platformio.org/​en/​latest/​quickstart.html|la doc officielle]] ;-) ) 
 + 
 +Dans notre cas, il va toujours falloir se trouver dans notre //​environnement virtuel//. Un petit rappel pour l'​activer 
 + 
 +<code user>​source ~/​prog/​arduino/​platformio/​bin/​activate</​code>​ 
 + 
 +==== Créer un projet ==== 
 + 
 +Commençons par créer un dossier qui va accueillir notre projet 
 + 
 +<code user>​mkdir -p ~/​prog/​arduino/​platformio/​blink 
 +cd blink</​code>​ 
 + 
 +On lance ensuite une commande qui va créer la structure du projet 
 +<code user>​platformio init --board uno</​code>​ 
 + 
 +Copions simplement l'​exemple ''​blink''​ qui va faire clignoter la LED intégrée raccordée au pin 13 dans le dossier ''​src''​ créé par la commande précédente 
 + 
 +<code - src/​blink.ino>​ 
 +void setup() { 
 +  // initialize digital pin LED_BUILTIN as an output. 
 +  pinMode(LED_BUILTIN,​ OUTPUT); 
 +
 + 
 +// the loop function runs over and over again forever 
 +void loop() { 
 +  digitalWrite(LED_BUILTIN,​ HIGH); ​  // turn the LED on (HIGH is the voltage level) 
 +  delay(1000); ​                      // wait for a second 
 +  digitalWrite(LED_BUILTIN,​ LOW);    // turn the LED off by making the voltage LOW 
 +  delay(1000); ​                      // wait for a second 
 +
 +</​code>​ 
 + 
 +<code user>cd src</​code>​ 
 + 
 +==== Téléverser le projet ====  
 + 
 +=== Cas général === 
 + 
 +Il ne reste plus qu'a compiler et téléverser dans l'​Arduino raccordé en USB 
 + 
 +<code user>​platformio run --target upload</​code>​ 
 + 
 +Lors de la première utilisation,​ ''​platformio''​ télécharge les différents outils nécessaire (''​avrdude''​ par exemple). Cela ne sera plus le cas ensuite. 
 + 
 +=== Utiliser un programmateur externe (pour les plateforme AVR seuelement) === 
 + 
 +Certains microcontrolleurs AVR nécessite l'​utilisation d'un programmateur spécial. C'est intégré dans la définition des cartes, mais il faut lancer la commande avec l'​option indiquant d'​utiliser ce programmateur. Ce n'est donc plus ''​upload''​ mais ''​program''​ 
 + 
 +<code user>​platformio run --target program</​code>​ 
 + 
 +==== Le moniteur Série ==== 
 + 
 +On peut ouvrir un moniteur série avec la commande ''​platformio device monitor''​. Cette commande dispose de différentes options. Par exemple, pour obtenir un comportement se rapprochant de la console série de l'IDE Arduino 
 + 
 +<code user>​platformio device monitor --echo --eol LF</​code>​ 
 +<​code>​--- Miniterm on /​dev/​ttyACM0 ​ 9600,8,N,1 --- 
 +--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- 
 +</​code>​ 
 + 
 +Et voilà, vous pouvez utiliser un Arduino sans l'IDE Arduino :-) 
utilisateurs/bendia/tutos/platformio-l-arduino-sans-arduino.1513532380.txt.gz · Dernière modification: 17/12/2017 18:39 par bendia

Pied de page des forums

Propulsé par FluxBB