Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

DIY Mars Perseverance Rover Rover – Projeto baseado em Arduino


Neste tutorial mostrarei como construí uma réplica do Mars Perseverance Rover. Claro, inspirado pelo rover real que está explorando Marte atualmente, eu projetei este rover de uma forma que todos que amam esta tecnologia, estudantes, fabricantes, entusiastas de mecatrônica ou robótica, e assim por diante, possam facilmente seguir as instruções neste vídeo e construir seu próprio Mars Rover.

Você pode assistir ao vídeo a seguir ou ler o tutorial escrito abaixo.

Visão geral


Vamos dar uma olhada nas principais características deste rover. Ele emprega uma suspensão rocker-bogie que permite que o rover corra suavemente em terrenos irregulares e escale obstáculos, como rochas, com até duas vezes o diâmetro da roda, mantendo todas as seis rodas em contato com o solo o tempo todo. Cada roda tem motor DC independente que impulsiona o rover para frente ou para trás.

As quatro rodas de canto possuem servomotores de direção individuais. A fim de conduzir o rover com eficiência e evitar o deslizamento dos pneus ao dirigir em uma curva, estamos implementando a geometria de direção Ackermann. Com esta geometria podemos calcular a velocidade e o ângulo de cada roda dependendo do raio de giro.

Isso significa que, ao girar, as rodas de direção internas terão um ângulo maior em relação às rodas externas. Ao mesmo tempo, as rodas internas terão velocidades mais lentas em comparação com as rodas externas.

Para controlar o rover, estou usando um transmissor RC comercial barato que envia comandos para o rover. No rover tenho um receptor RC adequado que recebe os comandos e os envia para uma placa Arduino. Sim, o cérebro deste rover de Marte é na verdade uma placa Arduino MEGA e para conectar tudo facilmente, fiz uma PCB personalizada que pode ser simplesmente conectada em cima da placa Arduino MEGA.

O rover também possui uma câmera FPV localizada na unidade de câmeras. Ele é controlado usando um stepper e um servo motor e estou recebendo o vídeo em tempo real em um smartphone.

Eu gostaria de observar aqui que muitas das peças na verdade não são funcionais, ou estão presentes apenas para combinar com a aparência do rover real. Além disso, o braço robótico está faltando, mas pretendo fazer o braço e adicionar mais funções a este rover em vídeos futuros.

No entanto, agora deixe-me guiá-lo pelo processo de construção, começando pelo projeto do rover, conectando os componentes eletrônicos e programando a placa Arduino.

Modelo 3D DIY Mars Rover


Projetei este rover de Marte usando o 3D EXPERIENCE Solidworks que, na verdade, é o patrocinador deste vídeo.

3DEXPERIECE Solidworks é uma versão do Solidworks com recursos de nuvem que obtemos através da plataforma 3DEXPERIECE. Aqui tudo funciona pela nuvem, para que você ou qualquer pessoa da sua equipe tenha acesso aos dados ou aos modelos a qualquer momento, de qualquer lugar do mundo. A plataforma 3DEXPERIECE também inclui muitos aplicativos úteis de produtividade e gerenciamento de dados.

Por exemplo, o aplicativo Planejamento de Projetos é uma ótima maneira de organizar suas tarefas, definir prazos e acompanhar seu progresso. Com o aplicativo 3D Markup, você pode visualizar, explorar e fazer anotações dos modelos de qualquer dispositivo, como um notebook, tablet ou até mesmo um smartphone.

Há também um modelador 3D separado baseado em nuvem chamado SOLIDWORKS xDesign, que é executado dentro do seu navegador. Ele pode ser usado em conjunto com o Solidworks ou sozinho e é ótimo para modelagem, em qualquer lugar, a qualquer hora e em qualquer dispositivo.

No entanto, provavelmente a notícia mais empolgante para muitos de vocês aqui é que, a partir do segundo semestre deste ano, haverá uma versão do 3DEXPERIECE Solidworks que você pode obter por apenas US $ 99 por ano. Muito obrigado à Solidworks por patrocinar conteúdo educacional como este.

Se você quiser saber se o SOLIDWORKS e a plataforma 3DEXPERIENCE podem funcionar para você, verifique os links abaixo.

Experimente o 3DEXPERIENCE gratuitamente com meu link especial: www.solidworks.com/HTMTryNow

