"Eins, zwei, drei - verbrenne den Weihnachtsbaum!" Oder mein erster Blick auf den CANNY 3 winzigen Controller

"Neujahr" ist Mandarinen, Olivier, Wochenenden und natürlich Geschenke.

Wie Sie wahrscheinlich schon vermutet haben, wurde ich plötzlich Besitzer des CANNY 3 Tiny-Mikrocontrollers. Es stimmt, ich mag DIY-Elektronik nicht besonders und als ich vor fast sieben Jahren das letzte Mal selbst versuchte, etwas an den Controller anzuschließen, habe ich mit dem Arduino-Klon Petersilie hinterleuchtet . Aber verschwinden die Guten nicht? Wir müssen noch sehen, was für ein Biest das ist.

Nach Angaben der Entwickler sind ihre Produkte weit verbreitet und werden sogar in KAMAZ installiert, das an der Rallye Dakar teilnimmt. Gleichzeitig besteht das Hauptmerkmal der Steuerungen darin, dass Sie für die Programmierung keine einzige Codezeile schreiben müssen. Das gesamte Programm ist als Blockschaltbild aufgebaut. Als Person fernab der DIY-Welt war ich sehr fasziniert.

Und alles wäre gut, aber es gibt einen Haken. Letztes Jahr wollte ich ehrlich gesagt ein Paar Dakarovsky KAMAZ-Trucks kaufen, aber ich habe es nicht geschafft, sie am Black Friday mit einem Rabatt zu bekommen. Also müssen wir irgendwie einfach und elegant aus dieser Situation herauskommen.

In diesem Artikel verbinden wir die Taste und die rote Piranha-LED mit dem Controller. Anschließend programmieren wir sie so, dass die LED durch Drücken der Taste ein- und ausgeschaltet wird.

Willst du mit mir ins neue Jahr kommen? Dann sind Sie bei cat herzlich willkommen.



Übrigens gab es auf Habré bereits einen Artikel über CANNY-Steuerungen , aber erstens gab es dort eine andere Steuerung, und zweitens war die Software zur Programmentwicklung von diesem Moment an veraltet. Infolgedessen habe ich ungefähr eine Stunde gebraucht, um herauszufinden, wie die in den Controller integrierte grüne LED zu blinken ist. Dies ist zum Teil der Grund, warum ich beschlossen habe, meine Versuche, den Controller zu "drosseln", mit Ihnen zu teilen. Und teilweise nur, weil ich gerne in Habr schreibe, wenn ich Freizeit habe.

Bevor wir weiter gehen, betrachte ich es als meine Pflicht, die Leser zu warnen. Trotz der Tatsache, dass dieser Artikel als "Tutorial" vorgestellt wird, bin ich kein Experte für Mikroelektronik oder Programmierung. Ich teile nur mit, was ich herausgefunden habe, um Ihnen Zeit zu sparen.

Dies ist, was der Artikel bespricht:

Teil I: Auspacken und kennenlernen
Teil II: Schaltung anschließen
Teil III: Programmierung
Teil IV: Fazit

Teil I: Auspacken und kennenlernen


Zunächst ist es notwendig, zumindest ein paar Worte über unseren Helden des Artikels zu sagen. Der CANNY 3 tiny controller ist die kleinste CANNY-Controller-Familie. Die älteren Brüder CANNY 3 tiny - die Steuerungen der Baureihen CANNY 7 und CANNY 5 können mit dem CAN-Bus des Autos arbeiten. Unser jüngerer Bruder sowie mein altes Zhiguli-Auto wissen nichts über den CAN-Bus und leben in Frieden.

Weitere Informationen zum Controller finden Sie im entsprechenden Wiki-Abschnitt . Die Entwickler haben auch einen Abschnitt im Forum , dank dem ich endlich herausgefunden habe, wie man die Controller-Register für die Ein- und Ausgabe konfiguriert.

Aber wir werden später auf Programmierprobleme zurückkommen. Schauen wir uns endlich ein unerwartetes Geschenk an.



Als ich die Schachtel öffnete, verspürte ich ein kurzes Gefühl der Zärtlichkeit. Der Controller ist wirklich klein. Verzeihen Sie den Fans, die mir einen unangemessenen Vergleich verzeihen, aber er ist fast wie "Baby Yoda".



Laut Online-Shops hat der Controller zwei Konfigurationsmöglichkeiten: ohne Klemmenblock und Kabelbaum sowie mit diesen. Angesichts meiner Krümmung in Bezug auf "etwas löten" bin ich sehr froh, dass ich eine Version mit einem Anschlussblock und einem Kabelbaum bekommen habe.

Ich werde noch ein paar Fotos des Controllers und des Gurtzeugs unter dem Spoiler verstecken.

Mehr Fotos




Teil II: Schaltung anschließen


Wie gesagt, wir werden eine LED an den Controller anschließen (in unserem Fall "Piranha"), aber jede ist möglich (ich hatte gerade keine andere). Wir werden die LED mit der Taste steuern. Der Betriebsalgorithmus ist wie folgt: Sobald die Taste gedrückt und die LED an ist, ist das nochmalige Drücken aus.

