Inhaltsverzeichnis:

HackerBox 0051: MCU Lab - Gunook
HackerBox 0051: MCU Lab - Gunook

Video: HackerBox 0051: MCU Lab - Gunook

Video: HackerBox 0051: MCU Lab - Gunook
Video: MCU LAB Demo with Potentiometer and OLED Display 2024, Juli
Anonim
HackerBox 0051: MCU-Labor
HackerBox 0051: MCU-Labor

Grüße an HackerBox-Hacker auf der ganzen Welt! HackerBox 0051 präsentiert das HackerBox MCU Lab. Das MCU Lab ist eine Entwicklungsplattform zum Testen, Entwickeln und Prototyping mit Mikrocontrollern und Mikrocontrollermodulen. Ein Arduino Nano, ein ESP32-Modul und eine SMT32 Black Pill werden verwendet, um die Funktionsblöcke des MCU-Labors zu erkunden. Die Funktionsblöcke von MCU Lab umfassen Schalter, Tasten, LEDs, ein OLED-Display, Summer, Potentiometer, RGB-Pixel, Logikpegelumsetzer, VGA-Ausgang, PS/2-Tastatureingang, serielle USB-Schnittstelle und zwei lötfreie Prototyping-Bereiche.

Diese Anleitung enthält Informationen zum Einstieg in die HackerBox 0051, die Sie hier erwerben können, solange der Vorrat reicht. Wenn Sie jeden Monat eine solche HackerBox direkt in Ihre Mailbox erhalten möchten, abonnieren Sie bitte HackerBoxes.com und machen Sie mit bei der Revolution!

HackerBoxes ist der monatliche Abonnement-Box-Service für Hardware-Hacker und Enthusiasten von Elektronik und Computertechnologie. Erleben Sie mit uns das HACK LIFE.

Schritt 1: Inhaltsliste für HackerBox 0051

  • MCU-Modul 1: Arduino Nano 5V, 16MHz
  • MCU-Modul 2: WEMOS ESP32 Lite
  • MCU-Modul 3: STM32F103C8T6 Schwarze Pille
  • Exklusive MCU Lab-Leiterplatte
  • FT232RL USB-Seriell-Adapter
  • OLED 128x64 Display I2C 0,96 Zoll
  • Bidirektionaler 8-Bit Logic Level Shifter
  • WS2812B RGB-SMD-LED
  • Vier taktile Tasten zur Oberflächenmontage
  • Vier rote, diffus 5mm LEDs
  • Piezo-Summer
  • HD15 VGA-Anschluss
  • Mini-DIN-PS/2-Tastaturanschluss
  • 100K Ohm Potentiometer
  • DIP-Schalter mit 8 Positionen
  • AMS1117 3.3V Linearregler SOT223
  • Zwei 22uF Tantalkondensatoren 1206 SMD
  • Zehn 680-Ohm-Widerstände
  • Vier selbstklebende PCB-Füße aus Gummi
  • Zwei lötfreie Mini-Breadboards mit 170 Punkten
  • Elf 8-polige Buchsenleisten
  • 40-poliger Breakaway-Header
  • Bündel mit 65 männlichen Überbrückungsdrähten
  • Platinenaufkleber mit erhobener Faust
  • Hack The Planet Smiley-Piraten-Aufkleber
  • Exklusiver HackerBox-Schlüsselanhänger "Entfernen vor dem Flug"

Einige andere Dinge, die hilfreich sein werden:

  • Lötkolben, Lötzinn und grundlegende Lötwerkzeuge
  • Computer zum Ausführen von Softwaretools

Am wichtigsten sind Abenteuerlust, Hackergeist, Geduld und Neugier. Das Bauen und Experimentieren mit Elektronik ist zwar sehr lohnend, kann jedoch knifflig, herausfordernd und manchmal sogar frustrierend sein. Das Ziel ist Fortschritt, nicht Perfektion. Wenn man hartnäckig bleibt und das Abenteuer genießt, kann man viel Befriedigung aus diesem Hobby ziehen. Machen Sie jeden Schritt langsam, achten Sie auf die Details und haben Sie keine Angst, um Hilfe zu bitten.

