Czym jest XiaoMi CyberGear Mikrosilnik
Mikrosilnik Xiaomi CyberGear to kompaktowy, a jednocześnie potężny mikrosilnik zaprojektowany do zaawansowanych zastosowań robotycznych i bionicznych. Charakteryzuje się wysokim stosunkiem momentu obrotowego do rozmiaru, szybkim czasem reakcji oraz precyzyjną kontrolą, co umożliwia realistyczne i płynne ruchy w kończynach i mechanizmach robotycznych. Jego modułowa konstrukcja oraz inteligentne algorytmy sterowania ułatwiają bezproblemową integrację złożonych systemów, czyniąc go odpowiednim do zastosowań od bionicznych protez po zaawansowane robotyczne zwierzęta domowe. Xiaomi podkreśla jego potencjał do tworzenia bardziej realistycznych i interaktywnych doświadczeń robotycznych.
Instrukcja obsługi mikrosilnika CyberGear
Środki ostrożności
-
Proszę używać go zgodnie z parametrami pracy określonymi w tym artykule, w przeciwnym razie spowoduje to poważne uszkodzenie tego produktu!
-
Tryb sterowania nie może być zmieniany podczas pracy przegubu. Jeśli potrzebujesz zmienić tryb, musisz najpierw wysłać polecenie zatrzymania przed przełączeniem.
-
Proszę sprawdzić, czy wszystkie części są nienaruszone przed użyciem. Jeśli części są brakujące lub uszkodzone, prosimy o niezwłoczny kontakt z pomocą techniczną.
-
Nie demontuj silnika samowolnie, aby uniknąć nieodwracalnych uszkodzeń.
-
Upewnij się, że nie ma zwarcia podczas podłączania silnika oraz że interfejs jest podłączony prawidłowo zgodnie z wymaganiami.
Informacje prawne
Przed użyciem tego produktu użytkownik musi dokładnie przeczytać niniejszą instrukcję i obsługiwać produkt zgodnie z jej treścią. Jeśli użytkownik będzie korzystał z tego produktu niezgodnie z treścią tej instrukcji, firma nie ponosi odpowiedzialności za jakiekolwiek szkody majątkowe lub wypadki powodujące obrażenia ciała. Ponieważ produkt składa się z wielu części, nie należy dopuszczać dzieci do kontaktu z tym produktem, aby uniknąć wypadków. Aby wydłużyć żywotność produktu, prosimy nie używać go w warunkach wysokiej temperatury i wysokiego ciśnienia. Niniejsza instrukcja starała się jak najlepiej zawrzeć różne opisy funkcji i instrukcje użytkowania w momencie druku. Jednak ze względu na ciągłe ulepszanie funkcji produktu, zmiany w projekcie itp., mogą wystąpić rozbieżności w stosunku do produktów zakupionych przez użytkowników.
Mogą występować różnice między niniejszą instrukcją a rzeczywistym produktem pod względem koloru, wyglądu itp. Prosimy o odniesienie się do rzeczywistego produktu. Niniejsza instrukcja jest publikowana przez Xiaomi lub jej lokalne oddziały. Xiaomi może wprowadzać niezbędne poprawki i zmiany w tej instrukcji dotyczące błędów typograficznych, nieścisłości najnowszych informacji lub ulepszeń programów i/lub sprzętu w dowolnym momencie bez wcześniejszego powiadomienia. Takie zmiany będą zamieszczane w nowej wersji tej instrukcji. Prosimy zeskanować kod QR tej instrukcji, aby ją uzyskać. Wszystkie zdjęcia służą wyłącznie do opisu funkcji. Prosimy o odniesienie się do rzeczywistego produktu.
Polityka posprzedażowa
Obsługa posprzedażowa tego produktu jest ściśle zgodna z "Ustawą o ochronie praw i interesów konsumentów Chińskiej Republiki Ludowej" oraz "Ustawą o jakości produktów Chińskiej Republiki Ludowej". Zakres usług jest następujący:
Okres i zakres gwarancji
Użytkownicy, którzy złożą zamówienie na zakup tego produktu za pośrednictwem kanałów online, mogą skorzystać z usługi zwrotu bez podania przyczyny w ciągu siedmiu dni od dnia otrzymania. Przy zwrocie towarów użytkownicy muszą przedstawić ważny dowód zakupu oraz zwrócić fakturę. Użytkownicy muszą zapewnić, że zwracane towary zachowują swoją oryginalną jakość i funkcjonalność, ich wygląd jest nienaruszony, a znaki towarowe i logotypy towarów oraz akcesoriów są kompletne. Jeśli dołączone były prezenty, muszą zostać zwrócone razem z produktem. Jeśli produkt jest uszkodzony sztucznie, rozmontowany ręcznie, brak opakowania lub brak części zamiennych, zwroty nie będą realizowane. Koszty logistyczne związane ze zwrotem towarów ponosi użytkownik (patrz "Standardy opłat za serwis posprzedażowy" w celu poznania standardów opłat). Jeśli użytkownik nie ureguluje opłat logistycznych, rzeczywista kwota zostanie potrącona z kwoty zwrotu. Zapłacona cena zostanie zwrócona użytkownikowi w ciągu siedmiu dni od daty otrzymania zwróconych towarów. Metody zwrotu są takie same jak metody płatności. Konkretna data przybycia może być uzależniona od czynników takich jak banki i instytucje płatnicze.
Jeśli awaria wynikająca z przyczyn niezwiązanych z uszkodzeniem przez użytkownika wystąpi w ciągu 7 dni od dnia następnego po podpisaniu odbioru przez użytkownika, centrum serwisowe Xiaomi zajmie się zwrotem po przeprowadzeniu inspekcji i potwierdzeniu. Przy zwrocie produktu użytkownik musi okazać ważny dowód zakupu oraz fakturę zwrotną. Wszelkie prezenty muszą zostać zwrócone razem z produktem.
Jeśli uszkodzenie lub awaria działania niezwiązana z człowiekiem wystąpi w ciągu 7 do 15 dni od dnia następnego po podpisaniu odbioru przez użytkownika, centrum obsługi posprzedażowej Xiaomi zajmie się wymianą dla użytkownika i wymieni cały zestaw produktów po inspekcji i potwierdzeniu. Po wymianie okres gwarancji na produkt zostanie ponownie obliczony.
Od 15 do 365 dni od dnia następującego po dniu podpisania przez użytkownika, po inspekcji i potwierdzeniu przez centrum serwisowe Xiaomi, jest to wada jakościowa samego produktu, a usługi naprawcze mogą być świadczone bezpłatnie. Wymieniony wadliwy produkt należy do firmy Xiaomi. Produkt bez wad zostanie zwrócony w stanie oryginalnym. Ten produkt opuszcza fabrykę po przejściu różnych rygorystycznych testów. Jeśli wystąpi jakakolwiek wada jakościowa niezwiązana z samym produktem, zastrzegamy sobie prawo do odmowy zwrotu lub wymiany przez użytkownika.
Jeśli polityka posprzedażowa w tym podręczniku jest niezgodna z polityką posprzedażową sklepu, obowiązuje polityka posprzedażowa sklepu.
Regulacje dotyczące braku gwarancji: Następujące sytuacje nie są objęte gwarancją:
Przekracza okres gwarancji określony w warunkach gwarancji.
Uszkodzenie produktu spowodowane niewłaściwym użyciem bez przestrzegania instrukcji.
Uszkodzenia spowodowane niewłaściwą obsługą, konserwacją, instalacją, modyfikacją, testowaniem oraz innym nieprawidłowym użytkowaniem.
Konwencjonalne mechaniczne straty i zużycie spowodowane wadami nienależącymi do jakości.
Uszkodzenia spowodowane nienormalnymi warunkami pracy, w tym między innymi upadkiem, uderzeniem, zanurzeniem w cieczy, gwałtownym uderzeniem itp.
Szkody spowodowane przez klęski żywiołowe (takie jak powodzie, pożary, uderzenia piorunów, trzęsienia ziemi itp.) lub siłę wyższą.
Uszkodzenia spowodowane użyciem powyżej maksymalnego momentu obrotowego.
Przedmioty, które nie są oryginalnymi produktami Xiaomi, mogą nie być w stanie dostarczyć prawnego dowodu zakupu.
Inne awarie lub uszkodzenia nie spowodowane problemami takimi jak projekt produktu, technologia, produkcja, jakość itp.
Używaj tego produktu do celów komercyjnych.
Jeśli wystąpi powyższa sytuacja, użytkownicy muszą sami pokryć opłaty. Szczegóły dotyczące polityki posprzedażowej grupy można znaleźć w: https://www.mi.com/service/serviceAgreement?id=17
Specyfikacje silnika
1.1 Wygląd i wymiary montażowe
1.2 Standardowy status użytkowania
1.2.1 Napięcie znamionowe: 24 VDC
1.2.2 Zakres napięcia roboczego: 16V—28 VDC
1.2.3 Obciążenie znamionowe (CW): 4 N.m
1.2.4 Kierunek obrotu: zgodny z ruchem wskazówek zegara/przeciwny do ruchu wskazówek zegara, patrząc od strony wału
1.2.5 Pozycja użytkowania: Kierunek osi jest poziomy lub pionowy
1.2.6 Standardowa temperatura pracy: 25±5°C
1.2.7 Zakres temperatury pracy: -20 ~ 50°C
1.2.8 Standardowa wilgotność robocza: 65%
1.2.9 Zakres wilgotności roboczej: 5 ~ 85%, bez kondensacji
1.2.10 Zakres temperatury przechowywania: -30 ~ 70°C
1.2.11 Poziom izolacji: Klasa B
1.3 Charakterystyka elektryczna
1.3.1 Prędkość bez obciążenia: 296 obr./min ±10%
1.3.2 Prąd jałowy: 0,5 Arms
1.3.3 Obciążenie znamionowe: 4 N.m
1.3.4 Nominalna prędkość obciążenia: 240obr/min±10% 1.3.5 Nominalny prąd obciążenia (szczytowy): 6,5A±10% 1.3.6 Szczytowe obciążenie: 12 N.m
1.3.7 Prąd szczytowy (wartość szczytowa): 23A±10%
1.3.8 Rezystancja izolacji/uzwojenie stojana: DC 500VAC, 100M Ohm 1.3.9 Odporność na wysokie napięcie/ stojan i obudowa: 600 VAC, 1s, 2mA 1.3.10 Siła elektromotoryczna zwrotna silnika: 0,054-0,057Vrms/obr./min
1.3.11 Opór linii: 0,45Ω±10%
1.3.12 Stała momentu obrotowego: 0,87N.m/Arms
1.3.13 Indukcyjność silnika: 187-339μH
1.3.14 Krzywa T-N
1.3.15 Maksymalna krzywa przeciążenia Warunki testu:
Temperatura otoczenia: 25°C
Temperatura graniczna uzwojenia: 120°C
Prędkość: 24 obr./min
Krzywa maksymalnego obciążenia
Maksymalny czas przeciążenia (s) a moment obrotowy (N.m)
Dane testowe
Ładuj | Czas pracy (s) |
12 | 28 |
11 | 45 |
10 | 60 |
9 | 90 |
8 | 160 |
7 | 320 |
6 | 700 |
5 | 1800 |
4.5 | 2500 |
4 | oceniany |
1.4 Właściwości mechaniczne
1.4.1 Waga: 317g±3g
1.4.2 Liczba biegunów: 28 biegunów 1.4.3 Liczba faz: 3 fazy
1.4.4 Tryb jazdy: FOC
1.4.5 Stosunek redukcji: 7,75:1
Informacje o produkcie Drive
2.1 Wprowadzenie wyglądu kierowcy i specyfikacje produktu
Zasilacz 24V i zintegrowany terminal komunikacji CAN;
Wersja sprzętu i laserowe grawerowanie kodu QR;
Port pobierania MCU;
Punkt testowy komunikacji CAN;
Lampka kontrolna;
Otwory montażowe; 7. „C, A, B” to punkty spawania uzwojenia trójfazowego;
Specyfikacje produktu
Napięcie znamionowe pracy | 24VDC |
Maksymalne dozwolone napięcie | 28VDC |
Nominalny prąd roboczy | 6,5A |
Maksymalny dozwolony prąd | 23A |
Zużycie energii w trybie czuwania | ≤18mA |
Prędkość bitowa magistrali CAN | 1Mbps |
Rozmiar | Φ58mm |
Temperatura środowiska pracy | -20°C 50°C |
Maksymalna temperatura dozwolona przez płytę sterującą | 80°C |
Rozdzielczość enkodera | 14-bitowa (pojedynczy obrót wartość bezwzględna) |
2.2 Definicja interfejsu kierowcy
2.2.1 Diagram interfejsu kierowcy
2.2.2 Zalecane marki i modele interfejsów napędu
# | Model płyty | Producent marki | Model końca linii | Producent marki |
1 | XT30PB(2+2)-M.G.B | AMASS (AMS) | XT30(2+2)-F.G.B | AMASS (AMS) |
2 | 2,0 mm-2P żeński | / | 2,0 mm-2P męski | / |
3 | 2,54mm-4P żeński | / | 2,54mm-4P męski | / |
2.2.3 Definicja pinów interfejsu sterownika
Zasilanie i port komunikacji CAN
Płytka testowa komunikacji CAN
Port pobierania
# | Funkcja interfejsu | PIN | Opis |
1 | Zasilanie i komunikacja CAN | 1 | Zasilanie dodatnie (+) |
2 | Biegun ujemny zasilania (-) | ||
3 | Komunikacja CAN niskiego poziomu CAN_L | ||
4 | Komunikacja CAN wysoka strona CAN_H | ||
2 | Punkt testowy komunikacji CAN | 1 | Komunikacja CAN niskiego poziomu CAN_L |
2 | Komunikacja CAN wysoka strona CAN_H | ||
3 | Port pobierania | 1 | SWDIO(dane) |
2 | SWCLK(zegar) | ||
3 | 3V3 (dodatnie 3,3V) | ||
4 | GND (ujemny biegun) |
2.3 Definicja kierowcy lampka kontrolna
Niebieska lampka sygnalizacyjna i czerwona lampka zasilania
Definicja lampki kontrolnej
Wskaźnik zasilania (czerwona lampka podczas pracy) | Lampka wskaźnika zasilania służy do wskazywania zasilania MCU 3,3V. Gdy całkowite napięcie zasilania wynosi 24V, lampka świeci na czerwono, co potwierdza, że cała sieć jest zasilana prawidłowo. Jeśli zasilanie wynosi 24V, a lampka wskaźnika nie świeci, należy natychmiast odciąć zasilanie. |
Wskaźnik sygnału (niebieskie światło podczas włączania) | Gdy lampka sygnałowa miga, oznacza to, że MCU działa prawidłowo, a układ sterownika działa prawidłowo |
2.4 Główne komponenty i specyfikacje
# | Typ komponentu | Model | Ilość |
1 | układ MCU | GD32F303RET6 | 1 SZT |
2 | Układ sterownika | 6EDL7141 | 1 SZT |
3 | Magnetyczny układ enkodera | AS5047P | 1 SZT |
4 | Termistor | NXFT15XH103FEAB021/NCP18XH103F03RB | 2 SZT |
5 | Moc MOS | JMGG031V06A | 6 SZT |
Instrukcje użycia debugera (skanowanie Kod QR na końcu papierowego podręcznika, aby uzyskać debugger)
3.1 Konfiguracja sprzętu
Silnik przegubowy używa komunikacji CAN. Istnieją dwie linie komunikacyjne, które są podłączone do debugera za pomocą narzędzia can-to-USB. Debuger wymaga wcześniejszej instalacji sterownika ch340 i domyślnie działa w trybie AT.
Należy zauważyć, że debugger opracowaliśmy na podstawie konkretnego narzędzia CAN do USB, dlatego do debugowania należy używać naszego zalecanego narzędzia portu szeregowego. Jeśli chcesz przenieść go na inne platformy debuggera, możesz odnieść się do rozdziału 3 podręcznika rozwoju.
Narzędzie can to USB zaleca używanie modułu USB-CAN firmy YourCee. Nagłówek ramki odpowiadający protokołowi portu szeregowego to 41 54, a ogon ramki to 0D 0A.
3.2 Interfejs debugera i opis
głównie obejmują:
A. Wybór modułu
-
Moduł urządzenia
-
Moduł konfiguracji
-
Moduł analizy
-
Moduł pomocy
B. Wybór podmodułu Moduły sprzętowe obejmują
-
Podłącz lub odłącz sprzęt elektryczny
-
Informacje o wyposażeniu silnika
-
Kalibracja enkodera silnika
-
Modyfikuj identyfikator CAN silnika
-
Ustaw mechaniczne położenie zerowe silnika
-
Aktualizacja programu silnika
Moduły konfiguracyjne obejmują:
-
Tabela parametrów, możesz przeglądać i modyfikować parametry silnika
-
Prześlij parametry. Możesz przesłać parametry w silniku do tabeli parametrów
-
Pobierz parametry. Możesz pobrać dane z tabeli parametrów do silnika
-
Parametry eksportu. Możesz pobrać dane z tabeli parametrów na lokalny dysk
-
Resetowanie do ustawień fabrycznych, możesz przywrócić dane w tabeli parametrów do ustawień fabrycznych.
-
Wyczyść ostrzeżenie, możesz wyczyścić błędy silnika, takie jak nadmierna temperatura itp.
Moduły analityczne obejmują:
-
Oscyloskop do obserwacji zmian parametrów w czasie
-
Częstotliwość, możesz dostosować częstotliwość wyświetlania danych
-
Kanał, możesz skonfigurować dane do wyświetlenia
-
Rozpocznij i zatrzymaj rysowanie
-
Wyprowadź dane fali wyjściowej do lokalnego
Moduły pomocy obejmują:
-
Instrukcje użytkowania, możesz otworzyć instrukcję obsługi
-
O programie, możesz przeglądać informacje o oprogramowaniu
C. Zapytanie o informacje o silniku
-
Informacje o urządzeniu
-
Informacje o tabeli parametrów
D. Kolumna danych
-
Informacje o logu
-
Informacje o komunikacji
E. Uruchom obszar debugowania
-
Wybierz urządzenie
-
Wygodny obszar obsługi, umożliwiający szybkie sterowanie obrotem silnika do przodu i do tyłu
-
Obszar sterowania ruchem, który może kontrolować silnik do pracy w różnych trybach
F. Obszar wyświetlania podmodułu
3.3 Ustawienia silnika
3.3.1 Ustawienia połączenia silnika
Podłącz moduł CAN do narzędzia USB (zainstaluj sterownik ch340, domyślnie działa w trybie AT), wybierz moduł urządzenia, kliknij podmoduł połączenia i wybierz odpowiednie połączenie portu szeregowego.
3.3.2 Podstawowe ustawienia
Zmodyfikuj numer identyfikacyjny silnika.
-
Kalibracja magnetycznego oplotu silnika, ponowny montaż płyty silnika i silnika lub ponowne podłączenie przewodów silnika w innej kolejności itp. wymaga ponownej kalibracji magnetycznego oplotu.
-
Ustaw pozycję zerową (utracona w przypadku awarii zasilania) i ustaw bieżącą pozycję na 0.
-
Aktualizacja programu silnika. Po zaktualizowaniu programu silnika kliknij przycisk aktualizacji, aby wybrać plik aktualizacji do przeprowadzenia aktualizacji.
3.3.3 Lista parametrów
Po pomyślnym podłączeniu silnika kliknij moduł tabeli parametrów w module konfiguracji, a wszystkie parametry zostaną wyświetlone w dzienniku. Ładowanie zakończone sukcesem oznacza, że odpowiednie parametry silnika zostały pomyślnie odczytane (Uwaga: tabela parametrów musi być w stanie gotowości silnika. Konfiguruj w tym stanie, jeśli silnik jest w stanie pracy, tabela parametrów nie może zostać odświeżona). Interfejs wyświetli elektryczne odpowiednie parametry silnika. Niebieskie parametry to wewnętrzne parametry przechowywane w silniku. Można je znaleźć bezpośrednio po odpowiednich parametrach. Zmodyfikuj kolumnę poprzedniej wartości. Kliknij Pobierz parametry, aby pobrać parametry z debuggera do silnika. Kliknij Prześlij. Parametry mogą przesłać parametry z silnika do debuggera. Zielone parametry silnika to obserwowane parametry, które są zbieranymi parametrami i mogą być obserwowane w czasie rzeczywistym.
Uwaga: Proszę nie zmieniać limitu momentu obrotowego silnika, temperatury ochronnej oraz czasu przekroczenia temperatury bez uzasadnionej przyczyny. W przypadku nielegalnej obsługi tej książki, jeśli produkt spowoduje szkodę dla ludzkiego ciała lub nieodwracalne uszkodzenia stawów, nasza firma nie ponosi odpowiedzialności prawnej za jakiekolwiek konsekwencje prawne.
Tabela parametrów
Kod funkcji | Nazwa | Typ parametru | Atrybuty | Wartość maksymalna | Wartość minimalna | Aktualna wartość (do odniesienia) | Uwaga |
0x0000 | Nazwa | Łańcuch | odczyt/zapis | ||||
0x0001 | Kod kreskowy | Łańcuch | odczyt/zapis | ||||
0x1000 | WersjaKoduStartowego | Łańcuch | tylko do odczytu | 0.1.5 | |||
0x1001 | DataBudowyBoota | Łańcuch | tylko do odczytu | 16 mar 2022 | |||
0x1002 | CzasBudowyBootu | Łańcuch | tylko do odczytu | 20:22:09 | |||
0x1003 | WersjaAppCode | Łańcuch | tylko do odczytu | 0.1.5 | Numer wersji programu silnika | ||
0x1004 | WersjaAppGit | Łańcuch | tylko do odczytu | 7b844b0fM | |||
0x1005 | DataBudowyAplikacji | Łańcuch | tylko do odczytu | 14 kwi 2022 | |||
0x1006 | CzasBudowyAplikacji | Łańcuch | tylko do odczytu | 20:30:22 | |||
0x1007 | NazwaAplikacji | Łańcuch | tylko do odczytu | dog_motor | |||
0x2000 | echoPara1 | uint16 | Konfiguracja | 74 | 5 | 5 | |
0x2001 | echoPara2 | uint16 | Konfiguracja | 74 | 5 | 5 | |
0x2002 | echoPara3 | uint16 | Konfiguracja | 74 | 5 | 5 | |
0x2003 | echoPara4 | uint16 | Konfiguracja | 74 | 5 | 5 | |
0x2004 | echoFreHz | uint32 | odczyt/zapis | 10000 | 1 | 500 | |
0x2005 | PrzesunięcieMechaniczne | liczba zmiennoprzecinkowa | ustawić | 7 | -7 | 4.619583 | Kąt przesunięcia enkodera magnetycznego silnika |
0x2006 | InicjalizacjaMechPos | liczba zmiennoprzecinkowa | odczyt/zapis | 50 | -50 | 4.52 | Kąt odniesienia podczas początkowego wielokrotnego obrotu |
0x2007 | limit_torque | liczba zmiennoprzecinkowa | odczyt/zapis | 12 | 0 | 12 | Limit momentu obrotowego |
0x2008 | I_FW_MAX | liczba zmiennoprzecinkowa | odczyt/zapis | 33 | 0 | 0 | Aktualna wartość prądu osłabiania pola, domyślnie 0 |
0x2009 | motor_index | uint8 | ustawić | 20 | 0 | 1 | Indeks silnika, oznacza pozycję złącza silnika |
0X200a | ID_CAN | uint8 | ustawić | 127 | 0 | 1 | Ten identyfikator węzła |
0x200b | CAN_MASTER | uint8 | ustawić | 127 | 0 | 0 | może hostować identyfikator |
0x200c | CAN_TIMEOUT | uint32 | odczyt/zapis | 100000 | 0 | 0 | próg limitu czasu CAN, domyślnie 0 |
0x200d | przegrzanie silnika | int16 | odczyt/zapis | 1500 | 0 | 800 | Wartość temperatury ochrony silnika, temp (stopień) *10 |
0x200e | czasPrzegrzania | uint32 | odczyt/zapis | 1000000 | 1000 | 20000 | Czas przegrzania |
0x200f | Przełożenie | liczba zmiennoprzecinkowa | odczyt/zapis | 64 | 1 | 7.75 | Przełożenie |
0x2010 | Tq_caliType | uint8 | odczyt/zapis | 1 | 0 | 1 | Ustawienie metody kalibracji momentu obrotowego |
0x2011 | cur_filt_gain | liczba zmiennoprzecinkowa | odczyt/zapis | 1 | 0 | 0.9 | Aktualne parametry filtra |
0x2012 | cur_kp | liczba zmiennoprzecinkowa | odczyt/zapis | 200 | 0 | 0.025 | Aktualny kp |
0x2013 | cur_ki | liczba zmiennoprzecinkowa | odczyt/zapis | 200 | 0 | 0.0258 | prąd elektryczny ki |
0x2014 | spd_kp | liczba zmiennoprzecinkowa | odczyt/zapis | 200 | 0 | 2 | Prędkość kp |
0x2015 | spd_ki | liczba zmiennoprzecinkowa | odczyt/zapis | 200 | 0 | 0.021 | prędkość ki |
0x2016 | loc_kp | liczba zmiennoprzecinkowa | odczyt/zapis | 200 | 0 | 30 | Lokalizacja kp |
0x2017 | spd_filt_gain | liczba zmiennoprzecinkowa | odczyt/zapis | 1 | 0 | 0.1 | Parametry filtra prędkości |
0x2018 | limit_spd | liczba zmiennoprzecinkowa | odczyt/zapis | 200 | 0 | 2 | Limit prędkości w trybie pozycji |
0x2019 | limit_cur | liczba zmiennoprzecinkowa | odczyt/zapis | 23 | 0 | 23 | Pozycja, limit prądu trybu prędkości |
0x3000 | timeUse0 | uint16 | tylko do odczytu (informatyka) | 5 | |||
0x3001 | timeUse1 | uint16 | tylko do odczytu (informatyka) | 0 | |||
0x3002 | timeUse2 | uint16 | tylko do odczytu (informatyka) | 10 | |||
0x3003 | timeUse3 | uint16 | tylko do odczytu (informatyka) | 0 | |||
0x3004 | encoderRaw | uint16 | tylko do odczytu (informatyka) | 11396 | Przykładowa wartość enkodera magnetycznego | ||
0x3005 | temperaturaMcu | int16 | tylko do odczytu (informatyka) | 337 | temperatura wewnętrzna mcu *10 | ||
0x3006 | temperaturaSilnika | int16 | tylko do odczytu (informatyka) | 333 | temperatura czujnika NTC silnika *10 | ||
0x3007 | vBus(mv) | uint16 | tylko do odczytu (informatyka) | 24195 | napięcie szyny zbiorczej | ||
0x3008 | adc1Offset | int32 | tylko do odczytu (informatyka) | 2084 | Próbkowanie kanału adc 1 zerowy prąd polaryzacji | ||
0x3009 | adc2Offset | int32 | tylko do odczytu (informatyka) | 2084 | próbka adc kanał 2 zerowe przesunięcie prądu | ||
0x300a | adc1Raw | uint16 | tylko do odczytu (informatyka) | 1232 | Wartość próbkowania adc 1 | ||
0x300b | adc2Surowy | uint16 | tylko do odczytu (informatyka) | 1212 | adc Wartość próbkowania 2 | ||
0x300c | VBUS | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 24.195 | Napięcie szyny zbiorczej V | ||
0x300d | cmdId | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | polecenie pierścienia identyfikatora, A | ||
0x300e | cmdIq | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | polecenie pierścienia iq, A | ||
0x300f | cmdlocref | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Polecenie pętli pozycji, rad | ||
0x3010 | cmdspdref | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Polecenie pętli prędkości, rad/s | ||
0x3011 | cmdMomentObrotowy | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Moment obrotowy, Nm | ||
0x3012 | cmdPos | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | z poleceniem kąta protokołu | ||
0x3013 | cmdVel | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | wskaźnik prędkości protokołu mit cnotliwy | ||
0x3014 | obrót | int16 | tylko do odczytu (informatyka) | 1 | liczba okrążeń | ||
0x3015 | modPos | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 4.363409 | Nieobliczony kąt mechaniczny silnika, rad | ||
0x3016 | pozycjaMecha | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0.777679 | Kąt liczenia pętli po stronie obciążenia, rad | ||
0x3017 | mechVel | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0.036618 | prędkość sterowania po stronie obciążenia, rad/s | ||
0x3018 | elecPos | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 4.714761 | Kąt elektryczny | ||
0x3019 | ia | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Prąd linii U, A | ||
0x301a | ib | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Prąd linii V, A | ||
0x301b | ic | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Prąd linii, A | ||
0x301c | zaznacz | uint32 | tylko do odczytu (informatyka) | 31600 | |||
0x301d | kolejnośćFazy | uint8 | tylko do odczytu (informatyka) | 0 | Markery kierunku kalibracji | ||
0x301e | iqf | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Wartość filtra iq, A | ||
0x301f | temperaturaPłyty | int16 | tylko do odczytu (informatyka) | 359 | Temperatura na pokładzie, *10 | ||
0x3020 | iq | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | oryginalna wartość iq, A | ||
0x3021 | id | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | id Oryginalna wartość, A | ||
0x3022 | faultSta | uint32 | tylko do odczytu (informatyka) | 0 | Wartość statusu błędu | ||
0X3023 | warnSta | uint32 | tylko do odczytu (informatyka) | 0 | Wartość statusu ostrzeżenia | ||
0x3024 | drv_fault | uint16 | tylko do odczytu (informatyka) | 0 | Wartość błędu układu sterownika | ||
0x3025 | drv_temp | int16 | tylko do odczytu (informatyka) | 48 | Wartość temperatury układu scalonego sterownika, stopień | ||
0x3026 | Uq | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | napięcie osi q | ||
0x3027 | Ud | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | napięcie osi d | ||
0x3028 | dtc_u | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Cykl pracy wyjścia fazy U | ||
0x3029 | dtc_v | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Cykl pracy wyjścia fazy V | ||
0x302a | dtc_w | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Cykl pracy wyjścia fazy W | ||
0x302b | v_bus | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 24.195 | vbus w zamkniętej pętli | ||
0x302c | v_ref | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Napięcie wejściowe syntezy vq, vd w pętli zamkniętej | ||
0x302d | torque_fdb | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 0 | Wartość sprzężenia zwrotnego momentu obrotowego, Nm | ||
0x302e | rated_i | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 8 | Prąd znamionowy silnika | ||
0x302f | limit_i | liczba zmiennoprzecinkowa | tylko do odczytu (informatyka) | 27 | Maksymalny limit prądu silnika |
3.3.4 Oscyloskop
Ten interfejs obsługuje przeglądanie i obserwację wykresu generowanego przez dane w czasie rzeczywistym. Obserwowalne dane obejmują prąd Id/Iq silnika, temperaturę, rzeczywistą prędkość wyjściową w czasie rzeczywistym, pozycję wirnika (enkodera), pozycję wyjściową itp.
Kliknij moduł oscyloskopu w module analizy, wybierz odpowiednie parametry w kanale (znaczenie parametrów znajduje się w punkcie 3.3.3), ustaw częstotliwość wyjściową i kliknij Rozpocznij Rysowanie, aby obserwować widmo danych, zatrzymaj rysowanie, aby przestać obserwować widmo.
3.4 Demonstracja kontroli
bieg joggingowy:
Ustaw maksymalną prędkość, kliknij Uruchom, a następnie kliknij JOG, aby uruchomić silnik w kierunku do przodu i do tyłu
Przełączanie trybu sterowania:
Tryb sterowania silnikiem można przekształcić w interfejs trybu ruchu.
3.4.1 Tryb zerowego punktu
Kliknij przycisk przełącznika po prawej stronie, a silnik powoli wróci do pozycji zerowej mechanicznej.
3.4.2 Tryb sterowania operacją
Kliknij przycisk przełącznika po prawej stronie, następnie ustaw pięć wartości parametrów, kliknij Start lub Ciągłe wysyłanie, silnik powróci do ramki sprzężenia zwrotnego i będzie działał zgodnie z docelową instrukcją; ponownie kliknij przycisk przełącznika po prawej stronie, a silnik zatrzyma się.
3.4.2 Tryb prądu
Ręcznie przełącz aktualny tryb, kliknij przycisk przełączania po prawej, a następnie ustaw wartość polecenia prądu Iq, rozpocznij lub wysyłaj ciągle, silnik będzie podążał za poleceniem prądu, kliknij ponownie przycisk przełączania po prawej, silnik zatrzyma się.
Kliknij przycisk przełącznika po prawej stronie trybu sterowania, wprowadź amplitudę i częstotliwość sinusoidalnego testu automatycznego, a następnie kliknij przycisk przełącznika po prawej stronie automatycznego testu sinusoidalnego, a prąd iq (A) silnika będzie działał zgodnie z ustawioną amplitudą i częstotliwością.
3.4.3 Tryb prędkości
Ręcznie przełącz na tryb prędkości, kliknij przycisk przełącznika po prawej, a następnie ustaw wartość polecenia prędkości (-30~30rad/s), uruchom lub wysyłaj ciągle, silnik będzie podążał za poleceniem prędkości, kliknij ponownie przycisk przełącznika po prawej, silnik zatrzyma się.
3.4.4 Tryb lokalizacji
Ręcznie przełącz tryb pozycjonowania, kliknij przycisk przełączania po prawej, następnie ustaw wartość polecenia pozycji (rad), uruchom lub wysyłaj ciągle, silnik będzie podążał za docelowym poleceniem pozycji, ponownie kliknij przycisk przełączania po prawej, silnik zatrzyma się. Możesz zmodyfikować maksymalną prędkość podążania za pozycją, ustawiając prędkość.
Kliknij przycisk przełącznika po prawej stronie trybu sterowania, wprowadź amplitudę i częstotliwość automatycznego testu opartego na sinusoidzie, a następnie kliknij przycisk przełącznika po prawej stronie automatycznego testu opartego na sinusoidzie. Pozycja silnika (rad) będzie działać zgodnie z ustawioną amplitudą i częstotliwością.
3.5 Aktualizacja oprogramowania układowego
Pierwszym krokiem jest kliknięcie aktualizacji modułu urządzenia i wybranie pliku bin do nagrania; drugim krokiem jest potwierdzenie aktualizacji, a silnik rozpocznie aktualizację oprogramowania układowego. Po zakończeniu postępu aktualizacja silnika zostanie zakończona i nastąpi automatyczny restart.
Protokół komunikacji kierowcy i instrukcje użytkowania
Komunikacja silnika to interfejs komunikacyjny CAN 2.0, z prędkością transmisji 1 Mbps i rozszerzonym formatem ramki, jak pokazano
Pole danych | 29-bitowy identyfikator | Obszar danych 8 bajtów | ||
Rozmiar | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | Typ komunikacji | Obszar danych 2 | Adres docelowy | Obszar danych 1 |
Tryby sterowania obsługiwane przez silnik obejmują:
-
Tryb sterowania operacją: podano 5 parametrów do sterowania pracą silnika;
-
Aktualny tryb: przy zadanym określonym prądzie Iq silnika;
-
Tryb prędkości: biorąc pod uwagę określoną prędkość pracy silnika;
-
Tryb pozycji: Po podaniu określonej pozycji silnika, silnik będzie działał do określonej pozycji;
4.1 Opis typu protokołu komunikacyjnego
4.1.1 Pobierz identyfikator urządzenia (typ komunikacji 0); Pobierz identyfikator urządzenia oraz 64-bitowy unikalny identyfikator MCU
Ramka żądania:
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 0 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID | 0 |
Ramka odpowiedzi:
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 0 | Silnik CAN_ID | 0xFE | Unikalny identyfikator MCU 64-bitowy |
4.1.2 Instrukcje sterowania silnikiem (typ komunikacji 1) w trybie sterowania operacyjnego są używane do wysyłania instrukcji sterujących do silnika.
Ramka żądania:
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 1 | Bajt 2: Moment obrotowy (0 ~ 65535) odpowiadający (- 12Nm ~ 12Nm) | Silnik CAN_ID | Bajt 0 ~ 1: Kąt docelowy [0 ~ 65535] odpowiadający (-4π ~ 4π) Bajt 2 ~ 3: Docelowa prędkość kątowa [0 ~ 65535] odpowiada (- 30rad/s ~ 30rad/s) Bajt 4 ~ 5: Kp [0 ~ 65535] odpowiada (0,0 ~ 500,0) Bajt 6 ~ 7: Kd [0 ~ 65535] odpowiada (0,0 ~ 5,0) |
Ramka odpowiedzi: Ramka sprzężenia zwrotnego silnika (zobacz typ komunikacji 2)
4.1.3 Dane zwrotne silnika (typ komunikacji 2) są używane do przekazywania statusu pracy silnika do hosta
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 2 | Bit 8 ~ 15: Identyfikator CAN silnika Bit 21 ~ 16: Informacje o błędzie (0 - Nie, 1 - Tak) Bit 21: nie skalibrowany Bit 20: błąd kodowania HALL Bit 19: Błąd kodowania magnetycznego Bit 18: przekroczenie temperatury Bit 17: przeciążenie prądowe Bit 16: Błąd niskiego napięcia Bit 22 ~ 23: status trybu: 0: Tryb resetowania [reset] 1: Tryb Cali [Kalibracja] 2: Tryb silnika [Praca] |
Host CAN_ID | Bajt 0 ~ 1: Aktualny kąt [0 ~ 65535] odpowiada (-4π ~ 4π) Bajt 2 ~ 3: Aktualna prędkość kątowa [0 ~ 65535] odpowiada (-30rad/s ~ 30rad/s) Bajt 4 ~ 5: Aktualny moment obrotowy [0 ~ 65535] odpowiada (-12Nm ~ 12Nm) Bajt 6 ~ 7: Aktualna temperatura: Temp (stopnie Celsjusza) )*10 |
4.1.4 Włączanie silnika (typ komunikacji 3)
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 3 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID |
Ramka odpowiedzi: Ramka sprzężenia zwrotnego silnika odpowiedzi (zobacz typ komunikacji 2)
4.1.5 Silnik zatrzymany (typ komunikacji 4)
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 4 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID | Podczas normalnej pracy obszar danych musi zostać wyczyszczony do 0; Gdy Byte[0]=1: Wyczyść błąd; |
Ramka odpowiedzi: Ramka sprzężenia zwrotnego silnika odpowiedzi (zobacz typ komunikacji 2)
4.1.6 Ustawienie mechanicznej pozycji zerowej silnika (typ komunikacji 6) spowoduje ustawienie bieżącej pozycji silnika na mechaniczną pozycję zerową (utracone po awarii zasilania)
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 6 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID | Byte[0]=1 |
Ramka odpowiedzi: Ramka sprzężenia zwrotnego silnika odpowiedzi (zobacz typ komunikacji 2)
4.1.7 Ustaw CAN_ID silnika (typ komunikacji 7), aby zmienić aktualny CAN_ID silnika, co będzie miało natychmiastowy efekt.
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 7 | Bit 15 ~ 8: Identyfikator CAN hosta Bit 16 ~ 23: Nowy CAN_ID silnika |
Silnik CAN_ID | Byte[0]=1 |
Ramka odpowiedzi: Ramka nadawcza silnika odpowiedzi (zobacz typ komunikacji 0)
4.1.8 Odczyt pojedynczego parametru (typ komunikacji 17)
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 17 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID | Bajt 0 ~ 1: indeks, patrz 4.1.11 dla listy parametrów Bajt 2 ~ 3: 00 Bajt 4 ~ 7: 00 |
Ramka odpowiedzi:
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 17 | Bit 15 ~ 8: Motor CAN_ID | Host CAN_ID | Bajt 0 ~ 1: indeks, dla listy parametrów, patrz 4.1.11 Bajt 2 ~ 3: 00 Bajt 4 ~ 7: dane parametru, 1 bajt danych znajduje się w Bajcie 4 |
4.1.9 Zapis pojedynczego parametru (typ komunikacji 18) (utracony po awarii zasilania)
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 18 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID | Bajt 0 ~ 1: indeks, patrz 4.1.11 dla szczegółów listy parametrów Bajt 2 ~ 3: 00 Bajt 4 ~ 7: dane parametru |
Ramka odpowiedzi: Ramka sprzężenia zwrotnego silnika odpowiedzi (zobacz typ komunikacji 2)
4.1.10 Ramka informacji zwrotnej o błędzie (typ komunikacji 21)
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 21 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID | Bajt 0 ~ 3: wartość błędu (nie 0: błąd, 0: normalny) Bit 16: Przeciążenie próbkowania prądu fazowego Bit 15 ~ 8: błąd przeciążenia Bit 7: enkoder nie skalibrowany Bit 5: Przeciążenie próbkowania prądu fazy C Bit 4: Próbkowanie prądu fazy B bit przeciążenia prądowego 3: błąd przepięcia Bit 2: bit usterki niskiego napięcia bit1: usterka układu sterownika bit0: usterka przegrzania silnika, domyślnie 80 stopni Bajt 4 ~ 7: wartość ostrzeżenia Bit 0: ostrzeżenie o przegrzaniu silnika, domyślnie 75 stopni |
4.1.11 Modyfikacja prędkości transmisji (typ komunikacji 22) (wersja 1.2.1.5 może być modyfikowana, proszę dokładnie zapoznać się z procesem dokumentu przed modyfikacją. Błędy operacyjne mogą powodować problemy takie jak niemożność połączenia z silnikiem oraz niemożność aktualizacji)
Pole danych | 29-bitowy identyfikator | obszar danych 8 bajtów | ||
Pozycja | Bit 28 ~ 24 | Bit 23 ~ 8 | Bit 7 ~ 0 | Bajt 0 ~ 7 |
Opis | 22 | Bit 15 ~ 8: Identyfikator CAN hosta | Silnik CAN_ID | Byte0: Prędkość transmisji silnika 1: 1Mbps 2: 500kbps 3: 250kbps 4: 125kbps |
Ramka odpowiedzi: Ramka nadawcza silnika odpowiedzi (zobacz typ komunikacji 0)
4.1.12 Czytelna i zapisywalna lista pojedynczych parametrów (7019-7020 jest czytelna przez wersję oprogramowania 1.2.1.5)
Indeks parametru | nazwa parametru | opisać | typ | Liczba bajtów | Możliwe wartości | Pozwolenie |
0x7005 | run_mode | 0: Tryb sterowania operacją 1: Tryb pozycji 2: Tryb prędkości 3: Bieżący tryb |
uint8 | 1 | W/R | |
0x7006 | iq_ref | Aktualny tryb polecenia Iq | liczba zmiennoprzecinkowa | 4 | -23 ~ 23A | W/R |
0x700A | spd_ref | Polecenie prędkości trybu prędkości | liczba zmiennoprzecinkowa | 4 | -30 ~ 30rad/s | W/R |
0x700B | limit_torque | Limit momentu obrotowego | liczba zmiennoprzecinkowa | 4 | 0~12Nm | W/R |
0x7010 | cur_kp | Współczynnik Kp prądu | liczba zmiennoprzecinkowa | 4 | Wartość domyślna 0,125 | W/R |
0x7011 | cur_ki | Aktualny Ki | liczba zmiennoprzecinkowa | 4 | Wartość domyślna 0,0158 | W/R |
0x7014 | cur_filt_gain | Aktualny współczynnik filtra filt_gain | liczba zmiennoprzecinkowa | 4 | 0~1.0, domyślna wartość W/R 0.1 | W/R |
0x7016 | loc_ref | Polecenie kąta trybu pozycji | liczba zmiennoprzecinkowa | 4 | rad | W/R |
0x7017 | limit_spd | Limit prędkości w trybie pozycji | liczba zmiennoprzecinkowa | 4 | 0 ~ 30rad/s | W/R |
0x7018 | limit_cur | Prędkość Pozycja Tryb Limit Prądu | liczba zmiennoprzecinkowa | 4 | 0 ~ 23A | W/R |
0x7019 | pozycjaMecha | Załaduj końcowe liczenie nakładek kąt mechaniczny | liczba zmiennoprzecinkowa | 4 | rad | R |
0x701A | iqf | wartość filtra iq | liczba zmiennoprzecinkowa | 4 | -23 ~ 23A | R |
0x701B | mechVel | Prędkość końcowa obciążenia | liczba zmiennoprzecinkowa | 4 | -30 ~ 30rad/s | R |
0x701C | VBUS | napięcie magistrali | liczba zmiennoprzecinkowa | 4 | V | R |
0x701D | obrót | Liczba obrotów | int16 | 2 | Liczba obrotów | W/R |
0x701E | loc_kp | kp pozycji | liczba zmiennoprzecinkowa | 4 | Wartość domyślna 30 | W/R |
0x701F | spd_kp | Prędkość w kp | liczba zmiennoprzecinkowa | 4 | Wartość domyślna 1 | W/R |
0x7020 | spd_ki | Prędkość ki | liczba zmiennoprzecinkowa | 4 | Wartość domyślna 0,002 | W/R |
4.2 Instrukcje użytkowania trybu sterowania
4.2.1 Przykład programu
Poniżej przedstawiono przykłady sterowania silnikami w różnych trybach (na przykładzie gd32f303). Poniżej znajdują się biblioteki, funkcje i definicje makr dla różnych przykładów.
#define P_MIN -12.5f #define P_MAX 12.5f #define V_MIN -30.0f #define V_MAX 30.0f #define KP_MIN 0.0f #define KP_MAX 500.0f #define KD_MIN 0.0f #define KD_MAX 5.0f #define T_MIN -12.0f #define T_MAX 12.0f struct exCanIdInfo{ uint32_t id:8; uint32_t data:16; uint32_t tryb:5; uint32_t res:3; }; can_receive_message_struct rxMsg; can_trasnmit_message_struct txMsg = { .tx_sfid = 0, .tx_efid = 0xff, .tx_ft = CAN_FT_DATA, .tx_ff = CAN_FF_EXTENDED, .tx_dlen = 8, }; #define txCanIdEx (((struct exCanIdInfo)&(txMsg.tx_efid))) // Parse extended frame id into custom data structure #define rxCanIdEx (((struct exCanIdInfo)&(rxMsg.rx_efid))) int float_to_uint(float x, float x_min, float x_max, int bits) { float zakres = x_max - x_min; float offset = x_min; jeśli(x > x_max) x=x_max; else if(x < x_min) x= x_min; return (int) ((x-offset)*((float)((1<
✔ Skopiowano!
Instrukcje sterowania silnikiem w trybie sterowania operacją (typ komunikacji 1)
void motor_controlmode(uint8_t id, float moment_obrotowy, float pozycja_mechaniczna, float predkosc, float kp, float kd) { txCanIdEx.mode = 1; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = float_to_uint(moment_obrotowy,T_MIN,T_MAX,16); txMsg.tx_dlen = 8; txMsg.tx_data[0]=float_to_uint(MechPosition,P_MIN,P_MAX,16)>>8; txMsg.tx_data[1]=float_to_uint(MechPosition,P_MIN,P_MAX,16); txMsg.tx_data[2]=float_to_uint(speed,V_MIN,V_MAX,16)>>8; txMsg.tx_data[3]=float_to_uint(prędkość,V_MIN,V_MAX,16); txMsg.tx_data[4]=float_to_uint(kp,KP_MIN,KP_MAX,16)>>8; txMsg.tx_data[5]=float_to_uint(kp,KP_MIN,KP_MAX,16); txMsg.tx_data[6]=float_to_uint(kd,KD_MIN,KD_MAX,16)>>8; txMsg.tx_data[7]=float_to_uint(kd,KD_MIN,KD_MAX,16); can_txd(); }
✔ Skopiowano!
Rama zatrzymania silnika (typ komunikacji 4)
void motor_reset(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 4; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = master_id; txMsg.tx_dlen = 8; for(uint8_t i=0;i<8;i++) { txMsg.tx_data[i]=0; } can_txd(); }
✔ Skopiowano!
Polecenie zapisu parametru trybu silnika (typ komunikacji 18, przełączanie trybu pracy)
uint8_t tryb_uruchomienia; uint16_t indeks; void motor_modechange(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 0x12; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = master_id; txMsg.tx_dlen = 8; for(uint8_t i=0;i<8;i++) { txMsg.tx_data[i]=0; } memcpy(&txMsg.tx_data[0],&index,2); memcpy(&txMsg.tx_data[4],&runmode, 1); can_txd(); }
✔ Skopiowano!
Polecenie zapisu parametru trybu silnika (typ komunikacji 18, zapis parametru sterowania)
uint16_t indeks; float ref; void motor_write(uint8_t id, uint16_t master_id) { txCanIdEx.mode = 0x12; txCanIdEx.id = id; txCanIdEx.res = 0; txCanIdEx.data = master_id; txMsg.tx_dlen = 8; for(uint8_t i=0;i<8;i++) { txMsg.tx_data[i]=0; } memcpy(&txMsg.tx_data[0],&index,2); memcpy(&txMsg.tx_data[4],&ref,4); can_txd(); }
✔ Skopiowano!
4.2.2 Tryb sterowania operacją
Po włączeniu zasilania silnika, domyślnie znajduje się on w trybie sterowania operacyjnego;
Wyślij ramkę uruchomienia włączenia silnika (typ komunikacji 3) -->
Wyślij polecenie sterowania silnikiem w trybie kontroli operacji (typ komunikacji 1) -->
Odbierz ramkę informacji zwrotnej silnika (typ komunikacji 2)
4.2.3 Tryb prądu
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18) i ustaw parametr trybu pracy na 3 --->
Wyślij ramkę uruchomienia włączenia silnika (typ komunikacji 3) -->
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18) i ustaw parametr iq_ref jako wstępnie ustawione polecenie prądu
4.2.4 Tryb prędkości
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18) i ustaw parametr trybu pracy na 2 --->
Wyślij ramkę uruchomienia włączenia silnika (typ komunikacji 3) -->
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18) i ustaw parametr limit_cur dla wstępnie ustawionego polecenia maksymalnego prądu -->
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18), aby ustawić parametr spd_ref na wstępnie ustawione polecenie prędkości
4.2.5 Tryb lokalizacji
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18) i ustaw parametr trybu pracy na 1 -->
Wyślij ramkę uruchomienia włączenia silnika (typ komunikacji 3) -->
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18) i ustaw parametr limit_spd na polecenie maksymalnej prędkości wstępnie ustawionej -->
Wyślij polecenie zapisu parametru trybu silnika (typ komunikacji 18), aby ustawić parametr loc_ref na polecenie pozycji wstępnie ustawionej
4.2.6 Zatrzymanie działania
Wyślij ramkę zatrzymania silnika (typ komunikacji 4)
Biblioteka CyberGear dla M5 stack
https://github.com/project-sternbergia/cybergear_m5/tree/main
cybergear_m5
Biblioteka M5 stack dla cybergear
"Pamiętaj, z wielką moment obrotowy przychodzi wielka odpowiedzialność."
Obsługiwany framework
-
Arduino dla ESP32
Obsługiwane urządzenie (ESP32)
-
M5Stack Basic V2.7
Komponenty H/W (MCP2515)
Komponenty H/W (ESP32 + PWRCAN)
Komponenty H/W (ESP32 + jednostka transceivera CAN)
Jak korzystać z Official GUI narzędzie
To oprogramowanie wymaga konkretnego modułu CAN do USB. Oficjalna dokumentacja zaleca moduł USB do CAN firmy YourCee, który obsługuje protokół szeregowy z nagłówkiem ramki 41 54 i końcem ramki 0D 0A, ale nie jest on łatwo dostępny, więc poszukaliśmy alternatywy na Aliexpress. ※ Należy zauważyć, że nie będzie to działać z ogólnymi modułami.
Testowano (do odniesienia):
Zalecane kable z wstępnie zaciskanymi końcówkami
-
Kabel XT30(2+2)
Jak uruchom próbka
Arduino IDE
-
cd ~/Arduino/libraries
-
git clone https://github.com/coryjfowler/MCP_CAN_lib.git
-
git clone https://github.com/Locoduino/RingBuffer.git
-
git clone git@github.com:project-sternbergia/arduino-CAN.git
-
git clone https://github.com/project-sternbergia/cybergear_m5.git
-
Otwórz cybergear_m5/examples/control_mode_example.ino w Arduino IDE
-
Umieść ten plik w tym samym folderze co control_mode_example.ino (dla Arduino IDE) Jeśli chcesz używać biblioteki ESP32_CAN, proszę zakomentuj te linie.
-
Zbuduj i zapisz oprogramowanie układowe do M5Stack
Przykładowy kod
control_mode_example.ino
Sprawdź zachowanie cybergear za pomocą M5 stack.
-
Środkowy przycisk - Zmień tryb sterowania (tryb pozycji -> tryb prędkości -> tryb prądu)
-
Prawy przycisk - Zwiększ wartość sterowania
-
Lewy przycisk - zmniejsz wartość sterowania
cybergear_bilateral.ino
Ten przykład używa dwóch cybergearów dla lidera i naśladowcy. Przed przetestowaniem tego przykładu, proszę zmienić identyfikator cybergeara w następujący sposób. Następnie napisz cybergear_m5/przykłady/cybergear_bilateral.ino do m5 stack w całym Arduino IDE.
-
lider cybergear : 0x7F
-
cyberwyposażenie obserwującego : 0x7E
Polecane artykuły