Spisu treści:

Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino: 3 kroki
Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino: 3 kroki

Wideo: Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino: 3 kroki

Wideo: Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino: 3 kroki
Wideo: Sterowanie ramieniem robota 2024, Listopad
Anonim
Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino
Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino
Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino
Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino
Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino
Sterowanie ramieniem robota za pomocą TLV493D, joysticka i Arduino

Alternatywny kontroler dla twojego robota z czujnikiem TLV493D, czujnik magnetyczny z 3 stopniami swobody (x, y, z), dzięki którym możesz sterować swoimi nowymi projektami z komunikacją I2C na mikrokontrolerach i płytce elektronicznej, które Bast Pro Mini M0 z Mikrokontroler SAMD21 na Arduino IDE.

Celem jest posiadanie alternatywnego joysticka do sterowania projektami, w tym przypadku ramienia robota z 3 stopniami swobody. Użyłem ramienia robota MeArm, jest to projekt open-source i możesz to ułatwić i możesz go znaleźć tutaj. Potrafię stworzyć własne ramię kontrolera lub inną aplikację z tą wiedzą, którą chętnie się z wami podzielę.

Wszystkie komponenty elektroniczne posiadają linki do pobrania w sklepie, pliki do drukarki 3d oraz kod dla Arduino IDE.

TLV493D może być joystickiem Czujnik magnetyczny 3D TLV493D-A1B6 zapewnia dokładne trójwymiarowe wykrywanie przy wyjątkowo niskim zużyciu energii w małej 6-stykowej obudowie. Dzięki wykrywaniu pola magnetycznego w kierunku x, y i z czujnik niezawodnie mierzy ruchy trójwymiarowe, liniowe i obrotowe.

Zastosowania obejmują joysticki, elementy sterujące (sprzęt AGD, pokrętła wielofunkcyjne), liczniki elektryczne (zabezpieczenie przed sabotażem) oraz wszelkie inne aplikacje, które wymagają dokładnych pomiarów kątowych lub niskiego zużycia energii. Zintegrowany czujnik temperatury może być ponadto używany do kontroli wiarygodności. Kluczowe cechy to detekcja magnetyczna 3D przy bardzo niskim zużyciu energii podczas pracy.

Czujnik posiada wyjście cyfrowe za pośrednictwem 2-przewodowego standardowego interfejsu I2C do 1 MBit/s i 12-bitowej rozdzielczości danych dla każdego kierunku pomiaru (liniowy pomiar pola Bx, By i Bz do +-130mT). TLV493D-A1B6 3DMagnetic to samodzielny silnik zaburtowy.

Możesz go łatwo podłączyć do dowolnego wybranego mikrokontrolera, który jest kompatybilny z Arduino IDE i ma poziom logiczny 3,3 V. W tym projekcie używamy Breakout Electronic Cats i płytki rozwojowej, którą wyjaśnię później.

electroniccats.com/store/tlv493d-krokiet…

Zaletą zastosowania czujnika TLV493D jest to, że do odbioru informacji wykorzystywane są tylko dwa kable z I2C, więc jest to bardzo dobra opcja, gdy mamy bardzo mało dostępnych pinów na karcie, również dzięki zaletom I2C możemy podłączyć więcej czujniki. Możesz znaleźć repozytorium dla tego projektu tutaj. W tym projekcie użyjemy joysticka, który możesz wydrukować na drukarce 3D lub zlecić wydrukowanie w najbliższym sklepie z drukiem 3D.

Pliki. STL są dołączane na końcu projektu. Jego montaż jest bardzo prosty, można to zobaczyć na wideo

Zbuduj własnego robotaW tym przypadku buduję robota Mearm v1, którego ten projekt można znaleźć na stronie autora tutaj

Jest to robot łatwy do wykonania i sterowania, ponieważ ma serwomotory o napięciu 5 woltów. Możesz zbudować lub używać dowolnego robota, ten projekt skupi się na sterowaniu za pomocą czujnika TLV493D.

Kieszonkowe dzieci:

  • x1 Bast Pro Mini M0 Kup w
  • x1 Krokiet TLV493D Kup w
  • x1 Zestaw MeArm v1
  • x20 Kable Dupont
  • x1 płyta prototypowa
  • Przycisk x2
  • x1 Magnes o średnicy 5mm x 1mm grubości

Krok 1: Podłączanie czujnika do Bast Pro Mini M0

Podłączanie czujnika do Bast Pro Mini M0
Podłączanie czujnika do Bast Pro Mini M0

Do sterowania ramieniem robota wykorzystywana jest płytka rozwojowa Electronic Cats, Bast Pro Mini M0 z mikrokontrolerem SAMD21E ARM Cortex-M0.

Układ ten pracuje z częstotliwością 48MHz, z 256KB pamięci programistycznej, 32KB SRAM i działa przy napięciu od 1,6V do 3,6V. Dzięki jego specyfikacjom możemy go używać do niskiego zużycia z dobrą wydajnością, a także programować go za pomocą CircuitPython lub innego języka, który umożliwia mikrokontrolery.

electroniccats.com/store/bast-pro-mini-m0/

Jeśli chcesz dowiedzieć się więcej o tej karcie, zostawię Ci link do jej repozytorium.

github.com/ElectronicCats/Bast-Pro-Mini-M0…

Do sterowania ruchem serwomotorów wykorzystywany jest czujnik magnetyczny TLV493D, który wysyła sygnał do ustawienia serwomotoru w odpowiednich stopniach.

Za pomocą jednego czujnika możemy przesunąć dwa serwomotory, w tym przykładzie do sterowania chwytakiem użyjemy tylko jednego czujnika i przycisku.

Inną propozycją, jaką możesz złożyć, jest dodanie kolejnego czujnika TLV493D i przesunięcie trzeciego serwomotoru i chwytaka. Jeśli tak, zostaw swoje doświadczenia w komentarzach i zapraszam do podzielenia się projektem.

Zdjęcie przedstawia obwód uzbrojony na płycie prototypowej.

  • Pierwszy serwomotor jest przeznaczony do chwytaka i łączy się z pinem 2
  • Drugi serwomotor jest dla podstawy robota i łączy się z pinem 3
  • Trzeci serwomotor jest przeznaczony do ramienia robota i łączy się z pinem 4
  • Czwarty serwomotor jest przeznaczony do kolanka robota i łączy się z pinem 5
  • Pierwszy przycisk służy do zatrzymania dowolnego ruchu robota i łączy się z pinem 8 w trybie pull-down z oporem 2,2 kilooma.
  • Drugi przycisk służy do otwierania i zamykania chwytaka i jest połączony ze sworzniem 9 w dół z oporem 2,2 kiloomów.

Na obrazie obwodu czujnik TLV493D nie pojawia się, ponieważ nie został dodany do fritzowania, ale dodano 4-pinowe złącze, aby symulować jego złącza VCC, GND, SCL, SDA. Na obrazku są one umieszczone w tej samej kolejności.

  • Pierwszy pin łączy się z 3,3 V na płycie
  • Drugi pin łączy się z GND
  • Trzeci pin SCL łączy się z pinem A5 na płycie
  • Czwarty pin SDA łączy się z pinem A4 płyty

Dzięki przewadze układu SAMD21 możemy wykorzystać dowolny z jego cyfrowych pinów jako wyjścia PWM, które posłużą nam do wysłania odpowiedniej szerokości impulsu do poruszania serwomotorem.

Kolejną ważną informacją, którą należy wziąć pod uwagę, jest zewnętrzne zasilanie serwomotorów, w obwodzie można zobaczyć złącze wtykowe, które łączy się z 5V przy źródle 2A, aby uniknąć przeciążenia płytki i jej uszkodzenia.

Nie zapomnij również połączyć wspólnego sygnału GND karty i zewnętrznego źródła, w przeciwnym razie będziesz miał problemy ze sterowaniem serwomotorami, ponieważ nie będą miały tego samego odniesienia.

Krok 2: Kodowanie Arduino IDE do Bast Pro Mini M0

Kodowanie Arduino IDE do Bast Pro Mini M0
Kodowanie Arduino IDE do Bast Pro Mini M0
Kodowanie Arduino IDE do Bast Pro Mini M0
Kodowanie Arduino IDE do Bast Pro Mini M0
Kodowanie Arduino IDE do Bast Pro Mini M0
Kodowanie Arduino IDE do Bast Pro Mini M0

Pierwszą rzeczą będzie zainstalowanie karty Bast Pro Mini M0 w Arduino IDE, kroki można znaleźć w repozytorium Electronic Cats i są one ważne dla jego działania.

github.com/ElectronicCats/Arduino_Boards_I…

Po przygotowaniu Arduino IDE należy zainstalować oficjalną bibliotekę czujnika TLV493D, wejść na https://github.com/Infineon/TLV493D-A1B6-3DMagnet… i przejść do Wydań.

W pierwszej części kodu zadeklarowane są użyte biblioteki, w tym przypadku Servo.h dla serwomotorów i TLV493D.h dla czujnika.

Przy korzystaniu z biblioteki Servo.h ważne jest, aby zadeklarować liczbę serwomotorów, chociaż robot ma 4 w tym czasie tylko 3 są używane.

Kołki są zadeklarowane dla przycisków, które zatrzymają jakikolwiek ruch robota oraz otwieranie i zamykanie chwytaka. Zadeklarowano niektóre zmienne globalne, które posłużą do poznania stanu chwytaka i obecności ruchu.

W drugiej części kodu pokażemy na monitorze szeregowym wartość stopnia, w jakim znajdują się silniki. Kolejnym ważnym punktem jest ustalenie limitu stopni w serwomotorach, do tego służy funkcja map(), która konwertuje wartość ruchów czujnika TLV493D na zakres od 0 do 180 stopni serwomotoru.

Dla ostatniej części kodu ustalane są warunki, aby aktywować ruch siłowników za pomocą przycisku i wiedzieć, w jakim stanie znajduje się chwytak do następnego ruchu po naciśnięciu drugiego przycisku. Jak widać na poprzednich obrazkach kod nie jest trudny do zaimplementowania i zrozumienia, na końcu projektu można znaleźć kod.

Czy uczysz się korzystać z Circuit Pythona?

Jeśli jesteś zainteresowany nauką korzystania z tego IDE, możesz znaleźć kartę Bast Pro Mini M0 w poniższym linku, aby pobrać bootloader i rozpocząć programowanie w Pythonie.

Krok 3: Kawałki 3D

Jeśli jesteś zainteresowany wykonaniem projektu, możesz pobrać elementy w formacie.stl i wydrukować je. Znajdziesz pilniki do podstawy i kija obrotowego.

Zalecana: