Systemy Wbudowane. Raspberry Pi Sterowanie serwomechanizmem (wersja 2019) Serwomechanizm. Serwomechanizm z silnikiem krokowym

Podobne dokumenty
Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Komunikacja w mikrokontrolerach Laboratorium

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

REGULATOR PI W SIŁOWNIKU 2XI

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Mikroprocesory i Mikrosterowniki Laboratorium

Silnik prądu stałego. Sterowanie silnika prądu stałego

Obiekt. Obiekt sterowania obiekt, który realizuje proces (zaplanowany).


Serwomechanizm - zamknięty układ sterowania przemieszczeniem, o strukturze typowego układu regulacji. Wartość wzorcowa porównywana jest z

Układ regulacji ze sprzężeniem zwrotnym: - układ regulacji kaskadowej - układ regulacji stosunku

Automatyka i pomiary wielkości fizykochemicznych. Instrukcja do ćwiczenia VI Dobór nastaw regulatora typu PID metodą Zieglera-Nicholsa.

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Sensoryka i układy pomiarowe łazika marsjańskiego Scorpio IV

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Funkcjonowanie i budowa modelu układu regulacji temperatury. Jakub Rotkiewicz AIR 2018

Badanie wpływu parametrów korektora na własności dynamiczne układu regulacji automatycznej Ćwiczenia Laboratoryjne Podstawy Automatyki i Automatyzacji

Programowanie Obiektowew języku C++ Zadania L4

Wstęp. Opis ATMEGA128 MINI MODUŁ VE-APS-1406

STEROWANIE ROBOTEM MOBILNYM TYPU LINE-FOLLOWER

Magistrala SPI. Linie MOSI i MISO sąwspólne dla wszystkich urządzeńna magistrali, linia SS jest prowadzona do każdego Slave oddzielnie.

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Regulator PID w sterownikach programowalnych GE Fanuc

Mikrokontrolery AVR techniczne aspekty programowania

Interfejsy szeregowe TEO 2009/2010

Zastosowania mikrokontrolerów w przemyśle

Regulator PID w sterownikach programowalnych GE Fanuc

Pytania podstawowe dla studentów studiów II-go stopnia kierunku Elektrotechnika VI Komisji egzaminów dyplomowych

Funkcje sterowania cyfrowego przekształtników (lista nie wyczerpująca)

Sterownik momentu obrotowego silnika prądu stałego

Część 6. Mieszane analogowo-cyfrowe układy sterowania. Łukasz Starzak, Sterowanie przekształtników elektronicznych, zima 2011/12

Podłączenie Siłownika elektrycznego.

MAGISTRALA PROFIBUS W SIŁOWNIKU 2XI

Wykład nr 1 Podstawowe pojęcia automatyki

Część 5. Mieszane analogowo-cyfrowe układy sterowania

Programowanie Obiektowew języku C++ Zadania L4

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Konfiguracja i programowanie Gamepad'a PlayStation2 na mikrokontrolerze STM32

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

MCAR Robot mobilny z procesorem AVR Atmega32

Instytut Teleinformatyki

SPECYFIKACJA TECHNICZNA LB-762-IO

Systemy Wbudowane. Arduino rozszerzanie Wersja Plan. Biblioteka EPROM Arduino bez płytki Arduino. Czyli... Co musimy mieć, aby uruchomić chip?

Autonomiczny robot mobilny LF3 klasy linefollower. Jacek Jankowski

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino bez płytki Arduino. Czyli... Eliminowanie modułu z projektu. Na płytce...

Badanie wzmacniacza operacyjnego

- WALKER Czteronożny robot kroczący

Sterowniki robotów. Laboratorium Regulator PID

POLITECHNIKA POZNAŃSKA

Serwozawory 3/3 sterowane bezpośrednio przeznaczone do sterowania przepływem (LRWD2), ciśnieniem (LRPD2) i pozycją (LRXD2)

Politechnika Warszawska Instytut Automatyki i Robotyki. Prof. dr hab. inż. Jan Maciej Kościelny PODSTAWY AUTOMATYKI

Zrób to sam : generowanie ruchu, światła i dźwięku za pomocą Arduino i Raspberry Pi / Simon Monk. Gliwice, Spis treści

Opis bezprzewodowego układu do pomiaru oporu elektrycznego skóry

Expandery wejść MCP23S17 oraz MCP23017

Spis treści. Dzień 1. I Elementy układu automatycznej regulacji (wersja 1109) II Rodzaje regulatorów i struktur regulacji (wersja 1109)

Generator tonów CTCSS, 1750Hz i innych.

Serwomechanizmy sterowanie

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Płytka laboratoryjna do współpracy z mikrokontrolerem MC68332

