Spisu treści:

HackerBox 0051: Laboratorium MCU: 10 kroków
HackerBox 0051: Laboratorium MCU: 10 kroków

Wideo: HackerBox 0051: Laboratorium MCU: 10 kroków

Wideo: HackerBox 0051: Laboratorium MCU: 10 kroków
Wideo: MCU LAB Demo with Potentiometer and OLED Display 2024, Lipiec
Anonim
HackerBox 0051: Laboratorium MCU
HackerBox 0051: Laboratorium MCU

Pozdrowienia dla hakerów HackerBox na całym świecie! HackerBox 0051 przedstawia HackerBox MCU Lab. MCU Lab to platforma programistyczna do testowania, rozwijania i prototypowania z mikrokontrolerami i modułami mikrokontrolerów. Arduino Nano, moduł ESP32 i czarna pigułka SMT32 służą do odkrywania bloków funkcji MCU Lab. Bloki funkcji MCU Lab obejmują przełączniki, przyciski, diody LED, wyświetlacz OLED, brzęczyk, potencjometr, piksel RGB, przesuwnik poziomu logicznego, wyjście VGA, wejście klawiatury PS/2, interfejs szeregowy USB i podwójne obszary prototypowania bez lutowania.

Ten przewodnik zawiera informacje, jak zacząć korzystać z HackerBox 0051, który można kupić tutaj do wyczerpania zapasów. Jeśli chcesz otrzymywać co miesiąc taki HackerBox bezpośrednio do swojej skrzynki pocztowej, zasubskrybuj na HackerBoxes.com i dołącz do rewolucji!

HackerBoxes to miesięczny abonament dla hakerów sprzętowych oraz entuzjastów elektroniki i technologii komputerowych. Dołącz do nas w życiu HACK LIFE.

Krok 1: Lista zawartości dla HackerBox 0051

  • Moduł MCU 1: Arduino Nano 5 V, 16 MHz
  • Moduł MCU 2: WEMOS ESP32 Lite
  • Moduł MCU 3: STM32F103C8T6 czarna pigułka
  • Ekskluzywna płytka drukowana MCU Lab
  • Adapter szeregowy USB FT232RL
  • Wyświetlacz OLED 128x64 I2C 0,96 cala
  • Dwukierunkowy 8-bitowy przesuwnik poziomu logicznego
  • WS2812B LED RGB SMD
  • Cztery dotykowe przyciski do montażu powierzchniowego
  • Cztery czerwone rozproszone diody LED 5mm
  • Brzęczyk piezoelektryczny
  • Złącze VGA HD15
  • Złącze klawiatury Mini-DIN PS/2
  • Potencjometr 100K Ohm
  • 8-pozycyjny przełącznik DIP
  • Regulator liniowy AMS1117 3.3V SOT223
  • Dwa kondensatory tantalowe 22uF 1206 SMD
  • Dziesięć rezystorów 680 Ohm
  • Cztery samoprzylepne gumowe nóżki do PCB
  • Dwie 170-punktowe bezlutowane płytki do krojenia chleba
  • Jedenaście 8-pinowych gniazd żeńskich
  • 40-pinowy nagłówek odrywający
  • Pakiet 65 męskich przewodów połączeniowych
  • Naklejka na płytkę drukowaną z podniesioną pięścią
  • Hack The Planet Smiley Pirat Naklejka
  • Ekskluzywny brelok HackerBox „Usuń przed lotem”

Kilka innych rzeczy, które będą pomocne:

  • Lutownica, lut i podstawowe narzędzia lutownicze
  • Komputer do uruchamiania narzędzi programowych

Co najważniejsze, będziesz potrzebować poczucia przygody, ducha hakera, cierpliwości i ciekawości. Budowanie i eksperymentowanie z elektroniką, choć bardzo satysfakcjonujące, może być trudne, trudne, a czasem nawet frustrujące. Celem jest postęp, a nie doskonałość. Kiedy wytrwasz i cieszysz się przygodą, to hobby może przynieść wiele satysfakcji. Zrób każdy krok powoli, pamiętaj o szczegółach i nie bój się prosić o pomoc.

W FAQ HackerBoxes znajduje się mnóstwo informacji dla obecnych i przyszłych członków. Odpowiedzi na prawie wszystkie nietechniczne e-maile, które otrzymujemy, są już tam udzielane, więc naprawdę dziękujemy za poświęcenie kilku minut na przeczytanie FAQ.

Krok 2: Laboratorium MCU HackerBoxes

HackerBoxes MCU Lab
HackerBoxes MCU Lab

MCU Lab to kompaktowa, dopracowana wersja platformy programistycznej, której używamy do prototypowania i testowania różnych projektów opartych na mikrokontrolerach (MCU). Jest bardzo przydatny do pracy z modułami MCU (takimi jak Arduino Nano, ESP32 DevKit itp.) lub indywidualnymi pakietami urządzeń MCU (takimi jak ATMEGA328s, ATtiny85s, PIC itp.). Docelowy MCU można umieścić w jednej z mini płytek stykowych bez lutowania. Dwa MCU mogą być połączone ze sobą za pomocą obu płytek stykowych lub jedna z przestrzeni na płytce stykowej może być wykorzystana dla innych obwodów.

„Bloki funkcji” MCU Lab są podzielone na żeńskie nagłówki podobne do tych, które można znaleźć w Arduino UNO. Gniazda żeńskie są kompatybilne z męskimi pinami zworek.

Krok 3: Złóż HackerBoxes MCU Lab

Złóż HackerBoxes MCU Lab
Złóż HackerBoxes MCU Lab

ELEMENTY SMD Z TYŁU PŁYTY

Zacznij od zamontowania regulatora liniowego AMS1117 (pakiet SOT 233) i dwóch kondensatorów filtrujących 22uF na odwrocie płytki drukowanej. Zauważ, że jedna strona każdego kondensatora jest prostokątna, a druga ośmiokątna. Kondensatory powinny być zorientowane tak, aby ciemny pasek na opakowaniu był wyrównany z ośmiokątną stroną sitodruku.

KONTYNUUJ Z KOMPONENTAMI Z PRZODU DESKI

Przylutuj diodę LED RGB WS2812B. Ustaw biały zaznaczony róg każdej diody LED, aby odpowiadał narożnikowi z zakładkami, jak pokazano na sitodruku PCB.

Cztery dotykowe przyciski SMD

Cztery czerwone diody LED z czterema rezystorami

Przełącznik poziomu z pinem VA najbliższym oznaczeniu 3V3 i pinem VB najbliższym oznaczeniu 5V. Moduł Level Shifter można zamontować równo z płytką drukowaną, przylutowując nagłówki do modułu, a następnie zsuwając czarne plastikowe przekładki z nagłówków przed zamontowaniem modułu na płytce drukowanej MCU Lab. Pozostawienie podkładek dystansowych również jest w porządku.

Dwa paski nagłówka można odłamać w celu podłączenia modułu FT232. Mniejsza 4-pinowa sekcja nagłówka może być również użyta do nagłówka 5V/GND tuż obok modułu FT232.

Na razie wypełnij żeński nagłówek VGA najbliżej złącza HD15 VGA i gniazda klawiatury. Jednak NIE WYPEŁNIAJ dodatkowego nagłówka sąsiadującego z tym jednym lub pięciu oporników między tymi dwoma nagłówkami. Konkretne opcje łączenia sygnału wideo zostaną omówione później.

Wypełnij pozostałe dziewięć żeńskich nagłówków.

Usuń klej z tyłu obu płytek stykowych bez lutowania, aby przymocować je do płytki drukowanej MCU Lab.

Umieść samoprzylepne gumowe nóżki na spodzie płytki drukowanej MCU Lab, aby chronić stół warsztatowy przed zarysowaniami.

