Como alguém que passa a maior parte do tempo programando em JavaScript, qual é o melhor caminho para entrar na robótica pequena sem precisar se desviar muito do meu foco atual na linguagem?
Existem kits ou ferramentas de projeto que fazem uso da linguagem JavaScript que podem tornar o campo mais acessível para desenvolvedores como eu? Eu estaria interessado em ambientes virtuais onde todo o código é executado em uma simulação.
software
programming-languages
Sampson
fonte
fonte
node.js
também não é javascript. É uma biblioteca C que interpreta as chamadas AJAX como mini servidor e é usada para solicitações de alto volume - por exemplo, no ebay -. Você não precisa atualizar uma página em um item que está terminando porque o javascript sincroniza o preço e a hora do lance usando o nó js resposta extremamente rápida, reduzindo a sobrecarga de tráfego) Node.js é bom para arduino causa éC
c
e faz interface com ele usando o node.js - que usa inerentemente o JavaScript ajax para solicitação, mas também pode usar solicitações do servidor ou outro código inteligente que não esteja relacionado ao JavaScript.Respostas:
Existem alguns projetos por aí que associam a plataforma Arduino ao mecanismo de execução javascript do Node.js. Dê uma olhada no Johnny-Five , que é uma biblioteca sobre o protocolo de controle remoto do Arduino Firmata ou node-reflecta , que é uma interface do Node.js. para o protocolo de controle remoto do Arduino Reflecta.
Eu construí pessoalmente um robô controlado pelo Node.js. , chamado RocketBot , que combina node-reflecta com node-joystick em cima de um Beaglebone e um Arduino, para que eu possa atestar que essa abordagem funciona bem.
fonte
Hmm, pergunta interessante! Pessoalmente, sugiro que você dê uma olhada na plataforma Arduino. Está programado em C, então a sintaxe será ... familiar, para um escritor de JavaScript. Na minha humilde opinião, saber como a sintaxe (enquanto loops, se / do que blocos, etc.) é definida é 70% da batalha, quando você estiver familiarizado com isso, poderá conectar e jogar. Você pode comprar um kit inicial por cerca de US $ 30 on-line com o pessoal do SparkFun.com ou adafruit.com, pode programá-lo em um PC, Mac ou Linux e vem pré-carregado com exemplos suficientes para facilitar sua entrada. o idioma rapidamente. Eu não estou dizendo que você só vai colocar algum código JavaScript nele e seguir o seu caminho, mas eu era um programador de JavaScript quando comecei com o Arduino, e achei muito fácil entender e executar. Boa sorte,
PS - você também deve estar familiarizado / confortável com a construção de circuitos eletrônicos (luzes, motores e similares), mas qualquer bom kit de introdução ao Arduino vale a pena começar, se você não tiver experiência.
fonte
O Robot Operating System (ROS) oferece a capacidade de usar Javascript para controlar seus robôs. Especificamente, você vai querer olhar para Rosbridge . Você precisará usar o rosserial para interagir com o microcontrolador que controla seu robô.
Embora eu seja um grande fã de ROS, essa é uma maneira muito complicada de começar a explorar o campo da robótica IMHO. Você ficaria melhor servido para pegar um Arduino e aprender um pouco de C. O Arduino faz um ótimo trabalho de simplificar o processo e C não é um grande desvio do JS da perspectiva da sintaxe.
fonte
Geralmente, existem muitas maneiras de usar o node.js com uma plataforma, como esta para o RPi . Existem muito mais similares se você apenas procurá-las .
Outro interessante é o ArduGate , que permite que as páginas da web se comuniquem com o arduino via JS (embora provavelmente não seja exatamente o que você queria, pois ele não é compilado e carregado no arduino)
Embora eu realmente não veja o que há de errado em usar um idioma diferente. Eu mesmo escrevo principalmente em JS, mas me sinto perfeitamente confortável em programar um Arduino em C ++ (ele também permite C e Java, e se você trabalhar um pouco mais algumas linguagens ). Lembre-se, não estamos precisando de nada sofisticado para programar um robô - apenas
if
s,for
s,while
s,switch
es normais e os ocasionaisclass
. Aprenda a sintaxe e pronto: :) A única coisa é que C / C ++ / Java são fortemente tipados (embora, se você estiver usando o RPi, o python seja fracamente tipado, mas exigente em um milhão de maneiras), então você pode ficar um pouco frustrado no começo quando precisar especificar tipos para tudo. Uma vantagem do uso de idiomas nativos é que é muito mais fácil encontrar APIs e código de exemplo na rede. Por exemplo, além do ArduGate (que está embutido e provavelmente não é o que você queria), não consigo encontrar nenhuma maneira de acessar a EEPROM - uma tarefa comum. Portanto, a menos que você queira seguir programas simples, é melhor usar os idiomas nativos.fonte
Um amigo meu, na verdade, tem um robô tanque muito poderoso que é controlado com o NodeJS por wifi. O robô em si não é exatamente "robótico pequeno" a 150 libras, mas você provavelmente poderia aprender bastante com o código-fonte. Possui um netbook a bordo executando um servidor da web e conversando com um Arduino. Você pode encontrar o código fonte em sua página de projeto no Github . O controle em tempo real de um navegador da web em outro computador é surpreendentemente responsivo.
fonte
A Microsoft Robotics usa um protocolo chamado DSSP (Decentralized Software Services Protocol) e divulgou as especificações sob uma licença que permite a qualquer pessoa implementá-lo em qualquer idioma. O protocolo DSSP é totalmente compatível com os padrões da web atuais e acho que seria uma ótima idéia implementá-lo em JavaScript e NodeJS. Isso pode possibilitar que seu aplicativo de nó interaja com qualquer serviço de robótica DSS disponível hoje.
fonte
Programar o AR.Drone 2.0 com Javascript é super divertido. Aqui está um exemplo que faz um drone decolar, se movimentar, girar e pousar, todos usando a biblioteca node-ar-drone :
A publicação do blog NodeBots - o surgimento da JS Robotics fala sobre as vantagens que o javascript tem para a robótica, especificamente a maneira natural como objetos e ações do mundo real podem ser modelados como processos encadeados e eventos. O código de exemplo acima para animar um drone é muito semelhante ao uso do jQuery para animar um elemento HTML:
fonte
Há também um projeto chamado Espruino , que é um intérprete JavaScript para microcontroladores ARM de baixa potência. É uma reescrita do projeto tiny-js , um pequeno interpretador de C ++ para Javascript.
fonte
Pode ser útil procurar projetos de robótica baseados em javascript on-line, pois a comunidade de robótica baseada em javascript está crescendo rapidamente desde que essa pergunta foi feita. Por exemplo, o blogueiro por trás do https://burningservos.com documentou os processos de construção de um robô de quatro patas do zero e discutiu várias bibliotecas javascript que o blogueiro avaliou ou usou. Há também a seção "hardware" na falha (ou mesmo no Adafruit e no Hackster.io ), onde as pessoas compartilham seus projetos de hackers de hardware baseados em javascript, onde você pode conferir as bibliotecas que eles usaram.
fonte