π
<-

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 CCS Cloud, 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:
Show/Hide spoilerAfficher/Masquer le spoiler
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 :)
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
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
User avatar
AzerpogbaAmbianceur
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 60%
 
Posts: 397
Images: 16
Joined: 04 Dec 2018, 19:40
Gender: Male
Calculator(s):
MyCalcs profile
Class: Etude sup

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

Unread postby Noury » 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
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 64.4%
 
Posts: 317
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):
MyCalcs profile

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.
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
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. Je cherche un bêta-testeur pour mes niveaux Geometry Dash CE. N'hésitez pas à me contacter en MP.

ImageImage
Eh, ClaudeBot [spider], ç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
Programmator88Programmeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 54%
 
Posts: 208
Joined: 26 Jan 2019, 20:05
Location: Dans la Lune...
Gender: Male
Calculator(s):
MyCalcs profile
Class: L2 MIASHS

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 :)
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
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
Calculator(s):
MyCalcs profile

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? ^^
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
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
User avatar
AzerpogbaAmbianceur
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 60%
 
Posts: 397
Images: 16
Joined: 04 Dec 2018, 19:40
Gender: Male
Calculator(s):
MyCalcs profile
Class: Etude sup

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 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.3%
 
Posts: 41958
Images: 15681
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


Return to News Divers

Who is online

Users browsing this forum: ClaudeBot [spider] and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
740 utilisateurs:
>706 invités
>25 membres
>9 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)