Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Sprzęt
- Krok 2: Elektronika
- Krok 3: Kod Arduino
- Krok 4: Wynalazca aplikacji
Wideo: Mecanum Omni Wheels Robot z silnikami krokowymi GRBL Arduino Shield: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Robot Mecanum - Projekt, który chciałem zbudować, odkąd zobaczyłem go na wspaniałym blogu Mechatroniki Dejana: howtomechatronics.com
Dejan naprawdę wykonał dobrą robotę, obejmując wszystkie aspekty, od sprzętu, drukowania 3D, elektroniki, kodu i aplikacji na Androida (wynalazca aplikacji MIT)
To świetny projekt overhoul, który odświeża wszystkie umiejętności twórcy.
Miałem kilka zmian do wykonania w projektach
Nie chciałem używać wykonanej na zamówienie płytki drukowanej, której użył, ale starej osłony GRBL, którą miałem w domu.
Chciałem użyć BlueTooth
Więc:
Kieszonkowe dzieci
Arduino Uno + Tarcza GRBL
Silniki krokowe
Moduł HC-06 BlueTooth
Akumulator Lipo 12 V
Krok 1: Sprzęt
Wydrukowałem koła i zmontowałem je jak tutaj:
Podłączone 4 silniki krokowe do podwozia (w moim przypadku nieużywana szuflada do góry nogami)
Poprowadziłem kable do górnej części robota.
Krok 2: Elektronika
użyłem mojego modułu HC-06 BT, Najtrudniejszą częścią było ustawienie osłony GRBL do pracy z 4 silnikami krokowymi, ponieważ nie ma dobrego przewodnika do tego, Istnieje potrzeba umieszczenia zworek, jak widać na załączonym obrazku, aby wyjście "Narzędzia" tarczy również sterowało silnikiem krokowym. należy również umieścić zworkę "Włącz"
okablowanie 4 stepperów i to wszystko.
Dostarczyłem też zasilanie z akumulatorów 12V - dwa stesy - jeden do Arduino i jeden do GRBl Shield
Krok 3: Kod Arduino
/* === Arduino Mecanum Wheels Robot === Sterowanie smartfonem przez Bluetooth przez Dejana, www. HowToMechatronics.com Biblioteki: RF24, www. HowToMechatronics.com AccelStepper przez Mike McCauley: www. HowToMechatronics.com
*/ /* 12.11.2019 Gilad Meller (https://www.keerbot.com - zmodyfikuj kod do pracy z osłoną silnika arduino GRBL Silniki krokowe w osłonie są odwzorowane jako (krok/kierunek): 2/5 3 /6 4/7 12/13 za pomocą sterownika A4988 12V
Kod Dejana używa SoftwareSerial, a mój użyje standardowych pinów RX, TX (0, 1) Arduino Uno Uwaga: Upewnij się, że rempve piny RX TX podczas przesyłania szkicu do arduino lub przesyłanie się nie powiedzie.
*/ #włączać
// Zdefiniuj silniki krokowe i piny, które będą używać AccelStepper LeftBackWheel(1, 2, 5); // (Type:driver, STEP, DIR) - Stepper1 AccelStepper LeftFrontWheel(1, 3, 6); // Stepper2 AccelStepper RightBackWheel(1, 4, 7); // Stepper3 AccelStepper RightFrontWheel(1, 12, 13); // Stepper4
int przychodzącyByte = 0, c; // dla przychodzących danych szeregowych int wheelSpeed = 100;
void setup() { Serial.begin(9600); // otwiera port szeregowy, ustawia szybkość transmisji danych na 9600 bps // ustawia początkowe wartości początkowe dla stepperów LeftFrontWheel.setMaxSpeed(600); LeftBackWheel.setMaxSpeed(600); Prawoprzednie koło.setMaxSpeed(600); RightBackWheel.setMaxSpeed(600);
}
void loop() { if (Serial.available() > 0) { // odczytaj przychodzący bajt: initialByte = Serial.read();
c = bajt przychodzący; switch (c) { przypadek 71: Serial.println("Otrzymałem Obróć w prawo W"); Obróć w prawo(); przerwa; case 65: Serial.println("Otrzymałem Obróć w lewo Q"); obrót w lewo(); przerwa; przypadek 1: Serial.println("Otrzymałem BK/LFT"); przesuńw prawo do tyłu(); przerwa; przypadek 2: Serial.println("Otrzymałem BK"); przesuńWstecz(); przerwa; przypadek 3: Serial.println("Otrzymałem BK/RT"); przesuńw prawo do tyłu(); przerwa; przypadek 4: Serial.println("Otrzymałem LEWO"); przesuńW BokW Lewo();
przerwa; przypadek 5: Serial.println("Otrzymałem STOP"); przestań sięruszać(); przerwa; przypadek 6: Serial.println("Otrzymałem RT"); przesuń na boki w prawo(); przerwa; przypadek 7: Serial.println("Otrzymałem FWD/LFT"); ruch w lewo do przodu(); przerwa; przypadek 8: Serial.println("Otrzymałem FWD"); ruszaj naprzód(); przerwa; przypadek 9: Serial.println("Otrzymałem FWD/RT"); przesuńw prawo do przodu(); przerwa; domyślnie: Serial.print("Nie jest to polecenie"); Serial.println(bajt przychodzący, DEC); przerwa; } } //przesuńWstecz(); moveRobot();
}
void moveRobot() { LeftBackWheel.runSpeed(); LeweKołoPrzednie.runSpeed(); RightFrontWheel.runSpeed(); PrawoBackWheel.runSpeed(); }
void moveForward() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(wheelSpeed); RightFrontWheel.setSpeed(wheelSpeed); RightBackWheel.setSpeed(wheelSpeed); } void moveBackward() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(-wheelSpeed); } void moveSidewaysRight() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(wheelSpeed); } void moveSidewaysLeft() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(wheelSpeed); RightFrontWheel.setSpeed(wheelSpeed); RightBackWheel.setSpeed(-wheelSpeed); } void rotateLeft() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(wheelSpeed); RightBackWheel.setSpeed(wheelSpeed); } void rotateRight() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(-wheelSpeed); } void moveRightForward() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(0); RightFrontWheel.setSpeed(0); RightBackWheel.setSpeed(wheelSpeed); } void moveRightBackward() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(0); } void moveLeftForward() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(wheelSpeed); RightFrontWheel.setSpeed(wheelSpeed); RightBackWheel.setSpeed(0); } void moveLeftBackward() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(0); RightFrontWheel.setSpeed(0); RightBackWheel.setSpeed(-wheelSpeed); } void stopMoving() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(0); RightFrontWheel.setSpeed(0); RightBackWheel.setSpeed(0); }
Krok 4: Wynalazca aplikacji
Nowa aplikacja appinventor z inną i prostszą funkcjonalnością (bez nagrań)
Proszę wyślij msg, a ja wyślę do Ciebie - przesyłanie nie powiodło się.
Trzymaj się.
Zalecana:
Ramię robota 3D z silnikami krokowymi sterowanymi przez Bluetooth: 12 kroków
Ramię robota 3D z silnikami krokowymi sterowanymi przez Bluetooth: W tym samouczku zobaczymy, jak wykonać ramię robota 3D z silnikami krokowymi 28byj-48, serwomotorem i częściami drukowanymi w 3D. Płytka drukowana, kod źródłowy, schemat elektryczny, kod źródłowy i wiele informacji znajdują się na mojej stronie internetowej
UChip - Prosty szkic do zdalnego sterowania silnikami i / lub serwami za pośrednictwem radia 2,4 GHz Tx-Rx!: 3 kroki
UChip - Prosty szkic do zdalnego sterowania silnikami i / lub serwami za pośrednictwem radia 2,4 GHz Tx-Rx!: Naprawdę lubię świat RC. Korzystanie z zabawki RC daje poczucie, że kontrolujesz coś niezwykłego, mimo że jest to mała łódka, samochód lub dron! Jednak nie jest łatwo dostosować swoje zabawki i sprawić, by robiły to, co chcesz
Ramię robota DIY 6 osi (z silnikami krokowymi): 9 kroków (ze zdjęciami)
DIY Robot Arm 6 Axis (z silnikami krokowymi): Po ponad roku badań, prototypów i różnych awarii udało mi się zbudować robota żelazno/aluminiowego z 6 stopniami swobody sterowanymi silnikami krokowymi. Najtrudniejszą częścią był projekt, ponieważ Chciałem osiągnąć 3 podstawowe ob
Sterowanie silnikami prądu stałego za pomocą L298N za pomocą mikrokontrolera CloudX: 3 kroki
Sterowanie silnikami prądu stałego za pomocą L298N za pomocą mikrokontrolera CloudX: W tym projekcie wyjaśnimy, jak wykorzystać nasz mostek H L298N do zwiększania i zmniejszania prędkości silnika prądu stałego. Moduł L298N H-bridge może być używany z silnikami o napięciu od 5 do 35 V DC. Istnieje również wbudowany regulator 5 V, więc jeśli
Robot FPV Rover sterowany przez Wi-Fi (z Arduino, ESP8266 i silnikami krokowymi): 11 kroków (ze zdjęciami)
Robot łazik FPV sterowany przez Wi-Fi (z Arduino, ESP8266 i silnikami krokowymi): Ta instrukcja pokazuje, jak zaprojektować zdalnie sterowany dwukołowy robot łazik przez sieć Wi-Fi, używając Arduino Uno podłączonego do modułu Wi-Fi ESP8266 oraz dwa silniki krokowe. Robotem można sterować ze zwykłej przeglądarki internetowej