Laboratorium
Laboratorium z kursu Sterowniki robotów dotyczy budowania rozwiązań sprzętowo–programowych ze szczególnym uwzględnieniem aspektów robotycznych. Zakres laboratorium obejmuje:
- zapoznanie się z mikrokontrolerami ST,
- debugowanie kodu dla mikrokontrolera w systemie wbudowanym,
- wykorzystanie peryferiów mikrokontrolera takich jak: liczniki, ADC, DAC, kontroler pamięci DMA, I2C, SPI, USART, USB,
- obsługa przerwań,
- komunikacja z urządzeniami zewnętrznymi,
- sterowanie silnikami przy wykorzystaniu sterowników PID.
Przygotowanie do zajęć
Do każdych zajęć należy się przygotować minimum projekt w programie CubeMx do każdego z ćwiczeń w ramach laboratorium. Ponadto, jeśli zadanie wymaga wyliczenia wartości parametrów, określenia stałych czasowych itp. należy te obliczenia przygotować przed zajęciami. Dodatkowo zaleca się również przygotowanie szkieletu programu, który implementuje problematykę wskazanym w zadaniu do laboratorium.
Zadania w ramach laboratorium lab05 oraz lab06 wymagają przygotowania w szerszym zakresie, a mianowicie zapoznania się z dokumentacją techniczną układów oraz czujników, które będą dodatkowo wykorzystywane podczas laboratorium.
Lab00 — BHP
Omówienie zasad zaliczenia oraz BHP.
Lab01 — wprowadzenie
Wprowadzenie do mikrokontrolerów ST na przykładzie płytki ewaluacyjnej NUCLEO-L476RG. Zapoznanie się z cyfrowymi wejściami/wyjściami ogólnego przeznaczenia. Wykorzystanie środowiska AC6 (SW4STM32) do edycji i budowy projektu, a także narzędzia ST-Link Utility do wgrywania firmware na mikrokontroler.
Instrukcja: sr_lab01.pdf
Lab02 — zaawansowane techniki debugowanie
Środowisko AC6 (SW4STM32), jako narzędzie do debugowania kodu źródłowego. Zapoznanie się z technikami przekierowywania wyjścia funkcji printf() na dwa różne interfejsy (USART oraz SWV). STMStudio, jako narzędzie diagnostyczne do wizualizacji i modyfikacji pamięci mikrokontrolera w czasie rzeczywistym.
Instrukcja: sr_lab02.pdf
Lab03 — liczniki i przerwania
Obsług liczników w trzech podstawowych trybach pracy: generator podstawy czasu, generator sygnału PWM, wejście Input Capture. Obsługa przerwań oraz wykorzystanie funkcji zwrotnych.
Instrukcja: sr_lab03.pdf
Lab04 — ADC, DAC i DMA; Regulator PID
Obsługa przetwornika ADC. Generowanie sygnału za pomocą przetwornika DAC. Prosta aplikacja generatora sygnałów z wykorzystaniem kontrolera DMA. Wizualizacja wyników za pomocą STMStudio.
Instrukcja: sr_lab04.pdf
Instrukcja (regulator PID): sr_lab04b.pdf
Lab05 — SPI i I2C
Praktyczne aspekty komunikacji za pomocą SPI i I2C. Obsługa różnych modułów rozszerzeń (X-NUCLEO): komunikacja bezprzewodowa, sterowanie silnikami, obsługa czujników MEMS, itp.
Instrukcja: sr_lab05.pdf
Lab06 — SPI i I2C
Praktyczne aspekty komunikacji za pomocą SPI i I2C. Obsługa różnych modułów rozszerzeń (X-NUCLEO): komunikacja bezprzewodowa, sterowanie silnikami, obsługa czujników MEMS, itp.
Strojenie regulatora PID
Instrukcja: sr_lab05.pdf
Instrukcja (regulator PID): sr_lab04b.pdf
Lab07 — termin odróbczy
Materiały dodatkowe
en.DM00334043 STM32 ST-LINK Utility for STM32 MCUs
en.CD00262073 STM32 ST-LINK utility software description, User manual
en.DM00103564 STM32 configuration and initialization C code generation
en.DM00104712 STM32CubeMX for STM32 configuration and initialization C code generation, User manual
en.DM00105918 STM32 Nucleo-64 board
en.DM00105823 STM32 Nucleo-64 board, User manual
Description of STM32L4 HAL and Low-layer drivers
en.CD00291613 STM Studio run-time variables monitoring and visualization tool for STM32 microcontrollers
en.CD00291015 Getting started with STM-STUDIO, User manual
en.DM00027105 ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32
en.DM00026748 ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32, User manual
en.DM00108832 STM32L476xx, Ultra-low-power ARM® Cortex®-M4 32-bit MCU+FPU, 100DMIPS, up to 1MB Flash, 128 KB SRAM, USB OTG FS, LCD, analog, audio
en.DM00083560 STM32L4x5 and STM32L4x6 advanced ARM®-based 32-bit MCUs, Reference manual
161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide (http://www.freertos.org/Documentation/RTOS_book.html)
FreeRTOS_Reference_Manual_V9.0.0 (http://www.freertos.org/Documentation/RTOS_book.html)
Moduły rozszerzeń:
en.brstm32ode STM32 Open Development Environment
en.DM00089896 LSM303C, Ultra-compact high-performance eCompass module: 3D accelerometer and 3D magnetometer
en.DM00125142 Getting started with X-NUCLEO-NFC03A1 NFC card reader board based on CR95HF for STM32 Nucleo, User manual
en.DM00154104 X-NUCLEO-6180XA1 proximity and ambient light sensor expansion board based on VL6180X for STM32 Nucleo, User manual
en.DM00168396 Getting started with the Sub-1 GHz expansion board based on SPSGRF-868 and SPSGRF-915 modules for STM32 Nucleo, User manual
en.DM00226187 Getting started with the X-NUCLEO-IHM07M1 motor driver expansion board based on the L6230 for STM32 Nucleo, User manual
en.DM00237629 Getting started with X-NUCLEO-IHM02A1; two-axis stepper motor driver expansion board based on L6470 for STM32 Nucleo, User manual
en.DM00245012 Getting started with X-NUCLEO-IDW01M1 Wi-Fi expansion board based on SPWF01SA module for STM32 Nucleo, User manual
en.DM00285104 X-NUCLEO-53L0A1 ranging and gesture detection sensor expansion board based on VL53L0X for STM32 Nucleo, User manual
en.DM00333132 Getting started with the X-NUCLEO-IKS01A2 motion MEMS and environmental sensor expansion board for STM32 Nucleo, User manual
TWR-MOTOR TWR-MOTOR — Moduł napędowy do zestawu Freescale Tower (źródło)
Opis wyprowadzeń modułu TWR-MOTOR:
kolor kabla | sygnał | PROTO |
czarny | GND | GND |
biały | +5V | +5V |
szary | TMR1 – enc B | A33 |
fioletowy | TMR0 – enc A | A34 |
niebieski | AIN1 – H-bridge | B21 |
zielony | AIN2 – H-bridge | B22 |
żółty | PWMA – H-bridge | A40 |
pomarańczowy | ||
czerwony | +3V3 | +3V3 |
brązowy | SHARP | B51 |
Dokumentacja dla modułów i układów z ćwiczenia lab06 i lab07:
kamodbar_spi dokumentacja modułu KAmodBAR-SPI
MPL115A1 czujnik ciśnienia
kamodexp1 dokumentacja modułu KAmodEXP1
MCP23S08 ekspander portów GPIO
DM00140895 dokumentacja czujnika LPS22HB — barometr
hts221 dokumentacja HTS221 — higrometr
lsm6dsl dokumentacja LSM6DSL — trójosiowy akcelerometr i trójosiowy żyroskop
lsm303agr dokumentacja LSM303AGR — trójosiowy akcelerometr i trójosiowy magnetometr