Índice:

O RADbot: 7 etapas
O RADbot: 7 etapas

Vídeo: O RADbot: 7 etapas

Vídeo: O RADbot: 7 etapas
Vídeo: Imagine Dragons x J.I.D - Enemy (from the series Arcane League of Legends) 2024, Outubro
Anonim
O RADbot
O RADbot

Um projeto de Jackson Breakell, Tyler McCubbins e Jakob Thaler para EF 230

Em Marte, os astronautas estarão sujeitos a uma variedade de perigos, desde temperaturas extremas a tempestades de poeira. Um fator freqüentemente esquecido, entretanto, é o perigo apresentado por poderosos radioisótopos que residem na superfície do planeta. O RADbot fornece assistência para explorar astronautas na superfície de Marte, identificando amostras de rochas com altas atividades enquanto viaja, e também tem recursos de segurança programados que utilizam seus sensores de penhasco, sensores de luz, sensores de pára-choques e uma câmera, evitando que o robô seja danificado no implacável terreno marciano. Além de alertar os astronautas sobre possíveis perigos radioativos na superfície, o recurso de localização de amostra radioativa do robô poderia ser implementado como uma ferramenta para identificar áreas que poderiam conter grandes depósitos de urânio e outros actinídeos. Os astronautas poderiam minerar esses elementos, enriquecê-los o suficiente e usá-los em reatores nucleares e geradores termoelétricos, que poderiam ajudar a alimentar uma colônia permanente e autossustentável no planeta.

Ao contrário do rover Mars típico, nosso projeto apresenta componentes prontos para uso e um preço razoável. Contanto que você tenha os fundos e o desejo, você mesmo pode construir um seguindo este guia. Continue lendo para aprender como fazer seu próprio RADbot.

Etapa 1: Adquirir as peças e materiais necessários

Adquirir peças e materiais necessários
Adquirir peças e materiais necessários
Adquirir peças e materiais necessários
Adquirir peças e materiais necessários
Adquirir peças e materiais necessários
Adquirir peças e materiais necessários

O que você precisa para começar (imagens colocadas na ordem em que são listadas)

1. Um Roomba (qualquer modelo mais recente)

2. Um contador Geiger-Mueller

3. Um Raspberry Pi

4. Uma câmera de placa com uma tomada USB

5. Um cabo micro USB para USB

6. Um cabo USB para USB

7. Uma amostra radioativa de atividade suficiente (~ 5μSv ou superior)

8. Um computador com Matlab instalado

9. Adesivo (de preferência fita adesiva para fácil remoção)

Etapa 2: Configurando a Câmera e o Contador Geiger-Muller

Configurando a câmera e o contador Geiger-Muller
Configurando a câmera e o contador Geiger-Muller

Agora que você tem todos os materiais necessários para criar o RADbot, vamos começar simplesmente colocando a câmera para que ela possa ler a atividade no balcão. Coloque o contador Geiger-Muller o mais próximo possível do final do Roomba e certifique-se de que o sensor não esteja bloqueado. Prenda o balcão firmemente no lugar com o adesivo que você escolheu e continue a montar a câmera de frente para ele. Coloque a câmera o mais próximo possível do visor do contador para evitar que entradas externas afetem o programa e fixe-a no lugar quando se sentir confortável. Recomendamos que você salve a proteção da câmera por último, porque, quando seu código for concluído, você pode exibir uma imagem da câmera em seu computador, permitindo que você posicione a câmera com base em seu campo de visão. Assim que a câmera e o contador estiverem firmes no lugar, conecte a câmera em uma das entradas USB do Raspberry Pi com o cabo USB para USB e conecte o Raspberry Pi no Roomba com o cabo micro USB para USB.

Etapa 3: conecte-se ao seu Roomba e crie o código do sensor de luz

Conecte-se ao seu Roomba e crie o código do sensor de luz
Conecte-se ao seu Roomba e crie o código do sensor de luz

Primeiro, baixe a caixa de ferramentas Roomba do site EF 230 e certifique-se de colocá-la nas pastas especificadas. Para se conectar ao seu Roomba, basta consultar o adesivo anexado ao Raspberry Pi e inserir "r = roomba (x)" na janela de comando, sem as aspas, e onde x representa o número do Roomba. O Roomba deve tocar uma música e o botão de limpeza deve exibir um anel verde ao seu redor. Comece seu código com uma instrução "while" e consulte os sensores de luz conforme aparecem na lista de sensores. Abra a lista de sensores digitando "r.testSensors" na janela de comando.

Com base na cor do nosso objeto, que determina a quantidade de luz refletida, defina os requisitos para que a instrução while seja executada como uma função>. Em nosso caso, definimos o sensor de luz frontal para executar o código na instrução while se a leitura nos sensores de luz central esquerdo ou direito fosse> 25. Para a instrução executável, defina a velocidade do Roomba para desacelerar digitando "r.setDriveVelocity (x, y)", onde xey são as velocidades das rodas esquerda e direita, respectivamente. Insira uma instrução "else", para que o Roomba não desacelere para valores não especificados e insira o comando set drive velocity novamente, exceto com uma velocidade diferente. Termine a instrução while com um "fim". Este segmento de código fará com que o Roomba se aproxime do objeto e diminua a velocidade quando atingir um determinado intervalo para minimizar o impacto.

