Olá robô - Configuração
A configuração é uma das etapas mais comumente mal compreendidas ou esquecidas necessárias para programar um robô. Esta seção tem o objetivo de explicar a importância da configuração e dissipar equívocos comuns sobre ela, respondendo às seguintes perguntas:
- O que é configuração?
- Como você configura elementos de hardware?
- Quais são os problemas comuns causados por um problema com o arquivo de configuração?
A importância da configuração
Embora cada REV Control Hub seja o mesmo, os robôs controlados pelo Control Hub não são. Cada Control Hub tem o mesmo número de portas de motor, portas de servo, portas digitais, e assim por diante, mas como cada usuário utiliza essas portas varia de sistema para sistema. Por exemplo, um Sensor de Cor V3 pode ser conectado à I2C Bus 1 no Hub de um usuário, mas outro usuário pode usar o mesmo barramento para conectar um Sensor de Distância de 2m.
O Control Hub sabe que há um dispositivo I2C conectado à porta, mas não possui naturalmente as informações necessárias para traduzir essas informações para um Op Mode ou informar ao Op Mode quais drivers precisam ser acessados para usar esse sensor. O usuário precisa fornecer informações adicionais, para que o software interno no Hub possa pegar informações do Op Mode e aplicá-las a uma porta de hardware externa correspondente e vice-versa. Esse processo é conhecido como mapeamento de hardware. O mapeamento de hardware é um processo de duas etapas que inclui: a criação de um arquivo legível conhecido como arquivo de configuração e chamadas ao mapeamento de hardware dentro de um Op Mode.
Arquivo de configuração
O arquivo de configuração é um arquivo legível criado pelo usuário por meio do aplicativo Driver Station. Ao criar um arquivo de configuração, os usuários são obrigados a atribuir cada dispositivo a uma porta, selecionar o tipo de dispositivo a partir das opções fornecidas pelo SDK e dar a ele um nome exclusivo.
Na programação, é importante distinguir entre variáveis, dando a cada variável um nome diferente.
- Assim que um arquivo de configuração é salvo ou ativado, o robô será reiniciado. Esse reinício é feito para que o SDK possa ler o arquivo, determinar quais dispositivos estão presentes e adicionar os dispositivos à classe hardwareMap.
Mapeamento de hardware
No lado do usuário, no modo de operação criado, está a classe hardwareMap. Esta classe é onde as informações criadas na configuração estão disponíveis para uso no código Blocks, OnBot Java ou Android Studio.
O nível de acesso ou interação que um usuário tem com a classe hardwareMap depende da ferramenta de programação que estão usando. Como o Blocks é uma coleção de trechos de código predefinidos, ele cria referências ao hardwareMap sempre que um trecho de código de variável, correspondente a um hardware externo, é referenciado pela primeira vez. No entanto, com OnBot Java e Android Studio, a referência ao hardwareMap requer a criação de uma variável atribuída a uma unidade de hardware externa dentro do hardwareMap.
As informações sobre como fazer referência à classe hardwareMap em Java serão explicadas com mais detalhes na seção Banco de dados - OnBot Java.
Configurando dispositivos de hardware comum
Acessando o utilitário de configuração
Na página de configurações disponíveis, selecione "New" (Novo).
Na página de configuração de dispositivos USB, selecione "Control Hub Portal" (Portal do Control Hub).
Observação: Se você tiver um Expansion Hub, ele aparecerá como "Expansion Hub Portal" (Portal do Expansion Hub).
Dentro do Portal do Hub, selecione o dispositivo que deseja configurar. Neste caso, selecione o Control Hub.
Observação: se você tiver um Expansion Hub conectado a um Control Hub, o Expansion Hub também aparecerá como um dispositivo configurável no portal.
Isso o levará para a página mostrada na imagem. A partir daqui, você pode configurar motores, servos e sensores que está usando. Siga o restante do guia para descobrir como configurar dispositivos que serão usados na seção de Teste.
Observação: A forma como os dispositivos Digitais e Analógicos são configurados difere significativamente da forma como os dispositivos I2C são configurados. Isso ocorre porque cada porta física I2C é um barramento diferente que pode hospedar vários sensores diferentes. Para obter mais informações sobre os diferentes tipos de sensores, consulte a seção de sensores.
Configurando o hardware
A próxima seção mostrará como configurar componentes que serão usados no Test Bed. O tipo de hardware e os nomes foram escolhidos levando em consideração o plano de aula Hello World. Os usuários devem observar as notas dentro das etapas para considerar ao criar arquivos de configuração para outras instâncias.
Motor
Selecione Motors
A página do Motor permitirá que você configure todas as quatro portas de motor no Hub. Na Porta 0, abra o menu suspenso e selecione "REV Robotics Core Hex Motor" (Motor Hexagonal Core da REV Robotics).
Observação: No seu arquivo de configuração, você deve configurar as portas de motor para o tipo de motor que está usando.
Dê o nome de "test_motor" ao motor. Selecione "done" (concluído).
Observação: Lembre-se de que, ao nomear hardware no arquivo de configuração, o REV Control System diferencia maiúsculas de minúsculas (case-sensitive).
Salvando o arquivo de configuração
Pressione "Done" duas vezes até chegar à página de Dispositivos USB na configuração. Na página de Dispositivos USB na configuração, pressione "Save" (Salvar).
Dê o nome de "helloRobotTest" à configuração e selecione "Ok" (OK).
Observação: O FTC SDK não obriga que você siga uma convenção de nomenclatura específica, mas é comum nomear configurações em lowerCamelCase.
Pressione "back" para ativar a configuração salva. Seu Controlador do Robô reiniciará assim que você ativar uma nova configuração.