PROGRAMMER EN C UN MICROPROCESSEUR OU … · source en langage haut niveau type c, c++, java etc...

25
Lyctaao 2011 STI2D Sin PROGRAMMER EN C UN MICROCONTROLEUR Arduino - Teagueduino

Transcript of PROGRAMMER EN C UN MICROPROCESSEUR OU … · source en langage haut niveau type c, c++, java etc...

Lyctaao 2011 STI2D Sin

PROGRAMMER EN C UN

MICROCONTROLEUR

Arduino - Teagueduino

Intro - La logique câblée:

VRAI, FAUX

NON , OUI

ET (AND),

NON-ET (NAND),

OU (OR),

Lyctaao 2011 STI2D Sin

Intro - La logique programmée:

Deux familles:

microprocesseur

microcontrôleur.

Lyctaao 2011 STI2D Sin

Intro - Cablée Vs Programmée

La logique programmée offre un énorme

avenage sur la logique câblée:

on change le fonctionnement d’un

système par simple modification du

programme.

Lyctaao 2011 STI2D Sin

Intro - Ensemble microprocesseur et périphériques

Lyctaao 2011 STI2D Sin

Avec un microcontrôleur tout est intégré

Lyctaao 2011 STI2D Sin

Lyctaao 2011 STI2D Sin

Le Programme - Organisation générale

SOURCE EN LANGAGE HAUT NIVEAU

TYPE C, C++, JAVA ETC ...

LANGAGE DE BAS

NIVEAU

ASSEMBLEUR

CODAGE EN

LANGAGE MACHINE

COMPILATION

TELECHARGEMENT

LIBRAIRIE DE PROGRAMMATION

Lyctaao 2011 STI2D Sin

Le Programme - Définition

Fichiers Sources (.c) sont des simples fichiers textes

Fichiers Headers (.h) ou librairies sont des programmes écrits en

langage c qui contiennent des fonctions (ou macros)

La compilation permet de

Lier les Fichiers Sources avec les Fichiers Headers

Traduire en code machine le programme

Le téléchargement va mettre en mémoire le programme puis lancer

l’exécution du programme

Lyctaao 2011 STI2D Sin

Le Programme - Exemples de compilateurs

Pour programmer des PC

(Intel ou AMD (American

Manufacture Device))

Pour programmer les

microcontrôleurs

(Atmel, Pic, Motorola ou Arduino)

Visual C++

Builder C++

LabWindows/CVI

CodeVisio CAVR

ADC-11 - 68HC11 Compiler

SourceBoost IDE

Chaque microprocesseur ou microcontrôleur a son propre langage machine

Seul le langage C est commun à tous

D’où

A chaque microprocesseur on associe son compilateur

Lyctaao 2011 STI2D Sin

#include <delay.h>

#include <90s8515.h>

Int tempo;

Char sortie;

Void main (void)

{

DDRB = 0xFF;

sortie = 0x55;

tempo = 1000

while (1)

{

PORTB = sortie;

delay_ms(tempo);

sortie = ~ sortie;

}

}

Le Programme - Structure de base d’un programme en langage C

Déclaration des fichiers

Headers utiles au

programme

Déclaration des

variables utiles au

programme

Déclaration du début du

programme principal

Programme principal

Fin du programme

principal

Lyctaao 2011 STI2D Sin

Void main (void)

{

DDRB = 0xFF;

sortie = 0x55;

tempo = 1000

while (1)

{

PORTB = sortie;

delay_ms(tempo);

}

}

Le Programme - Explication du programme en langage C

Déclaration du port B du

microcontrôleur

La variable de type caractère

(codée sur 8 bits) vaut 0x55 en

hexadécimal ou 85 en décimale

La variable de type entière

(codée sur 16 bits) vaut 1000

en décimale

Déclaration

d’une boucle

infinie

Envoie sur le port B du

microcontrôleur la valeur de la

variable sortie

Réalise une

temporisation de

1 seconde

Lyctaao 2011 STI2D Sin

PORT B

Sortie = 0x55 = 0b01010101

Tempo de 1 seconde

Résultat sur le kit ATMEL

while (1)

{

PORTB = sortie;

delay_ms(tempo);

sortie = ~ sortie;

}

Le microcontrôleur Arduino

Lyctaao 2011 STI2D Sin

Lyctaao 2011 STI2D Sin

Le microcontrôleur Arduino

Arduino: c’est quoi?

Un circuit imprimé open-source,

Un microcontrôleur (calculateur),

Un programme qui analyse et produit des

signaux électriques,

Pour effectuer des tâches très diverses comme

la charge de batteries, la domotique, le

pilotage d'un robot, etc…

Lyctaao 2011 STI2D Sin

Le microcontrôleur Arduino

Ce système est basée sur :

une interface entrée/sortie simple,

un environnement de développement connecté

à un ordinateur pour communiquer avec ses

logiciels (ex : Macromedia Flash, Processing,

Max/MSP, Pure Data, SuperCollider).

Lyctaao 2011 STI2D Sin

Arduino: la description

Un module Arduino est construit autour d'un

microcontrôleur Atmel.

Chaque module possède au moins un régulateur

linéaire 5V et un oscillateur à quartz 16 MHz.

Le microcontrôleur est pré-programmé avec un

bootloader de façon à ce qu'un programmateur

dédié ne soit pas nécessaire.

Lyctaao 2011 STI2D Sin

Arduino : les avantages

Pas cher : moins de 2500 fcp

Multi-plateforme : écrit en Java, développé

sous Windows, Macintosh et Linux.

Un environnement de programmation clair

et simple

Programmes licence open source, librairies

C++,

Matériel Open source et extensible

Lyctaao 2011 STI2D Sin

Arduino: la prorammation

Les modules sont programmés au travers d'une

connexion série RS-232, ou USB

Lyctaao 2011 STI2D Sin

Arduino : Les entrées / sorties

14 entrées/sorties numériques, dont 6 peuvent

produire des signaux PWM,

et 6 entrées analogiques.

Lyctaao 2011 STI2D Sin

Un quartz 16Mhz,

Une connexion USB,

Un connecteur d'alimentation jack,

Un connecteur ICSP (programmation "in-

circuit"),

et d'un bouton de réinitialisation (reset).

Lyctaao 2011 STI2D Sin

Arduino: le hardware

Le microcontrôleur Teagueduino

L’arduino fait rêver, mais la soudure et la

programmation effraie.

Teagueduino est un projet développé autour de

l’arduino mais toutes les connections se font via

des cables et l’environnement de programmation

a été grandement simplifié.

Lyctaao 2011 STI2D Sin

Teagueduino: le programme

Lyctaao 2011 STI2D Sin

Le microcontrôleur Teagueduino:

les Entrées / Sorties Inputs: Buttons (small and medium), Switches (small and

large), Rotary knobs (rotary potentiometer), Sliders (linear

potentiometer), Light sensors (CdS LDR), Magnetic sensors

(ratiometric), Temperature sensors (thermistor), Force (fsr),

and Audio level (microphone with peak detector).

Outputs: Speakers (piezo), LEDs (blue, red, and tri-color),

Lasers (point and line), and Servos (small and medium),

Motors (via servo control), and a Switchable AC plug

(power switch tail) to control higher current devices.

Lyctaao 2011 STI2D Sin

Le microcontrôleur Teagueduino:

le module

Lyctaao 2011 STI2D Sin