In den HackerBoxes FAQ gibt es eine Fülle von Informationen für aktuelle und zukünftige Mitglieder. Fast alle nicht-technischen Support-E-Mails, die wir erhalten, werden dort bereits beantwortet. Wir freuen uns daher sehr, dass Sie sich ein paar Minuten Zeit nehmen, um die FAQ zu lesen.

Schritt 2: HackerBoxes MCU Lab

HackerBoxes MCU Lab
HackerBoxes MCU Lab

Das MCU Lab ist eine kompakte, ausgefeilte Version einer Entwicklungsplattform, die wir zum Prototyping und Testen verschiedener Mikrocontroller (MCU)-basierter Designs verwenden. Es ist sehr nützlich für die Arbeit mit MCU-Modulen (wie einem Arduino Nano, ESP32 DevKit usw.) oder einzelnen MCU-Gerätepaketen (wie ATMEGA328s, ATtiny85s, PICs usw.). Eine Ziel-MCU kann in eines der lötfreien Mini-Steckplatinen platziert werden. Zwei MCUs können über beide Steckbretter miteinander verbunden werden oder einer der Steckbrettplätze kann für andere Schaltungen verwendet werden.

Die "Funktionsblöcke" des MCU Lab sind in Buchsenleisten unterteilt, die denen eines Arduino UNO ähneln. Die Buchsenleisten sind mit Steckbrückenstiften kompatibel.

Schritt 3: Montieren Sie das HackerBoxes MCU Lab

Bauen Sie das HackerBoxes MCU Lab zusammen
Bauen Sie das HackerBoxes MCU Lab zusammen

SMD-KOMPONENTEN AUF DER RÜCKSEITE DER BOARD

Beginnen Sie mit der Montage des Linearreglers AMS1117 (SOT 233-Package) und der beiden 22uF-Filterkondensatoren auf der Rückseite der Platine. Beachten Sie, dass eine Seite jedes Kondensator-Siebdrucks rechteckig und die andere Seite achteckig ist. Die Kondensatoren sollten so ausgerichtet sein, dass der dunkle Streifen auf dem Gehäuse mit der achteckigen Siebdruckseite ausgerichtet ist.

WEITER MIT KOMPONENTEN AUF DER VORDERSEITE

Löten Sie die WS2812B RGB-LED. Richten Sie die weiß markierte Ecke jeder LED so aus, dass sie der mit Laschen versehenen Ecke entspricht, wie auf dem PCB-Siebdruck gezeigt.

Vier taktile SMD-Tasten

Vier rote LEDs mit vier Widerständen

Level Shifter mit VA-Pin am nächsten 3V3-Markierung und VB-Pin am nächsten 5V-Markierung. Das Level Shifter-Modul kann bündig auf der Platine montiert werden, indem die Header an das Modul gelötet und dann die schwarzen Kunststoff-Abstandshalter von den Headern geschoben werden, bevor das Modul an der MCU Lab-Leiterplatte montiert wird. Es ist auch in Ordnung, die Abstandshalter drauf zu lassen.

Zum Anschluss des FT232-Moduls können zwei Streifen des Headers abgebrochen werden. Ein kleinerer 4-poliger Header-Abschnitt kann auch für den 5V/GND-Header direkt neben dem FT232-Modul verwendet werden.

Bestücken Sie zunächst den weiblichen VGA-Header, der dem HD15-VGA-Anschluss und der Tastaturbuchse am nächsten liegt. Bevölkern Sie jedoch NICHT den zusätzlichen Header neben dem einen oder die fünf Widerstände zwischen diesen beiden Headern. Spezifische Optionen für die Videosignalschnittstelle werden später erörtert.

Bestücken Sie die anderen neun Buchsenleisten.

Entfernen Sie den Kleber von der Rückseite der beiden lötfreien Steckplatinen, um sie an der MCU Lab-Platine zu befestigen.

Positionieren Sie klebende Gummifüße an der Unterseite der MCU Lab PCB, um Ihre Werkbank vor Kratzern zu schützen.

HANDHABUNG DER STROMEINGÄNGE

Es gibt mindestens zwei und wahrscheinlicher bis zu vier Stellen, an denen Strom in das MCU-Labor gelangen kann. Dies kann zu Problemen führen. Beachten Sie daher immer die folgenden Hinweise:

Die mit 5V gekennzeichneten Header-Punkte sind alle verbunden. Die 5V-Schiene wird auch an die Tastaturbuchse, den Pegelumsetzer und die WS2812B RGB-LED angeschlossen. Die 5V-Schiene kann mit Strom versorgt werden, indem der FT232 an USB angeschlossen wird, der vierpolige Stromanschluss an eine externe Stromversorgung angeschlossen wird oder indem ein Jumper von einem der 5V-Pins auf der Platine an ein mit Strom versorgtes 5V-Modul (normalerweise über USB gespeist) angeschlossen wird).

Ebenso sind die GND-Pins alle verbunden. Sie werden mit dem USB GND des FT232 verbunden (vorausgesetzt, USB ist mit dem FT232 verbunden). Sie können auch mit einem Jumper zwischen einem von ihnen und einem mit Strom versorgten Modul geerdet werden, wie für das 5-V-Netz beschrieben.

Die 3V3-Schiene wird vom Regler auf der Rückseite der Platine angesteuert. Es ist nur eine Quelle und sollte (im Gegensatz zur 5V-Schiene) nicht von Modulen oder anderen Schaltkreisen angesteuert werden, da es direkt vom Regler auf der 5V-Schiene angesteuert wird.

Schritt 4: Arduino Nano MCU-Modul

Arduino Nano-MCU-Modul
Arduino Nano-MCU-Modul

Eines der gängigsten MCU-Module ist heutzutage der Arduino Nano. Das mitgelieferte Arduino Nano Board wird mit Header-Pins geliefert, die jedoch nicht mit dem Modul verlötet sind. Lassen Sie die Stifte vorerst weg. Führen Sie diese ersten Tests am Arduino Nano-Modul durch, bevor Sie die Header-Pins anlöten. Es wird lediglich ein microUSB-Kabel benötigt und das Arduino Nano Board kommt so wie es ist aus der Tasche.

Das Arduino Nano ist ein oberflächenmontierbares, Steckbrett-freundliches, miniaturisiertes Arduino-Board mit integriertem USB. Es ist erstaunlich voll funktionsfähig und leicht zu hacken.

Merkmale:

  • Mikrocontroller: Atmel ATmega328P
  • Spannung: 5V
  • Digitale I/O-Pins: 14 (6 PWM)
  • Analoge Eingangspins: 8
  • Gleichstrom pro E/A-Pin: 40 mA
  • Flash-Speicher: 32 KB (2 KB für Bootloader)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Taktfrequenz: 16 MHz
  • Abmessungen: 17 mm x 43 mm

Diese besondere Variante des Arduino Nano ist der schwarze Robotdyn Nano. Es enthält einen integrierten MicroUSB-Port, der mit einem CH340G USB/Serial Bridge-Chip verbunden ist. Detaillierte Informationen zum CH340 (und ggf. Treibern) finden Sie hier.

Wenn Sie den Arduino Nano zum ersten Mal an einen USB-Port Ihres Computers anschließen, sollte die grüne Betriebsanzeige aufleuchten und kurz darauf sollte die blaue LED langsam zu blinken beginnen. Dies geschieht, weil der Nano mit dem BLINK-Programm vorinstalliert ist, das auf dem brandneuen Arduino Nano läuft.

SOFTWARE: Wenn Sie die Arduino IDE noch nicht installiert haben, können Sie sie von Arduino.cc herunterladen

Stecken Sie den Nano in das MicroUSB-Kabel und das andere Ende des Kabels in einen USB-Port des Computers. Starten Sie die Arduino IDE-Software. Wählen Sie in der IDE unter Tools>Board "Arduino Nano" und unter Tools>Prozessor "ATmega328P (old bootloader)" aus. Wählen Sie den entsprechenden USB-Port unter Tools>Port aus (es ist wahrscheinlich ein Name mit "wchusb" darin).

Zum Schluss laden Sie einen Beispielcode hoch: Datei->Beispiele->Grundlagen->Blinken