INSTRUKCJA Regulacja PID, badanie stabilności układów automatyki

Pytania podstawowe dla studentów studiów II-go stopnia kierunku Elektrotechnika VI Komisji egzaminów dyplomowych

Ultradźwiękowy generator mocy MARP wersja Dokumentacja techniczno-ruchowa

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Instytut Teleinformatyki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

ROBOT MOBILNY ZBIERAJĄCY INFORMACJE O POMIESZCZENIU

ZESTAWY EDUKACYJNE. Analogowy System Sterowania Warszawa, Janowskiego 15 tel./fax (22) ,

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Komunikacja w mikrokontrolerach Laboratorium

Regulacja dwupołożeniowa.

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

Realizacje regulatorów PID w sterownikach PLC Siemens S7-1200

Elektronika z wykorzystaniem Arduino i Raspberry Pi : receptury / Simon Monk. Gliwice, copyright Spis treści. Przedmowa 11

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

PAiTM. materiały uzupełniające do ćwiczeń Wydział Samochodów i Maszyn Roboczych studia inżynierskie prowadzący: mgr inż.

MiAcz3. Elektryczne maszynowe napędy wykonawcze

Aoi Ryuu. v2.0 moduł z mikroprocesorem Atmega169 dla makiety dydaktycznej Akai Kaba

PRZEMIENNIKI CZĘSTOTLIWOŚCI W DWUSIL- NIKOWYM NAPĘDZIE WAŁU TAŚMOCIĄGU PO- WIERZCHNIOWEGO

Standardowe. właściwości porównanie konfiguracji Opis ic5 ig5 is5 ih

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym lokalne interfejsy szeregowe

Przemysłowy Sterownik Mikroprocesorowy

Zastosowanie silników krokowych jako napęd robota mobilnego

Ćw. 18: Pomiary wielkości nieelektrycznych II

Projekt i wykonanie robota klasy Micromouse

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

Moduł sterownika PID serwosilnika prądu stałego. DCS02.

kierunkowy (podstawowy / kierunkowy / inny HES) nieobowiązkowy (obowiązkowy / nieobowiązkowy) język polski VI semestr letni (semestr zimowy / letni)

Instytut Teleinformatyki

Rozproszony system zbierania danych.

Transkrypt:

Serwomechanizm Możliwość dokładnego sterowania położenia (lub podobnej wartości) za pomocą układu ze sprzężeniem zwrotnym: Systemy Wbudowane Raspberry Pi Sterowanie serwomechanizmem (wersja 2019) Zadajemy nowe położenie, Układ zmierza ku położeniu, Odbywa się ciągły pomiar położenia, Gdy położenie osiągnie żądane, układ zatrzymuje się. Problemy: mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków 1 Serwomechanizm z silnikiem krokowym Bezwładność, Niedokładność mechanizmu, Oscylacje (zbyt wąska histereza) 2 Serwomechanizm na silniku klasycznym Dodatkowe pomiary położenia za pomocą tarczy magnesów trwałych i czujnika (hallotron lub kontaktron), rzadziej stosowany jest pomiar wartości ciągłej (potencjometr). Często dostępne jako "wszystko w jednym", Możliwość użycia gotowych układów aparaturowych i modelarskich Stosowany gdy pozycja wału silnika jest niewystarczająca do ustalenia położenia, Pomiar położenia odbywa się na ostatnim stadium (np. sterowanie kamerą na samej obudowie kamery, nie wale silnika kilka przekładni wcześniej), Niezbędne układy pomiarowe, stały monitoring położenia (np. transoptor odbiciowy), nie tylko położeń krańcowych (wyłączniki krańcowe). Zastosowanie: Aparatura produkcyjna wysokiej precyzji, Profesjonalne skanery, Urządzenia wielkiej skali. 3 Potencjometr: 4 Regulator PID: Sprzężenie zwrotne, ale jak? Nie tylko położenie... Jakkolwiek większość serwomechanizmów służy do regulacji położenia, możliwe jest zastosowanie regulatorów o sprzężeniu zwrotnym do regulacji i stabilizacji innych wielkości. Fotografia: Detektor prędkości silnika napędu taśmowego. Pomiar służy do stabilizacji prędkości i kompensacji niedokładności szybkości silnika. Problemy: Zapamiętujemy poprzednie wskazania i wyciągamy wnioski, Przewidujemy do przodu, Cały czas mamy aktualną pozycję i korygujemy ją, Poprawki nanosimy iteracyjnie, małymi krokami, Konieczna dokładność pomiarów Szybki układ obsługi sprzężenia zwrotnego. 5 6

