Balansowanie piłeczką, czyli ciekawy przykład PID w praktyce

Balansowanie piłeczką, czyli ciekawy przykład PID w praktyce

Celem opisywanego projektu jest utrzymanie małej piłeczki na specjalnej, ruchomej platformie. Urządzenie to jest więc ciekawym gadżetem oraz świetnym przykładem użycia regulatora PID.

Pozycja piłki śledzona jest przez kamerę. Program bazujący na OpenCV wyznacza nowe położenie dla platformy i przesyła je do urządzenia.

Mała kamera znajdująca się nad urządzeniem stale monitoruje jego powierzchnię. Zebrane informacje o położeniu piłeczki są następnie przeliczane przez program napisany w Pythonie. Skrypt oblicza, w jaki sposób należy przechylić platformę, aby zapobiec upadkowi piłeczki.

Urządzenie zaprojektowane przez Johana Linka składa się z 3 serwomechanizmów modelarskich, płytki sterującej (zgodnej z Arduino) oraz kamerki internetowej. Elementy mechaniczne wykonane zostały na drukarce 3D oraz CNC. Płytka została zaprojektowana w EAGLE i wykonana przez odpowiednią firmę.

Sercem sterownika jest mikrokontroler Atmega32u4 – ten sam, który znajdziemy na Arduino Leonardo. Umożliwia to wygodne zaprogramowanie procesora z użyciem środowiska oraz bibliotek Arduino. Urządzenie kontroluje pracę trzech serw modelarskich odpowiedzialnych za przechylanie platformy. Płytka wyposażona jest dodatkowo w port USB – służący do komunikacji z PC.

Sterownik zamocowany w obudowie urządzenia

Sterownik zamocowany w obudowie urządzenia

Program w Pythonie wykorzystuje bibliotekę OpenCV, która wyznacza uśrednione położenie piłeczki na platformie. Następnie, przy użyciu regulatora PID, wyliczany jest kąt, o jaki należy przechylić tackę, aby piłeczka wróciła do wyznaczonego położenia.

Czyli w uproszczeniu: jeżeli piłeczka oddala się od centrum tacy – a więc położenia zadanego – tacka wychylana jest w taki sposób, aby piłeczka wróciła do centralnego położenia. Im szybciej się ona porusza, tym mocniej trzeba przechylić platformę.

Urządzenie działa imponująco szybko i dokładnie. Pozwala nie tylko utrzymywać piłeczkę w położeniu równowagi, lecz także poruszać nią po zadanej trajektorii. Wykorzystana tutaj biblioteka OpenCV jest bardzo przydatnym narzędziem, które znacznie ułatwiło wykonanie tego zadania.

Na poniższym filmie przedstawione zostały możliwości tego projektu:

Osoby zainteresowane zbudowaniem podobnego projektu znajdą wszystkie niezbędne informacje w instrukcji przygotowanej przez autora tego DIY. Wykorzystywaliście w swoich projektach PID? Macie pomysł na inne gadżety, które byłyby dobrym stanowiskiem demonstracyjnym dla tego algorytmu?

OpenCV – #1 – Pierwsze kroki
OpenCV – #1 – Pierwsze kroki

W dzisiejszych czasach, gdy możliwości układów cyfrowych stale rosną, zaimplementowanie… Czytaj dalej »

Źródło: [1]

arduino, OpenCV, projekt, Python

Trwa ładowanie komentarzy...