Como alguien que pasa la mayor parte de su tiempo programando en JavaScript, ¿cuál es la mejor ruta para entrar en la robótica pequeña sin necesidad de desviarse demasiado de mi enfoque de lenguaje actual?
¿Existe algún kit o herramienta de proyecto que utilice el lenguaje JavaScript que pueda hacer que el campo sea más accesible para desarrolladores como yo? Incluso estaría interesado en entornos virtuales donde todo el código se ejecuta en una simulación.
software
programming-languages
Sampson
fuente
fuente
node.js
tampoco es javascript. Es una biblioteca C que interpreta las llamadas AJAX como un mini servidor y se utiliza para solicitudes de gran volumen, por ejemplo, en eBay. No necesita actualizar una página en un elemento que está finalizando porque JavaScript sincroniza el precio y el tiempo de la oferta mediante el nodo .js respuesta extremadamente rápida al tiempo que reduce la sobrecarga de tráfico) node.js es bueno para arduino porque lo esC
c
e interactuar con él utilizando node.js, que inherentemente usa JavaScript ajax para la solicitud, pero también puede usar solicitudes del servidor u otro código inteligente que no esté relacionado con JavaScript de todos modos.Respuestas:
Hay un par de proyectos que acoplan la plataforma Arduino al motor de ejecución de JavaScript Node.js. Eche un vistazo a Johnny-Five , que es una biblioteca en la parte superior del protocolo de control remoto Arduino Firmata o node-reflecta , que es una interfaz Node.js para el protocolo de control remoto Arduino Reflecta.
Personalmente construí un robot controlado por Node.js llamado RocketBot , que combina node-reflecta con node-joystick encima de un Beaglebone y un Arduino para que pueda dar fe de que este enfoque funciona bien.
fuente
Hmm, pregunta interesante! Yo personalmente sugeriría que eche un vistazo a la plataforma Arduino. Está programado en C, por lo que la sintaxis será ... familiar para un escritor de JavaScript. En mi humilde opinión, saber cómo se presenta la sintaxis (mientras que los bucles, si / que los bloques, etc.) es el 70% de la batalla, una vez que esté familiarizado con eso, puede enchufar y jugar. Puede obtener un kit de inicio por alrededor de $ 30 en línea de las personas buenas en SparkFun.com o adafruit.com, puede programarlo en una PC, Mac o Linux, y viene precargado con suficientes ejemplos para facilitarle el acceso. El lenguaje rápidamente. No digo que solo vayas a colocar un código JavaScript en él y estarás en camino, pero yo era un programador de JavaScript cuando comencé con Arduino, y me resultó bastante fácil aprenderlo y ejecutarlo. Buena suerte,
PD: también debe estar familiarizado / cómodo con la construcción de circuitos electrónicos (luces, motores y similares), pero cualquier buen kit de introducción de Arduino que valga la pena lo ayudará a comenzar si no tiene ninguna experiencia.
fuente
Robot Operating System (ROS) ofrece la posibilidad de usar Javascript para controlar sus robots. Específicamente querrás mirar Rosbridge . Luego deberá usar rosserial para interactuar con el microcontrolador que controla su robot.
Si bien soy un gran admirador de ROS, esta es una forma demasiado complicada de comenzar a explorar el campo de la robótica en mi humilde opinión. Sería mejor que recojas un Arduino y aprendas un poco de C. Arduino hace un gran trabajo al simplificar el proceso y C no es una gran desviación de JS desde una perspectiva de sintaxis.
fuente
En general, hay muchas formas de usar node.js con una plataforma, como esta para RPi . Hay muchos más similares si solo los busca .
Otra interesante es ArduGate , que permite que las páginas web se comuniquen con el arduino a través de JS (aunque probablemente no sea exactamente lo que quería, ya que no se compila ni carga en el arduino)
Aunque realmente no veo qué hay de malo en usar un idioma diferente. Yo mismo escribo principalmente en JS, pero me encuentro perfectamente cómodo programando un Arduino en C ++ (también permite C y Java, y si pones un poco de trabajo, bastantes lenguajes más ). Recuerde, no necesitamos nada sofisticado para programar un robot, simplemente normal
if
s,for
s,while
s,switch
es y ocasionalmenteclass
. Aprenda la sintaxis, y ya está listo para empezar :) Lo único es que C / C ++ / Java están fuertemente tipados (aunque si está utilizando el RPi, python está tipeado débilmente pero exigente en un millón de formas más), entonces Es posible que sienta un poco de frustración al principio cuando tenga que especificar tipos para todo. Una ventaja de usar los idiomas nativos es que es mucho más fácil encontrar API y código de ejemplo en la red. Por ejemplo, aparte de ArduGate (que lo tiene incorporado y probablemente no es lo que quería), no puedo encontrar ninguna forma de acceder a la EEPROM, una tarea común. Entonces, a menos que desee apegarse a programas simples, es mejor usar los idiomas nativos.fuente
Un amigo mío en realidad tiene un robot tanque bastante poderoso que se controla con NodeJS a través de wifi. El robot en sí mismo no es exactamente una "pequeña robótica" de 150 libras, pero probablemente podría aprender bastante del código fuente. Tiene una netbook a bordo con un servidor web y hablando con un Arduino. Puede encontrar el código fuente en su página del proyecto Github . El control en tiempo real desde un navegador web en otra computadora es sorprendentemente sensible.
fuente
Microsoft Robotics utiliza un protocolo llamado Protocolo de servicios de software descentralizado (DSSP) y publicaron las especificaciones bajo una licencia que permite a cualquiera implementarlo en cualquier idioma. El protocolo DSSP es totalmente compatible con los estándares web actuales y creo que sería una buena idea implementarlo en JavaScript y NodeJS. Eso puede hacer posible que su aplicación de nodo interactúe con cualquier servicio de robótica DSS disponible en la actualidad.
fuente
Programar el AR.Drone 2.0 con Javascript es muy divertido. Aquí hay un ejemplo que hace que un avión no tripulado despegue, se mueva, gire, luego aterrice, todo utilizando la biblioteca node-ar-drone :
La publicación de blog NodeBots: The Rise of JS Robotics habla sobre las ventajas que tiene javascript para la robótica, específicamente la forma natural en que los objetos y acciones del mundo real pueden modelarse como procesos encadenados e ideados. El código de ejemplo anterior para animar un dron se parece mucho al uso de jQuery para animar un elemento HTML:
fuente
También hay un proyecto llamado Espruino , que es un intérprete de JavaScript para microcontroladores ARM de baja potencia. Es una reescritura del proyecto tiny-js , un pequeño intérprete de C ++ para Javascript.
fuente
Puede ser útil buscar proyectos de robótica basados en javascript en línea ya que la comunidad de robótica basada en javascript ha crecido rápidamente desde que se hizo esta pregunta. Por ejemplo, el blogger detrás de https://burningservos.com documentó los procesos de construcción de un robot de cuatro patas desde cero y discutió sobre múltiples bibliotecas javascript que el blogger evaluó o usó. También hay una sección de "hardware" en glitch (o incluso en Adafruit y Hackster.io ) donde la gente comparte sus proyectos de piratería de hardware basados en javascript donde puedes consultar las bibliotecas que usaron.
fuente