Skocz do zawartości

Kubik M0: ewolucja 4-nożnych pająków


Pomocna odpowiedź

@deshipu, jak zawsze świetny projekt 🙂 Bardzo lubię takie sprytne rozwiązania jak np. "szkielet" robota odłamywany z PCB, świetnie wygląda też ten mały akumulator. Na ile mniej więcej będziesz wyceniał ten zestaw?

Dnia 19.09.2018 o 13:55, deshipu napisał:

Ale tym razem nie używam taniego Arduino Pro Mini i C++, tylko mikrokontroler Atmel SAMD21 i CircuitPython.

Skąd taka zmiana? Arduino było za słabe czy po prostu szukałeś czegoś nowego 😉?

Link do komentarza
Share on other sites

12 godzin temu, Treker napisał:
Dnia 19.09.2018 o 13:55, deshipu napisał:

Ale tym razem nie używam taniego Arduino Pro Mini i C++, tylko mikrokontroler Atmel SAMD21 i CircuitPython.

Skąd taka zmiana? Arduino było za słabe czy po prostu szukałeś czegoś nowego 😉?

Generalnie przesiadłem się już w całości na Pythona, plus czyste C tam gdzie potrzeba prędkości. W ten sposób po prostu jestem w stanie robić większe projekty i szybciej je debugować.

  • Lubię! 2
Link do komentarza
Share on other sites

Dnia 19.09.2018 o 13:55, deshipu napisał:

tylko mikrokontroler Atmel SAMD21 i CircuitPython

Jak wygląda sterowanie serwami w Pythonie?

Myślę, że na forum jesteś dobrą osobą do pytań o mikrokontrolery i Pythona.  Ostatnio też ruszyłem temat ESP32 i MicroPythona, raczej z powodzeniem, akurat był to temat MQTT i komunikacji z RPi.
A jak to jest z innymi mikrokontrolerami - przykładowo STM32F4 - w dziale download co prawda jest firmware ale opisany jest jako "not officially supported but should be fully functional". Czy coś to zmienia?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

1 godzinę temu, Gieneq napisał:

Jak wygląda sterowanie serwami w Pythonie?

Zależy na czym ten Python jest uruchomiony. Generalnie w czymkolwiek byś nie programował, to musisz dostarczyć temu serwu sygnał PWM. Przy 12 serwach masz w zasadzie dwie opcje: albo używasz timerów do generowania tego sygnału — tak robię w tym przypadku, używając w CircuitPythonie klasy pulseio.PWM — albo podłączasz osobny czip, który ci ten sygnał generuje, na przykład PCA9685, i wysyłasz do niego tylko pozycje — tak robię w wielu moich innych robotach.

1 godzinę temu, Gieneq napisał:

A jak to jest z innymi mikrokontrolerami - przykładowo STM32F4 - w dziale download co prawda jest firmware ale opisany jest jako "not officially supported but should be fully functional". Czy coś to zmienia?

Generalnie jedyną "oficjalnie wspieraną" przez autorów MicroPythona platformą jest ich PyBoard, wszystko inne jest "nieoficjalne", bo oczywiście chcą tego jak najwięcej sprzedawać. W praktyce wszystkie STM32F4 są na tyle blisko, że wszystko powinno działać. Możesz tylko nie mieć wsparcia dla jakichś wydumanych rzeczy które są specjalne na jakimś czipie.

Link do komentarza
Share on other sites

No i niestety będę musiał przeprojektować tego robota. Okazało się, że w wersji CircuitPythona której używałem żeby wszystko sprawdzić był błąd w module pulseio w tym jak wybierane był timery i ich kanały przy tworzeniu nowych obiektów PWMOut. Przez to niektóre z nich używały tego samego timera i kanału, dzięki czemu zawsze miały ten sam duty cycle, więc serwa poruszały się razem — nie zauważyłem tego, bo przy testach ustawiałem wszystkie serwa w tej samej pozycji — that było najłatwiej napisać program.

W nowej wersji CircuitPythona błąd jest poprawiony i pulseio rzuca wyjątek jak się próbuje stworzyć PWMOut dla wielu pinów, a nie ma już wolnego kanału timera. No i oczywiście dostaję taki błąd teraz z moim robotem. Będę musiał usiąść i z naleźć taką kombinację nóżek, dla których da się utworzyć PWMOut jednocześnie, a to niestety oznacza przeprojektowanie płytki.

Ale nie ma tego złego co by na dobre nie wyszło: przy okazji wyrzucę akcelerometr (okazał się bezużyteczny), dodam pamięć flash (miejsce w systemie plików się przyda), przeprojektuję układ ładowania baterii (żeby się ładowała przy wyłączonym robocie) i przeniosę wszystko na górę płytki (komponenty schowane pod pojemnikiem baterii wglądają fajnie, ale są strasznie uciążliwe do debugowania). Przy okazji też dorzucę wyłączniki krańcowe na końcach stóp. Jak nie znajdę działającego zestawu 12 pinów, to będę musiał zmienić mikrokontroler na większy.

  • Lubię! 2
Link do komentarza
Share on other sites

56 minut temu, deshipu napisał:

Ale nie ma tego złego co by na dobre nie wyszło: przy okazji wyrzucę akcelerometr (okazał się bezużyteczny)

Z ciekawości dopytam: bezużyteczny przez brak praktycznego zastosowania czy były jakieś problemy i np. odczyty były zbyt niestabilne, aby był sens je wykorzystywać?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.