OBSŁUGA WEJŚĆ ZASILANIA

Istnieją co najmniej dwa, a prawdopodobnie nawet cztery, miejsca, w których zasilanie może trafić do laboratorium MCU. Może to powodować problemy, dlatego zawsze uważnie rozważ następujące wskazówki:

Wszystkie punkty nagłówka oznaczone 5V są połączone. Szyna 5V łączy się również z gniazdem klawiatury, dźwignią poziomu i diodą LED RGB WS2812B. Zasilanie można dostarczyć na szynę 5V podłączając FT232 do USB, podłączając czteropinową listwę zasilającą do zewnętrznego źródła lub podłączając zworkę z jednego z pinów 5V na płytce drukowanej do zasilanego modułu 5V (zwykle zasilanego przez USB).

Podobnie wszystkie piny GND są połączone. Łączą się z USB GND na FT232 (zakładając, że USB jest podłączone do FT232). Można je również podłączyć do masy za pomocą zworki między jednym z nich a zasilanym modułem, jak omówiono dla sieci 5V.

Szyna 3V3 jest napędzana przez regulator z tyłu płytki PCB. Jest tylko źródłem i (w przeciwieństwie do szyny 5V) nie powinien być zasilany żadnymi modułami ani innymi obwodami, ponieważ jest zasilany bezpośrednio z regulatora na szynie 5V.

Krok 4: Moduł Arduino Nano MCU

Moduł MCU Arduino Nano
Moduł MCU Arduino Nano

Jednym z najpopularniejszych obecnie modułów MCU jest Arduino Nano. Dołączona płytka Arduino Nano jest wyposażona w piny nagłówkowe, ale nie są one przylutowane do modułu. Na razie zostaw szpilki wyłączone. Wykonaj te wstępne testy na module Arduino Nano przed lutowaniem na pinach nagłówka. Potrzebny jest tylko kabel microUSB i płytka Arduino Nano, tak jak jest wyjęta z torby.

Arduino Nano to zminiaturyzowana płytka Arduino do montażu powierzchniowego, przyjazna dla płytek stykowych, ze zintegrowanym portem USB. Jest niesamowicie w pełni funkcjonalny i łatwy do zhakowania.

Cechy:

  • Mikrokontroler: Atmel ATmega328P
  • Napięcie: 5V
  • Cyfrowe piny we/wy: 14 (6 PWM)
  • Piny wejścia analogowego: 8
  • Prąd DC na pin we/wy: 40 mA
  • Pamięć Flash: 32 KB (2 KB dla bootloadera)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Szybkość zegara: 16 MHz
  • Wymiary: 17mm x 43mm

Ten szczególny wariant Arduino Nano to czarny Robotdyn Nano. Zawiera wbudowany port MicroUSB podłączony do układu mostka USB/szeregowego CH340G. Szczegółowe informacje na temat CH340 (i sterowników w razie potrzeby) można znaleźć tutaj.

Po pierwszym podłączeniu Arduino Nano do portu USB komputera powinna zaświecić się zielona lampka zasilania, a wkrótce po tym niebieska dioda LED powinna zacząć powoli migać. Dzieje się tak, ponieważ Nano jest fabrycznie załadowany programem BLINK, który działa na zupełnie nowym Arduino Nano.

OPROGRAMOWANIE: Jeśli nie masz jeszcze zainstalowanego Arduino IDE, możesz pobrać je z Arduino.cc

Podłącz Nano do kabla MicroUSB, a drugi koniec kabla do portu USB w komputerze. Uruchom oprogramowanie Arduino IDE. Wybierz "Arduino Nano" w IDE pod narzędzia>płyta i "ATmega328P (stary bootloader)" pod narzędzia>procesor. Wybierz odpowiedni port USB w menu Tools>port (prawdopodobnie jest to nazwa z wchusb).

