En tant que personne qui passe la majorité de son temps à programmer en JavaScript, quel est le meilleur moyen de se lancer dans la petite robotique sans avoir à trop s'écarter de mes préoccupations linguistiques actuelles?
Existe-t-il des kits de projet ou des outils qui utilisent le langage JavaScript pour rendre le champ plus accessible aux développeurs comme moi? Je serais même intéressé par les environnements virtuels où tout le code est exécuté dans une simulation.
software
programming-languages
Sampson
la source
la source
node.js
ce n'est pas javascript non plus. C'est une bibliothèque C qui interprète les appels AJAX comme un mini-serveur et qui est utilisée pour les demandes volumineuses (par exemple sur eBay). Il n'est pas nécessaire d'actualiser une page sur un élément qui se termine car javascript synchronise le prix et l'heure des enchères à l'aide du noeud. .js réponse extrêmement rapide tout en réduisant la surcharge de trafic) node.js est bon pour Arduino parce qu'il estC
c
et vous y connectez en utilisant node.js - qui utilise intrinsèquement JavaScript ajax pour requête mais vous pouvez également utiliser des requêtes de serveur ou tout autre code intelligent qui n'est pas lié à JavaScript de toute façon.Réponses:
Il existe quelques projets qui associent la plate-forme Arduino au moteur d’exécution javascript de Node.js. Jetez un coup d'œil à Johnny-Five , une bibliothèque située au-dessus du protocole de contrôle à distance Arduino Firmata ou node-reflecta , qui est une interface Node.js pour le protocole de contrôle à distance Arduino Reflecta.
J'ai personnellement construit un robot contrôlé par Node.js appelé RocketBot , qui combine nœud-reflecta avec nœud-joystick sur un Beaglebone et un Arduino afin que je puisse attester que cette approche fonctionne bien.
la source
Hmm, question intéressante! Personnellement, je vous suggère de jeter un coup d’œil sur la plate-forme Arduino. Il est programmé en C, donc la syntaxe va être ... familière pour un écrivain JavaScript. À mon humble avis, savoir comment la syntaxe (avec les boucles, si / que des blocs, etc.) est agencée représente 70% de la bataille, une fois que vous êtes familiarisé avec cela, vous pouvez jouer avec plug-and-play. Vous pouvez vous procurer un kit de démarrage pour environ 30 $ en ligne auprès des experts de SparkFun.com ou d’adafruit.com, vous pouvez le programmer sur un PC, un ordinateur Mac ou Linux, et il est fourni avec suffisamment d’exemples pour vous faciliter la tâche. la langue rapidement. Je ne dis pas que vous allez simplement y insérer du code JavaScript et y aller, mais j'étais un programmeur JavaScript lorsque j'ai commencé à utiliser Arduino, et j'ai trouvé qu'il était assez facile de le récupérer. Bonne chance,
PS - Vous devez également être familiarisé avec la construction de circuits électroniques (lumières, moteurs, etc.), mais tout bon kit d’introduction Arduino digne de ce nom vous permettra de démarrer si vous n’avez aucune expérience.
la source
Robot Operating System (ROS) offre la possibilité d'utiliser Javascript pour contrôler vos robots. Plus précisément, vous voudrez regarder rosbridge . Vous devrez ensuite utiliser rosserial pour vous connecter au microcontrôleur contrôlant votre robot.
Bien que je sois un grand fan de ROS, c’est une façon trop compliquée de commencer à explorer le domaine de la robotique à mon humble avis. Vous seriez mieux préparé à prendre un Arduino et à apprendre un peu de C. Arduino fait un excellent travail de simplification du processus et C n’est pas un grand écart par rapport à JS du point de vue de la syntaxe.
la source
En règle générale, il existe de nombreuses façons d'utiliser node.js avec une plate-forme, comme celle-ci pour le RPi . Il y en a beaucoup plus similaires si vous les recherchez .
ArduGate est un autre exemple intéressant: il permet aux pages Web de communiquer avec l’arduino via JS (bien que ce ne soit probablement pas exactement ce que vous vouliez, car il ne compile pas et ne se charge pas dans l’arduino)
Bien que je ne vois vraiment pas ce qui ne va pas avec l’utilisation d’une autre langue. J'écris moi-même principalement en JS, mais je me trouve parfaitement à l'aise pour programmer un Arduino en C ++ (il permet également le C et Java, et si vous mettez un peu de travail, pas mal de langages supplémentaires ). Rappelez-vous que nous n’avons besoin de rien de fantaisie pour programmer un robot - seulement des
if
s,for
s,while
s,switch
esclass
. Apprenez la syntaxe, et vous êtes prêt à partir :) La seule chose à faire est que C / C ++ / Java est fortement typé (bien que si vous utilisez le RPi, python est faiblement typé mais difficile à plus d'un million d'exemplaires), vous risquez d’être un peu frustré au début lorsque vous devez spécifier des types pour tout. L'un des avantages de l'utilisation des langues natives est qu'il est beaucoup plus facile de trouver des API et des exemples de code sur le net. Par exemple, à part ArduGate (qui l’a intégrée et qui n’est probablement pas ce que vous vouliez), je ne trouve aucun moyen d’accéder à la mémoire EEPROM - une tâche courante. Donc, à moins de vouloir s'en tenir à des programmes simples, il est préférable d'utiliser les langues natives.la source
Un de mes amis possède en fait un robot de réservoir assez puissant contrôlé avec NodeJS via wifi. Le robot lui-même n'est pas exactement une "petite robotique" pesant 150 livres, mais vous pourriez probablement en apprendre beaucoup sur le code source. Il a un netbook à bord qui gère un serveur Web et qui parle à un Arduino. Vous pouvez trouver le code source sur sa page de projet Github . Le contrôle en temps réel depuis un navigateur Web sur un autre ordinateur est étonnamment réactif.
la source
Microsoft Robotics utilise un protocole appelé DSSP (Decentralized Software Services Protocol) et a publié les spécifications sous une licence qui permet à quiconque de l'implémenter dans n'importe quelle langue. Le protocole DSSP est totalement compatible avec les normes Web actuelles et je pense que ce serait une bonne idée de le mettre en œuvre en JavaScript et NodeJS. Cela peut permettre à votre application de noeud d'interagir avec tous les services de robotique DSS disponibles aujourd'hui.
la source
Programmer l' AR.Drone 2.0 avec Javascript est super amusant. Voici un exemple qui permet à un drone de décoller, de se déplacer, de faire un retournement puis d'atterrir, le tout à l'aide de la bibliothèque node-ar-drone :
La publication de blog NodeBots - L'essor de JS Robotics décrit les avantages de javascript pour la robotique, en particulier la manière naturelle dont les objets et les actions du monde réel peuvent être modélisés sous forme de processus chaînables et événementiels. L'exemple de code ci-dessus pour animer un drone ressemble beaucoup à l'utilisation de jQuery pour animer un élément HTML:
la source
Il existe également un projet appelé Espruino , qui est un interpréteur JavaScript pour les microcontrôleurs ARM à faible consommation. C'est une réécriture du projet tiny-js , un petit interpréteur C ++ pour Javascript.
la source
Il pourrait être utile de rechercher des projets de robotique basés sur javascript en ligne, car la communauté de robotique basée sur javascript se développe rapidement depuis que cette question a été posée. Par exemple, le blogueur derrière https://burningservos.com a documenté les processus de construction d'un robot à quatre pattes et discute de plusieurs bibliothèques javascript que le blogueur a évaluées ou utilisées. Il y a aussi une section "matériel" dans glitch (ou même sur Adafruit et Hackster.io ) où les gens partagent leurs projets de piratage matériel basés sur javascript, où vous pouvez consulter les bibliothèques qu'ils ont utilisées.
la source