Blink ist eigentlich der Code, der auf dem Nano vorgeladen wurde und jetzt laufen sollte, um die blaue LED langsam zu blinken. Dementsprechend ändert sich nichts, wenn wir diesen Beispielcode laden. Lassen Sie uns stattdessen den Code ein wenig ändern.

Wenn Sie genau hinsehen, können Sie sehen, dass das Programm die LED einschaltet, 1000 Millisekunden (eine Sekunde) wartet, die LED ausschaltet, eine weitere Sekunde wartet und dann alles wieder tut - für immer.

Ändern Sie den Code, indem Sie beide "delay(1000)"-Anweisungen in "delay(100)" ändern. Diese Änderung führt dazu, dass die LED zehnmal schneller blinkt, oder?

Laden wir den geänderten Code in den Nano, indem Sie auf die Schaltfläche HOCHLADEN (das Pfeilsymbol) direkt über Ihrem geänderten Code klicken. Beobachten Sie unten den Code für die Statusinfo: "Kompilieren" und dann "Hochladen". Schließlich sollte die IDE "Uploading Complete" anzeigen und Ihre LED sollte schneller blinken.

Wenn ja, herzlichen Glückwunsch! Sie haben gerade Ihren ersten eingebetteten Code gehackt.

Wenn Ihre Fast-Blink-Version geladen ist und ausgeführt wird, können Sie den Code erneut ändern, damit die LED zweimal schnell blinkt, und dann einige Sekunden warten, bevor Sie den Vorgang wiederholen. Versuche es! Wie wäre es mit anderen Mustern? Sobald es Ihnen gelungen ist, ein gewünschtes Ergebnis zu visualisieren, zu codieren und zu beobachten, dass es wie geplant funktioniert, haben Sie einen enormen Schritt in Richtung eines kompetenten Hardware-Hackers getan.

Nachdem Sie den Betrieb des Nano-Moduls bestätigt haben, löten Sie die Header-Pins darauf. Sobald die Header verbunden sind, kann das Modul einfach in einem der lötfreien Steckbretter des MCU Lab verwendet werden. Dieser Prozess des Testens eines MCU-Moduls durch Herunterladen eines einfachen Testcodes, Modifizieren und erneutes Herunterladen ist eine bewährte Vorgehensweise, wenn Sie ein neues oder ein anderes MCU-Modul verwenden.

Wenn Sie zusätzliche einführende Informationen zum Arbeiten im Arduino-Ökosystem wünschen, empfehlen wir Ihnen, den Leitfaden für den HackerBoxes-Starter-Workshop zu lesen, der mehrere Beispiele und einen Link zu einem PDF-Arduino-Lehrbuch enthält.

Schritt 5: Erkunden Sie das MCU-Labor mit Arduino Nano

Entdecken Sie das MCU-Labor mit Arduino Nano
Entdecken Sie das MCU-Labor mit Arduino Nano

POTENTIOMETER

Verbinden Sie den Mittelstift des Potentiometers mit dem Nano-Pin A0.

Laden und ausführen: Beispiele > Analog > AnalogInput

Im Beispiel wird standardmäßig die Onboard-LED des Nano verwendet. Drehen Sie das Potentiometer, um die Blinkgeschwindigkeit zu ändern.

Ändern:

Ändern Sie im Code LedPin=13 in 4

Jumper von Nano Pin 4 (und GND) auf eine der roten LEDs des MCU Lab.

SUMMER

Jumper vom Summer zu Nano Pin 8. Stellen Sie sicher, dass die Masse der Platine mit der Masse des mit Strom versorgten Nano verbunden ist, da die Masse des Summers fest mit dem Massenetz der Platine verdrahtet ist.

Laden und ausführen: Beispiele > Digital > ToneMelody

OLED-DISPLAY

Verwenden Sie in der Arduino-IDE den Bibliotheksmanager, um "ssd1306" von Alexey Dyna zu installieren.

OLED anschließen: GND an GND, VCC an 5V, SCL an Nanos A5, SDA an Nanos A4

Laden und ausführen: Beispiele > ssd1306 > demos > ssd1306_demo

WS2812B RGB-LED

Verwenden Sie in der Arduino IDE den Bibliotheksmanager, um FastLED zu installieren

Verbinden Sie den Header-Pin des WS2812 mit dem Pin 5 des Nano.

Laden: Beispiele > FastLED > ColorPalette

Ändern Sie NUM_LEDS in 1 und LED_TYPE in WS2812B

Kompilieren und ausführen

SCHREIBEN SIE EINEN CODE, UM DIE TASTEN UND SCHALTER ZU ÜBEN

Denken Sie daran, pinMode (INPUT_PULLUP) zu verwenden, um eine Schaltfläche zu lesen, ohne einen Widerstand hinzuzufügen.

VERBINDEN SIE EINIGE DIESER BEISPIELE ZUSAMMEN

Zum Beispiel können Sie Ausgaben auf interessante Weise zyklisch durchlaufen und Zustände oder Eingabewerte auf dem OLED- oder seriellen Monitor anzeigen.

Schritt 6: WEMOS ESP32 Lite

WEMOS ESP32 Lite
WEMOS ESP32 Lite

Der ESP32-Mikrocontroller (MCU) ist ein kostengünstiges, stromsparendes System auf einem Chip (SOC) mit integriertem Wi-Fi und Dual-Mode-Bluetooth. Der ESP32 verwendet einen Tensilica Xtensa LX6-Kern und enthält integrierte Antennenschalter, HF-Balun, Leistungsverstärker, rauscharmen Empfangsverstärker, Filter und Power-Management-Module. (Wikipedia)

Das WEMOS ESP32 Lite-Modul ist kompakter als die Vorgängerversion, was die Verwendung auf einem lötfreien Steckbrett erleichtert.

Machen Sie Ihren ersten Test des WEMOS ESP32-Moduls, bevor Sie die Header-Pins auf das Modul löten.

Richten Sie das ESP32-Supportpaket in der Arduino-IDE ein.

Wählen Sie unter Tools>Board unbedingt "WeMos LOLIN32" aus.

Laden Sie den Beispielcode unter Dateien>Beispiele>Grundlagen>Blink und programmieren Sie ihn auf das WeMos LOLIN32

Das Beispielprogramm sollte die LED am Modul zum Blinken bringen. Experimentieren Sie mit dem Ändern der Verzögerungsparameter, um die LED mit verschiedenen Mustern blinken zu lassen. Dies ist immer eine gute Übung, um Vertrauen in die Programmierung eines neuen Mikrocontrollermoduls aufzubauen.

Sobald Sie mit der Bedienung des Moduls und der Programmierung vertraut sind, löten Sie die beiden Reihen von Stiftleisten vorsichtig ein und testen Sie die Ladeprogramme erneut.

Schritt 7: ESP32-Videogenerierung

Image
Image

Dieses Video zeigt die ESP32 VGA Library und ein sehr schönes, einfaches Tutorial aus dem Labor von bitluni.

Die gezeigte 3-Bit-Implementierung (8 Farben) verwendet direkte Drahtbrücken zwischen dem ESP32-Modul und dem VGA-Anschluss. Das Herstellen dieser Verbindungen über den VGA-Header des MCU Lab ist ziemlich einfach, da keine zusätzlichen Komponenten erforderlich sind.

Abhängig von der verwendeten MCU, ihrem Spannungspegel, den Pixelauflösungen und den gewünschten Farbtiefen gibt es verschiedene Kombinationen von Inline-Widerständen und Widerstandsnetzwerken, die zwischen der MCU und dem VGA-Header platziert werden können. Wenn Sie sich für den dauerhaften Einsatz von Inline-Widerständen entscheiden, können diese auf die MCU Lab-Platine aufgelötet werden. Wenn Sie flexibel bleiben möchten und vor allem komplexere Lösungen verwenden möchten, empfiehlt es sich, keine Widerstände einzulöten und einfach über die lötfreien Platinen und den VGA-Header die notwendigen Widerstände anzuschließen.

Um beispielsweise den am Ende des Videos gezeigten 14-Bit-Farbmodus von Bituni zu implementieren, kann das ESP32-Modul auf einer der lötfreien Mini-Platinen positioniert werden und die andere lötfreie Platine kann verwendet werden, um die Widerstandsleitern anzuschließen.