Regulator PID Skład PID: Człon proporcjonalny e(t) = r(t) y(t) Człon całkujący u(t) zmiany które trzeba uwzględnić r(t) cel do osiągnięcia e(t) błąd w danym momencie y(t) efekt wprowadzanych zmian Człon różniczkujący u(t) zmiany które trzeba uwzględnić r(t) cel do osiągnięcia e(t) błąd w danym momencie y(t) efekt wprowadzanych zmian 7 Serwomechanizm podłączenie do RPi i efekt (w zależności od K): Kp 8 Sterowany dedykowanym układem konwertującym ws. wypełnienia PWM na położenie, Niezbędne 3 linie na każdy serwomechanizm: Zasilanie (z reguły 5V), GND, sygnał sterujący, Niektóre serwomechanizmy o dużym momencie wymagają osobnego zasilania silników. Ki Kd 9 Podłączenie servo do RPi 10 Konwersja PWM->Położenie 0o Ground 0.45/20*100%=2.25% 5V 90 o PWM 1.5/20*100%=7.5% 180o 2.5/20*100%=12.5% 11 12

PWM 0% 0o 0.45/20*100% = 2.25% 50% 90o 1.5/20*100% = 7.5% 100% 180o 2.5/20*100% = 12.5% 13 14 Magistrala SPI Szeregowa magistrala służąca do komunikacji między elementami układu, Linie: SCK Zegar MISO Master In, Slave Out MOSI Master Out, Slave In /Select Magistrala SPI Wiele urządzeń wiele linii /SELECT. /SELECT Active LOW (urządzenie jest wybrane gdy stan niski) Zaproponowana przez firmę Philips, zaadaptowana do przetworników pomiarowych, pamięci, a nawet programowania mikrokontrolerów (AVR!) 15 SPI vs I2C 16 Wiele urządzeń SPI SPI: Dwie linie dla dwóch kierunków I2C: Jedna linia dwukierunkowa. SPI: Wybór układu kolejnymi liniami adresów I2C: wybór układu przez jego zdres, inne układy ignorują komunikat. I2C: Slave może na jakiś czas być urządzeniem Master, jeżeli nic temu nie przeszkadza, SPI: Jedno urządzenie Master. I2C: Urządzenie slave może spowolnić komunikację. SPI: Zegar jest zawsze nadawany przez urządzenie Master. 17 18

Konfiguracja CPOL i CPHA Przykład 19 20 Przykładowe podłączenie MCP3008 - Komunikacja Przetwornik Analogowo-cyfrowy (ADC) MCP3008 SS SCK MOSI MISO 21 22 21 (2) #include <iostream> #include <stdint.h> uint8_t mode = SPI_MODE_0; uint8_t bpw = 8; // bits per word uint32_t speed = 500000; // some code here... int main() { // some code here... uint8_t int handle = -1; bool open() { handle = ::open( "/dev/spidev0.0", O_RDWR ); 3 ]; 0 ] = 1; 1 ] = ( differential? 0 : ( 1 << 7 ) ) ( channel << 4 ); 2 ] = 0; if( handle < 0 ) return false; if( ::ioctl( handle, SPI_IOC_WR_MODE, &mode ) < 0 ::ioctl( handle, SPI_IOC_RD_MODE, &mode ) < 0 ::ioctl( handle, SPI_IOC_WR_BITS_PER_WORD, &bpw ) < 0 ::ioctl( handle, SPI_IOC_RD_BITS_PER_WORD, &bpw ) < 0 ::ioctl( handle, SPI_IOC_WR_MAX_SPEED_HZ, &speed ) < 0 ::ioctl( handle, SPI_IOC_RD_MAX_SPEED_HZ, &speed ) < 0 ) { ::close( handle ); return false; return true; if( transfer( buffer, 3 ) ) { uint16_t hi = ( 1 ] << 8 ) & 0x0300; uint16_t lo = ( 2 ] << 0 ) & 0x00FF; uint16_t value = hi lo; cout << 100.0 * ( (double)value / 1023.0 ); return 0; 23 24

(3) bool transfer( uint8_t *data, uint16_t length ) { struct ::spi_ioc_transfer pack; pack.tx_buf = (unsigned long)data; // transmit from "data" pack.tx_nbits = 8; pack.rx_buf = (unsigned long)data; // receive into "data" pack.rx_nbits = 8; pack.len = length; pack.delay_usecs = 0; pack.speed_hz = speed; // 500000 pack.bits_per_word = bpw; // 8 pack.cs_change = 0; // 0 or 1 for RPi // data transmission if( ::ioctl( handle, SPI_IOC_MESSAGE( 1 ), &pack ) < 0 ) return false; return true; 25