"Un, deux, trois - brûlez le sapin de Noël!" Ou mon premier regard sur le petit contrôleur CANNY 3

«Nouvel an», ce sont les mandarines, Olivier, les week-ends et bien sûr les cadeaux.

Comme vous l'avez probablement déjà deviné, je suis soudainement devenu le propriétaire du microcontrôleur CANNY 3 Tiny. Certes, je ne suis pas particulièrement dans l'électronique de bricolage et la dernière fois que j'ai moi-même essayé de connecter quelque chose au contrôleur il y a près de sept ans, lorsque j'ai fait du rétro-éclairage pour le persil en utilisant le clone Arduino . Mais le bien ne disparaît-il pas? Nous devons encore voir de quel genre de bête il s'agit.

Ainsi, selon le site des développeurs, leurs produits sont largement utilisés et même installés dans KAMAZ participant au rallye Dakar. Dans le même temps, la principale caractéristique de leurs contrôleurs est que pour la programmation, vous n'avez pas à écrire une seule ligne de code. L'ensemble du programme est développé sous forme de diagramme. En tant que personne loin du monde du bricolage, j'étais très intriguée.

Et tout irait bien, mais il y a un hic. L'année dernière, je voulais honnêtement acheter une paire de camions Dakarovsky KAMAZ, mais je n'ai pas réussi à les obtenir à prix réduit le Black Friday. Nous devons donc en quelque sorte sortir de cette situation simplement et avec élégance.

Dans cet article, nous allons connecter le bouton et la LED piranha rouge au contrôleur, après quoi nous les programmerons pour que la LED s'allume et s'éteigne en appuyant sur le bouton.

Voulez-vous rejoindre le plaisir de ma nouvelle année rampante? Alors vous êtes les bienvenus sous chat.



Soit dit en passant, sur Habré, il y avait déjà un article sur les contrôleurs CANNY , mais d'une part, il y avait un autre contrôleur là-bas, et d'autre part, les logiciels de développement de programmes étaient obsolètes à partir de ce moment. En conséquence, il m'a fallu environ une heure pour comprendre comment faire clignoter la LED verte intégrée au contrôleur. C'est en partie pourquoi j'ai décidé de partager avec vous mes tentatives de "freiner" le contrôleur. Et en partie juste parce que j'aime écrire dans Habr, quand j'ai du temps libre.

Avant d'aller plus loin, je considère qu'il est de mon devoir d'avertir les lecteurs. Malgré le fait que cet article soit présenté comme un "tutoriel", je ne suis pas un expert en microélectronique ni en programmation. Je vais juste partager ce que j'ai réussi à comprendre afin de vous faire gagner du temps.

C'est ce que l'article va discuter:

Partie I: Déballage et familiarisation
Partie II: Connexion du circuit
Partie III: Programmation
Partie IV: Conclusion

Partie I: Déballage et familiarisation


Pour commencer, il faut dire au moins quelques mots sur notre héros de l'article. Le petit contrôleur CANNY 3 est la plus petite famille de contrôleurs CANNY. Les frères aînés CANNY 3 Tiny - les contrôleurs des séries CANNY 7 et CANNY 5 sont capables de fonctionner avec le bus CAN de la voiture. Notre jeune frère, comme ma vieille voiture Zhiguli, ne sait rien du bus CAN et vit en paix.

Pour plus d'informations sur le contrôleur, consultez la section Wiki correspondante. Les développeurs ont également une section sur le forum , grâce à laquelle j'ai finalement compris comment configurer les registres du contrôleur pour l'entrée et la sortie.

Mais nous reviendrons sur les problèmes de programmation plus tard. Voyons enfin un cadeau inattendu.



En ouvrant la boîte, j'ai ressenti une courte sensation de tendresse. Le contrôleur est vraiment petit. Pardonnez aux fans de me pardonner une comparaison inappropriée, mais il est presque comme "bébé Yoda".



Selon les magasins en ligne, le contrôleur a deux options de configuration: sans bornier et faisceau, ainsi qu'avec eux. Compte tenu de ma courbure en termes de «soudure quelque chose», je suis très content d'avoir obtenu une version avec bornier et faisceau.

Je vais cacher quelques photos de plus du contrôleur et du harnais sous le spoiler.

Plus de photos




Partie II: Connexion du circuit


Comme je l'ai dit, nous allons connecter une LED au contrôleur (dans notre cas, "piranha"), mais tout le monde est possible (je n'en avais tout simplement pas d'autre). Nous contrôlerons la LED à l'aide du bouton. L'algorithme de fonctionnement est le suivant: une fois enfoncé le bouton et la LED est allumée, une nouvelle fois enfoncée est éteinte.

Décrivons brièvement les caractéristiques du contrôleur jours importants de notre cas:

  1. Nous alimenterons le contrôleur à partir du chargeur microUSB (dans mon cas 5V, 1 A);
  2. Le contrôleur possède 6 broches programmables, ainsi que les broches "+" et "-";
  3. Les sorties programmables peuvent être configurées soit comme une «entrée» soit comme une sortie;
  4. Le courant maximum à la sortie des bornes contrôlées est de 100 mA;
  5. Les conclusions ont différents modes, y compris PWM, mais aujourd'hui, nous n'irons pas aussi loin.

J'ai essayé de faire en sorte que vous puissiez comprendre, ma simple idée et même de mettre KiCad pour dessiner au moins quelques croquis.

Pour être honnête, je ne suis pas bon dans ces domaines, et je vois KiCad la première (ou la deuxième) fois de ma vie, donc si vous trouvez des erreurs, assurez-vous de me le dire afin que je puisse le réparer.





Comme vous l'espérez, nous comprenons des diagrammes que dans notre projet, nous utiliserons: le contrôleur lui-même, une planche à pain, une résistance de limitation de courant de 80 Ohms, un bouton similaire à KLS7-TS6601-5.0-180 et une LED similaire à BL-FL7600UEC, mais en fait, vous pouvez remplacez-les par ce qui est à portée de main.

La logique de connexion est la suivante:

  1. La sortie «-» du contrôleur est connectée au bus moins;
  2. La sortie «2» nous servira de «plus», connectez-la au bus correspondant sur la maquette;
  3. Conclusion "1" Fonctionnera à l'entrée et recevra un signal si le bouton ferme le circuit (lorsqu'il est enfoncé);
  4. La sortie «4» sera alimentée par notre LED, pour plus de commodité, je l'ai connectée à un autre bus «+» sur la platine, mais ce n'est pas nécessaire.
  5. L'arbre de Noël est un attribut de la nouvelle année et justifie à tous égards le titre de cet article.


Partie III: Programmation


Pour programmer le contrôleur, nous avons besoin de l'environnement de développement CannyLab, vous pouvez le télécharger sur le site du développeur. Au moment d'écrire ces lignes, la version actuelle était 1.41. L'environnement de développement ne nécessite pas d'installation, il vous suffit de décompresser l'archive dans un dossier.

Avant d'écrire du code pour notre circuit, assurons-nous que tout fonctionne pour nous.
Dans mon cas, la première chose à faire a été d'écrire le logiciel système sur le contrôleur.

Nous connectons le contrôleur via un câble microUSB à l'ordinateur. Dans mon cas, sur Windows 10, je n'ai pas eu à installer de pilote séparément.

Nous nous assurons que le contrôleur est connecté, sinon, cliquez sur le bouton "Connecter" (ressemble à deux maillons d'une chaîne)

Ensuite, vous devez appeler la boîte de dialogue à l'adresse «Périphérique -> Logiciel système -> Écrire» et sélectionner le fichier approprié (dans mon cas «c3tinyv00108.ccx»). Au cas où, je laisserais une capture d'écran ci-dessous.



Vous pouvez maintenant configurer le programme.

Le programme est formé en faisant glisser les éléments de gauche sur le champ blanc de l'espace de travail, puis en reliant les éléments entre eux.

Afin de faire clignoter la LED intégrée en mode PWM, nous avons besoin de 3 constantes, d'un bloc générateur de signal PWM et d'un registre d'écriture.

Nous connectons tout comme sur l'image.



Les valeurs des constantes et des registres peuvent être définies si vous double-cliquez dessus avec LMB.
Quelles sont ces mystérieuses valeurs de constantes?

  • "3000" - une période de 3 secondes;
  • "1500" - nous dit que notre LED de trois secondes ne brillera que d'un an et demi;
  • «1» - démarre simplement le générateur.

Afin de ne pas rechercher la valeur souhaitée du registre pendant une longue période, entrez la ligne «LED» dans la fenêtre «Filtre»

Nous écrivons le programme dans la mémoire du contrôleur.



Ensuite, déconnectez le contrôleur de l'ordinateur et passez le fil au chargement USB.

Le voyant vert clignote avec une période de trois secondes, donc tout fonctionne comme nous le voulions.



Quelques mots sur l'environnement de développement, tout d'abord, il vérifie les erreurs dans le diagramme avant de le télécharger sur le contrôleur, ce qui signifie qu'il y a une certaine «protection contre le fou». Deuxièmement, si vous cliquez sur le bouton sous la forme d'un "bug", l'émulateur du graphique s'ouvrira, mais plus à ce sujet une autre fois.

Passons au programme du circuit.

Assemblez le diagramme comme sur l'image.



Afin de ne pas chercher longtemps les noms des registres et des constantes, utilisez le filtre par analogie avec la capture d'écran.



Expliquez brièvement les blocs.

« /   » -  . .   2» 

Il nous définit la sortie 2 pour fournir + 5V, de même pour le quatrième canal

Puisque le canal 2 est en fait utilisé comme «+ 5 V», nous écrivons simplement la constante «1» (je pense que n'importe quel nombre peut être supérieur à zéro).

Remarque: La tension aux sorties du contrôleur dépend de la tension d'alimentation et peut varier selon la façon dont vous l'alimentez.

Mais le canal 4 donne ici + 5V, alors ce n'est pas le cas, en fonction de la pression sur un bouton.

Le canal 1 est configuré par défaut pour l'entrée et rien ne doit être configuré séparément, nous prenons sa valeur d'entrée en utilisant le bloc:

 « . .  1» 

Et nous passons au bloc de négation logique ("Non").

Le bloc "Non" est nécessaire pour que par défaut lorsque le circuit est allumé, notre LED s'allume immédiatement. Si ce bloc est supprimé et que le registre de canal 1 est connecté directement au détecteur de bord d'attaque, la LED sera éteinte par défaut.

Le détecteur de bord d'attaque se déclenche lorsque nous appuyons sur le bouton et ne donnera plus de signaux tant que nous n'aurons pas décidé d'appuyer à nouveau.

Pour enregistrer l'état actuel, un déclencheur «T» est utilisé. Si l'on est alimenté à l'entrée "T", et qu'une seule impulsion est alimentée à l'entrée "C" de la sortie du détecteur, alors notre déclencheur alternera l'état "0" et l'état "1" à la sortie. Exactement ce dont nous avons besoin.

Ensuite, le signal de la sortie de déclenchement va au registre de sortie du canal 4, qui à son tour alimente la LED.

Les deux graphiques peuvent être téléchargés depuis GitHub .

Partie IV: Conclusion








Les photos ci-dessous montrent que tout fonctionne (et mon doigt est toujours visible).
Au début de l'article, j'ai mentionné le garrot, mais j'étais trop paresseux pour le dénuder et l'étain, donc pour l'instant j'ai utilisé des fils séparés que j'ai encore des expériences avec Craftduino.

«Et qu'en est-il des plates-formes croisées?» - demandez-vous. J'ai essayé d'écrire du code sur le contrôleur en exécutant l'environnement de développement sur Linux via Wine. En conséquence, l'environnement de développement a commencé, mais le contrôleur lui-même ne voit pas l'ordinateur (peut-être devez-vous le «conjurer» avec Wine). Il n'est donc pas encore possible de parler de solutions multiplateformes prêtes à l'emploi.

Un autre inconvénient du contrôleur est le coût élevé par rapport à certains faux «chinois» pour Arduino, mais cela est partiellement compensé par la qualité. Le contrôleur est agréable à tenir entre vos mains, et tout a été emballé très soigneusement dans une boîte. Le contrôleur est même tombé une fois, mais jusqu'à présent, tout fonctionne.

Certes, dans les évaluations du contrôleur, je suis probablement un peu subjectif. C'est juste que je suis heureux que le produit soit domestique et que les développeurs, quoique un peu, soient impliqués dans les victoires de KAMAZ au rallye Dakar.

En général, j'étais satisfait du cadeau, le style visuel de programmation est très inhabituel pour moi, mais en même temps il a ses avantages. Je pense que les gens qui ont étudié la technologie électronique et l'informatique même à partir des manuels soviétiques et qui savaient quels registres, déclencheurs, multiplexeurs, etc. le souhaiteraient le plus.

UPD: Amis, j'étais un peu en retard et j'ai légèrement violé les règles Habr, j'ai donc supprimé les liens directs vers le site Web des développeurs du contrôleur afin que l'article ne soit pas publicitaire et conforme aux règles. Je pense que vous pouvez facilement trouver le lien pour télécharger l'environnement de développement CannyLab et les «preuves» de KAMAZ vous-même.

Source: https://habr.com/ru/post/fr482948/


All Articles