Skocz do zawartości

wmaker

Użytkownicy
  • Zawartość

    28
  • Rejestracja

  • Ostatnio

Reputacja

13 Dobra

O wmaker

  • Ranga
    3/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. wmaker

    Robot samobalansujący

    https://www.nibib.nih.gov/news-events/newsroom/powered-robotic-legs-leaping-toward-future
  2. Kilka postów napisane, niestety oczywiste dla Was błędy nie zostały wskazane choćby tematycznie (do zapytania "po co bateria" potrzeba jednego zdania rozwinięcia). W moich wypocinach dopytuję ile się da ale nie każdy ma tyle "odwagi" i wtedy temat umiera bez rozwiązania, wskazań kierunku rozwoju, co gorsza bez efektu edukacji wszystkich pozostałych czytających wątek. Bardzo Was proszę o pracę u podstaw z możliwym ograniczeniem wycieczek do lamerów ( do nich to nie dotrze a zaciemnia samą wiedzę) Ci z nas którym otwieracie oczy są Wam wdzięczni i to możecie wyczuć we wpisach. Edukacja to ciężka
  3. Wpis informacyjny... Nastąpiła pauza na malowanie domu, grypę czyli można by powiedzieć całą serie wymówek gdyby nie twarde lądowanie przy nie przemyślanych ruchach w projekcie. Podniesione napięcie do 24V i natężenie na sterownikach DRV8825 do 3A (teoretycznie wg karty katalogowej silnik ma wziąć do 2A więc był zapas) objawiło się dymem , no to szybka wymiana na następny driver ( miałem jeden na zapas ) i znowu dym bom go włożył odwrotnie . Teraz nie mam driverów a i Arduino przestało współpracować. Więc cofam się o krok. Są dni kiedy powinno się robić prostsze rzeczy np. πqo.
  4. Docelowy wymiar będzie zbliżony, inspiracją jest Automower
  5. Do takich gąsienic chyba nie muszą być metalowe ( chyba że ma być pancernie )to można wyciąć na laserze z pleksi lub sklejki.
  6. Wrzucam dla dokumentacji postępów bieżący wygląd całości, taka typowa "platforma eksperymentalna"
  7. no tak, spełnienie warunków na pierwszym silniku zamykało warunek i program nie dochodził do drugiego silnika - w programach jest to fascynujące że rozwiązania stają się oczywiste PO ich znalezieniu wyjaśnij proszę jak.
  8. Dla formalności jeszcze zamienił bym programowo silniki przez zmianę deklaracji pinów: AccelStepper stepper1(STEP1, motorPin1, motorPin3, motorPin2, motorPin4); AccelStepper stepper2(STEP2, motorPin5, motorPin7, motorPin6, motorPin8); na: AccelStepper stepper2(STEP1, motorPin1, motorPin3, motorPin2, motorPin4); AccelStepper stepper1(STEP2, motorPin5, motorPin7, motorPin6, motorPin8); to sprawdzi warstwę fizyczną połączeń, jeżeli są ok to teraz problem "przeniesie" się na drugi silnik jeżeli problem zostanie na starym silniku to... ...kabelkologia. usunąłem komentarz o r
  9. Świetny pomysł i realizacja - taka wczesna ROBOedukacja jest szansą dla młodych pokoleń!
  10. Nie wiem czy to już "masz" więc dopisuję. Funkcja distanceToGo () jest tu warunkiem logicznym funkcji if, operator == nie przypisuje/ustala wartości 0 lecz sprawdza czy ma wartość zero. Sama funkcja distanceToGo () sprawdza czy silnik nie ma jeszcze jakieś kroki do "zrobienia". Rozumem to tak że gdyby nie było tego warunku możliwe było by wykonanie komendy ruchu przed ukończeniem jazdy silnika i wtedy "rozjechało" by się liczenie kroków pomiędzy krańcowymi miejscami postoju.
  11. Wyczaiłem: // modyfikacja DualMotorShield.pde // -*- mode: C++ -*- // // Run 2 simultaneous steppers // with 2 DRV8825 // and the movement is determined by HC SR04 ultrasound sensor // below 25 cm is reewerse move #include <AccelStepper.h> //ultrasonic sensor pins #define trigPin 10 #define echoPin 11 // The L Stepper pins #define stepperL_DIR_PIN 3 #define stepperL_STEP_PIN 2 // The R stepper pins #define stepperR_DIR_PIN 5 #define stepperR_STEP_PIN 4 unsigned long aktualnyCzas = 0; unsigned long zapamietanyCzasPrzeszkody = 0; unsigned long zapamietanyCzasEcho = 0; long czas
  12. potraktuj proszę moją "analizę" jako wspólną naukę, nie jako głos ekspercki - też gniotę sterowanie krokowymi tyle że przez sensory środowiskowe i gdy docieram do "ściany" sprawdzam efekty NIEdziałania kodu zgodnie z praktyczną sugestią Trekera (czyli wyświetleniem czegoś z danej pętli/warunku), poza tym jakiś czas z dala od komputera pomaga spojrzeć na kod świeżym okiem . Sprawdzenie czy steper2 dotarł na wyznaczone miejsce dał bym tak: case 0x343442BD: stepper2.moveTo(4096); //jedz silnikiem na pozycje 4096 delay (200); // zakładam że zawieszenie(delay) następuje po zrealz
  13. @wmaker zmiana w warunku while parametru aktualnyCzas na millis() ominęła problem choć to w założeniach te same wartości... while (millis() - zapamietanyCzasPrzeszkody < 1500UL) //Włącz LewyRevers na 1,5s nie wiem dlaczego ale działa, czy ktoś wytłumaczy dlaczego poprzednia wersja nie działała?
  14. Utknąłem na powiązaniu ruchu silników z odczytem odległości na czujniku ultradźwiękowym: program staruje (jedzie do przodu) po wykryciu przeszkody bliżej niż 25cm włącza revers i już tak zostaje (revers + odczyt tej samej, ostatniej wartości odległości) czyli więźnie w pętli while. Proszę o pomoc i motywację bo trochę się wypaliłem żeby tu dojść // modyfikacja DualMotorShield.pde // -*- mode: C++ -*- // // Run 2 simultaneous steppers // with 2 DRV8825 // and the movement is determined by HC SR04 ultrasound sensor // below 25 cm is reewerse move #include <AccelStepper.h>
  15. FORBOT jest kopalnią wiedzy! Co równie istotne artykuły i kursy są komplementarne z merytorycznymi, inteligentnymi dyskusjami. Do tego kursu obowiązkowo powinna być podlinkowana ta: Słowa uznania dla WSZYSTKICH jej uczestników, powiem tylko że czytałem/analizowałem kody i uczyłem się może wolniej niż SOYER ale też z frajdą. THX.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.