Na koniec załaduj przykładowy kod:Plik->Przykłady->Podstawy->Mrugnięcie

Blink to w rzeczywistości kod, który został wstępnie załadowany do Nano i powinien teraz działać, aby powoli migać niebieską diodą LED. W związku z tym, jeśli załadujemy ten przykładowy kod, nic się nie zmieni. Zamiast tego zmodyfikujmy nieco kod.

Przyglądając się uważnie, widać, że program włącza diodę, czeka 1000 milisekund (jedna sekunda), wyłącza diodę, czeka kolejną sekundę, a potem robi to wszystko od nowa - na zawsze.

Zmodyfikuj kod, zmieniając obie instrukcje „delay(1000)” na „delay(100)”. Ta modyfikacja spowoduje, że dioda LED będzie migać dziesięć razy szybciej, prawda?

Załadujmy zmodyfikowany kod do Nano, klikając przycisk PRZEŚLIJ (ikona strzałki) tuż nad zmodyfikowanym kodem. Obejrzyj poniżej kod, aby uzyskać informacje o stanie: „kompilowanie”, a następnie „przesyłanie”. W końcu IDE powinno wskazać „Przesyłanie zakończone”, a dioda LED powinna migać szybciej.

Jeśli tak, to gratulacje! Właśnie zhakowałeś swój pierwszy fragment kodu osadzonego.

Po załadowaniu i uruchomieniu wersji z szybkim miganiem, dlaczego nie sprawdzić, czy możesz ponownie zmienić kod, aby dioda LED szybko mignęła dwukrotnie, a następnie odczekać kilka sekund przed powtórzeniem? Spróbuj! Co powiesz na inne wzory? Kiedy już uda Ci się zwizualizować pożądany rezultat, zakodować go i obserwować, jak działa zgodnie z planem, zrobiłeś ogromny krok w kierunku zostania kompetentnym hakerem sprzętowym.

Teraz, po potwierdzeniu działania modułu Nano, przylutuj do niego piny nagłówka. Po podłączeniu nagłówków moduł może być łatwo używany w jednej z płyt stykowych MCU Lab bez lutowania. Ten proces testowania modułu MCU poprzez pobranie prostego kodu testowego, modyfikację i ponowne pobranie jest najlepszą praktyką w przypadku korzystania z nowego lub innego typu modułu MCU.

Jeśli potrzebujesz dodatkowych informacji wstępnych dotyczących pracy w ekosystemie Arduino, zalecamy zapoznanie się z Przewodnikiem do warsztatu HackerBoxes Starter, który zawiera kilka przykładów i link do podręcznika Arduino w formacie PDF.

Krok 5: Poznaj laboratorium MCU za pomocą Arduino Nano

Poznaj laboratorium MCU z Arduino Nano
Poznaj laboratorium MCU z Arduino Nano

POTENCJOMETR

Podłącz środkowy pin potencjometru do Nano Pin A0.

Załaduj i uruchom: Przykłady > Analogowe > Wejście Analogowe

Przykład domyślnie wykorzystuje zintegrowaną diodę LED Nano. Obróć potencjometr, aby zmienić prędkość migania.

Modyfikować:

W kodzie zmień LedPin=13 na 4

Zworka z Nano Pin 4 (i GND) do jednej z czerwonych diod LED MCU Lab.

BRZĘCZYK

Zworka z brzęczyka do styku Nano 8. Upewnij się, że GND płyty jest podłączone do GND zasilanego Nano, ponieważ uziemienie brzęczyka jest na stałe połączone z siecią GND płyty.

Załaduj i uruchom: Przykłady > Cyfrowe > ToneMelody

WYŚWIETLACZ OLED

W Arduino IDE użyj menedżera bibliotek, aby zainstalować "ssd1306" z Alexey Dyna.

Podłącz OLED: GND do GND, VCC do 5 V, SCL do A5 Nano, SDA do A4 Nano

Załaduj i uruchom: Przykłady > ssd1306 > dema > ssd1306_demo