Saiba mais sobre o 3DEXPERIENCE SOLIDWORKS: www.solidworks.com/HTMLearnMore

3DEXPERIENCE SOLIDWORKS for Makers:www.solidworks.com/htm

Ok, então vamos voltar ao modelo e explicar como eu projetei o rover. Meu objetivo era fazer este rover parecer o mais próximo possível do verdadeiro Mars Perseverance Rover. No site oficial da NASA há um modelo 3D do Mars Perseverance Rover, então baixei e abri no Blender.

Tirei 3 fotos da vista frontal, superior e lateral do rover e as importei no Solidworks. Eu queria que o tamanho das rodas tivesse 130mm de diâmetro, então dimensionei as fotos de acordo com essa dimensão.

Então, a partir daqui, peguei todas as dimensões principais, como largura, comprimento, altura, distância entre as rodas, dimensões para a suspensão do bogie e assim por diante.

Agora, de acordo com essas dimensões e os motores DC e servos que planejei usar, projetei as peças do rover de forma que possam ser facilmente impressas em 3D e montadas enquanto tento manter a aparência o mais próxima possível do original.

Para a suspensão rocker-bogie estou usando perfis redondos de alumínio de 20 mm, enquanto para a estrutura de base estou usando perfis de alumínio com ranhura em T de 20 mm.

Você pode encontrar e baixar este modelo 3D, bem como explorá-lo em seu navegador no Thangs.

E aqui estão os arquivos STL necessários para impressão 3D:

Impressão 3D das peças da réplica do Mars Rover


Para imprimir as peças em 3D usei minha antiga Creality CR-10, bem como a nova impressora 3D CR-10 V3. Se você deseja imprimir as rodas com material flexível, com certeza precisará de uma impressora com extrusora direta como a CR-10 V3.

Ambas as impressoras 3D oferecem ótima qualidade de impressão e são relativamente acessíveis. Se você estiver interessado, aqui estão os links para eles para que você possa dar uma olhada:
  • Creality CR-10…… Amazon / Banggood
  • Creality CR-10 V3…… Amazon / Banggood / AliExpress

Veja também:Melhores osciloscópios de orçamento para iniciantes e fabricantes – Atualização de 2021

Ao imprimir as peças em 3D, é importante usar o recurso de expansão horizontal em seu software de fatiamento. Eu usei um valor de -0,1 mm. Esta característica compensa a expansão do filamento ao imprimir.

Se não for usado, por exemplo, se a peça tiver um furo com diâmetro de 20mm, o furo da peça impressa em 3D real será em torno de 19,8mm e não poderemos montá-la.

No entanto, aqui estão todas as peças impressas em 3D.

Para ser honesto, é um pouco louco quanta impressão existe, mas é a única maneira de obter a aparência única do rover. No entanto, você pode reduzir o tempo de impressão pela metade se optar por imprimir apenas as partes funcionais deste rover.

Lista de peças para o DIY Mars Rover


Aqui está uma lista de componentes necessários para montar este DIY Mars Rover. A lista dos componentes eletrônicos pode ser encontrada abaixo na seção de diagrama de circuito do artigo.
  • Perfis de alumínio com ranhura em T 20x20mm ………..AmazonBanggood  / AliExpress
  • Suportes de canto de perfil de ranhura em T ……………..… AmazonBanggood  / AliExpress
  • Tubo redondo de alumínio 20mm ………………. Amazônia /  AliExpress
  • Junta da extremidade da haste 8mm ………………………………….. Amazon / Banggood / AliExpress
  • 8 x  Rolamento 608RS – 8x22x7mm ……..…… AmazonBanggood  / AliExpress
  • 8 x rolamento 626RS – 6x19x6mm ………….… AmazonBanggood  / AliExpress
  • 5 x rolamentos 625RS – 5x16x5mm …………… AmazonBanggood  / AliExpress
  • Parafusos M3 de vários comprimentos ………………………… AmazonBanggood  / AliExpress
  • 4 x chifres de servo …………………………………………. Amazônia / Banggood / AliExpress

Também precisamos de vários comprimentos de parafusos M4, M5 e M6. Você pode verificar a lista completa de parafusos e porcas necessários abaixo.

Você também pode obter os parafusos e as porcas na loja de ferragens local.

Montagem do Rover


