Continuei o projecto do LIDAR 360 com o Arduino, melhorando a velocidade de rotação da roda dentada maior (a que tem o suporte dos sensores de distancia VL53L0X).
Também comecei a pensar numa forma de melhorar a marcação do ponto de origem com os LEDs IR, ao aumentar a area da superficie rotativa, de forma a apontar o led para baixo numa ponta, e aproximar o receptor até quase tocar na superficie rotativa.
Depois de montado, a parte superior desta versão do protótipo ficou com o seguinte aspecto.

Hardware usado no LIDAR
Foram feitas as seguintes alterações ao hardware usado no LIDAR
Para mlhorar a velocidade imprimi numa 3D publica existente do espaço maker da BMI as 2 novas rodas dentadas, a do pinhão do motor de passos 28BYJ48 e a que funciona como apoio para o suporte dos sensores, assim como o apoio com o eixo da roda dentada maior.
Também fiz um suporte superior para os sensores, mais largo com um furo central para os fios e um para colocar o LED emissor.
Substitui a placa de testes micro (breadboard micro) por uma placa perfurada feita para ser fixa ao suporte dos sensores (mais tarde farei uma placa melhor, na qual os sensores de distancia VL53L0X serão directamente aplicados reduzindo os fios).
No processo, substitui o sensor de distancia da pololu por um igual ao outro, ficando assim com 2 x CJVL53L0XV2.
Video desta versão do protótipo do Arduino LIDAR 360
Melhoramentos a fazer no Arduino LIDAR 360
Temporização e sincronização das leituras dos sensores.
Resolver a marcação da origem por LEDs IR
- Fazer uma caixa para o LED emissor com um orificio minusculo
- Fazer uma caixa e o respectivo suporte para o LED receptor ficar junto a superficie rotativa tambem com um orificio minusculo e apanhar pouca luz ambiente.
Neste momento o LED emissor está a bater na roda dentada do pinhão. Quando fizer a sua caixa, não esquecer que o orificio minusculo deve ficar a face do suporte rotativo, de modo a que a caixa do receptor se possa aproximar.
Depois de conseguir a marcação da origem com uma precisão adequada, julgo que para implementar a temporização e sincronização das leituras dos sensores, deverei proceder da seguinte forma;
É feito um pedido das ultimas leituras ao LIDAR, que informa os millis correntes.
- O Arduino LIDAR 360 recebe o pedido por I2C, e:
- Envia:
- Por cada angulo com nova leitura efectuada:
- o angulo;
- a leitura da distancia para o angulo;
- o tempo (em ms) (o tempo decorrido entre o ultimo envio de leituras e o momento em que a leitura foi efectuada);
- no final das leituras, ou antes informa a diferença entre os millis recebidos e os millis esperados;
- Por cada angulo com nova leitura efectuada:
- Compara, regista e actualiza;
- Os millis recebidos com os millis esperados;
- Os millis sincronizados, para indexar todas as leituras subsequentes;
- Faz o reset da lista de novas leituras;
- Envia:
Ao receber a resposta ao pedido, regista os valores das leituras e toma em consideração o eventual desvio de sincronização recebido (em millis)
Ver o prótotipo anterior do Arduino LIDAR 360 v1.
Ver o prótotipo seguinte do Arduino LIDAR 360 v3.