Hier sind einige andere Beispiele:

In HackerBox 0047 steuert ein Arduino Nano einen einfachen VGA-Ausgang mit 4 Widerständen an.

Auf ESP32 wird ein VIC20-Emulator mit FabGL und 6 Widerständen implementiert.

Implementieren Sie einen BASIC-PC mit ESP32 und 3 Widerständen.

Spielen Sie Space Invaders auf ESP32 mit FabGL und 6 Widerständen.

Generieren Sie einen VGA-Ausgang auf STM32 mit 6 Widerständen.

Gleichzeitige Text- und Grafikebenen auf STM32 mit Videodemonstration.

Schritt 8: STM32F103C8T6 Black Pill MCU-Modul

TXS0108E 8-Bit-Logik-Level-Shifter
TXS0108E 8-Bit-Logik-Level-Shifter

Die Black Pill ist ein STM32-basiertes MCU-Modul. Es ist eine verbesserte Variante der üblichen Blauen Pille und der weniger verbreiteten Roten Pille.

Die Black Pill verfügt über den 32-Bit-ARM-M3-Mikrocontroller STM32F103C8T6 (Datenblatt), einen vierpoligen ST-Link-Header, einen MicroUSB-Anschluss und eine Benutzer-LED auf PB12. Für den korrekten Betrieb des USB-Ports wird der richtige Pull-Up-Widerstand am PA12 installiert. Dieser Pull-Up erforderte normalerweise eine Board-Modifikation auf anderen Pill Boards.

Obwohl sie dem Arduino Nano ähnlich sieht, ist die Black Pill weitaus leistungsfähiger. Der 32bit STM32F103C8T6 ARM Mikrocontroller kann mit 72 MHz laufen. Es kann Einzelzyklus-Multiplikation und Hardware-Division durchführen. Es verfügt über 64 KByte Flash-Speicher und 20 KByte SRAM.

Programmierung des STM32 über die Arduino IDE.

Schritt 9: TXS0108E 8-Bit Logic Level Shifter

Der TXS0108E (Datenblatt) ist ein bidirektionaler 8-Bit Logic Level Shifter. Das Modul ist für Level-Shift-Signale zwischen 3,3V und 5V ausgelegt.

Da die Signalpegelkanäle bidirektional sind, können potenzialfreie Eingänge dazu führen, dass die entsprechenden Ausgänge unbeabsichtigt angesteuert werden. Eine Ausgangsfreigabe-(OE)-Steuerung wird bereitgestellt, um in solchen Szenarien zu schützen. Je nachdem, wie der Schalthebel angeschlossen ist, sollte darauf geachtet werden, dass ein Ausgang des Schalthebels (entweder "absichtlich" oder aufgrund eines schwebenden Eingangs auf der anderen Seite) niemals einen Ausgang eines anderen Geräts kreuzen darf.

Der OE-Pin bleibt in den Leiterplattenspuren getrennt. Für den Anschluss von OE und 3V3 befindet sich unterhalb des Moduls eine zweipolige Stiftleiste. Das Kurzschließen des zweipoligen Headers (mit einem Stück Draht oder einem Jumperblock) verbindet OE mit 3V3, wodurch der IC seine Ausgänge ansteuern kann. An den OE-Pin können auch ein Pulldown-Widerstand und eine Logiksteuerung angeschlossen werden.

Schritt 10: HackLife

HackLife
HackLife

Wir hoffen, dass Ihnen das HackerBox-Abenteuer in diesem Monat in Elektronik und Computertechnologie gefällt. Melde dich und teile deinen Erfolg in den Kommentaren unten oder in der HackerBoxes Facebook-Gruppe. Denken Sie auch daran, dass Sie jederzeit eine E-Mail an [email protected] senden können, wenn Sie eine Frage haben oder Hilfe benötigen.

Was kommt als nächstes? Schließen Sie sich der Revolution an. Lebe das HackLife. Erhalten Sie jeden Monat eine Kühlbox mit hackbarer Ausrüstung direkt in Ihre Mailbox. Surfen Sie zu HackerBoxes.com und melden Sie sich für Ihr monatliches HackerBox-Abonnement an.

Empfohlen: