web-dev-qa-db-fra.com

Comment programmer Arduino avec C ++

Alors récemment, j'ai joué avec mon arduino et je me demandais s'il y avait un moyen de programmer l'arduino en c ++. Ce que j'ai fait, c'est le programmer en utilisant le langage de traitement c ++/dans vim et en utilisant un makefile pour compiler et télécharger sur l'arduino. Mais mon objectif est de pouvoir utiliser des classes et toutes les excellentes fonctionnalités C++ (ou au moins la somme) pour le programmer. Finalement, j'aimerais même le programmer en c brut et j'ai juste du mal à trouver comment faire. Ce serait formidable si quelqu'un pouvait m'orienter dans la bonne direction ou m'aider. Merci! ~ michael

25
Michaelslec

Voici mon expérience: je construis un jouet intelligent robotique pour les enfants autistes en utilisant Arduino, des capteurs, des moteurs, des LED et du Bluetooth. J'ai écrit mes propres bibliothèques pour faire exactement ce dont j'avais besoin en utilisant C++. Mais j'ai découvert que le compilateur Arduino IDE est une ancienne version qui ne prend pas en charge les nouvelles fonctionnalités C++ 11.

J'ai donc dû trouver un moyen de compiler du code C++ 11 et de le télécharger sur mon Arduino. Il s'avère être "assez" basique: j'avais besoin d'un Makefile, de la chaîne d'outils avr-gcc 4.8 et voilà! Le travail de création de fichier est effectué par Sudar ( https://github.com/sudar/Arduino-Makefile ) et cela fonctionne très bien. J'ai dû le personnaliser un peu pour le faire fonctionner pour mon projet.

Voici une documentation que j'ai écrite pour mon projet. Vous devriez y jeter un œil, cela pourrait vous être utile. https://github.com/WeAreLeka/moti/blob/master/INSTALL.md

J'espère que ça aide! À votre santé :)

EDIT 16/08/2014:

Parce que j'ai reçu beaucoup de demandes similaires à celle-ci de la part d'amis et d'autres développeurs, j'ai décidé de mettre en place une sorte de framework pour démarrer rapidement et facilement avec vos projets Arduino.

C'est le Bare Arduino Project

J'espère que cela pourrait vous être utile! Si vous trouvez des bugs ou des choses que je pourrais améliorer, n'hésitez pas à les remplir et à les publier. :)

48
ladislas

Le langage pris en charge par l'Arduino IDE est essentiellement C++ avec quelques fonctionnalités supplémentaires implémentées par les programmeurs Arduino. De plus, dans une esquisse, vous codez simplement les setup et loop routines (il y en a quelques autres auxquelles vous finirez par vous rendre en devenant un programmeur plus avancé).

Dans une esquisse, vous pouvez définir des classes dans une bibliothèque et inclure cette bibliothèque à l'aide de l'IDE Arduino. L'Arduino IDE implémente un compilateur Atmel qui crée du code pour le processeur de l'Arduino (il existe plusieurs modèles). Vous pouvez travailler en dehors de l'Arduino IDE (sonne comme vous êtes) mais vous devez toujours avoir un compilateur qui cible le bon processeur Atmel.

Enfin, les classes C++ peuvent devenir volumineuses, donc à un moment donné, votre source dépassera ce que le processeur peut stocker. Ainsi, les classes Arduino sont rares et au point!

Pour commencer, j'utiliserais l'Arduino IDE et j'écrirais des croquis (qui sont principalement du C++ de toute façon). Et si l'occasion le permet, vous pouvez coder vos propres bibliothèques en C et/ou C++.

5
JackCColeman