π
<-
Chat plein-écran
[^]

Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby Wistaro » 02 Apr 2019, 11:58

Nous vous parlons souvent du TI-Innovator Hub, un module compatible
TI-84 Plus CE / TI-83 Premium CE
et TI-Nspire CX
(CAS)
qui permet aux élèves de
collège
et
lycée
de s'initier à la programmation, et ainsi construire des
projets
reliant des concepts en science, technologie, ingénierie et mathématiques, aussi appelés
"STEM"
.

Grâce à ce produit, il est possible de
programmer
et utiliser des périphériques externes directement
via sa calculatrice
!
Nous avions découvert
ce produit
grâce à Adriweb lors de l'édition 2016 de la conférence T3.

Mais derrière ce produit, se cache une
carte électronique
et
divers périphériques
permettant de dialoguer avec la
calculatrice
.

Cette carte, c'est le
TI-LaunchPad
. C'est un
microcontrôleur
embarquant un
micro-processeur
, ainsi que divers
périphériques
. Pour réaliser des fonctions plus complexes, pour aller "plus loin" et profiter de la toute la puissance de votre carte, il est nécessaire de travailler directement avec le
TI-LaunchPad
:)

A ce TI-Launchpad, cette
brique élémentaire
, vous pouvez ajouter d'autres modules , des "BoosterPack".
Ces modules vous permettent d'ajouter des fonctionnalités, comme:
  • Un module Wifi;
  • Un module Bluethooth;
  • Un module de puissance pour contrôler de lourdes charges
    (un moteur par exemple)
    ;
  • Un écran LCD;
  • Et beaucoup d'autres choses...
D’ailleurs, dans un autre article, nous t'avions déjà parlé de l'Educational BoosterPack MKII, un autre BoosterPack
.

Il existe plusieurs types de TI-LaunchPad, mais aujourd'hui nous allons nous concentrer sur l'une d'entre-elle, la
SimpleLink™ MSP432P401R
.



Tout d'abord, je remercie
Texas Instruments
pour m'avoir envoyé cette carte!

Faisons un peu le tour de ce qu'elle propose:
  • Un processeur
    ARM Cortex 32 bits de 48MHz
    , avec une unité de point flottant
    (en clair, un module pour pouvoir travailler avec des nombres à virgules très précis)
    et un module d'accélération DSP
    (pour améliorer la conversion analogique / numérique)
  • Niveau mémoire, elle propose 256KB de mémoire Flash NAND et 64KB de mémoire RAM;
  • Pour communiquer, elle peut gérer 4 bus I2C, 8 SPI et 4 UART;
  • Nous avons
    40 pins configurables
    , dont 20 utilisables par les BoosterPack;
  • Enfin nous, avons 3 LEDs et 2 boutons.

Elle embarque également un
puce
, qui permet de faire du
débogage et de l'émulation en temps réel
. j'ai déjà parlé de ce principe dans un précédent article sur une carte DSP de chez Texas instruments.
Cela permet de lancer son programme dans le microcontrôleur, et de pouvoir à tout moment faire pause, lire l'état des registres, envoyer des messages dans la console...

C'est extrêmement pratique pour débogguer son code :p


Pour programmer cette carte, nous utiliserons
Code Composer Studio
, l'IDE totalement gratuit dédié aux cartes de chez Texas Instruments. Mais si votre pc manque de mémoire, ou si vous n'avez pas envie d'installer sur votre machine un logiciel relativement lourd, il est possible d'utiliser , un
IDE totalement en ligne
et accessible simplement avec un navigateur web récent et un plugin.
Cet IDE fonctionne exactement comme
Code Composer Studio
. Il est également possible d'importer des projets templates issues de la banque de données, TI-Ressource Explorer.
C'est là qu'il est possible de récupérer toutes les documentations, et les programmes de démonstrations.


L'avantage des
LaunchPads
, c'est qu'il existe un
SDK
(ici, le SDK SimpleLink™ )
et des
bibliothèques
pour se simplifier la vie! Inutile de
réinventer la roue
ou se se perdre dans la
configuration assez complexe
du microprocesseur!

