Todos os sensores ev3 têm o nome correto. Conectando dois ou mais blocos EV3

Tradicionalmente, os robôs construídos sobre uma plataforma Lego Mindstorms EV3, são programados usando o ambiente gráfico LabVIEW. Neste caso, os programas são executados no controlador EV3 e o robô opera de forma autônoma. Aqui falarei sobre uma forma alternativa de controlar o robô - usando a plataforma .NET rodando em um computador.

Mas antes de entrarmos na programação, vejamos alguns casos em que isso pode ser útil:

  • Requer controle remoto do robô a partir de um laptop (por exemplo, pressionando botões)
  • É necessário coletar dados do controlador EV3 e processá-los em um sistema externo (por exemplo, para sistemas IoT)
  • Quaisquer outras situações em que você queira escrever um algoritmo de controle em .NET e executá-lo a partir de um computador conectado ao controlador EV3

API LEGO MINDSTORMS EV3 para .NET

O controlador EV3 é controlado a partir de um sistema externo enviando comandos para a porta serial. O próprio formato do comando é descrito no Communication Developer Kit.

Mas implementar este protocolo manualmente é enfadonho. Portanto, você pode usar o wrapper .NET pronto, que Brian Peek escreveu cuidadosamente. O código-fonte desta biblioteca está hospedado no Github, e o pacote pronto para uso pode ser encontrado no Nuget.

Conectando-se a um Controlador EV3

A classe Brick é usada para comunicação com o controlador EV3. Ao criar este objeto, você precisa passar uma implementação da interface ICommunication para o construtor - um objeto que descreve como se conectar ao controlador EV3. Implementações UsbCommunication, BluetoothCommunication e NetworkCommunication (conexão WiFi) estão disponíveis.

O método de conexão mais popular é via Bluetooth. Vamos dar uma olhada mais de perto neste método de conexão.

Antes de podermos nos conectar programaticamente ao controlador via Bluetooth, o controlador deve estar conectado ao computador usando as configurações do sistema operacional.

Depois que o controlador estiver conectado, vá para as configurações de Bluetooth e selecione a guia Portas COM. Encontramos nosso controlador, precisamos extrovertido porta. Iremos especificá-lo ao criar o objeto BluetoothCommunication.

O código para conectar ao controlador ficará assim:

Conexão de tarefa assíncrona pública (comunicação ICommunication) ( var Communication = new BluetoothCommunication("COM9"); var brick = _brick = new Brick(communication); await _brick.ConnectAsync(); )

Opcionalmente, você pode especificar um tempo limite de conexão com o controlador:

Aguarde _brick.ConnectAsync(TimeSpan.FromSeconds(5));

A conexão à unidade via USB ou WiFi é realizada da mesma forma, com a exceção de que são utilizados os objetos UsbCommunication e NetworkCommunication.

Todas as outras ações executadas no controlador são feitas através do objeto Brick.

Vamos girar os motores

Para executar comandos no controlador EV3, acessamos a propriedade DirectCommand do objeto Brick. Primeiro, vamos tentar ligar os motores.

Vamos supor que nosso motor esteja conectado à porta A do controlador, então rodar este motor com 50% da potência ficará assim:

Aguarde _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50);

Existem outros métodos para controlar o motor. Por exemplo, você pode girar um motor em um ângulo especificado usando os métodos StepMotorAtPowerAsync() e StepMotorAtSpeedAsync(). Existem vários métodos disponíveis, que são variações dos modos de ligar os motores - por tempo, velocidade, potência, etc.

A parada forçada é realizada usando o método StopMotorAsync():

Aguarde _brick.DirectCommand.StopMotorAsync(OutputPort.A, true);

O segundo parâmetro indica o uso do freio. Se você definir como falso, o motor irá parar por inércia.

Lendo valores de sensores

O controlador EV3 possui quatro portas para conexão de sensores. Além disso, os motores também possuem encoders integrados, o que permite que sejam utilizados como sensores. Como resultado, temos 8 portas nas quais os valores podem ser lidos.

As portas para leitura de valores podem ser acessadas através da propriedade Portas do objeto Brick. Portas é uma coleção de portas disponíveis no controlador. Portanto, para trabalhar com uma porta específica, é necessário selecioná-la. InputPort.One ... InputPort.Four são as portas do sensor e InputPort.A ... InputPort.D são os codificadores do motor.

