• Nenhum resultado encontrado

Depois da escolha e liga¸c˜ao de todos os componentes elabora-se o desenho da placa e colocam-se os componentes nos locais certos. Alguns componentes devem ser

Figura 4.24 – Esquema de Montagem Encoders EAGLE

colocados em locais espec´ıficos, enquanto outros depende de preferˆencias pessoais. Na figura4.25temos o desenho e disposi¸c˜oes finais da placa e componentes. A figura est´a dividida em sec¸c˜oes e cada sec¸c˜ao pode ter uma ou mais ´areas. Vamos agora analizar cada sec¸c˜ao:

• Sec¸c˜ao no 1 - Nesta sec¸c˜ao temos posicionados os sensores IR. Estes devem

ser colocados sempre na frente do robˆo para poderem detetar corretamente as paredes do labirinto.

• Sec¸c˜ao no 2 - Aqui temos a posi¸c˜ao do microcontrolador. A sua posi¸c˜ao ´e

uma preferˆencia pessoal, no entanto ´e de boa pr´atica tentar coloc´a-lo o mais perto poss´ıvel do centro da placa, uma vez que tem liga¸c˜oes para todos os componentes do circuito.

• Sec¸c˜ao no 3 - Aqui temos a coloca¸c˜ao dos drivers dos motores. Mais uma vez a

coloca¸c˜ao destes componentes ´e uma preferˆencia pessoal, no entanto ´e de boa pr´atica coloc´a-los perto dos motores.

• Sec¸c˜ao no 4 - Esta sec¸c˜ao da placa ´e ocupada pelos motores. Estes devem estar 39

colocados no ponto m´edio do comprimento da placa, de modo a existir uma boa distribui¸c˜ao do peso.

• Sec¸c˜ao no 5 - Em 5 temos o espa¸co ocupado pelo girosc´opio/aceler´ometro. A

sua correta coloca¸c˜ao ´e fundamental para obter boas leituras deste dispositivo. Deve ser colocado exatamente no ponto m´edio entre os motores, ou seja, no centro de massa do robˆo e no ponto m´edio do comprimento da placa.

• Sec¸c˜ao no 6 - Nesta sec¸c˜ao temos a fonte de alimenta¸c˜ao. Est´a situada na parte

inferior da placa pois ´e o local dos conectores como bateria e USB. ´E tamb´em o local mais comum de coloca¸c˜ao do conjunto de componentes que fazem a fonte de alimenta¸c˜ao de todo o robˆo. Esta, em particular fornece tens˜oes de 8.4 V, 4.5 V e 3.3 V.

• Sec¸c˜ao no 7 - Aqui temos colocados na parte detr´as do robˆo os bot˜oes de

RESET, de MENU e o conector µUSB. ´E o melhor local para colocar estes componentes, uma vez que ´e de f´acil acesso para o utilizador.

• Sec¸c˜ao no 8 - Pinos de liga¸c˜ao dos encoders. Situados no local mais pr´oximo

das rodas dos motores que ´e onde os encoders encaixam.

• Sec¸c˜ao no 9 - Os componentes que dizem respeito a esta sec¸c˜ao s˜ao os neopixel

RGB. Servem como luzes de intera¸c˜ao com o utilizador. A sua disposi¸c˜ao na placa ´e de pura preferˆencia pessoal.

Figura 4.25 – Desenho e disposi¸c˜ao de componentes final da placa PCB

5

Resultados

Ap´os finalizado o desenho da placa, esta foi enviada para o centro de frabrico SeedStudio, China. O resultado ´e a placa representada na figura seguinte 5.1(a). Uma vez que os componentes s˜ao bastante pequenos, a solda fez-se com recurso a um microsc´opio (figura 5.1(b)).

(a) Placa PCB (b) Solda dos componentes

Figura 5.1 – In´ıcio da montagem

Na seguinte figura (5.2(b)), podemos ver o resultado final do kit Flash com os motores devidamente montados e as componentes soldadas.

(a) PCB com componentes

(b) Kit completo

Figura 5.2 – Placa com componentes soldadas e robˆo completo

Ap´os finalizar o desenho da placa e montar os motores, ´e necess´ario desenvolver m´odulos de controlo para facilitar a programa¸c˜ao dos utilizadores. Neste cap´ıtulo vamos analisar os algoritmos que comp˜oem cada m´odulo de controlo. Para ser poss´ıvel desenvolver um algoritmo de resolu¸c˜ao do labirinto ´e necess´ario ter m´odulos de controlo. O que fazem estes m´odulos? Eles lidam com a parte da programa¸c˜ao de mais baixo n´ıvel, como analisar os valores de tens˜ao dos sensores, analisar os sinais dos encoders e controlar a distribui¸c˜ao de potˆencia aos motores. Assim o utilizador apenas executa as fun¸c˜oes que pretende de cada m´odulo, como por exemplo, a fun¸c˜ao que faz automaticamente a leitura dos sensores e disponibiliza os seus valores.

Para que seja poss´ıvel ao utilizador criar um algoritmo de resolu¸c˜ao do labirinto s˜ao necess´arios 3 m´odulos: o m´odulo de controlo dos sensores IR, m´odulo de controlo dos encoders e aceler´ometro e m´odulo de controlo dos motores.

Mas antes de criar estes m´odulos temos que instalar o bootloader no microcontrolador. O que ´e o bootloader? ´E um firmware que ´e instalado no microcontrolador quando ele est´a “vazio” e permite-lhe receber e executar os c´odigos pretendidos, tais como c´odigos em Python, MakeCode e Arduino.

5.1

Carregamento do Bootloader

Para facilitar o carregamento do bootloader inclu´ımos, no desenho da PCB, um package (pinos de conec¸c˜ao) de pinos SWD (figura5.3(a)) que permite ligar o cabo apresentado na figura 5.3(b).

(a) PCB SWD Pins Package (b) Tag Connect - TC2030-MPC-NL

Figura 5.3 – Connec¸c˜ao SWD

O upload do firmware de bootloader foi poss´ıvel com recurso ao programador da Atmel, o Atmel-ICE (figura 5.4)

Figura 5.4 – Programador Atmel-ICE

Vamos ver agora como fazer o upload do firmware. As etapas a seguir s˜ao:

- Fazer o download do software Atmel Studio; 45

- Fazer o download do ficheiro de bootloader para o processador M4 emAdafruit

(2018)https://github.com/adafruit/circuitpython/releases/;

- Conectar os pinos SWD do Atmel-ICE ao cabo Tag-Connect;

- Alimentar a placa e conectar o cabo Tag-Connnect

- Conectar o Atmel-ICE ao PC;

- No software Atmel Studio selecionar Tools e de seguida Device Programming;

- Selecionar o dispisitivo ATSAMD51J19A;

- Selecionar o campo Memories

- Procurar o ficheiro de bootloader no campo flash e premir o bot˜ao Program;

E assim temos o bootloader carregado para o microcontrolador que fica pronto para o desenvolvimento dos m´odulos pretendidos

Documentos relacionados