Em anexo está uma captura de tela do nosso código, mas sinta-se à vontade para editá-lo para melhor se adequar aos parâmetros da sua missão.

Etapa 4: Crie um código de bumper

Criar código de pára-choque
Criar código de pára-choque

Conforme o Roomba está desacelerando, ele minimizará o impacto que tem no objeto, embora não tanto que não acione o pára-choque físico. Para este segmento de código, comece com um loop "while" novamente e defina sua expressão como verdadeira. Para a declaração, defina a variável T igual à saída do amortecedor, 0 ou 1, para falso e verdadeiro. Você pode usar o "T = r.getBumpers" para isso. T resultará em uma estrutura. Insira uma instrução "if" e defina sua expressão para a subestrutura T.front como igual a 1 e defina a instrução para definir a velocidade do drive em 0, usando "r.setDriveVelocity (x, y)" ou "r.stop " Insira uma "pausa" para que o Roomba possa se mover depois que a condição no próximo código for atendida. Adicione um "outro" e defina sua instrução para definir a velocidade de direção para a velocidade de cruzeiro normal do Roomba.

Em anexo está uma captura de tela do nosso código, mas sinta-se à vontade para editá-lo para melhor se adequar aos parâmetros da sua missão.

Etapa 5: Criar código para ler a tela do contador, interpretá-la e retirar-se da fonte

Crie um código para ler a tela do contador, interpretá-la e retirá-la da fonte
Crie um código para ler a tela do contador, interpretá-la e retirá-la da fonte

No coração do nosso projeto está o contador Geiger-Muller e o seguinte segmento de código é usado para determinar o que os dados na tela significam usando a câmera. Como a tela do contador muda de cor com base na atividade da fonte, configuraremos a câmera para interpretar a cor da tela. Comece seu código definindo uma variável igual ao comando "r.getImage". A variável conterá uma matriz 3d de valores de cores da imagem que ela tirou em vermelho, verde e azul. Defina as variáveis iguais às médias dessas respectivas matrizes de cores usando o comando "média (média (img1 (:,:, x)))" onde x é um número inteiro de 1 a 3. 1, 2 e 3 representam vermelho, verde e azul respectivamente. Como acontece com todos os comandos referenciados, não inclua aspas.

Faça o programa pausar por 20 segundos usando "pause (20)" para que o contador possa obter uma leitura precisa da amostra e, em seguida, inicie uma instrução "if". Nosso Roomba emitiu vários bipes usando "r.beep" antes de exibir um menu com o texto "Radioisótopo encontrado! Cuidado!" isso pode ser feito com o comando "waitfor (helpdlg ({'texthere'})". Depois de clicar em ok, o Roomba continuará a seguir o resto do código na instrução "if". Faça com que o Roomba contorne a amostra usando uma combinação dos comandos "r.moveDistance" e "r.turnAngle". Certifique-se de terminar sua instrução if com um "fim".

Em anexo está uma captura de tela do nosso código, mas fique à vontade para editá-lo para melhor se adequar aos parâmetros da sua missão.

Etapa 6: criar um código de sensor de penhasco

Crie um código de sensor de penhasco
Crie um código de sensor de penhasco

Para criar um código para usar os sensores de penhasco integrados do Roomba, comece com um loop "while" e defina sua expressão como verdadeira. Defina uma variável para ser igual a "r.getCliffSensors", e isso resultará em uma estrutura. Inicie uma instrução "if" e defina as variáveis "X.leftFront" e "X.rightFront" da estrutura para serem maiores do que algum valor predeterminado, onde "X" é a variável que você escolheu para o comando "r.getCliffSensors" ser igual a. No nosso caso, usamos 1000, pois um pedaço de papel branco foi usado para representar um penhasco, e, conforme os sensores se aproximaram, o papel, os valores aumentaram para bem mais de 1000, garantindo que o código só será executado quando um penhasco for detectado. Adicione o comando "break" depois e insira uma instrução "else". Para a instrução "else", que será executada se nenhum precipício for detectado, defina a velocidade de direção para a velocidade de cruzeiro normal para cada roda. Se o Roomba detectar um penhasco, o "break" será executado e, em seguida, o código fora do loop while será executado. Depois de colocar o "fim" para o loop "if" e "while", configure o Roomba para mover para trás usando o comando mover distância. Para avisar os astronautas que um penhasco está próximo, defina as velocidades de transmissão de cada roda, xey, no comando de velocidade de transmissão, como ae -a, onde a é um número real. Isso fará com que o Roomba gire, alertando o astronauta sobre o penhasco.

Em anexo está uma captura de tela do nosso código, mas sinta-se à vontade para editá-lo para melhor se adequar aos parâmetros da sua missão.

Etapa 7: Conclusão

Conclusão
Conclusão

O objetivo final do RADbot em Marte é ajudar os astronautas em sua exploração e colonização do planeta vermelho. Ao identificar amostras radioativas na superfície, esperamos que o robô, ou rover, neste caso, possa realmente manter os astronautas seguros e ajudar a identificar fontes de energia para sua (s) base (s). Depois de seguir todas essas etapas, e talvez com alguma tentativa e erro, seu RADbot deve estar instalado e funcionando. Coloque a amostra radioativa em algum lugar dentro de sua área de teste, execute seu código e observe o rover fazer o que foi projetado para fazer. Aproveite o seu RADbot!

-A Equipe EF230 RADbot

Recomendado: