Questão:
Existe alguma outra maneira de programar o Lego Mindstorms NXT além do software fornecido?
Jasarien
2011-11-20 07:54:08 UTC
view on stackexchange narkive permalink

Estou curioso para saber se existe alguma maneira de programar o NXT além do software fornecido.

Não necessariamente tenho nenhum problema com o software.

O programa criado pelo software se traduz em uma linguagem de programação / script real? Em caso afirmativo, essa linguagem é propriedade da Lego ou é uma linguagem de programação comum?

Se você gosta de robótica, por que não aderir à [Proposta de robótica] (http://area51.stackexchange.com/proposals/40020/robotics)?
Sete respostas:
Joubarc
2011-11-20 16:00:12 UTC
view on stackexchange narkive permalink

A interface de programação usada pelo LEGO cria programas que fazem uso do firmware padrão, ou seja, aquele fornecido pela LEGO.

Se você olhar para alternativas (veja também esta resposta para mais informações), você notará que muitos deles usam o mesmo firmware.

Isso significa que os programas que eles produzem usam a mesma linguagem que é interpretada pelo firmware padrão. Uma vantagem é que você pode ter uma mistura de programas no mesmo bloco NXT e não importa com o que eles foram escritos originalmente.

Se você estiver interessado em saber mais sobre o firmware padrão e como programá-lo, você pode baixar o Mindstorms Software Developer Kit. Um dos aspectos interessantes disso é que você nem sempre precisa criar programas, mas também pode enviar comandos diretos ao NXT - o que significa que sua lógica de programação real pode ficar em outro dispositivo conectado (PC, smartphone, ...) .

Outros idiomas alternativos usam um firwmare diferente, o que significa que você não pode misturar idiomas. Mas se ele usa uma linguagem com a qual você está mais familiarizado, pode valer a pena tentar. (Você sempre pode reverter para o firmware padrão de qualquer maneira.)

Como exemplo da lógica de programação em execução em outro dispositivo, minha [máquina de disquete nxt] (https://retracile.net/blog/2011/06/05/15.30) usou Python em um laptop para controlar um NXT executando o firmware padrão.
[Não eXactly C] (http://bricxcc.sourceforge.net/nbc) é uma boa linguagem para aprender ao fazer a transição do NXT-G da LEGO para a programação baseada em texto.
HaydenStudios
2011-11-20 08:09:18 UTC
view on stackexchange narkive permalink

Existem linguagens de programação alternativas baseadas em texto para o NXT. Três dos mais populares são NXC / NBC, LeJOS NXJ e RobotC. Existem muitos mais, todos com seus prós e contras, e são muito mais versáteis que o NXT-G, mesmo em computadores lentos. Meu favorito pessoal é NXC / NBC. Mas realmente depende de você. A melhor maneira de ver o que atende às suas necessidades é consultar esta tabela. Ele lista a maioria dos prós e contras das diferentes linguagens de programação. NOTA: pode estar um pouco desatualizado, mas mesmo assim útil.

Mateen Ulhaq
2011-11-23 07:33:16 UTC
view on stackexchange narkive permalink

Por favor, ajude a tornar esta postagem melhor! Isso precisa:

  • Limpar
  • Remoção de informações irrelevantes plagiado de copiado fora da Wikipedia
  • [Possivelmente] Imagens ou Amostras de código


NXT-G

  • Ambiente de programação gráfica
    • Usa blocos
    • Baseado em LabView
    • "vigas sequenciais" paralelas são, na verdade, threads paralelas
  • Vem empacotado com o NXT
  • A linguagem oferece suporte a instrumentos virtuais para todos os sensores / componentes da marca LEGO e para a maioria dos sensores / componentes de terceiros.
  • O suporte da comunidade é significativo, por exemplo, Brickshelf.

Encantador

  • Ambiente de programação gráfica
    • Baseado no Scratch do MIT
    • Arrastar e soltar
  • Baseado em LeJOS VM.
  • Rápido.

Robotary / Swift

  • Mac IDE e estúdio de robótica baseado na linguagem de programação Swift ge
  • recursos do IDE
    • completações de código baseadas no contexto
    • destaque de sintaxe
    • depurador baseado em LLDB
    • depuração visual medidores
    • visualizador de documentação integrado
    • vários exemplos
    • suporte para Bluetooth e USB

AJUDA!

A seção a seguir precisa de uma edição séria!


C # com Microsoft Robotics Developer Studio

  • Ferramentas gratuitas Visual Studio Express e Robotics Developer Studio permitem que você programe usando a linguagem C #.
  • Projeto de amostra em coding4fun
  • Outras linguagens também são suportados, incluindo IronPython e VB.NET

BricxCC, Next Byte Codes, Not eXactly C


Bricx Command Center (BricxCC)

  • IDE usado para escrever, compilar e editar programas NBC e NXC para o NXT.
  • Pode atualizar firmwares diferentes para NXT.
  • BricxCC tem muitos utilitários, como:
    • NeXTExplorer (carregue / baixe arquivos, desfragmente o NXT, use o visualizador hexadecimal de arquivo)
    • NeXTScreen (veja o que está na tela LCD do NXT e capture imagens e vídeo)

Next Byte Codes (NBC)

  • Open Source
  • Sintaxe da linguagem Assembly
  • BricxCC pode descompilar executáveis ​​NXT padrão (.rxe) para NBC

Não eXactly C (NXC)

  • Abrir Fonte.
  • Linguagem baseada em texto.
  • Baseado em C.
  • Usa NBC como linguagem assembly.
  • Um dos terceiros mais populares linguagens de programação de terceiros para o NXT.

Robolab

  • Ambiente de programação mais antigo; originalmente usado para blocos RCX.
  • A versão 2.9 foi atualizada para que possa ser usada para programar o bloco NXT
  • Lego anunciou que deixará de oferecer suporte oficial ao Robolab, mas o Robolab 2.9 está ainda disponível e ainda há muitos fóruns de usuários e outras fontes de ajuda disponíveis.

ROBOTC

  • Desenvolvido pela Carnegie Mellon Robotic's Academy
  • Baseado em C
  • Usado em VEX, VEX Cortex, FIRST Tech Challenge e Lego Mindstorms NXT.
  • Firmware personalizado para execução de programa muito rápida.
  • Compacta arquivos para aumentar o espaço disponível.

NXTGCC

  • conjunto de ferramentas GCC.
  • Para programação do NXT firmware em C

leJOS NXJ

  • Linguagem de alto nível
  • Código aberto
  • Baseado em Java
  • Usa firmware personalizado

nxtOSEK

  • C / C ++
  • Requer firmware personalizado

ICON

  • Para escrever arquivos no próprio NXT

MATLAB e Simulink

MATLAB

  • Linguagem de programação de alto nível.
  • Para computação numérica, aquisição e análise de dados.
  • Pode ser usado para controlar robôs LEGO NXT através de uma porta serial Bluetooth (a comunicação da porta serial faz parte da funcionalidade básica do MATLAB) ou através de uma conexão USB; por exemplo, usando o RWTH - Mindstorms NXT Toolbox de código aberto.

Simulink

  • ambiente baseado em MATLAB para modelagem e simulando sistemas dinâmicos.
  • Usando o Simulink, um usuário pode projetar algoritmos de controle, gerar código C automaticamente para esses algoritmos e baixar o código compilado para o LEGO NXT.

O código MATLAB e Simulink para a programação LEGO MINDSTORMS NXT está disponível gratuitamente.


Lua

  • Porta da Lua
  • Linguagem de script de uso geral

Ada

  • A [ http://libre.adacore.com/libre/tools/mindstorms/ porta do GNAT] está disponível para o NXT. Ele se baseia em um kernel de tempo de execução dedicado baseado no [[perfil Ravenscar]], o mesmo usado no [[satélite Goce]]: isso permite usar recursos de Ada de alto nível para desenvolver sistemas simultâneos e em tempo real no MINDSTORMS NXT.

URBI

  • [[URBI]] é outra linguagem e é uma linguagem paralela e orientada a eventos, com interfaces para C ++ / Java e Matlab. Ele também possui uma arquitetura de componentes (UObject) para distribuição. Urbi é compatível com muitos robôs, incluindo Nao (cf Robocup), Bioloid ou Aibo. [ http://www.gostai.com/nxt URBI NXT Page]

FLL NXT Navigation

  • [ http://fllnxtnavigation.codeplex.com/ FLL Nxt Navigation] Um programa de código aberto para ajudar a navegação na mesa de competição da FLL. Ele usa arquivos NXT-G e .txt para escrever programas.

ruby-nxt

  • Biblioteca para programar o NXT para a linguagem de programação Ruby.
  • O código não é compilado em um arquivo binário; ele é transmitido diretamente para o NXT por meio de uma conexão Bluetooth.

Robotics.NXT

  • Interface Haskell para NXT sobre Bluetoooth.
  • Suporta comandos diretos, mensagens e muitos sensores (também não oficiais).
  • Também oferece suporte para um controle simples baseado em mensagens de um bloco NXT via programa executado remotamente (código NXC básico incluído).

LibNXT

  • biblioteca de utilitários para falar com o bloco inteligente LEGO Mindstorms NXT em um nível relativamente baixo.
  • é direcionado principalmente para as plataformas que o software oficial Lego Minstorms NXT ignora, ou seja, Linux e outros unices.
  • Funcionará em qualquer sistema operacional compatível com POSIX onde libusb 0.1 http: // libusb.sf.net/ é suportado.
  • O suporte do Windows também é possível com a porta win32 do libusb.

PyNXC

  • Traduz o código Python em código NXC (veja acima), para compilar e fazer download para robôs LEGO MINDSTORMS.

( Alguns conteúdo da Wikipedia. Licenciado sob CC-Wiki, obviamente.)

starblue
2011-11-22 02:11:44 UTC
view on stackexchange narkive permalink

Você pode programar o hardware bruto:

O microcontrolador principal no NXT é um Atmel AT91SAM7S256 ( folha de dados), que usa o ARM7TDMI núcleo da ARM. Este núcleo é suportado pelo gcc, então você pode usar ferramentas GNU para programá-lo em Assembly / C / C ++.

Você pode construir um firmware para o AT91SAM7S256 e carregá-lo via USB, após colocar o controlador no SAM Modo -BA pressionando longamente o botão de reset.

Há também um controlador ATmega48 menor no NXT, mas não se destina a ser reprogramado.

A LEGO fornece um hardware Kit do desenvolvedor entre seus arquivos de suporte. Ele contém esquemas e descrições dos sensores e motores, para que você saiba como o microcontrolador está conectado às portas NXTs.

Miguel
2014-06-02 23:27:26 UTC
view on stackexchange narkive permalink

Comecei a codificar usando o software NXT e mais tarde EV3 e recentemente mudei para o java usando leJOS. O software EV3 (e NXT) é ótimo para hackear suas ideias rapidamente, mas quando as coisas ficam feias, a linguagem gráfica não ajuda em nada.

Apenas observe o que eu precisava fazer para criar uma versão jogável de Pong para um jogador em http://thetechnicgear.com/2014/03/playable-pong-lego-mindstorms-ev3/

Robotman
2012-08-22 12:04:13 UTC
view on stackexchange narkive permalink

Você pode programar o lego NXT em qualquer idioma que desejar! Na verdade, a questão é se você deseja que o bloco de tempestades mentais execute a tomada de decisão ou se deseja que outro dispositivo faça isso por você. Isso funciona de duas maneiras:

Você baixa um programa no NXT que pode ser executado em seu formato nativo. Com base na entrada do sensor e no programa que você escreveu, o NXT pode operar sozinho. É assim que os módulos de tempestades mentais são projetados principalmente para operar fora da caixa - onde você usa sua interface de programação "visual" para criar um programa e, em seguida, baixá-lo para o NXT.

Conforme listado acima, existem vários outros tipos de linguagens de programação e interfaces que você pode usar para escrever programas para o NXT. Eventualmente, eles exigem que você os baixe para o NXT - que novamente executará todos os cálculos necessários para executar o programa no bloco. Eles tendem a oferecer mais controle sobre seu programa, no entanto, em última análise, dependem do poder de computação disponível no NXT.

O segundo cenário é usar o NXT como uma espécie de "escravo" para outro dispositivo com mais computação poder. Este dispositivo - como um PC ou MAC, pode ser usado para enviar comandos diretos em tempo real para o dispositivo NXT operar. Com base no feedback transferido de volta para o computador host, você pode enviar outros comandos. Usando este método, você pode usar qualquer linguagem de programação com a qual se sinta confortável - e simplesmente usar o NXT como um dispositivo "burro". Isso oferece a você a maior versatilidade, e você pode usar virtualmente qualquer linguagem de programação com a qual se sinta confortável.

O que é bom sobre o NXT é que ele permite que você use uma ampla gama de técnicas diferentes para controlá-lo - o que o torna uma ótima plataforma. Um ótimo passo a passo sobre como enviar esses comandos diretos por bluetooth para o NXT pode ser encontrado aqui: http://www.robotappstore.com/Knowledge-Base/Programming-LEGO-NXT-Mindstorms/92.html Eu recomendo dar uma olhada, pois é uma ótima introdução para começar. Se o seu computador suporta bluetooth, você pode baixar facilmente realterm (grátis) e fazer seu projeto robótico funcionar rapidamente!

Admito que enviar esses comandos diretos para o NXT é um pouco mais avançado do que dizer o tipo de programação visual usada com o software Lego fornecido, mas permitirá que você use qualquer linguagem que desejar e, com pequenas modificações, você pode usar seu código para projetos não relacionados também!

Espero que isso ajude! -Ryan

RoberLR
2017-07-25 17:39:14 UTC
view on stackexchange narkive permalink

Você pode usar um módulo Python chamado NXT-Python. Se você sabe como usar o python, ele será uma ferramenta muito útil.

Você pode encontrá-lo no GitHub. Você também pode usar o gerenciador de pacotes em algumas distribuições Linux:

  apt install python-nxt  

Aqui você tem alguns tutoriais:



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...