Inhoudsopgave:

HackerBox 0051: MCU Lab - Ajarnpa
HackerBox 0051: MCU Lab - Ajarnpa

Video: HackerBox 0051: MCU Lab - Ajarnpa

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

Groeten HackerBox Hackers over de hele wereld! HackerBox 0051 presenteert het HackerBox MCU Lab. Het MCU Lab is een ontwikkelplatform voor het testen, ontwikkelen en prototypen van microcontrollers en microcontrollermodules. Een Arduino Nano, ESP32-module en SMT32 Black Pill worden gebruikt om de functieblokken van het MCU Lab te verkennen. De functieblokken van het MCU Lab omvatten schakelaars, knoppen, LED's, een OLED-display, zoemer, potentiometer, RGB-pixel, logische niveauverschuiver, VGA-uitgang, PS/2-toetsenbordingang, USB seriële interface en dubbele soldeerloze prototyping-gebieden.

Deze handleiding bevat informatie om aan de slag te gaan met HackerBox 0051, die u hier kunt kopen zolang de voorraad strekt. Als je elke maand zo'n HackerBox in je mailbox wilt ontvangen, schrijf je dan in op HackerBoxes.com en doe mee aan de revolutie!

HackerBoxes is de maandelijkse abonnementsservice voor hardwarehackers en liefhebbers van elektronica en computertechnologie. Doe mee met het leven van het HACK LIFE.

Stap 1: Inhoudslijst voor HackerBox 0051

  • MCU-module 1: Arduino Nano 5V, 16MHz
  • MCU-module 2: WEMOS ESP32 Lite
  • MCU-module 3: STM32F103C8T6 zwarte pil
  • Exclusieve MCU Lab-printplaat
  • FT232RL USB seriële adapter
  • OLED 128x64 Display I2C 0,96 inch
  • Bidirectionele 8-bits logische niveauverschuiver
  • WS2812B RGB SMD-LED
  • Vier tactiele knoppen voor opbouwmontage
  • Vier rode diffuse 5 mm LED's
  • Piëzo-zoemer
  • HD15 VGA-connector
  • Mini-DIN PS/2-toetsenbordconnector
  • 100K Ohm Potentiometer
  • 8 standen DIP-schakelaar
  • AMS1117 3.3V lineaire regelaar SOT223
  • Twee 22uF tantaalcondensatoren 1206 SMD
  • Tien weerstanden van 680 Ohm
  • Vier zelfklevende rubberen printvoetjes
  • Twee 170-punts mini-soldeerloze breadboards
  • Elf 8-pins vrouwelijke kopcontactdozen
  • 40 pin Breakaway Header
  • Bundel van 65 mannelijke verbindingsdraden
  • Sticker met opgeheven vuist printplaat
  • Hack de planeet smiley piraat sticker
  • Exclusieve HackerBox "Remove Before Flight" Sleutelhanger

Enkele andere dingen die nuttig zullen zijn:

  • Soldeerbout, soldeer en standaard soldeergereedschappen
  • Computer voor het uitvoeren van softwaretools

Het belangrijkste is dat je gevoel voor avontuur, hackergeest, geduld en nieuwsgierigheid nodig hebt. Het bouwen van en experimenteren met elektronica, hoewel zeer de moeite waard, kan soms lastig, uitdagend en zelfs frustrerend zijn. Het doel is vooruitgang, niet perfectie. Als je volhoudt en geniet van het avontuur, kan er veel voldoening uit deze hobby worden gehaald. Neem elke stap langzaam, let op de details en wees niet bang om hulp te vragen.

Er is een schat aan informatie voor huidige en toekomstige leden in de HackerBoxes FAQ. Bijna alle niet-technische ondersteunings-e-mails die we ontvangen, worden daar al beantwoord, dus we stellen het zeer op prijs dat u een paar minuten de tijd neemt om de veelgestelde vragen te lezen.

Stap 2: HackerBoxes MCU Lab

HackerBoxes MCU Lab
HackerBoxes MCU Lab

Het MCU Lab is een compacte, gepolijste versie van een ontwikkelingsplatform dat we gebruiken om prototypes te maken en verschillende op microcontrollers (MCU) gebaseerde ontwerpen te testen. Het is super handig voor het werken met MCU-modules (zoals een Arduino Nano, ESP32 DevKit, enz.) of individuele MCU-apparaatpakketten (zoals ATMEGA328s, ATtiny85s, PICs, enz.). Een doel-MCU kan in elk van de mini-soldeerloze breadboards worden geplaatst. Twee MCU's kunnen aan elkaar worden gekoppeld met behulp van beide breadboards of een van de breadboard-ruimtes kan worden gebruikt voor andere schakelingen.

