Planejamento do Código - UnbDroid/sekksi2016 GitHub Wiki

Planejamento do código do robô
O robô contará com dois cérebros, os quais receberão os nomes de Executivo e Consultor.

Cérebro Executivo
O Executivo será responsável, principalmente, pela locomoção do robô. Os motores ligados a ele serão: o motor da roda direita e o motor da roda esquerda. Os sensores ligados a ele serão: dois ultrassons – um na lateral direita e outro na lateral esquerda – e dois sensores que identificam cor – cada um em uma extremidade frontal do robô e ambos apontando para o chão. Ele utilizará os ultrassons das laterais para se localizar na arena e para de movimentar dentro dela. Já os sensores que identificam cor - que poderão ser tanto RGBs quanto Hitechnichs - terão a função de identificar a cor do chão da arena em diferentes momentos do desafio. O cérebro Executivo guardará a rotina de varredura da arena. A estratégia para realizar a varredura ainda será decidida. No entanto, já se sabe que o código será estruturado de forma que fique evidenciada sua Máquina de Estados Finitos. A área da arena será dividida em outras várias pequenas áreas, as quais serão os estados.
O cérebro Executivo poderá ser resetado inúmeras vezes ao longo da mesma rodada. Para que isso não prejudique nem atrase a procura do robô por áliens, o Executivo deverá manter o cérebro Consultor atualizado de suas atividades e de seus estados.

Cérebro Consultor
O Consultor será responsável pela seleção de áliens e pelo descarregamento deles. Os motores ligados a ele serão: o motor da garra e o motor da porta.
Os sensores ligados a ele serão: dois ultrassons – ambos frontais – e um sensor que identifica cor – que estará localizado junto à garra. O cérebro utilizará os ultrassons frontais para localizar os áliens e otimizar a seleção deles. Já o sensor que identifica cor - que poderá ser tanto RGB quanto Hitechnich - terá a função de identificar a cor dos áliens para capturá-los e eliminá-los corretamente.
A cada vez que o cérebro Executivo for resetado, o cérebro Consultor deverá informar ao Executivo sobre seus estados.
O cérebro Consultor também terá a função de enviar alertas ao Executivo: de presença de áliens; de presença de obstáculos à frente; e de tempo decorrido.

Comunicação entre cérebros
A comunicação entre os cérebros será realizada via bluetooth. Para que as desvantagens do uso de bluetooth sejam supridas, serão necessários muitos testes, uma vez que os códigos no Executivo e Consultor devem estar sincronizados a todo momento.
Haverá alguns momentos na rodada em que a comunicação entre os cérebros se darão de forma mais intensa. Esses momentos são: seleção de áliens e descarregamento de áliens.

Objetivos do código
Com base em experiências anteriores, foi possível estabelecer alguns objetivos para a programação do robô:

  • fazer um código modular;
  • fazer um código simples;
  • não utilizar “Waits” (substituir por Tacho Count);