Muito bem, agora podemos começar a montar o rover. Primeiro, precisamos preparar os perfis de alumínio. Eu usei uma serra manual de metal para cortá-los no tamanho.

Precisamos de 10 perfis de ranhura em T para a base e 8 perfis redondos para a suspensão do balancim-bogie com as seguintes dimensões.

Para a montagem da estrutura dos perfis com ranhura em T, usamos suportes de canto com ranhura em T adequados e alguns parafusos e porcas. Uma vez que tenhamos os quadros superior e inferior prontos, podemos completar a base inserindo as peças impressas em 3D da junta do balancim nas laterais e alguns suportes impressos em 3D na frente e atrás. Para prendê-los no lugar, precisamos de parafusos M3 e porcas com ranhura em T.

Para as juntas dos balancins, usei parafusos e porcas M5. A distância do perfil frontal até a junta do balancim deve ser de 134 mm.

Montagem da suspensão Rocker-bogie


Em seguida, podemos inserir os rolamentos principais para a suspensão do balancim-bogie no lugar. Em seguida, temos o eixo de articulação do balancim que será fixado à base por meio de um parafuso M8.

O eixo tem uma ranhura onde podemos inserir uma porca M8 que é usada para fixá-lo na base. O furo do eixo é de 7,5 mm para que tenhamos uma conexão firme entre o parafuso e o eixo. Desta forma, na verdade, reforçamos o eixo impresso em 3D, pois o próprio parafuso carregará parte do peso do rover. Esta é a parte mais estressada de todo o conjunto, pois todo o peso do rover é suportado pelo eixo do balancim. A forma como imprimimos as peças é muito importante para a sua resistência.

Inicialmente imprimi este eixo da maneira mais fácil, onde não é necessário material de apoio, mas a impressão falhou.

Desta forma a força de tensão principal atua nas camadas que não são tão fortes, mas se imprimirmos a peça de lado, onde a força de tensão atuará nos contornos da parede, a peça será muito mais forte e não falhará.

No entanto, agora continuaremos com a montagem da suspensão do balancim-bogie juntamente com as juntas das rodas e os suportes do motor, e posteriormente anexaremos esses subconjuntos aos eixos dos balancins.

Os furos das peças onde passam os perfis redondos de 20mm são dimensionados para ter um encaixe justo, por isso em alguns casos precisamos usar uma grosa ou uma lixa para encaixar.

Agora, para montar corretamente essas peças, precisamos fazer furos nos perfis redondos em locais precisos. Para isso, primeiro marcaremos uma linha reta no perfil.

Em seguida, podemos inserir o perfil na peça impressa em 3D com a linha de marcação passando pelo orifício da peça. Então podemos marcar os locais onde precisamos perfurar o perfil em ambos os lados dessa peça.

No lado oposto do perfil, precisamos repetir o mesmo procedimento.

Fiz os furos com uma furadeira de 2,5mm, e depois com um parafuso M3 fiz uma rosca no perfil que vamos usar para apertar as peças.

O perfil de alumínio é mais macio que o parafuso, então é fácil fazer a rosca com o próprio parafuso. Seguir este método para fazer os furos é muito importante para que no final todas as peças fiquem posicionadas como deveriam estar uma em relação à outra.

Para a junta do bogie também usamos dois rolamentos e um parafuso M8.

Depois de concluir o arranjo da suspensão do balancim-bogie, podemos continuar com a montagem das juntas do volante. A parte da junta do volante é composta por duas partes aparafusadas.

Para a junta real ou a conexão entre a peça de montagem do servo e a peça de montagem do motor DC, usamos dois rolamentos e um parafuso M6.

Na parte superior ou na cabeça do parafuso, precisamos anexar uma buzina de servo e fazemos isso com a ajuda deste acoplador impresso em 3D e alguns parafusos M3.

O acoplador possui uma ranhura hexagonal através da qual o movimento do servo será transferido para o parafuso. Na parte inferior podemos aparafusar a outra parte da junta.

Fixamos esta conexão com uma porca M6. Isso completa a junta do volante, embora mais tarde eu perceba que realmente precisamos adicionar outra porca M6 na parte inferior e apertá-la à outra porca.

Precisamos fazer isso porque o movimento do servo é transferido para a parte de montagem do motor DC usando a própria porca e, se não apertar com outra porca, toda a junta será desparafusada.

O mesmo procedimento vale para a outra junta de canto. Sabemos que conectamos tudo corretamente se colocarmos este conjunto em uma superfície plana e todos os três suportes do motor estiverem planos ou todos paralelos entre si.



Claro, estamos usando o mesmo método para montar o outro lado. No entanto, podemos notar aqui que, embora algumas das partes pareçam idênticas, elas não são as mesmas partes, mas na verdade são espelhadas.

Em seguida, precisamos inserir esses subconjuntos nos eixos das juntas dos balancins na estrutura de base ou no chassi. Antes de fazermos isso, porém, precisamos inserir algumas inserções de latão rosqueadas no eixo.

Usando um ferro de solda, podemos inseri-los facilmente no lugar e, assim, obtemos furos rosqueados bons e confiáveis ​​para prender o subconjunto da suspensão. Precisamos de quatro parafusos M4 para esse fim.

Depois de instalá-los em ambos os lados, podemos notar que o chassi cai ou gira livremente. Então, na verdade, está faltando algo para que a suspensão rocker-bogie funcione corretamente, e esse é o diferencial.

Com o diferencial, os dois balancins são conectados um ao outro e ao chassi do rover. Com esta configuração, quando um lado gira, o outro gira na direção oposta, proporcionando assim um contato de roda aproximadamente igual.

O chassi terá um ângulo de inclinação médio de ambos os balancins.

Aqui estão todas as peças necessárias para a montagem do diferencial.

Como a barra diferencial é bastante longa, fiz com três peças parafusadas para que possamos imprimi-las em 3D mesmo em impressoras 3D menores. A barra do diferencial girará no meio do chassi com uma junta feita de dois rolamentos e um parafuso M8.

Para conectar o diferencial com o balancim, precisamos de uma junta esférica da extremidade da haste. Estou usando uma junta esférica M8 e também precisamos de uma haste rosqueada M8 com 50 mm de comprimento. A haste rosqueada entra em uma peça impressa em 3D que possui uma porca M8 de um lado e, do outro lado, entra na junta esférica da extremidade da haste.

Aqui precisamos ajustar a distância entre o elo diferencial impresso em 3D e a extremidade da haste que precisa ser em torno de 20mm para que o chassi fique na horizontal. Para conectar o elo do diferencial com o balancim, utilizamos dois rolamentos e um parafuso M5.

Repetimos este procedimento também para o outro lado e com isso nossa suspensão rocker-bogie fica completa. Quando um lado sobe, o outro desce e vice-versa.

Isso permite que todas as rodas estejam em contato com o solo o tempo todo. O chassi faz apenas metade do movimento da perna, ou o chassi tem um ângulo de inclinação médio de ambos os balancins.

Veja também: Arduino Robot Arm e Mecanum Wheels Platform Operação Automática

Montagem dos motores para o Mars Rover


Tudo bem, então podemos prosseguir com a instalação dos motores DC. Os motores que utilizo têm 37mm de diâmetro, operam a 12V e possuem redutor com saída de 50RPM.

Embora mais tarde eu tenha percebido que 50 RPM é um pouco demais para este rover, então sugiro escolher versões de 20 ou 10 RPM.

Para prender as rodas aos motores, fiz esses acopladores de eixo.

Aqui precisamos instalar insertos roscados M3 que serão usados ​​para prender o acoplador ao eixo, e também porcas M4 para prender a roda ao acoplador. Ao inserir as porcas, também devemos adicionar um pouco de cola para que fiquem firmes no lugar, ou usar insertos rosqueados.

Em seguida, podemos anexar as rodas. As rodas são compostas por duas partes. Uma é a roda que imprimi com filamento flexível, mas não precisa ser, e a outra é o aro impresso com PLA normal.

O aro tem ranhuras que se encaixam na roda e assim a potência do motor é transferida para a roda. Podemos adicionar algumas gotas de cola nas ranhuras para deixá-las mais seguras. Finalmente, podemos prender as rodas aos acopladores de eixo ou motores DC usando 4 parafusos M4.

Certo, então podemos instalar servo motores de direção. Estou usando servos digitais de alto torque com torque de 25kgcm e tensão de operação de 4,8 a 6,8V. Para fixar os servos no lugar, usamos quatro parafusos M3 que entram nas inserções rosqueadas M3 na peça impressa em 3D do servo-montagem.

Montagem da unidade de câmera