De "functieblokken" van het MCU Lab zijn onderverdeeld in vrouwelijke headers die vergelijkbaar zijn met die op een Arduino UNO. De vrouwelijke headers zijn compatibel met mannelijke jumperpinnen.

Stap 3: Monteer het HackerBoxes MCU Lab

Stel het HackerBoxes MCU Lab samen
Stel het HackerBoxes MCU Lab samen

SMD-COMPONENTEN OP DE ACHTERKANT VAN DE BOARD

Begin met het monteren van de AMS1117 (SOT 233-pakket) lineaire regelaar en de twee 22uF filtercondensatoren op de achterkant van de printplaat. Merk op dat een zijde van elke zeefdruk met condensator rechthoekig is en de andere zijde achthoekig. De condensatoren moeten zo worden geplaatst dat de donkere streep op de verpakking is uitgelijnd met de achthoekige zijde van de zeefdruk.

VERDER MET COMPONENTEN AAN DE VOORKANT VAN HET BORD

Soldeer de WS2812B RGB LED. Oriënteer de wit gemarkeerde hoek van elke LED om overeen te komen met de hoek met tabbladen zoals weergegeven op de PCB-zeefdruk.

Vier SMD-tactiele knoppen

Vier rode LED's met vier weerstanden

Level Shifter met VA pin dichtstbijzijnde 3V3 markering en VB pin dichtstbijzijnde 5V markering. De Level Shifter-module kan vlak op de printplaat worden gemonteerd door de headers aan de module te solderen en vervolgens de zwarte plastic afstandhouders van de headers te schuiven voordat de module op de MCU Lab-printplaat wordt gemonteerd. De spacers laten zitten is ook prima.

Twee strips van de header kunnen worden afgebroken om de FT232-module aan te sluiten. Een kleiner 4-pins gedeelte van de header kan ook worden gebruikt voor de 5V/GND-header, net naast de FT232-module.

Vul voorlopig de vrouwelijke VGA-header die zich het dichtst bij de HD15 VGA-connector en toetsenbordaansluiting bevindt. POPULEER echter NIET de extra header naast die ene of de vijf weerstanden tussen die twee headers. Specifieke opties voor videosignaalinterfacing worden later besproken.

Vul de andere negen vrouwelijke headers in.

Verwijder de lijm van de achterkant van beide soldeerloze breadboards om ze aan de MCU Lab-printplaat te bevestigen.

Plaats zelfklevende rubberen voetjes op de onderkant van de MCU Lab-printplaat om uw werkbank tegen krassen te beschermen.

VERMOGENSINGANGEN BEHANDELEN

Er zijn ten minste twee, en waarschijnlijk wel vier, plaatsen waar stroom het MCU-lab binnen kan komen. Dit kan problemen veroorzaken, dus denk altijd goed na over de volgende tips:

De koppunten met het label 5V zijn allemaal verbonden. De 5V-rail kan ook worden aangesloten op de toetsenbordaansluiting, de niveauverschuiver en de WS2812B RGB-led. Er kan stroom worden geleverd aan de 5V-rail door de FT232 op USB aan te sluiten, de vierpins voedingsheader aan te sluiten op een externe voeding, of door een jumper van een van een 5V-pin op de printplaat aan te sluiten op een gevoede 5V-module (meestal gevoed door USB).).

Op dezelfde manier zijn de GND-pinnen allemaal verbonden. Ze maken verbinding met de USB GND op de FT232 (ervan uitgaande dat USB is aangesloten op de FT232). Ze kunnen ook op aarde worden aangesloten met behulp van een jumper tussen een van hen en een gevoede module, zoals besproken voor het 5V-net.

De 3V3-rail wordt aangedreven door de regelaar aan de achterkant van de print. Het is alleen een bron en mag (in tegenstelling tot de 5V-rail) niet worden aangedreven door modules of andere circuits, omdat deze rechtstreeks wordt aangedreven door de regelaar op de 5V-rail.

Stap 4: Arduino Nano MCU-module

Arduino Nano MCU-module
Arduino Nano MCU-module

Een van de meest voorkomende MCU-modules van tegenwoordig is de Arduino Nano. Het meegeleverde Arduino Nano-bord wordt geleverd met header-pinnen, maar deze worden niet aan de module gesoldeerd. Laat de pinnen er voorlopig af. Voer deze eerste tests uit op de Arduino Nano-module voordat u op de header-pinnen gaat solderen. Het enige dat nodig is, is een microUSB-kabel en het Arduino Nano-bord komt precies zoals het uit de tas komt.