WS2812B LED RGB

W Arduino IDE użyj menedżera bibliotek, aby zainstalować FastLED

Podłącz pin nagłówka WS2812 do pinu 5 Nano.

Załaduj: Przykłady > FastLED > ColorPalette

Zmień NUM_LEDS na 1 i LED_TYPE na WS2812B

Skompiluj i uruchom

NAPISZ KOD DO ĆWICZENIA PRZYCISKÓW I PRZEŁĄCZNIKÓW

Pamiętaj, aby użyć pinMode(INPUT_PULLUP) do odczytania przycisku bez dodawania rezystora.

POŁĄCZ NIEKTÓRE Z TYCH PRZYKŁADÓW

Na przykład, w interesujący sposób przełączają wyjścia i pokazują stany lub wartości wejściowe na monitorze OLED lub monitorze szeregowym.

Krok 6: WEMOS ESP32 Lite

WEMOS ESP32 Lite
WEMOS ESP32 Lite

Mikrokontroler ESP32 (MCU) to tani, energooszczędny system na chipie (SOC) ze zintegrowanym Wi-Fi i dwutrybowym Bluetooth. ESP32 wykorzystuje rdzeń Tensilica Xtensa LX6 i zawiera wbudowane przełączniki antenowe, balun RF, wzmacniacz mocy, niskoszumowy wzmacniacz odbiorczy, filtry i moduły zarządzania energią. (wikipedia)

Moduł WEMOS ESP32 Lite jest bardziej kompaktowy niż poprzednia wersja, co ułatwia korzystanie z płytki stykowej bez lutowania.

Wykonaj wstępny test modułu WEMOS ESP32 przed przylutowaniem pinów nagłówka do modułu.

Skonfiguruj pakiet wsparcia ESP32 w Arduino IDE.

W menu narzędzia>tablica wybierz opcję „WeMos LOLIN32”

Załaduj przykładowy kod w Files>Examples>Basics>Blink i zaprogramuj go do WeMos LOLIN32

Przykładowy program powinien powodować miganie diody LED na module. Poeksperymentuj z modyfikacją parametrów opóźnienia, aby dioda LED migała w różnych wzorach. Jest to zawsze dobre ćwiczenie budujące zaufanie do programowania nowego modułu mikrokontrolera.

Po zapoznaniu się z obsługą modułu i sposobem jego programowania ostrożnie przylutuj dwa rzędy kołków rozgałęźnych na miejsce i ponownie przetestuj programy ładujące.

Krok 7: Generowanie wideo ESP32

Image
Image

Ten film przedstawia bibliotekę VGA ESP32 i bardzo ładny, prosty samouczek z laboratorium bitluni.

Zademonstrowana implementacja 3-bitowa (8 kolorów) wykorzystuje bezpośrednie zworki między modułem ESP32 a złączem VGA. Wykonanie tych połączeń na nagłówku VGA MCU Lab jest dość łatwe, ponieważ nie są zaangażowane żadne dodatkowe komponenty.

W zależności od używanego MCU, jego poziomu napięcia, rozdzielczości pikseli i pożądanej głębi kolorów, istnieją różne kombinacje wbudowanych rezystorów i sieci rezystorów, które można umieścić między MCU a nagłówkiem VGA. Jeśli zdecydujesz się na stałe użycie rezystorów inline, można je przylutować do płytki drukowanej MCU Lab. Jeśli chcesz zachować elastyczność, a zwłaszcza jeśli chcesz zastosować bardziej złożone rozwiązania, zaleca się nie lutować żadnych rezystorów na miejscu i po prostu użyć płyt bez lutowania i złącza VGA do podłączenia niezbędnych rezystorów.

Na przykład, aby zaimplementować 14-bitowy tryb kolorów bituni pokazany na końcu filmu, moduł ESP32 można umieścić na jednej z płyt bez lutowania mini, a drugą płytkę bez lutowania można wykorzystać do podłączenia drabinek rezystorów.