A titre d'exemple, voici le code qui permet de faire clignoter une led:
Code: Select all
int main(void)
{
    volatile uint32_t i;

    // Stop watchdog timer
    WDT_A_hold(WDT_A_BASE);

    // Set P1.0 to output direction
    GPIO_setAsOutputPin(
        GPIO_PORT_P1,
        GPIO_PIN0
        );

    while(1)
    {
        // Toggle P1.0 output
        GPIO_toggleOutputOnPin(
            GPIO_PORT_P1,
         GPIO_PIN0
         );

        // Delay
        for(i=100000; i>0; i--);
    }
}


Le code est très simple! On initialise une des pins comme étant en sortie, la led étant branchée sur ce pin. Puis on alterne son niveau pour faire clignoter la led :)

Bon, je suis
d'accord avec vous
. Faire clignoter
une led
c'est bien beau, mais c'est
assez limité
! Il est temps de passer aux
choses sérieuses
, si vous êtes encore là à me lire
(j'espère!)
.

Je vous propose aujourd'hui de réaliser un module, qui pourra servir de base à un
autre futur projet
.
Il s'agit donc d'
un détecteur de couleur
à base de
photo-transistors
,
de comparateurs
et bien sûr de la
MSP432P401R!
(sans blague)
.
Bon j'espère que vous ne vous êtes pas enfuis en voyant le mot
"transistor"
! Rassurez-vous,
tout sera détaillé!


Ce petit projet sera détaillé en
plusieurs modules
.

Tout d'abord, intéressons-nous au composant qui va s'occuper de la photo détection. Son fonctionnement est relativement simple:
  • Une diode infrarouge va
    émettre de la lumière
    ;
  • Cette lumière va
    rebondir
    sur
    la surface à analyser
    ;
  • Un récepteur photosensible
    (ici, un photo transistor)
    va alors récupérer l'information lumineuse et la transformer en un signal électrique.


Suivant
sa couleur
, la surface va absorber
plus ou moins de lumière
. L'information reçue par le capteur sera donc
différente
suivant la
couleur de la surface
!
En
calibrant le capteur
, il est donc possible de faire un sorte qu'il ne détecte qu'une
seule couleur en particulier
. Dans mon cas, j'ai choisi
le blanc
.

Mais le signal renvoyé par le capteur n'est pas un signal propre, il peut fluctuer dans le temps et ne pas être très précis. Il n'est donc pas possible de brancher directement la sortie du capteur sur le MSP432P401R!

Dans un premier temps, il est nécessaire de
filtrer le signal issue du capteur
, grâce à un
filtre passe-bas
. Ce filtre va supprimer les
hautes fréquences
(qui rendent le signal pas très beau)
et ne garder que le signal basse fréquence, celui qui nous intéresse.
Mais un autre problème se pose:
les entrées
de notre carte
MPS432P401R
ne peuvent traiter que des
signaux logiques
,
0 ou 1
,
soit 3.3V ou 0V
. Mais pas entre les deux!
Or, le signal
renvoyé par le capteur
(après filtrage)
est un signal analogique qui varie au court du temps et qui prend plus que 2 états.
Pour résoudre ce problème, il suffit de réaliser un détecteur:
  • Si le signal issu du capteur atteint une valeur seuil, alors on envois un "1", soit 3.3V;
  • Si le signal est inférieur à ce seuil, on envoie un "0".

Et ce seuil permet de régler la couleur qui sera détectée! Vous pouvez tout à fait utiliser une
résistance variable
pour changer la
couleur de détection
:)

Le schéma simplifié d'une de mes cellules photo-détectrice est visible à gauche. J'utilise un
composant
(de référence CNY70)
qui permet à la fois d'émettre et recevoir la lumière avec un seul boitier :)

J'ai ensuite réalisé une carte avec 5 capteurs de ce type
(j'ai malheureusement cassé le 6e, et je n'en avais plus sous la main)
, en vue de l'utiliser pour un futur projet.

Voici sa face arrière, avec les capteurs:


Connectons maintenant cette carte à notre
MPS432P401R!

Nous utiliserons ici
5 entrées
de notre
LaunchPad
, configurées en
entrées logiques
, en plus des
signaux d'alimentation
.

Maintenant que notre
MSP432P401R
peut détecter une couleur, je propose qu'on s'amuse un peu!

Afin de tester
l'ensemble des capteurs
, je propose
un petit circuit
sympathique!
L'idée, c'est de faire
varier la luminosité d'une LED
en fonction du nombre de capteurs qui
détectent du blanc
.

  • Si
    seul le capteur de gauche
    détecte
    du blanc
    ,
    une LED rouge s'allume faiblement
    ;
  • Si
    2 capteurs de gauche
    détectent
    du blanc
    ,
    la luminosité de la LED augmente
    , etc..;
  • Si
    tous les capteurs
    détectent
    du blanc
    , la LED est au
    maximum de sa luminosité
    .

Le problème ici c'est que...
Comment faire varier la luminosité de la led?
En sachant que le MSP432P401R ne sait envoyer et recevoir que des signaux de
3.3V ou 0V?


En fait, il est possible de tricher :p

Pour faire croire à la LED que le signal n'est pas forcément 3.3V ou 0V, il suffit d'envoyer pendant un court instant
3.3V
, puis repasser à 0V, puis repasser de nouveau à 3.3V...et répéter ce schéma indéfiniment.
Si cette alternance
est très rapide
, la LED verra, en moyenne, un signal compris entre
3.3V et 0V
. La valeur de ce signal vue par la led dépendra du temps que le signal reste à
3.3V
avant de repasser à
0V
.

Ce principe s'appelle la
PWM
, pour
Modulation par Largeur d'Impulsion
:)

Pour la LED, j'utilise une LED rouge classique, ainsi qu'une seconde LED verte qui fait exactement la même chose que la rouge :D
Pensez à toujours utiliser une résistance en série avec votre LED pour limiter son courant et ainsi éviter de la détruire.


Après un peu de code sur
Code Composer Studio
, notre mini-projet est terminé!



Et maintenant, testons tout ça!
Voici un test du dispositif en vidéo:



Merci de m'avoir lu!
Si vous avez des questions ou des suggestions, n'hésitez pas à réagir dans l'espace commentaire :)
User avatar
WistaroModo.G
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 59.8%
 
Posts: 2832
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
Class: Etudiant ingénieur (Ex TS - SI)
YouTube: Wistaro
Twitter: @Wistaro
GitHub: Wistaro

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby Azerpogba » 02 Apr 2019, 12:19

Wahou bien joué pour ton article!!
Tant attendu.... :p
En vrai c'est intéressant
Mais pk TI t'offre des cartes à toi et pas à moi? :'D
Image

Pour info Anonymous.... Je suis en train de faire un Doodle jump sur TI-83 PCE!! ( avec programmator88)!!!

Bonjour, Anonymous, si tu veux télécharger mes programmes clique ici
User avatar
AzerpogbaModo
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 83.5%
 
Posts: 324
Images: 3
Joined: 04 Dec 2018, 19:40
Location: quelque part ou l'on ne voit pas beaucoup le soleil et ou il pleut souvent
Gender: Male
Calculator(s):
Class: 1ere Maths/Physique-chimie/S.V.T.
YouTube: j'ai pas
Twitter: j'ai pas
Facebook: cherche et tu trouveras
GitHub: cherche et tu trouveras

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby nbenm » 02 Apr 2019, 12:41

Bel article, bien écrit, et chouette vidéo.
Ça a dû te demander autant de temps que le projet ;)
Pour les leds, ça rappelle un peu celle des Macintosh qui faisait un peu science fiction.
Je n'ai pas compris quelle calculatrice tu utilises, et comment ton code est exécuté.
User avatar
nbenmVIP++
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 20%
 
Posts: 182
Joined: 07 Sep 2018, 09:19
Location: 92
Gender: Male
Calculator(s):

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby Wistaro » 02 Apr 2019, 14:46

nbenm wrote:Bel article, bien écrit, et chouette vidéo.
Ça a dû te demander autant de temps que le projet ;)
Pour les leds, ça rappelle un peu celle des Macintosh qui faisait un peu science fiction.
Je n'ai pas compris quelle calculatrice tu utilises, et comment ton code est exécuté.


Merci :)