De Arduino Nano is een op het oppervlak te monteren, breadboard-vriendelijk, geminiaturiseerd Arduino-bord met geïntegreerde USB. Het is verbazingwekkend volledig uitgerust en gemakkelijk te hacken.

Functies:

  • Microcontroller: Atmel ATmega328P
  • Spanning: 5V
  • Digitale I/O-pinnen: 14 (6 PWM)
  • Analoge ingangspennen: 8
  • Gelijkstroom per I/O-pin: 40 mA
  • Flash-geheugen: 32 KB (2KB voor bootloader)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Kloksnelheid: 16 MHz
  • Afmetingen: 17 mm x 43 mm

Deze bijzondere variant van de Arduino Nano is de zwarte Robotdyn Nano. In bevat een ingebouwde MicroUSB-poort die is aangesloten op een CH340G USB / seriële bridge-chip. Gedetailleerde informatie over de CH340 (en stuurprogramma's, indien nodig) vindt u hier.

Wanneer u de Arduino Nano voor het eerst aansluit op een USB-poort van uw computer, moet het groene aan / uit-lampje gaan branden en kort daarna moet de blauwe LED langzaam beginnen te knipperen. Dit gebeurt omdat de Nano vooraf is geladen met het BLINK-programma, dat draait op de gloednieuwe Arduino Nano.

SOFTWARE: Als u de Arduino IDE nog niet hebt geïnstalleerd, kunt u deze downloaden van Arduino.cc

Steek de Nano in de MicroUSB-kabel en het andere uiteinde van de kabel in een USB-poort op de computer. Start de Arduino IDE-software. Selecteer "Arduino Nano" in de IDE onder tools>board en "ATmega328P (old bootloader)" onder tools>processor. Selecteer de juiste USB-poort onder tools>port (het is waarschijnlijk een naam met "wchusb" erin).

Laad ten slotte een stukje voorbeeldcode: File->Examples->Basics->Blink

Knipperen is eigenlijk de code die vooraf op de Nano is geladen en die nu moet worden uitgevoerd om de blauwe LED langzaam te laten knipperen. Als we deze voorbeeldcode laden, verandert er dus niets. Laten we in plaats daarvan de code een beetje aanpassen.

Als je goed kijkt, kun je zien dat het programma de LED aanzet, 1000 milliseconden (één seconde) wacht, de LED uitschakelt, nog een seconde wacht en dan alles opnieuw doet - voor altijd.

Wijzig de code door beide "delay(1000)"-instructies te wijzigen in "delay(100)". Deze aanpassing zorgt ervoor dat de LED tien keer sneller knippert, toch?

Laten we de gewijzigde code in de Nano laden door op de knop UPLOADEN (het pijlpictogram) net boven uw gewijzigde code te klikken. Bekijk hieronder de code voor de status info: "compileren" en dan "uploaden". Uiteindelijk zou de IDE "Uploading Complete" moeten aangeven en zou uw LED sneller moeten knipperen.

Zo ja, gefeliciteerd! Je hebt zojuist je eerste stukje embedded code gehackt.

Als uw snel knipperende versie eenmaal is geladen en actief is, waarom zou u dan niet kijken of u de code opnieuw kunt wijzigen zodat de LED twee keer snel knippert en dan een paar seconden wacht voordat u dit herhaalt? Probeer het eens! Wat dacht je van andere patronen? Als je er eenmaal in bent geslaagd om een gewenst resultaat te visualiseren, te coderen en te observeren om te werken zoals gepland, heb je een enorme stap gezet om een competente hardware-hacker te worden.

Nu je de werking van de Nano-module hebt bevestigd, ga je gang en soldeer je de header-pinnen erop. Zodra de headers zijn aangesloten, kan de module eenvoudig worden gebruikt in een van de soldeerloze breadboards van het MCU Lab. Dit proces van het testen van een MCU-module door een eenvoudige testcode te downloaden, aan te passen en opnieuw te downloaden, is een goede gewoonte wanneer u een nieuwe of een ander type MCU-module gebruikt.

Als je aanvullende inleidende informatie wilt over het werken in het Arduino-ecosysteem, raden we je aan de Guide for the HackerBoxes Starter Workshop te raadplegen, die verschillende voorbeelden en een link naar een PDF Arduino Textbook bevat.

Stap 5: Verken MCU Lab met Arduino Nano

Verken MCU Lab met Arduino Nano
Verken MCU Lab met Arduino Nano

POTENTIOMETER

Sluit de middelste pin van de potentiometer aan op Nano Pin A0.

Laden en uitvoeren: Voorbeelden > Analoog > Analoge ingang

Het voorbeeld is standaard ingesteld op de ingebouwde LED van de Nano. Draai aan de potentiometer om de knippersnelheid te wijzigen.

Aanpassen:

Verander in de code LedPin=13 in 4

Jumper van Nano Pin 4 (en GND) naar een van de rode LED's van het MCU Lab.

ZOEMER

Jumper van Buzzer naar Nano Pin 8. Zorg ervoor dat de GND van de kaart is aangesloten op de GND van de aangedreven Nano, aangezien de aarding van de zoemer vast is aangesloten op het GND-net van de kaart.

Laden en uitvoeren: Voorbeelden > Digitaal > toneMelody

OLED-SCHERM

Gebruik in de Arduino IDE de bibliotheekmanager om "ssd1306" van Alexey Dyna te installeren.

Sluit OLED aan: GND naar GND, VCC naar 5V, SCL naar Nano's A5, SDA naar Nano's A4

Laden en uitvoeren: Voorbeelden > ssd1306 > demo's > ssd1306_demo

WS2812B RGB-LED

Gebruik in de Arduino IDE de bibliotheekmanager om FastLED. te installeren

Sluit de header-pin van de WS2812 aan op pin 5 van de Nano.

Laden: Voorbeelden > FastLED > ColorPalette

Wijzig NUM_LEDS in 1 en LED_TYPE in WS2812B

Compileren en uitvoeren

SCHRIJF EEN CODE OM DE KNOPPEN EN SCHAKELAARS TE OEFENEN

Vergeet niet om pinMode(INPUT_PULLUP) te gebruiken om een knop te lezen zonder een weerstand toe te voegen.

COMBINEER ENKELE VAN DEZE VOORBEELDEN SAMEN

Wissel bijvoorbeeld outputs op een interessante manier af en toon toestanden of inputwaarden op de OLED of seriële monitor.

Stap 6: WEMOS ESP32 Lite

WEMOS ESP32 Lite
WEMOS ESP32 Lite

De ESP32-microcontroller (MCU) is een voordelig, energiezuinig systeem op een chip (SOC) met geïntegreerde wifi en dual-mode Bluetooth. De ESP32 maakt gebruik van een Tensilica Xtensa LX6-kern en bevat ingebouwde antenneschakelaars, RF-balun, eindversterker, geluidsarme ontvangstversterker, filters en energiebeheermodules. (wikipedia)

De WEMOS ESP32 Lite-module is compacter dan de vorige versie, waardoor hij gemakkelijker te gebruiken is op een soldeerloze breadboard.

Voer uw eerste test uit van de WEMOS ESP32-module voordat u de headerpinnen op de module soldeert.

Stel het ESP32-ondersteuningspakket in de Arduino IDE in.

Zorg ervoor dat u onder tools>board de "WeMos LOLIN32" selecteert

Laad de voorbeeldcode bij Bestanden>Voorbeelden>Basis>Knipperen en programmeer deze in de WeMos LOLIN32

Het voorbeeldprogramma zou ervoor moeten zorgen dat de LED op de module gaat knipperen. Experimenteer met het wijzigen van de vertragingsparameters om de LED met verschillende patronen te laten knipperen. Dit is altijd een goede oefening om vertrouwen op te bouwen bij het programmeren van een nieuwe microcontrollermodule.

Als u eenmaal vertrouwd bent met de werking van de module en hoe u deze moet programmeren, soldeert u voorzichtig de twee rijen header-pinnen op hun plaats en test u de laadprogramma's opnieuw.

Stap 7: ESP32-videogeneratie

Image
Image

Deze video demonstreert de ESP32 VGA-bibliotheek en een zeer mooie, eenvoudige tutorial van het lab van bitluni.

De gedemonstreerde 3-bits implementatie (8 kleuren) maakt gebruik van directe draadjumpers tussen de ESP32-module en de VGA-connector. Het maken van deze verbindingen op de VGA-header van het MCU Lab is vrij eenvoudig omdat er geen extra componenten bij betrokken zijn.

Afhankelijk van welke MCU in gebruik is, het spanningsniveau, de pixelresoluties en de gewenste kleurdiepten, zijn er verschillende combinaties van inline-weerstanden en weerstandsnetwerken die tussen de MCU en de VGA-header kunnen worden geplaatst. Als u besluit om permanent inline-weerstanden te gebruiken, kunnen deze op de MCU Lab-printplaat worden gesoldeerd. Als je flexibiliteit wilt behouden en vooral als je complexere oplossingen wilt gebruiken, dan is het aan te raden om geen weerstanden op hun plaats te solderen en gewoon de soldeerloze borden en VGA-header te gebruiken om de benodigde weerstanden aan te sluiten.

Om bijvoorbeeld de 14-bits kleurmodus van bituni te implementeren die aan het einde van de video wordt getoond, kan de ESP32-module op een van de mini-soldeerloze borden worden geplaatst en het andere soldeerloze bord kan worden gebruikt om de weerstandsladders aan te sluiten.

Hier zijn enkele andere voorbeelden:

In HackerBox 0047 stuurt een Arduino Nano een eenvoudige VGA-uitgang aan met 4 weerstanden.

Een VIC20 Emulator is geïmplementeerd op ESP32 met FabGL en 6 weerstanden.

Implementeer een BASIC PC met ESP32 en 3 weerstanden.

Speel Space Invaders op ESP32 met FabGL en 6 weerstanden.

Genereer VGA-uitgang op STM32 met 6 weerstanden.

Gelijktijdige tekst- en grafische lagen op STM32 met videodemonstratie.

Stap 8: STM32F103C8T6 Black Pill MCU-module

TXS0108E 8-bits logische niveauverschuiver
TXS0108E 8-bits logische niveauverschuiver

De Black Pill is een op STM32 gebaseerde MCU-module. Het is een verbeterde variant op de gewone blauwe pil en de minder gebruikelijke rode pil.

De Black Pill is voorzien van de STM32F103C8T6 32bit ARM M3 microcontroller (datasheet), een vier-pins ST-Link-header, een MicroUSB-poort en een gebruikers-LED op PB12. De juiste pull-up-weerstand op PA12 wordt geleverd voor een correcte werking van de USB-poort. Deze pull-up vereiste meestal een bordaanpassing op andere Pill Boards.

Hoewel hij qua uiterlijk lijkt op de Arduino Nano, is de Black Pill veel krachtiger. De 32bit STM32F103C8T6 ARM-microcontroller kan draaien op 72 MHz. Het kan vermenigvuldiging in één cyclus en hardwaredeling uitvoeren. Het heeft 64 Kbytes Flash-geheugen en 20 Kbytes SRAM.

Programmeren van de STM32 vanuit Arduino IDE.

Stap 9: TXS0108E 8-bits logische niveauverschuiver

De TXS0108E (datasheet) is een 8-bit bidirectionele logische niveauverschuiver. De module is ingesteld om signalen te verschuiven tussen 3,3V en 5V.

Aangezien de signaalniveaukanalen bidirectioneel zijn, kunnen zwevende ingangen ertoe leiden dat de corresponderende uitgangen onbedoeld worden aangestuurd. Om in dergelijke scenario's te beschermen, wordt een OE-regeling (output enable) geleverd. Er moet op worden gelet, afhankelijk van hoe de shifter is aangesloten, om ervoor te zorgen dat een uitgang van de shifter (ofwel "opzettelijk" of vanwege een zwevende ingang aan de andere kant) nooit een uitgang van een ander apparaat kruiselings mag aansturen.

De OE-pin blijft losgekoppeld in de PCB-sporen. Onder de module bevindt zich een twee-pins header voor het aansluiten van OE en 3V3. Het kortsluiten van de twee-pins header (met behulp van een stuk draad of een jumperblok) verbindt OE met 3V3, waardoor het IC zijn uitgangen kan aansturen. Een pulldown-weerstand en logische besturing kunnen ook worden aangesloten op de OE-pin.

Stap 10: HackLife

HackLife
HackLife

We hopen dat je geniet van het HackerBox-avontuur van deze maand op het gebied van elektronica en computertechnologie. Reik uit en deel uw succes in de reacties hieronder of op de HackerBoxes Facebook Group. Onthoud ook dat je [email protected] op elk moment kunt e-mailen als je een vraag hebt of hulp nodig hebt.

Wat is het volgende? Doe mee met de revolutie. Leef het HackLife. Ontvang elke maand een koelbox met hackbare uitrusting rechtstreeks in je mailbox. Surf naar HackerBoxes.com en meld u aan voor uw maandelijkse HackerBox-abonnement.

Aanbevolen: