Skocz do zawartości

Ramie robota - programowanie - Arduino czy Python?


Pomocna odpowiedź

Napisano (edytowany)

Witam,

 

Na poczatku chcialbym opisac co zamierzam zrobic i skad takie pytanie.

Otoz, jakis czas temu natrafilem na portal hackday.io i znalazlem swietne projekty robotow, a dokladniej zafascynowaly mnie ramie robota. Stwierdzilem ze to jest ciekawe wyzwanie i napewno rozwinie mnie w tej dziedzinie. Wiec zabralem sie do dzialania i wstepnie zaprojektowalem przekladnie cykloidalna (first step done 🙂 ). 

Nastepnie zaczolem szukac jaki mikrokontroler bedzie najlepszy do stworzenia programu i reverse kinematic. Lecz tutaj napotkalem sie z pewna blokada, jest wiele projektow ktore wykorzystuja arduino i pythona do programowania. Zakupilem kurs programowania Python na Udemy, jestem juz na okolo 20% oraz przejrzalem 3/4 kursu Arduino od Forbot. Lecz dalej mam metlik w glowie. Nie wiem co wybrac? Co bedzie najlepsze do programowania Teensy i stepperow TB6560. 

Dziekuje za wszelkie wypowiedzi.

 

Pozdrawiam

Daniel

Edytowano przez Koper90

Obojętnie, jeżeli masz arduino, to napisz w C/C++, a jak masz raspberry Pi to w Pythonie, zależy co ci odpowiada.

(edytowany)

Hmmm, niestety nie wiem, jakie Kolega @Koper90 ma doświadczenie i co dokładnie chce zrobić, ale aby wykonać pierwsze ruchy, poruszanie robotem do zadanej pozycji XZY, czyli Inverse Kinematic i tak dalej, w zupełności wystarczy Arduino, które programowany w czymś-C-podobnym jest bardzo intuicyjne i nawet od zera, podłączenie TB6560 i wysterowanie silnika krokowego to max dzień nauki 🙂 Oczywiście jednoczesne sterowanie większą ilością stepper'ów (ile osi?) będzie trochę trudniejsze, ale Arduino bez problemu da radę - jeśli chcesz, zobacz moje dwa projekty: https://forbot.pl/forum/topic/16601-copernicus/ i https://forbot.pl/forum/topic/18145-delta-astra/ - były one wprawdzie oparte na Nucleo, ale Arduino UNO (lub Mega, tak na zapas) bez problemu to obsłuży. Jeśli chodzi o Python, proszę nie rezygnować, gdyż przyda się na 100%, np. w dalszej części projektu będzie można dodać RaspberryPi, jakiś prosty system wizyjny, podpięcie pod Ethernet, bo na hali produkcyjnej żaden robot w pojedynkę nie pracuje 🙂 czy panel HMI celem obsługi. Ewentualne spięcie Arduino z Raspberry Pi to temat na dłuższą rozmowę, można po USB lub UARTem na przykład, ale wydaje mi się, że lepiej takie sterowanie "sprzętowe" realizować na Arduino lub innym mikrokontrolerze, potem tą warstwę wyższą można "nadbudować", i tu Python będzie znakomity. To oczywiście tylko moje prywatne zdanie, ale ja zacząłbym od Arduino i jego C-podobnego języka.

Pozdrawiam, wn2001 🙂

PS Z tego, co Kolega napisał wnioskuję, że jest mechanikiem? Napisałby coś Kolega więcej o tej drukowanej 3D przekładni cykloidalnej?

 

Edytowano przez wn2001
  • Lubię! 1
  • Pomogłeś! 1
5 godzin temu, wn2001 napisał:

jego C-podobnego języka.

Co znaczy "C-podobny"? Owszem, podobny, bo nie jest to C tylko C++, a jakie widzisz różnice między C++ a "językiem w którym programuje się Arduino"?

  • Lubię! 1

Wyjąłeś stwierdzenie z kontekstu - tam chodziło o to, że w Arduino nie ma standardowych bibliotek C++ (z przyczyn czysto technicznych) i zostały zastąpione uproszczoną wersją, dodatkowo wzbogaconą o funkcje Wiringa (te wszystkie digitalRead, pinMode, delay, millis i tym podobne). Sam język to normalny C++, przy czym preprocesor Arduino dodaje swoje "ulepszenia":

  • jeśli parametrem funkcji jest void, można go pominąć (dodawany jest automatycznie)
  • nie są konieczne deklaracje wyprzedzające funkcji (preprocesor przeszukuje kod i dodaje je sam)
  • nie trzeba wstawiać #include <Arduino.h> (wstawiany jest automatycznie na samym początku)

Dotyczy to tylko pojedynczych plików *.ino i z wyjątkiem ostatniego punktu nie zawsze działa tak jak chcemy, więc lepiej na tym nie polegać 🙂

 

  • Lubię! 1
Przed chwilą, deshipu napisał:

Co nie zmienia faktu, że C++ jest niewątpliwie językiem C-podobnym.

co wziąłem pod uwagę w swojej pierwszej wypowiedzi w tym wątku 🙂

  • Lubię! 1

@wn2001  Dopiero studiuje Electrical Engineering w Szkocji. Co do przekladni to wszystko z poradnikow z neta. Moge podeslac kilka watkow ktorymi sie sugerowalem. Materialu jest duzo.

Odnosnie jezyka programowania tez bardziej bylbym sklonny do programowania w Arduino jako ze jest bardziej przyjazny dla poczatkujacych. Co do Pythona, sam nie wiem, wyglada jak dosc prosty i bardzo intuicyjny jezyk programowania.

 

Dziekuje za odpowiedzi. 

Potwierdzam słowa @deshipu, jeżeli temat Cię zainteresuje, prędzej czy później Python też się przyda, chociażby na RaspberryPi (to, o czym już pisałem wcześniej) 🙂 Wprowadzam założenie, że pisząc o Arduino masz na myśli... Arduino, a pisząc Python, masz na myśli RaspberryPi - może to, poniższe porównanie, pokaże różnicę między tymi dwoma platformami:

https://forbot.pl/blog/raspberry-pi-vs-arduino-ktora-platforme-wybrac-id10439

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...