Beschreiben wir kurz die Funktionen des Controllers an wichtigen Tagen in unserem Fall:

  1. Wir werden den Controller über das Micro-USB-Ladegerät mit Strom versorgen (in meinem Fall 5 V, 1 A).
  2. Der Controller verfügt über 6 programmierbare Pins sowie die Pins „+“ und „-“.
  3. Programmierbare Ausgänge können entweder als „Eingang“ oder als Ausgang konfiguriert werden.
  4. Der maximale Strom am Ausgang der gesteuerten Klemmen beträgt 100 mA;
  5. Die Schlussfolgerungen haben verschiedene Modi, einschließlich PWM, aber heute werden wir nicht so tief gehen.

Ich habe versucht, es so zu machen, dass Sie meine einfache Idee verstehen und KiCad sogar dazu bringen konnten, zumindest eine Skizze zu zeichnen.

Um ehrlich zu sein, bin ich in solchen Angelegenheiten nicht gut und sehe KiCad zum ersten (oder zweiten) Mal in meinem Leben. Wenn Sie also Fehler finden, teilen Sie mir dies unbedingt mit, damit ich sie beheben kann.





Wie Sie hoffen, verstehen wir aus den Diagrammen, dass wir in unserem Projekt Folgendes verwenden werden: den Controller selbst, ein Steckbrett, einen Strombegrenzungswiderstand von 80 Ohm, eine Taste ähnlich KLS7-TS6601-5.0-180 und eine LED ähnlich BL-FL7600UEC, aber in Wirklichkeit können Sie dies Ersetzen Sie sie mit dem, was Ihnen zur Verfügung steht.

Die Verbindungslogik ist wie folgt:

  1. Der Ausgang „-“ der Steuerung ist mit dem Minusbus verbunden;
  2. Ausgang „2“ dient als „Plus“, verbinden Sie ihn mit dem entsprechenden Bus auf dem Steckbrett;
  3. Fazit "1" Wirkt am Eingang und empfängt ein Signal, wenn der Knopf den Stromkreis schließt (wenn er gedrückt wird);
  4. Der Ausgang „4“ wird von unserer LED mit Strom versorgt. Der Einfachheit halber habe ich ihn an einen anderen „+“ - Bus auf dem Steckbrett angeschlossen, dies ist jedoch nicht erforderlich.
  5. Der Weihnachtsbaum ist ein Attribut des neuen Jahres und rechtfertigt in jeder Hinsicht den Titel dieses Artikels.


Teil III: Programmierung


Um den Controller zu programmieren, benötigen wir die CannyLab-Entwicklungsumgebung, die Sie von der Entwickler-Website herunterladen können. Zum Zeitpunkt des Schreibens war die aktuelle Version 1.41. Die Entwicklungsumgebung erfordert keine Installation, Sie müssen lediglich das Archiv in einen Ordner entpacken.

Bevor wir Code für unsere Schaltung schreiben, stellen wir sicher, dass alles für uns funktioniert.
In meinem Fall musste zuerst die Systemsoftware auf die Steuerung geschrieben werden.

Wir verbinden den Controller über ein Micro-USB-Kabel mit dem Computer. In meinem Fall musste ich unter Windows 10 keine Treiber separat installieren.

Wir stellen sicher, dass der Controller verbunden ist. Wenn nicht, klicken Sie auf die Schaltfläche "Verbinden" (sieht aus wie zwei Glieder in einer Kette).

Als nächstes müssen Sie den Dialog unter der Adresse "Gerät -> Systemsoftware -> Schreiben" aufrufen und die entsprechende Datei auswählen (in meinem Fall "c3tinyv00108.ccx"). Nur für den Fall, ich werde unten einen Screenshot hinterlassen.



Jetzt können Sie das Programm konfigurieren.

Das Programm wird gebildet, indem die Elemente links auf das weiße Feld des Arbeitsbereichs gezogen und dann miteinander verbunden werden.

Um die eingebaute LED im PWM-Modus zu blinken, benötigen wir 3 Konstanten, einen PWM-Signalgeneratorblock und ein Schreibregister.

Wir verbinden alles wie auf dem Bild.



Werte für Konstanten und Register können eingestellt werden, wenn Sie mit LMB darauf doppelklicken.
Was sind diese mysteriösen Werte von Konstanten?

  • "3000" - eine Periode von 3 Sekunden;
  • "1500" - sagt uns, dass unsere LED von drei Sekunden nur anderthalb Sekunden leuchtet;
  • "1" - startet nur den Generator.

Um längere Zeit nicht nach dem gewünschten Wert des Registers zu suchen, tragen Sie im Fenster „Filter“ die Zeile „LED“ ein

Wir schreiben das Programm in den Speicher der Steuerung.



Trennen Sie als Nächstes den Controller vom Computer und schalten Sie das Kabel auf USB-Aufladung um.