Em seguida, podemos montar a unidade de câmeras. Para o panning da câmera eu decidi usar um motor de passo NEMA 17, mas você pode mudar isso em qualquer outro tipo de motor aqui.

O movimento do motor é transferido para a parte superior usando uma haste roscada M5 que é conectada ao motor com um acoplador de eixo impresso em 3D, e do outro lado usamos um rolamento e duas porcas para prender a haste roscada ao elemento móvel. Para inclinar a câmera estou usando um servo que é o mesmo que usamos para os volantes.

Muitas das peças aqui na unidade da câmera não são funcionais e estão presentes apenas para combinar com a aparência do rover real. Para montar essas peças, precisamos de vários parafusos M3 e alguns insertos rosqueados.

No entanto, também instalarei uma câmera FPV real aqui. Eu fiz um suporte personalizado para ele para que eu possa montá-lo na caixa da unidade da câmera. A câmera é facilmente acessível a partir do topo, que a fechamos com uma tampa de encaixe. Aqui está a aparência final da unidade de câmera.

Montei todo este subconjunto da câmera no canto frontal direito do chassi.

Neste ponto, podemos continuar montando o restante das peças impressas em 3D, que na verdade não são funcionais, mas apenas para combinar com a aparência do rover real, ou conectar os componentes eletrônicos e fazer o rover funcionar. Resolvi montar primeiro todas as peças impressas em 3D e depois fazer a parte eletrônica.

Montagem do restante do rover


Assim como eu disse, as peças a seguir são apenas para combinar com a aparência do rover, então não vou entrar em detalhes sobre como montá-las. Você pode ver como tudo precisa ser conectado a partir do modelo 3D.

Na verdade, eu me esforcei bastante para projetar essas peças, prestando atenção aos detalhes para que tudo ficasse bem.

Essas peças também são bem grandes e levam algum tempo para imprimi-las em 3D.

Aqui está uma visão rápida de como eu os instalei.

Os dois últimos painéis superiores no meio do rover são projetados para um encaixe rápido no rover.

Eles realmente atuarão como um capuz que pode ser facilmente removido, pois os componentes eletrônicos estarão localizados nesta área.

O suporte de componentes eletrônicos é feito de duas peças impressas em 3D aparafusadas e vai para a estrutura inferior do chassi.

Eletrônicos


Tudo bem, agora podemos continuar com a eletrônica. Primeiro, precisamos medir quanto fio precisamos para cada motor. Soldei os fios diretamente nos motores, pois não tinha conectores de motor adequados. Eu usei tubos termorretráteis para isolar os conectores.

Com a ajuda de algumas braçadeiras, podemos orientar e manter os fios limpos.

Para os servomotores podemos usar fios de extensão do servo para estender os fios até o compartimento eletrônico. A parte de montagem eletrônica tem slots através dos quais podemos passar os fios para chegar ao meio do rover.

No geral, acho que a fiação ficou bem limpa com os fios passando por trás das partes visíveis.

Veja também:Robô SCARA | Como construir seu próprio robô baseado em Arduino

Diagrama de Circuito DIY Mars Rover


Vamos dar uma olhada no diagrama de circuito deste rover agora e ver como tudo precisa ser conectado.

Você pode obter os componentes necessários para este projeto nos links abaixo:
  • Motor CC 12V 37mm …….……………….…
  • Servo Digital 25kg …………………………….
  • DRV8871 Motorista DC ……………….
  • Motor de passo – NEMA 17…………………
  • Driver de passo A4988………………..…..…
  • Arduino MEGA…………………….…..………
  • Conversor Buck DC-DC …………………….
  • Bateria LiPo 3S …………………………………….. 
  • Conector XT60 ……………………………… 
  • Transmissor FLYSKY RC …………………..
  • Câmera FPV e Transmissor de Vídeo …. Amazônia / Banggood / AliExpress
  • Receptor FPV por sua escolha

Para acionar os seis motores CC, estamos usando seis drivers de motor CC DRV8871 que suportam controle PWM e até 3,6 A de pico de corrente. A tensão de operação dos motores CC é de 12V, com corrente nominal de 1A e corrente de estol de 3A. Para alimentar o rover, estou usando uma bateria 3S LiPo que fornece cerca de 12V.