Ici je n'utilise pas de calculatrice, j'utilise le LaunchPad hors du TI-Innovator (comme expliqué au début de l'article).
Il se connecte au pc simplement en USB et se programme en C via l'IDE Code Composer Studio.
User avatar
WistaroModo.G
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 59.8%
 
Posts: 2832
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
Class: Etudiant ingénieur (Ex TS - SI)
YouTube: Wistaro
Twitter: @Wistaro
GitHub: Wistaro

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby Programmator88 » 02 Apr 2019, 17:00

En gros c'est de l'Arduino, mais version TI quoi...
Je fais essentiellement des niveaux pour Oiram CE et Geometry Dash CE. Ils sont tous disponibles ici.
Je fais un Doodle Jump pour TI-83PCE/TI-84+ avec Azerpogba.


ImageImage
Eh, Anonymous, ça te dirait de me donner un Internet ? C'est complètement inutile mais c'est marrant ! :D En échange, je te donnerai... ma reconnaissance éternelle !
User avatar
Programmator88Prog.
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 47.9%
 
Posts: 206
Joined: 26 Jan 2019, 20:05
Location: Dans la Lune...
Gender: Male
Calculator(s):
Class: En vacances - 1ère Générale pendant l'année 2019-2020
YouTube: Kinkalax Productions (c'est un ami).
Twitter: J'ai pas Twitter.
Facebook: J'ai pas Facebook.
GitHub: J'ai pas GitHub.

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby Wistaro » 02 Apr 2019, 17:31

Programmator88 wrote:En gros c'est de l'Arduino, mais version TI quoi...


Dans l'idée, oui. Ça reste un microcontrôleur.

Après, c'est beaucoup mieux qu'un arduino.
Sur ton Arduino:
  • Tu n'as pas de FPU (floating point unit);
  • Tu n'as pas d'accélateur DSP;
  • Tu n'as pas d'émulateur temps réel sur circuit (real-time in-circuit emulator)
  • Tu es beaucoup moins rapide, en terme de fréquence de clock;
  • Tu as beaucoup moins de mémoire RAM et Flash ROM;

C'est donc beaucoup plus intéressant qu'un Arduino :)
User avatar
WistaroModo.G
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 59.8%
 
Posts: 2832
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
Class: Etudiant ingénieur (Ex TS - SI)
YouTube: Wistaro
Twitter: @Wistaro
GitHub: Wistaro

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby logPeriodicAntenna » 02 Apr 2019, 18:00

C'est toujours un plaisir de lire tes articles, vivement le prochain !
User avatar
logPeriodicAntenna
Niveau 0: MI (Membre Inactif)
Niveau 0: MI (Membre Inactif)
Level up: 0%
 
Posts: 1
Joined: 02 Apr 2019, 17:56
Gender: Not specified

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby Wistaro » 02 Apr 2019, 18:11

logPeriodicAntenna wrote:C'est toujours un plaisir de lire tes articles, vivement le prochain !


Merci :)

Tu crois qu'en montrant l'article au professeur de microprocesseur
(tu vois de qui je parle, celui qui arrive en trottinette)
on peut gagner quelques points sur l'évaluation de ce matin? ^^
User avatar
WistaroModo.G
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 59.8%
 
Posts: 2832
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
Class: Etudiant ingénieur (Ex TS - SI)
YouTube: Wistaro
Twitter: @Wistaro
GitHub: Wistaro

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby Azerpogba » 02 Apr 2019, 18:12

:'D :'D
Image

Pour info Anonymous.... Je suis en train de faire un Doodle jump sur TI-83 PCE!! ( avec programmator88)!!!

Bonjour, Anonymous, si tu veux télécharger mes programmes clique ici
User avatar
AzerpogbaModo
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 83.5%
 
Posts: 324
Images: 3
Joined: 04 Dec 2018, 19:40
Location: quelque part ou l'on ne voit pas beaucoup le soleil et ou il pleut souvent
Gender: Male
Calculator(s):
Class: 1ere Maths/Physique-chimie/S.V.T.
YouTube: j'ai pas
Twitter: j'ai pas
Facebook: cherche et tu trouveras
GitHub: cherche et tu trouveras

Online

Re: Détecte les couleurs avec ta TI-LaunchPad MSP432P401R !

Unread postby critor » 02 Apr 2019, 19:11

Encore une fois un article de haut niveau, merci Wistaro et Texas Instruments. :)
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 96.8%
 
Posts: 33379
Images: 8672
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti


Return to News Divers

Who is online

Users browsing this forum: Krevo_ and 3 guests

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
553 utilisateurs:
>526 invités
>21 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)