Var porta1 = _brick.Portas;

Os sensores no EV3 podem operar em diferentes modos. Por exemplo, o Sensor de Cores EV3 pode ser usado para medir a luz ambiente, medir a luz refletida ou detectar cores. Portanto, para “dizer” ao sensor exatamente como queremos usá-lo, precisamos definir o seu modo:

Brick.Ports.SetMode(ColorMode.Reflective);

Agora que o sensor está conectado e seu modo de operação definido, você pode ler os dados dele. Você pode obter dados “brutos”, valor processado e valor percentual.

Float si = _brick.Ports.SIValue; int bruto = _brick.Ports.RawValue; porcentagem de bytes = _brick.Ports.PercentValue;

A propriedade SIValue retorna os dados processados. Tudo depende de qual sensor é usado e em que modo. Por exemplo, ao medir a luz refletida, obteremos valores de 0 a 100 dependendo da intensidade da luz refletida (preto/branco).

A propriedade RawValue retorna o valor bruto obtido do ADC. Às vezes é mais conveniente usá-lo para processamento e uso subsequente. Aliás, no ambiente de desenvolvimento EV3 também é possível obter valores “brutos” - para isso é necessário utilizar o bloco do painel azul.

Se o sensor que você está usando espera receber valores em porcentagens, então você também pode usar a propriedade PercentValue.

Executando comandos em lotes

Digamos que temos um carrinho robô com duas rodas e queremos colocá-lo no lugar. Neste caso, as duas rodas devem girar na direção oposta. Se usarmos DirectCommand e enviarmos dois comandos sequencialmente ao controlador, pode passar algum tempo entre sua execução:

Aguarde _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50); aguarde _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, -50);

Neste exemplo enviamos um comando para girar o motor A na velocidade 50, após enviar este comando com sucesso, repetimos o mesmo com o motor conectado na porta B. O problema é que o envio de comandos não acontece instantaneamente, então os motores pode começar a girar em momentos diferentes - enquanto o comando está sendo transmitido para a porta B, o motor A começará a girar.

Se for fundamental fazer os motores girarem ao mesmo tempo, podemos enviar comandos ao controlador em um “pacote”. Neste caso, você deve usar a propriedade BatchCommand em vez de DirectCommand:

Brick.BatchCommand.TurnMotorAtPower(OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower(OutputPort.B, -50); aguarde _brick.BatchCommand.SendCommandAsync();

Agora dois comandos são preparados de uma só vez, após os quais são enviados ao controlador em um pacote. O controlador, tendo recebido estes comandos, começará a girar os motores simultaneamente.

O que mais você pode fazer

Além de girar motores e ler valores de sensores, você pode realizar diversas outras ações no controlador EV3. Não entrarei em detalhes sobre cada um deles, apenas listarei uma lista do que pode ser feito:

  • CleanUIAsync(), DrawTextAsync(), DrawLineAsync(), etc. - manipulação da tela integrada do controlador EV3
  • PlayToneAsync() e PlaySoundAsync() – use o alto-falante integrado para reproduzir sons
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (de SystemCommand) - trabalhando com arquivos

Conclusão

Usar .NET para controlar robôs Mindstorms EV3 demonstra bem como tecnologias de “mundos diferentes” podem funcionar juntas. Como resultado da pesquisa da API EV3 para .NET, foi criado um pequeno aplicativo que permite controlar o robô EV3 a partir de um computador. Infelizmente, existem aplicativos semelhantes para NXT, mas o EV3 os contornou. Ao mesmo tempo, são úteis em competições controladas de robôs, como o futebol de robôs.

O aplicativo pode ser baixado e instalado neste link:

Se você, como nós, não possui os recursos dos sensores EV3 padrão, 4 portas para sensores em seus robôs não são suficientes ou deseja conectar alguns periféricos exóticos ao seu robô - este artigo é para você. Acredite, um sensor caseiro para EV3 é mais fácil do que parece. Um “botão de volume” de um rádio antigo ou alguns pregos cravados no chão em um vaso de flores como sensor de umidade do solo são perfeitos para o experimento.

Surpreendentemente, cada porta do sensor EV3 esconde vários protocolos diferentes, principalmente para compatibilidade com sensores NXT e de terceiros. Vejamos como funciona o cabo EV3


É estranho, mas o fio vermelho é terra (GND), o fio verde é o positivo da fonte de alimentação de 4,3V. O fio azul é SDA para o barramento I2C e TX para o protocolo UART. Além disso, o fio azul é a entrada do conversor analógico-digital do EV3. O fio amarelo é SCL para o barramento I2C e RX para o protocolo UART. O fio branco é a entrada do conversor analógico-digital para sensores NXT. Preto - entrada digital, para sensores compatíveis com NXT - duplica GND. Não é fácil, não é? Vamos em ordem.

Entrada analógica EV3

Cada porta do sensor possui um canal conversor analógico para digital. É utilizado para sensores como Sensor de Toque (botão), Sensor de Luz NXT e Sensor de Cor em modo de luz refletida e luz ambiente, Sensor de Som NXT e Termômetro NXT.

Uma resistência de 910 Ohms, conectada conforme o diagrama, informa ao controlador que esta porta deve ser comutada para o modo de entrada analógica. Neste modo, você pode conectar qualquer sensor analógico ao EV3, por exemplo do Arduino. A taxa de câmbio com esse sensor pode atingir vários milhares de pesquisas por segundo; este é o tipo mais rápido de sensor.

Sensor de luz

Termômetro

Sensor de umidade do solo

Você também pode conectar: ​​um microfone, um botão, um telêmetro IR e muitos outros sensores comuns. Se a alimentação de 4,3 V não for suficiente para o sensor, você poderá alimentá-lo com 5 V a partir da porta USB localizada na lateral do controlador EV3.

O “botão de volume” mencionado acima (também conhecido como resistor variável ou potenciômetro) é um excelente exemplo de sensor analógico - ele pode ser conectado assim:

Para ler os valores de tal sensor no ambiente de programação LEGO padrão, você deve usar o bloco RAW azul

Protocolo I2C

Este é um protocolo digital; por exemplo, o sensor ultrassônico NXT e muitos sensores Hitechnic, como IR Seeker ou Color Sensor V2, funcionam nele. Para outras plataformas, por exemplo para Arduino, existem muitos sensores i2c, você também pode conectá-los. O esquema é o seguinte:

Uma resistência de 82 ohms é recomendada pelo LEGO Group, mas várias fontes mencionam 43 ohms ou menos. Na verdade, tentámos abandonar completamente estas resistências e tudo funciona, pelo menos “na mesa”. Em um robô real operando em condições de diversos tipos de interferência, as linhas SCL e SDA ainda devem ser conectadas à fonte de alimentação através de resistências, conforme indicado no diagrama acima. A velocidade operacional do i2c no EV3 é bastante baixa, aproximadamente 10.000 kbps, e é por isso que o Hitechnic Color Sensor V2 favorito de todos é tão lento :)

Infelizmente, para o EV3-G padrão da LEGO não existe um bloco completo para comunicação bidirecional com um sensor i2c, mas usando ambientes de programação de terceiros, como RobotC, LeJOS ou EV3 Basic, você pode interagir com quase todos os sensores i2c .

A capacidade do EV3 de operar usando o protocolo i2c abre uma possibilidade interessante para conectar vários sensores a uma porta. O protocolo I2C permite conectar até 127 dispositivos escravos a um barramento. Você pode imaginar? 127 sensores para cada porta EV3 :) Além disso, muitas vezes vários sensores i2c são combinados em um dispositivo, por exemplo, na foto abaixo há um sensor 10 em 1 (contém uma bússola, giroscópio, acelerômetro, barômetro, etc.)

UART

Quase todos os sensores padrão não EV3, com exceção do Touch Sensor, operam utilizando o protocolo UART e por isso não são compatíveis com o controlador NXT, que, embora possua os mesmos conectores, não possui UART implementado em seu sensor portos. Dê uma olhada no diagrama, é um pouco mais simples que nos casos anteriores:

