Refactor para Go 1.21 em andamento*
Projeto em desenvolvimento com finalidade de estudo de uso de Golang com Robotica Básica e IOT (libs Gobot e Gocv), funcional na plataforma base (Raspberry 3b+/4b Rasbpian recente).
Setup:
-
Em uma plataforma raspberry que siga o esquema autoGo e seus scripts auxiliares, instalar o pi-blaster
-
Rodar ´sudo raspi-config´ entrar em ´3 Interface Options´ para habilitar a interface de camera ´P1 Camera´ e o barramento ´P5 I2C´
-
Rodar o comando para alterar pinagem i2c e habilitar todos pins para o gobot:
./autogo.sh
-
Gerando Binário com raspberry como device alvo:
GOARM=6 GOARCH=arm GOOS=linux go build main.go
-
Rode o Binário. Com um teclado conectado ao raspberry, teclas de seta movimentam o veiculo, teclas "a, w, s, d" movimentam os servos da camera. Stream de video, condução pela web (pagina cliente) e condução autônoma (via sensor de sonar e outros métodos) ainda serão implementados
Setup Client:
-
Configurar no arquivo .env o MessagerBroker com dados de uma conta MQTT. Broker hive gratuito sugerido
-
Rodar
docker build --tag autogo-client-test .
e depois da imagem buildada rodardocker run autogo-client-test
-
Validar mensagens de acordo com os recursos do autogo configurado na mesma fila com as mesmas envs
PROJECT_NAME
eROBOT_NAME
. Ter um client configurado no computador de testes é aconselhável, sugestão mqtt-explorer
Referências:
- Pq nao dockerizar o device?
- :::ROS Golang
- Condução Autônoma IA com Intel 1
- Go visão computacional
- Raspberry com Gobot
- GPIO com Golang
- Lib LCD i2c Golang
-Próximas etapas:
Refatoração na estrutura do códigoCondução Autônoma (Sonar set)Condução por Fila MQTT (e web Socket)Site Cliente para Condução- Dockerizar o site cliente e suas dependencias
- Código mais aderente a boas práticas GO (interfaces, linter e demais melhorias)
- SH e makefile para automatizar dependencias em instalação nova
- SH update de goversion no raspbian
- Testes e validação para outros SO, Ubunto Mate (raspberry 4b) e Ubunto Nvidia Jetson :)
- Implantar ROS::: Golang
Componentes:
- Plataforma Rocket-tank
- Kit de expansão Rocket-tank
- Suporte pan tilt
- PowerBank minimo 2,5 amperes
- Bateria 7,2 V
- Raspberry py ModelB 3 ou mais recente
- Case raspberry com fan
- Raspicam
- 16 ch pwm
- 2x servos motores 9g
- Ponte H l298n
- Display LCD 16x2 i2c
- 4x Sensores Sonar
- Arduino UNO
- Mini teclado sem fio
- Parafusos e porcas M3 20mm e 12mm
- Conector p4 2.1 mm
- MPU9250
- MiniProtoboard OU Tubos termo retrateis, Cabos, fita isolante, curiosidade vontade e disposição para nao se frustrar muito no processo (o que não raro, vai acontecer)
Criando novas Issues. A ideia é manter atualizado enquanto avanço em Golang e outros tópicos vinculados interessantes.
Existe uma versão do projeto em Python (Autobot), pretendo andar com ela em paralelo pois Python já possui soluções que serão portadas para o AutoGo.
Um estudo divertido. Todos estamos tentando melhorar. ;)