Das grüne Licht blinkt drei Sekunden lang, damit alles so funktioniert, wie wir es wollten.



Ein paar Worte zur Entwicklungsumgebung: Zunächst wird das Diagramm auf Fehler überprüft, bevor es auf den Controller hochgeladen wird. Dies bedeutet, dass ein gewisser „Schutz vor dem Narren“ besteht. Zweitens, wenn Sie auf die Schaltfläche in Form eines "Fehlers" klicken, wird der Emulator des Diagramms geöffnet, aber ungefähr zu einem anderen Zeitpunkt.

Fahren wir mit dem Programm für die Schaltung fort.

Bauen Sie das Diagramm wie im Bild zusammen.



Um lange Zeit nicht nach Namen von Registern und Konstanten zu suchen, verwenden Sie den Filter analog zum Screenshot.



Erklären Sie kurz die Blöcke.

« /   » -  . .   2» 

Es setzt uns Ausgang 2 auf + 5V, ähnlich wie für den vierten Kanal

Da Kanal 2 tatsächlich als "+ 5 V" verwendet wird, schreiben wir einfach die Konstante "1" hinein (ich denke, jede Zahl kann größer als Null sein).

Hinweis: Die Spannung an den Controller-Ausgängen hängt von der Versorgungsspannung ab und kann je nach Stromversorgung variieren.

Aber Kanal 4 gibt hier + 5V aus, dann nicht, je nach Knopfdruck.

Kanal 1 ist standardmäßig für den Eingang konfiguriert und muss nicht separat konfiguriert werden. Der Eingangswert wird über den Block abgerufen:

 « . .  1» 

Und wir kommen zum Block der logischen Verneinung ("Nicht").

Der Block "Nicht" wird benötigt, damit beim Einschalten der Schaltung unsere LED sofort leuchtet. Wenn dieser Block entfernt wird und das Kanalregister 1 direkt mit dem Vorderkantendetektor verbunden ist, wird die LED standardmäßig ausgeschaltet.

Der Vorderkantendetektor wird beim Drücken der Taste ausgelöst und gibt erst dann weitere Signale aus, wenn wir ihn erneut drücken.

Um den aktuellen Status zu speichern, wird ein "T" -Trigger verwendet. Wenn einer an den Eingang „T“ und ein einzelner Impuls vom Detektorausgang an den Eingang „C“ angelegt wird, wechselt unser Trigger den Zustand „0“ und den Zustand „1“ am Ausgang. Genau das, was wir brauchen.

Als nächstes geht das Signal vom Triggerausgang zum Ausgangsregister von Kanal 4, das seinerseits die LED speist.

Beide Charts können von GitHub heruntergeladen werden.

Teil IV: Fazit








Die Bilder unten zeigen, dass alles funktioniert (und mein Finger noch sichtbar ist).
Am Anfang des Artikels erwähnte ich das Tourniquet, aber ich war zu faul, um es abzustreifen und zu verzinnen. Deshalb habe ich vorerst separate Drähte verwendet, die ich noch aus Experimenten mit Craftduino habe.

"Und was ist mit Cross-Plattform?" - Sie fragen. Ich habe versucht, Code auf den Controller zu schreiben, indem ich die Entwicklungsumgebung unter Linux über Wine ausgeführt habe. Infolgedessen wurde die Entwicklungsumgebung gestartet, aber der Controller selbst erkennt den Computer nicht (möglicherweise müssen Sie ihn mit Wine „zaubern“). Es ist also noch nicht möglich, über plattformübergreifende Lösungen zu sprechen.

Ein weiterer Nachteil des Controllers sind die hohen Kosten im Vergleich zu einigen „chinesischen“ Fälschungen für Arduino, die jedoch teilweise durch die Qualität ausgeglichen werden. Der Controller liegt gut in der Hand und alles wurde sehr sorgfältig in einer Schachtel verpackt. Der Controller ist sogar einmal abgestürzt, aber bisher funktioniert alles.

Zwar bin ich nach Einschätzung des Controllers wohl etwas subjektiv. Ich bin nur froh, dass das Produkt einheimisch ist und dass die Entwickler, wenn auch nur ein wenig, an den Siegen von KAMAZ bei der Rallye Dakar beteiligt sind.

Generell hat mich das Geschenk gefreut, der visuelle Programmierstil ist für mich sehr ungewöhnlich, hat aber auch seine Vorteile. Ich denke, dass Leute, die elektronische Technologie und Informatik sogar aus sowjetischen Lehrbüchern studiert haben und wissen, was Register, Trigger, Multiplexer usw. am meisten mögen.

UPD: Freunde, ich war ein wenig im Rückstand und habe die Habr-Regeln leicht verletzt. Deshalb habe ich direkte Links zur Entwickler-Website des Controllers entfernt, damit der Artikel nicht wie Werbung aussieht und den Regeln entspricht. Ich denke, dass Sie den Link zum Herunterladen der CannyLab-Entwicklungsumgebung und die „Beweise“ für KAMAZ selbst leicht finden können.

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


All Articles