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.

Zasady zaliczenia

sr_zasady_zaliczenia_lab.md.txt

Oceny

sr_oceny_l.pdf

Ćwiczenia

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

Instrukcja: sr_lab05.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