Os sensores UART combinam automaticamente a velocidade de sua operação com o EV3. Conectando-se inicialmente a uma velocidade de 2.400 kbit/s, eles concordam com os modos de operação e taxas de câmbio, passando então para uma velocidade maior. As taxas de câmbio típicas para diferentes sensores são 38.400 e 115.200 kbit/s.
A LEGO implementou um protocolo bastante complicado em seus sensores UART, portanto não existem sensores de terceiros que não tenham sido originalmente planejados para esta plataforma, mas que sejam compatíveis com ela. No entanto, este protocolo é muito conveniente para conectar “caseiros”
sensores baseados em microcontroladores.
Existe uma biblioteca maravilhosa para Arduino chamada EV3UARTEmulation, escrita pelo famoso desenvolvedor LeJOS Lawrie Griffiths, que permite que esta placa finja ser um sensor compatível com UART-LEGO. Seu blog LeJOS News tem muitos exemplos de conexão de sensores de gás, um sensor IMU e uma bússola digital usando esta biblioteca.

Abaixo no vídeo está um exemplo de uso de um sensor caseiro. Não temos sensores de distância LEGO originais suficientes, então usamos um caseiro no robô:


A tarefa do robô é partir da célula verde, encontrar uma saída do labirinto (célula vermelha) e retornar ao ponto de partida pelo caminho mais curto, sem entrar em becos sem saída.

Selecione o modo de tela

Seleção de modo
Bloquear campo de texto
Entradas
Botão de visualização

Selecione o tipo de texto ou gráfico que deseja ver usando o seletor de modo. Depois de selecionar o modo, você pode selecionar os valores de entrada. As entradas disponíveis variam dependendo do modo. Os modos e entradas são descritos abaixo.

Você pode clicar no botão Visualizar para visualizar o que o bloco Display exibirá na tela do EV3. Você pode deixar a visualização aberta enquanto seleciona os valores de entrada para o bloco.

Coordenadas da tela

Muitos dos modos de bloco de tela usam coordenadas X e Y para determinar a localização do elemento. As coordenadas determinam a posição dos pixels na tela do Bloco EV3. A posição (0, 0) está no canto superior esquerdo da tela conforme mostrado na imagem abaixo.

Dimensões da tela: 178 pixels de largura e 128 pixels de altura. O intervalo de valores das coordenadas X vai de 0 na tela à esquerda a 177 à direita. O intervalo de valores da coordenada Y vai de 0 na parte superior a 127 na parte inferior.

Dicas e truques

Você pode usar o botão Visualizar no canto superior esquerdo do bloco Tela para ajudá-lo a encontrar as coordenadas corretas da tela.

Texto - Pixels

Texto - O modo Pixels permite exibir texto em qualquer lugar da tela do Bloco EV3.

Redefinir janela

O modo Redefinir Janela retorna a tela do Bloco EV3 para a tela de informações padrão mostrada enquanto o programa está em execução. Esta tela mostra o nome do programa e outras informações de feedback. Quando você executa um programa no Bloco EV3, esta tela aparece antes da execução do primeiro bloco de Tela do programa.

Garantindo a visibilidade dos elementos exibidos

Quando o Programa EV3 for concluído, a tela do Bloco EV3 será apagada e retornará à tela do Menu do Bloco EV3. Qualquer texto ou gráfico exibido pelo programa será apagado. Se, por exemplo, o seu programa tiver um bloco "Tela" e nada mais, a tela será limpa tão rapidamente após o término do programa que você não verá os resultados do bloco "Tela".

Se quiser que a tela permaneça visível após a conclusão do programa, você deve adicionar um bloco ao final do programa para evitar que o programa termine imediatamente, conforme mostrado nos exemplos a seguir.

Exibindo vários itens

Se você deseja exibir vários elementos de texto ou gráficos na tela ao mesmo tempo, é importante não limpar a tela do Bloco EV3 entre os elementos. Cada modo do bloco Screen possui uma entrada Clear Screen. Se Clear Screen for verdadeiro, toda a tela será limpa antes que o item seja exibido. Isso significa que para exibir vários itens, você deve definir Clear Screen como False para cada bloco de tela, exceto o primeiro.

Exibindo números

Para exibir um valor numérico em seu programa, conecte um barramento de dados à entrada de texto do bloco Text Display. O barramento de dados numérico será automaticamente convertido em texto usando a conversão do tipo de barramento de dados (consulte a seção

Descrição da apresentação por slides individuais:

1 diapositivo

Descrição do slide:

2 slides

Descrição do slide:

Interface do Bloco EV3 O Bloco EV3 é o centro de controle que alimenta seus robôs. Com a tela, os botões de controle do Brick e a interface do EV3 Brick, que contém quatro janelas principais, você tem acesso a uma impressionante variedade de recursos exclusivos do EV3 Brick. Podem ser funções simples, como iniciar e parar um programa, ou complexas, como escrever o próprio programa.

3 slides

Descrição do slide:

Interface: O Menu EV3 possui um menu que consiste em 4 partes: Programas Recentes Navegação de Arquivos Bloco de Aplicativos Configurações do Bloco

4 slides

Descrição do slide:

Programas recentes Inicie programas baixados recentemente do seu PC de mesa. Esta janela permanecerá em branco até você começar a baixar e executar programas. Esta janela exibirá os programas que você lançou recentemente. O programa no topo da lista, selecionado por padrão, é o programa que foi iniciado por último.

5 slides

Descrição do slide:

Gerenciador de Arquivos Acesse e gerencie todos os arquivos armazenados na memória do microcomputador, bem como no cartão de memória. Nesta janela você acessará e gerenciará todos os arquivos do seu Bloco EV3, incluindo os arquivos armazenados no cartão SD. Os arquivos são organizados em pastas de projetos, que, além dos próprios arquivos do programa, também contêm os sons e imagens utilizados em cada projeto. Os arquivos podem ser movidos ou excluídos usando o navegador de arquivos. Os programas criados usando o ambiente de programação do módulo e os aplicativos de registro de dados do módulo são armazenados separadamente nas pastas BrkProg_SAVE e BrkDL_SAVE.

6 slides

Descrição do slide:

Os Aplicativos da Caixa de Controle EV3 possuem 4 aplicativos pré-instalados: A. Port View. B. Controle motor. B. Controle IR. D. Ambiente de programação do módulo.

7 slides

Descrição do slide:

A. Port View Na primeira janela do aplicativo Port View, você pode ver rapidamente quais portas possuem sensores ou motores conectados a elas. Use os botões de controle do Bloco EV3 para navegar até uma das portas ocupadas e você verá as leituras atuais do sensor ou motor. Instale vários sensores e motores e experimente diferentes configurações. Para visualizar ou alterar as configurações atuais dos motores e sensores instalados, pressione o botão central. Para retornar à janela principal do aplicativo do módulo, clique no botão “Voltar”.

8 slides

Descrição do slide:

B. Controle do Motor Controle o movimento para frente ou para trás de qualquer motor conectado a uma das quatro portas de saída. Existem dois modos diferentes. Em um modo, você poderá controlar motores conectados à porta A (usando os botões Para cima e Para baixo) e à porta D (usando os botões Esquerdo e Direito). No outro modo, você controla os motores conectados à porta B (usando os botões Para cima e Para baixo) e à porta C (usando os botões Esquerdo e Direito). A alternância entre esses dois modos é feita através do botão central. Para retornar à janela principal do aplicativo do módulo, clique no botão “Voltar”.

Diapositivo 9

Descrição do slide:

Controle IR Controle o movimento para frente ou para trás de qualquer motor conectado a uma das quatro portas de saída usando o farol infravermelho remoto como controle remoto e o sensor infravermelho como receptor (o sensor infravermelho deve estar conectado à porta 4 no Bloco EV3) . Existem dois modos diferentes. Em um modo você usará os canais 1 e 2 no farol infravermelho remoto. No canal 1, você poderá controlar motores conectados à porta B (usando os botões 1 e 2 no sinalizador IR remoto) e na porta C (usando os botões 3 e 4 no sinalizador IR remoto). No canal 2 você poderá controlar os motores conectados à porta A (usando os botões 1 e 2) e à porta D (usando os botões 3 e 4). Em outro modo, você pode controlar os motores da mesma maneira, usando os canais 3 e 4 do farol infravermelho remoto. A alternância entre esses dois modos é feita através do botão central. Para retornar à janela principal do aplicativo do módulo, clique no botão “Voltar”.

10 slides

Descrição do slide:

Ambiente de Programação do Brick O EV3 Brick vem com software instalado nele. O aplicativo é semelhante ao software instalado no seu computador. Estas instruções contêm as informações básicas de que você precisa para começar.

11 slides

Descrição do slide:

Configurações do Bloco EV3 Esta janela permite visualizar e ajustar diversas configurações gerais no Bloco EV3.

12 slides

Descrição do slide:

Ajustando o Volume Você pode aumentar ou diminuir o Volume na aba Configurações do EV3.

Diapositivo 13

Conexão USB

LEGO Mindstorms EV3 pode ser conectado a um PC ou outro EV3 através de uma conexão USB. A velocidade e estabilidade da conexão neste caso são melhores do que com qualquer outro método, incluindo Bluetooth.

LEGO Mindstorms EV3 possui duas portas USB.

Comunicação entre LEGO EV3 e outros blocos LEGO EV3 no modo de ligação em cadeia.

O modo Daisy Chain é usado para conectar dois ou mais blocos LEGO EV3.

Este modo:

  • projetado para conectar mais de um LEGO Mindstorms EV3;
  • serve para conectar mais sensores, motores e outros dispositivos;
  • permite a comunicação entre vários LEGO Mindstorms EV3 (até 4), o que nos dá até 16 portas externas e o mesmo número de portas internas;
  • permite controlar toda a cadeia a partir do LEGO Mindstorms EV3 principal;
  • não pode funcionar quando o Wi-Fi ou o Bluetooth estão ativos.

Para ativar o modo de conexão em cadeia, vá até a janela de configurações do projeto e marque a caixa.

Quando este modo é selecionado, então para qualquer motor podemos selecionar o bloco EV3 que será utilizado e os sensores necessários.

A tabela mostra opções para usar blocos EV3:

Ação

Motor médio

Motor grande

Direção

Gestão independente

Giroscópico

Infravermelho

Ultrassônico

Rotação do motor

Temperaturas

Medidor de energia

Som

Conexão via Bluetooth

O Bluetooth permite que o LEGO Mindstorms EV3 se conecte a um PC, outro LEGO Mindstorms EV3, smartphones e outros dispositivos Bluetooth. O alcance de comunicação via Bluetooth é de até 25 m.

Você pode conectar até 7 blocos a um LEGO Mindstorms EV3. O EV3 Master Brick permite enviar e receber mensagens para cada EV3 Slave. Os EV3 Slaves só podem enviar mensagens para o EV3 Master Brick, e não entre si.

Sequência de conexão do EV3 via Bluetooth

Para conectar dois ou mais blocos EV3 entre si via Bluetooth, você precisa realizar as seguintes etapas:

1. Abra uma guia Configurações.

2. Selecione Bluetooth e pressione o botão central.

3. Colocamos Caixa de seleção visibilidade Bluetooth.

4. Verifique se o sinal Bluetooth ("<") виден на верхней левой стороне.

5. Faça o procedimento acima para o número necessário de Blocos EV3.

6. Vá para a aba Conexão:

7. Clique no botão Pesquisar:

8. Selecione o EV3 ao qual deseja se conectar (ou ao qual deseja se conectar) e pressione o botão central.

9. Conectamos o primeiro e o segundo blocos com a chave de acesso.

Se você fizer tudo corretamente, o ícone " aparecerá no canto superior esquerdo<>", conecte outros blocos EV3 da mesma forma se houver mais de dois deles.

Se você desligar o LEGO EV3, a conexão será perdida e você precisará repetir todos os passos.

Importante: cada bloco deve ter seu próprio programa escrito.

Exemplo de programa:

Primeiro Bloco: Quando o sensor de toque é pressionado, o primeiro Bloco EV3 transmite o texto para o segundo Bloco com um atraso de 3 segundos (Bloco Principal).

Exemplo de programa para o bloco 2:

O segundo bloco espera receber o texto do primeiro bloco e, ao recebê-lo, exibirá uma palavra (no nosso exemplo, a palavra “Olá”) por 10 segundos (o bloco escravo).

Conecte-se via Wi-Fi

A comunicação de longo alcance é possível conectando o Dongle Wi-Fi à porta USB do EV3.

Para usar o Wi-Fi, você precisa instalar um módulo especial no bloco EV3 usando um conector USB (adaptador Wi-Fi (adaptador sem fio Netgear N150 (WNA1100)) ou você pode conectar um dongle Wi-Fi.