Jako ktoś, kto spędza większość czasu na programowaniu w JavaScript, jaka jest najlepsza droga, aby dostać się do małej robotyki bez potrzeby zbytniego odchodzenia od mojego obecnego języka?
Czy są jakieś zestawy projektów lub narzędzia korzystające z języka JavaScript, które mogłyby ułatwić dostęp do pola programistom takim jak ja? Byłbym nawet zainteresowany środowiskami wirtualnymi, w których cały kod jest wykonywany w symulacji.
software
programming-languages
Sampson
źródło
źródło
node.js
to też nie javascript. Jest to biblioteka C, która interpretuje wywołania AJAX jako mini serwer i jest używana do obsługi dużych zamówień - na przykład w serwisie eBay - Nie trzeba odświeżać strony na elemencie, który kończy się, ponieważ javascript synchronizuje cenę licytacji i czas za pomocą węzła .js niezwykle szybka reakcja przy jednoczesnym zmniejszeniu narzutu ruchu) node.js jest dobry dla arduino, bo tak jestC
c
i interfejs do niego za pomocą node.js - który z natury używa JavaScript ajax dla żądania, ale możesz także użyć żądań serwera lub innego sprytnego kodu, który i tak nie jest powiązany z JavaScript.Odpowiedzi:
Istnieje kilka projektów, które łączą platformę Arduino z silnikiem wykonywania javascript Node.js. Spójrz na Johnny-Five , który jest biblioteką na szczycie protokołu zdalnego sterowania Arduino Firmata lub node- reflecta , który jest interfejsem Node.js dla protokołu zdalnego sterowania Arduino Reflecta.
Osobiście zbudowałem robota Node.js o nazwie RocketBot , który łączy w sobie węzeł refleksyjny z joystickiem węzłowym na wierzchu Beaglebone i Arduino, dzięki czemu mogę potwierdzić, że to podejście działa dobrze.
źródło
Hmm, ciekawe pytanie! Osobiście polecam przyjrzeć się platformie Arduino. Jest zaprogramowany w C, więc składnia będzie ... znana pisarzowi JavaScript. Moim skromnym zdaniem wiedza o składni (podczas pętli, bloków if / etc. itp.) Stanowi 70% bitwy, gdy już się z tym zaznajomisz, możesz podłączyć i grać. Możesz kupić zestaw startowy za około 30 USD online od dobrych ludzi na SparkFun.com lub adafruit.com, możesz go zaprogramować na komputerze PC, Mac lub Linux, a jest on fabrycznie załadowany z wystarczającą liczbą przykładów, aby ułatwić Ci język szybko. Nie mówię, że po prostu wrzucisz do niego trochę kodu JavaScript i będziesz na swojej drodze, ale byłem programistą JavaScript, kiedy zaczynałem od Arduino, i bardzo łatwo było mi go pobrać i uruchomić. Powodzenia,
PS - powinieneś także zaznajomić się / budować układy elektroniczne (światła, silniki i tym podobne), ale każdy dobry zestaw wprowadzający Arduino wart swojej soli pomoże Ci zacząć, jeśli nie masz doświadczenia.
źródło
Robot Operating System (ROS) oferuje możliwość używania Javascript do sterowania robotami. W szczególności będziesz chciał spojrzeć na Rosbridge . Następnie będziesz musiał użyć rosserial do połączenia z mikrokontrolerem sterującym twoim robotem.
Chociaż jestem wielkim fanem ROS, jest to zbyt skomplikowany sposób na rozpoczęcie eksploracji dziedziny robotyki IMHO. Lepiej skorzystaj z Arduino i naucz się trochę C. Arduino świetnie się upraszcza, a C nie jest dużym odchyleniem od JS z punktu widzenia składni.
źródło
Zasadniczo istnieje wiele sposobów używania node.js z platformą, takich jak ta dla RPi . Istnieje o wiele więcej podobnych, jeśli po prostu ich szukasz .
Kolejnym interesującym jest ArduGate , który pozwala stronom internetowym komunikować się z arduino przez JS (choć prawdopodobnie nie dokładnie to, czego chciałeś, ponieważ nie kompiluje się i nie ładuje do arduino)
Chociaż tak naprawdę nie rozumiem, co jest złego w używaniu innego języka. Sam piszę przede wszystkim w JS, ale czuję się całkowicie komfortowo programując Arduino w C ++ (pozwala to również na C i Javę, a jeśli włożysz trochę pracy, całkiem sporo innych języków ). Pamiętaj, że nie potrzebujemy niczego wymyślnego do programowania robota - tylko normalne
if
,for
s,while
s,switch
es i okazjonalneclass
. Naucz się składni i już możesz iść :) Jedyną rzeczą jest to, że C / C ++ / Java są silnie napisane (chociaż jeśli używasz RPi, python jest słabo wpisany, ale wybredny na milion innych sposobów), więc na początku możesz poczuć trochę frustracji, gdy musisz określić typy dla wszystkiego. Jedną z zalet używania języków rodzimych jest to, że znacznie łatwiej jest znaleźć interfejsy API i przykładowy kod w sieci. Na przykład poza ArduGate (który ma wbudowaną funkcję i prawdopodobnie nie jest tym, czego chciałeś), nie mogę znaleźć żadnego sposobu na uzyskanie dostępu do EEPROM - wspólne zadanie. Tak więc, chyba że chcesz trzymać się prostych programów, po prostu lepiej używać języków ojczystych.źródło
Mój przyjaciel faktycznie ma dość potężnego robota czołgowego, który jest kontrolowany za pomocą NodeJS przez Wi-Fi. Sam robot nie jest dokładnie „małym robotem” przy wadze 150 funtów, ale prawdopodobnie można się sporo nauczyć z kodu źródłowego. Ma wbudowanego netbooka, który prowadzi serwer WWW i rozmawia z Arduino. Możesz znaleźć kod źródłowy na jego stronie projektu Github . Kontrola w czasie rzeczywistym z przeglądarki internetowej na innym komputerze jest zaskakująco responsywna.
źródło
Microsoft Robotics korzysta z protokołu zwanego protokołem zdecentralizowanego oprogramowania (DSSP) i wydało specyfikacje na podstawie licencji, która umożliwia każdemu wdrożenie go w dowolnym języku. Protokół DSSP jest całkowicie zgodny z obecnymi standardami sieciowymi i myślę, że dobrym pomysłem byłoby wdrożenie go w JavaScript i NodeJS. Dzięki temu aplikacja węzła może wchodzić w interakcje z dowolnymi dostępnymi obecnie usługami DSS w zakresie robotyki.
źródło
Programowanie AR.Drone 2.0 z Javascriptem to świetna zabawa. Oto przykład, który powoduje, że dron startuje, porusza się, wykonuje przewrót, a następnie ląduje, a wszystko to za pomocą biblioteki node-ar-drone :
W blogu NodeBots - Rise of JS Robotics mówi się o zaletach javascript dla robotyki, w szczególności o naturalnym sposobie, w jaki obiekty i działania w świecie rzeczywistym mogą być modelowane jako łańcuchowe, zdarzające się procesy. Przykładowy kod powyżej do animowania drona wygląda bardzo podobnie do użycia jQuery do animacji elementu HTML:
źródło
Istnieje także projekt o nazwie Espruino , który jest interpretatorem JavaScript dla mikrokontrolerów ARM o niskiej mocy. Jest to przeróbka projektu tiny-js , małego interpretera C ++ dla Javascript.
źródło
Pomocne może okazać się poszukiwanie projektów robotyki opartych na javascript w Internecie, ponieważ społeczność robotów opartych na javascript szybko rośnie od czasu zadania tego pytania. Na przykład bloger stojący za https://burningservos.com udokumentował procesy budowania czworonożnego robota od zera i omówił wiele bibliotek javascript, które ocenił lub wykorzystał blogger. Istnieje również sekcja „hardware” w usterki (lub nawet w Adafruit i Hackster.io ), gdzie ludzie dzielą się swoją sprzętu opartego javascript hacking projekty, w których można sprawdzić bibliotek one używane.
źródło