Oto kilka innych przykładów:

W HackerBox 0047 Arduino Nano napędza proste wyjście VGA z 4 rezystorami.

Emulator VIC20 jest zaimplementowany na ESP32 przy użyciu FabGL i 6 rezystorów.

Zaimplementuj komputer BASIC z ESP32 i 3 rezystorami.

Graj w Space Invaders na ESP32 przy użyciu FabGL i 6 rezystorów.

Generuj wyjście VGA na STM32 z 6 rezystorami.

Jednoczesne warstwy tekstowe i graficzne na STM32 z demonstracją wideo.

Krok 8: Moduł MCU czarnej pigułki STM32F103C8T6

TXS0108E 8-bitowy przesuwnik poziomu logicznego
TXS0108E 8-bitowy przesuwnik poziomu logicznego

Black Pill to moduł MCU oparty na STM32. Jest to ulepszony wariant popularnej niebieskiej pigułki i mniej popularnej czerwonej pigułki.

Black Pill jest wyposażony w 32-bitowy mikrokontroler ARM M3 STM32F103C8T6 (karta katalogowa), czteropinowy nagłówek ST-Link, port MicroUSB i diodę LED użytkownika na PB12. W celu poprawnego działania portu USB zainstalowany jest odpowiedni rezystor podciągający na PA12. To podciąganie zwykle wymagało modyfikacji tablicy na innych tablicach do pigułek.

Choć wyglądem podobny do Arduino Nano, Black Pill jest znacznie potężniejszy. 32-bitowy mikrokontroler ARM STM32F103C8T6 może pracować z częstotliwością 72 MHz. Może wykonywać mnożenie w jednym cyklu i dzielenie sprzętowe. Posiada 64 KB pamięci Flash i 20 KB SRAM.

Programowanie STM32 z Arduino IDE.

Krok 9: TXS0108E 8-bitowy przesuwnik poziomu logicznego

TXS0108E (datasheet) to 8-bitowy dwukierunkowy Shifter poziomu logicznego. Moduł jest ustawiony na sygnały przesunięcia poziomu od 3,3 V do 5 V.

Ponieważ kanały poziomu sygnału są dwukierunkowe, wejścia pływające mogą powodować niezamierzone wysterowanie odpowiednich wyjść. W takich sytuacjach zapewniona jest kontrola włączenia wyjścia (OE). Należy zachować ostrożność w zależności od sposobu podłączenia manetki, aby upewnić się, że wyjście z manetki (albo „zamierzone” lub z powodu wejścia pływającego po drugiej stronie) nigdy nie może przekroczyć wyjścia z innego urządzenia.

Pin OE pozostaje odłączony w ścieżkach PCB. Pod modułem znajduje się dwupinowa listwa do podłączenia OE i 3V3. Zwarcie dwupinowego złącza (za pomocą kawałka drutu lub bloku zworek) łączy OE z 3V3, co umożliwia układowi scalonemu sterowanie jego wyjściami. Do styku OE można również podłączyć rezystor ściągający i sterowanie logiczne.

Krok 10: HackLife

HackLife
HackLife

Mamy nadzieję, że spodobała Ci się przygoda HackerBox w tym miesiącu w elektronikę i technologię komputerową. Sięgnij i podziel się swoim sukcesem w komentarzach poniżej lub na grupie Facebook HackerBoxes. Pamiętaj też, że możesz w każdej chwili wysłać e-mail na adres [email protected], jeśli masz pytanie lub potrzebujesz pomocy.

Co dalej? Dołącz do rewolucji. Żyj HackLife. Zdobądź fajne pudełko hakowalnego sprzętu dostarczanego co miesiąc prosto do Twojej skrzynki pocztowej. Przejdź do HackerBoxes.com i zarejestruj się, aby otrzymać miesięczną subskrypcję HackerBox.

Zalecana: