Pytanie:
Jak programista PHP może przejść do robotyki
Chetan Sharma
2010-10-24 21:36:24 UTC
view on stackexchange narkive permalink

Jestem programistą PHP ze znajomością podstaw c / c ++ i elektroniki. Ale bardzo interesuję się robotyką i sztuczną inteligencją.

  1. Jakie są podstawowe rzeczy, których należy się nauczyć przed przejściem na robotykę?
  2. Jakie języki są używane do pisania kodu i w jaki sposób jest on przenoszony na chipy?
  3. Jakie są podstawowe komponenty, które trzeba znać?

Chciałbym dowiedzieć się o obu komponentach sprzętowych i części programistycznej. (Czy to różne strumienie?)

Czy możesz nam powiedzieć trochę więcej o tym, co chcesz zrobić? Czy starasz się pozostać w świecie kodowania, czy też chcesz dowiedzieć się więcej o sprzęcie?
Właśnie zredagowałem pytanie ... czy to są różne strumienie, mam na myśli, czy mogę dowiedzieć się o sprzęcie, a nie o oprogramowaniu, lub odwrotnie ... co sugerujesz?
Cztery odpowiedzi:
Kaelin Colclasure
2010-10-24 22:26:30 UTC
view on stackexchange narkive permalink

Sugerowałbym rozpoczęcie od płyty Arduino i jednej z wielu dostępnych na rynku książek w stylu „ Pierwsze kroki z Arduino”. Jest to bardzo przyjazny dla początkujących sposób na wprowadzenie w świat procesorów wbudowanych, programowania urządzeń i prostego hakowania obwodów. Kilka godzin z Arduino pomoże Ci również zdecydować, na czym naprawdę koncentrują się Twoje zainteresowania. (Np. Jeśli nie znosisz konieczności podłączania obwodu LED tylko po to, aby zobaczyć, jak działa program, prawdopodobnie chcesz skupić się na bardziej gotowej platformie do eksploracji robotyki. Jeśli jednak uważasz, że majsterkowanie sprzętowe jest atrakcyjne, możesz przejść dalej do bardzo podstawowego, prostego zestawu, takiego jak Parallax Stingray.)

Kevin Vermeer
2010-10-25 20:28:58 UTC
view on stackexchange narkive permalink

1) Jakie są podstawowe rzeczy, których muszę się nauczyć przed przejściem na robotykę?

Naprawdę, wszystko, co musisz wiedzieć, to jakie są Twoje cele i zainteresowania. Często nie możesz się tego dowiedzieć, dopóki nie spróbujesz kilku rzeczy. Bez tej wiedzy można się wiele nauczyć. Ruch, rozmiar, objętość kodu i interfejsy są bardzo różne w różnych systemach.

2) Jakie języki są używane do pisania kodu i w jaki sposób ten kod jest przenoszony na chipy?

Przez większość czasu kod jest napisany w C, prawdopodobnie z odrobiną asemblera do wykonywania pewnych operacji sprzętowych, których nie można wykonać w C. Czasami C jest używany do tworzenia system operacyjny, a następnie kod jest napisany dla tego systemu operacyjnego (ponownie, nadal przy użyciu C) lub tworzona jest maszyna wirtualna, która obsługuje język wyższego poziomu, taki jak Java, Lua lub C #.

Zwykle odbywa się to na komputerze PC z kompilatorem krzyżowym, który tworzy kod szesnastkowy lub który nie może działać na maszynie, na której działa kompilator, ale może działać na mikro. Następnie programator jest używany do połączenia z mikrokontrolerem za pomocą USB, szeregowego lub nawet Ethernet. Czasami ten „programator” znajduje się na tej samej płytce drukowanej co mikrokontroler, na przykład na płytce Arduino. Można stosować protokoły komunikacyjne, takie jak JTAG, ISP i inne różne standardowe metody, chociaż niektóre chipy wymagają wyspecjalizowanych programistów.

3) Jakie są podstawowe elementy, które muszę znać?

Zależy to od tego, jaki jest Twój końcowy cel. Powinieneś mieć podstawową wiedzę na temat elektryczności (prawo Ohma prawdopodobnie może Ci pomóc w większości przypadków, a także zrozumienie diod i tranzystorów / MOSFETów). Mruganie diodą LED to łatwy pierwszy krok (z wysokiego klifu). Jeśli poważnie podchodzisz do robotyki, powinieneś poznać sterowniki silników, serwomechanizmy i silniki krokowe.

Chciałbym dowiedzieć się o obu składnikach sprzętowych i część programistyczna. Czy to różne strumienie?

Tylko nieznacznie. Możliwe jest użycie komponentów sprzętowych bez konieczności pisania programu i można kupić gotowe moduły sprzętowe, a następnie po prostu wykonać część programistyczną, ale ostatecznie oba idą w parze.

Dzięki, to wiele mi wyjaśnia ... Uwielbiam robotykę Naprawdę chcę zmiany w tej dziedzinie, ale nie rozumiem, jak to zacząć .. Twoja odpowiedź jest dla mnie bardzo pomocna .. Bardzo dziękuję .. myślisz Python jest pomocny w tej dziedzinie?
C będzie, z daleka, ** najbardziej ** pomocnym językiem. Jednak Python (Look at Cython i [python-on-a-chip] (http://code.google.com/p/python-on-a-chip/)) mogą być użyteczne. Podejście Pythona „z bateriami” nie będzie pasować do małych mikroukładów, ale jest to dobry język i może działać na mikrosystemach z większą przestrzenią pamięci. Zacznij od C i przechodź do innych języków w miarę zdobywania doświadczenia.
Dziękuję za odpowiedź. Mam podstawową wiedzę na temat c, ale nigdy nie pracowałem na poziomie chipów, czy możesz zasugerować jakieś książki lub artykuły na start
Najlepszym sposobem uczenia się jest prawdopodobnie działanie. AVRFreaks ma wiele przykładowego kodu w C dla procesorów AVR, a większość łańcuchów narzędzi zawiera przykładowy kod dla swoich celów. Poza tym arkusze danych są Twoim nowym najlepszym przyjacielem. Arduino ma język podobny do C (naprawdę podobny do C ++) o nazwie Wiring, który jest trochę urozmaiceniem, ale może być pomocny, jeśli nie rozumiesz koncepcji.
Thomas O
2010-10-24 22:24:02 UTC
view on stackexchange narkive permalink

Powinieneś uczyć się przez eksperymentowanie.

Na swoje pytania:

  1. Powinieneś nauczyć się podstaw teorii elektroniki i podstaw mikrokontrolerów.
  2. Kod jest często napisany w C, ale czasami można go napisać w innych językach, takich jak Basic, a niektóre procesory obsługują .NET.
  3. Rezystory, kondensatory, diody i tranzystory to prawdopodobnie najczęściej spotykane urządzenia, w tej kolejności.

Polecam wypróbowanie już dostępnej płytki, takiej jak Arduino lub PICAXE.

Wszystkie procesory współpracują z jakąś formą montażu. Kwestią sporną jest dostępność kompilatorów. C ++, Forth, Lua (eLua) i tak naprawdę wszystkie inne języki to także możliwości, nie tylko .NET i C #. Jednak C i assembler to dwa najpopularniejsze języki, ponieważ przybliżają Cię do metalu.
Niekoniecznie prawda, ale dotyczy większości procesorów. Na przykład niektóre procesory natywnie wykonują języki dalekie od asemblera, takie jak Java (jednak wykonują kody bajtowe, co jest podobne do asemblacji).
Jeśli procesor wykonuje kod bajtowy Java, to jest to jego zespół.
IsaacS
2012-09-17 09:52:18 UTC
view on stackexchange narkive permalink

Robotyką zajmuję się od kilku lat, ale wcześniej zajmowałem się wyszukiwaniem informacji w Internecie. Mogę więc zrozumieć, jak czuje się OP, gdy zainteresował się robotyką, ale zestaw umiejętności może wydawać się zupełnie inny. Rzeczywiście jest inaczej, ale chcę tylko podzielić się trochę swoim doświadczeniem.

Zasadniczo odpowiedzi innych osób są bardziej bezpośrednie i wyczerpujące.

Jeśli jesteś z sieci, nie koniecznie programista php , konieczność tworzenia stron internetowych wkrótce wzrośnie, nawet w robotyce. Kilka obszarów, które przychodzą mi do głowy, jest silnie zależnych od technologii internetowych:

  • Potrzeby urządzeń mobilnych jako interfejsu użytkownika stają się coraz większe & większy, gdzie aplikacje internetowe lub na telefony komórkowe praca. Potrzebne są skrypt java , android , iOS . Przykładem znanych projektów może być ten o nazwie rosbridge .

  • Korzystanie z internetu jako źródła danych jest takie samo w rozwoju aplikacji robotyki. Niektórzy nazywają to Cloud Robotics .



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 2.0, w ramach której jest rozpowszechniana.
Loading...