Os servos, por outro lado, precisam de 4,8 a 6,8V, portanto, precisamos de um conversor DC-DC que converterá os 12V em 6V. O conversor precisa ser capaz de lidar com cerca de 8A de corrente, pois os servos que estamos usando são bastante potentes e têm uma corrente de estol em torno de 2A. Para acionar o motor de passo da unidade de câmera, podemos usar um driver de passo A4988 ou DR8825. Usando dois resistores podemos fazer um divisor de tensão simples através do qual podemos monitorar a tensão da bateria.

O receptor RC é alimentado com os 6 volts vindos do conversor buck, e a câmera FPV e seu transmissor de vídeo são alimentados com os 12V da bateria.

PCB personalizado


Para manter os componentes eletrônicos organizados, projetei uma PCB personalizada para este rover DIY Mars.

Essa placa de circuito impresso atuará na verdade como um shield Arduino MEGA, pois poderemos conectá-la diretamente no topo da placa Arduino MEGA. Além dos drivers do motor, incluí um regulador de tensão de 3,3V e uma conexão NRF24L01 dedicada caso você queira controlar o rover usando esse módulo, além de conexões para um sensor DHT22, bússola, I2C, comunicação serial, 12V, 5V , conexões 3,3V e GND. Na verdade, eu fiz esta PCB à prova de futuro para atualizar as funcionalidades do rover.

Encomendei o PCB da PCBWay. Aqui podemos simplesmente carregar o arquivo Gerber, escolher as propriedades do nosso PCB e encomendá-lo a um preço razoável.

Não alterei nenhuma das propriedades padrão, exceto a cor do PCB, que escolhi ser azul para combinar com a placa Arduino. Você faz o download do arquivo Gerber aqui abaixo, ou da comunidade de compartilhamento de projetos PCBWay, através da qual você também pode solicitar diretamente o PCB.

Aqui está você pode baixar o arquivo Gerber para este PCB DIY Mars Rover:

No entanto, depois de vários dias, o PCB chegou. A qualidade do PCB é ótima, e tudo é exatamente igual ao design.

A montagem do PCB é bastante simples, pois tudo está rotulado. Comecei soldando os pinos na parte inferior do PCB, para a conexão Arduino MEGA e depois continuei com o lado superior. Na verdade, usei cabeçalhos de pinos para todas as conexões, porque dá flexibilidade para fazer alterações se algo não funcionar corretamente. Eu não soldei o regulador de tensão de 3,3V, bem como alguns pinos livres do Arduino, pois não iria usá-los agora de qualquer maneira.

Depois de terminar a montagem da PCB, prendi a placa Arduino na parte de montagem eletrônica usando dois parafusos e adicionei a PCB a ela.

Em seguida, conectei cada motor aos seus drivers e os coloquei no PCB. Os servos vão em seus pinos de servo apropriados, bem como o driver de passo para o qual usei um jumper para selecionar a resolução de passo de 1/8.



Para a comunicação de rádio, estou usando o transmissor e receptor FLYSKY RC, que são realmente acessíveis e funcionam muito bem.

Para conectar o receptor ao Arduino, podemos usar cabos de extensão servo, pois precisamos de três fios, VCC, GND e o pino Signal. O receptor se comunica com o Arduino através de um I-BUS e da porta serial. Se quisermos enviar dados de volta do receptor para o transmissor, no nosso caso para monitorar a tensão da bateria, também precisamos conectar o I-BUS do sensor do receptor a outra porta serial do Arduino.

O conversor buck é preso no lugar usando dois parafusos e, para prender a bateria LiPo, estou usando dois elásticos para que eu possa remover facilmente a bateria para carregar.

A chave liga/desliga fica no painel traseiro direito do rover. Eu usei fios de calibre 20 para essas conexões, pois o fluxo de corrente através deles pode chegar a vários amperes quando o rover estiver totalmente engatado. Certifique-se de verificar suas conexões com esses fios, porque se você conectar algo errado, poderá disparar coisas.

Por fim, podemos conectar a câmera FPV a uma fonte de alimentação de 12V e conectar o fio de sinal de vídeo ao transmissor de vídeo que também precisa ser alimentado com 12V. Com isso, terminamos com a eletrônica.

We can put back the cover panels in place and we are done with this DIY Mars Rover. Actually, we are almost done, as we need to give life to this machine now, or program the Arduino. 

Programming the DIY Mars Rover – Arduino Code


Here you can download the Arduino code for this DIY Mars Rover project:

Code overview

So, using the IBusBM library we read incoming data from the RC Transmitter.
// Reading the data comming from the RC Transmitter
  IBus.loop();
  ch0 = IBus.readChannel(0);
  ch1 = IBus.readChannel(1);
  ch2 = IBus.readChannel(2);
  ch3 = IBus.readChannel(3);
  ch6 = IBus.readChannel(6);Code language: Arduino (arduino)

Then we convert these values into a turning radius to right value, turning radius to left value and rover speed from 0 to 100%.
// Convertign the incoming data
  // Steering right
  if (ch0 > 1515) {
    r = map(ch0, 1515, 2000, 1400, 600); // turining radius from 1400mm to 600mm
  }
  // Steering left
  else if (ch0 < 1485) {
    r = map(ch0, 1485, 1000, 1400, 600); // turining radius from 600mm to 1400mm
  }
  // Rover speed in % from 0 to 100
  s = map(ch2, 1000, 2000, 0, 100); // rover speed from 0% to 100%Code language: Arduino (arduino)

We use the turning radius “r” value for calculating the steering wheels angles as well as the speed of the wheels.
void calculateMotorsSpeed() {
  // if no steering, all wheels speed is the same - straight move
  if (ch0 > 1485 && ch0 < 1515) {
    speed1 = speed2 = speed3 = s;
  }
  // when steering, wheels speed depend on the turning radius value
  else {
    // Outer wheels, furthest wheels from turning point, have max speed
    // Due to the rover geometry, all three outer wheels should rotate almost with the same speed. They differe only 1% so we asume they are the same.
    speed1 = s;
    // Inner front and back wheels are closer to the turing point and have lower speeds compared to the outer speeds
    speed2 = s * sqrt(pow(d3, 2) + pow((r - d1), 2)) / (r + d4);
    // Inner middle wheel is closest to the turning point, has the lowest speed
    speed3 = s * (r - d4) / (r + d4);
  }

  // speed value from 0 to 100% to PWM value from 0 to 255
  speed1PWM = map(round(speed1), 0, 100, 0, 255);
  speed2PWM = map(round(speed2), 0, 100, 0, 255);
  speed3PWM = map(round(speed3), 0, 100, 0, 255);
}

void calculateServoAngle() {
  // Calculate the angle for each servo for the input turning radius "r"
  thetaInnerFront = round((atan((d3 / (r + d1)))) * 180 / PI);
  thetaInnerBack = round((atan((d2 / (r + d1)))) * 180 / PI);
  thetaOuterFront = round((atan((d3 / (r - d1)))) * 180 / PI);
  thetaOuterBack = round((atan((d2 / (r - d1)))) * 180 / PI);
}Code language: Arduino (arduino)

As I mentioned earlier, we are using the Ackerman steering geometry for calculating them. These values are then used for controlling the servos using the ServoEasing library which provides smoother servo movements.
// Servo motors
    servoW1.startEaseTo(97 - thetaOuterFront);
    servoW3.startEaseTo(97 + thetaOuterBack);
    servoW4.startEaseTo(94 - thetaInnerFront);
    servoW6.startEaseTo(96 + thetaInnerBack);Code language: Arduino (arduino)

For controlling the DC motors using the analogWrite() function which actually sends PWM signal to the DC motor drivers.
// Motor Wheel 1 - Left Front
      analogWrite(motorW1_IN1, speed2PWM);   // PWM value
      digitalWrite(motorW1_IN2, LOW); // ForwardCode language: Arduino (arduino)

Overall, the code is not that complicated as the rover itself doesn’t have complicated functions. However, I do plan in future videos to add more functions to this rover, like GPS navigation, various sensors, robotic arm, soil collecting mechanism and so on. 

I hope you enjoyed this project and learned something new. Feel free to ask any question in the comments section below and check my Arduino Projects Collection.

Processo de manufatura

  1. Rover
  2. Detector de frequência de áudio
  3. Tech-TicTacToe
  4. Voltímetro DIY com Arduino e um visor Nokia 5110
  5. Cronômetro de contagem regressiva do Arduino
  6. RC Porsche Car (Projeto Arduino)
  7. Monitor de energia inteligente baseado em Arduino
  8. Ideia DIY com RFID
  9. Detecção de cores do Arduino
  10. Máquina de medição de altura Arduino DIY