Encerramento..

Depois de muito trabalho, dedicação, na tentativa da realização de um bom projeto sem um custo muito alto, além do todo o esforço nas soluções das partes mecânicas e elétricas, obtivemos muito conhecimento o qual é o objetivo do projeto integrado, não houve sucesso na apresentação porém tivemos um sucesso pessoal, tivemos auxilio dos professores de Fisica III - Gil Marcos Jess e de Resolução de Problemas de Engenharia - Afonso Ferreira Miguel, para a concretização do projeto, contavamos ao final do projeto com apenas dois integrantes sendo o Eduardo R. Lopes que era o lider e o responsável pelo web site, programação, documentação, montagem do carro e auxilio na montagem do hardware e o Rodrigo G. responsável pela montagem, ajustes e testes no hardware e revisão da programação. Agradecemos aos professores pelo auxilio, nosso projeto se encerra por aqui. OBRIGADO.
Eduardo Rebelo Lopes.
Rodrigo Gusso.
Engenharia de Computação - PUCPR - 3º Período - 2008

Fatos Finais...











Fotos da finalização do projeto, na realização dos testes horas antes da apresentação, com os novos motores, houve alguns problemas, os motores necessitavam de uma corrente alta e o ci acabou não resistindo, havendo então um estouro o qual queimou os ci's e o microcontrolador, sem mais tempo não conseguimos apresentar nosso projeto.

Código Fonte
O programa foi todo desenvolvido em linguagem C.

#define F_CPU 8000000UL /* 8 MHz crystal clock */

/* define as linhas dos sensores */
#define LED_PORT PORTD
#define LED_DDR DDRD
#define LED1 PD3
#define LED2 PD4
#define LED3 PD5
#define LED4 PD6
#define LED5 PD7

/* define controle dos motores */
#define MOTOR_PORT PORTB
#define MOTOR_DDR DDRB
#define M1PULSE PB0
#define M1DIR PB1
#define M2PULSE PB2
#define M2DIR PB3
#define MOTOR_ENABLE PB4

#define MOTOR_FORWARD 0
#define MOTOR_REVERSE 1

#define GO_LEFT 0
#define GO_HARD_LEFT 1
#define GO_FORWARD 2
#define GO_HARD_RIGHT 3
#define GO_RIGHT 4
#define GO_BRAKE 5


#define SW_PORT PORTD
#define SW_BIT PD2
#define SW_DELAY 250

#include
#include
#include

/* prototipos de funcões */
void init_io();
void init_adc();
void enable_motors();
void disable_motors();
void set_motor_direction(uint8_t motor, uint8_t direction);
void steer_robot(uint8_t direction);
uint8_t get_line_sensor_value(uint8_t led_index);
void calibrate_line_sensors(uint8_t *midpoint);
void delay_ms(uint16_t ms);

ISR(INT0_vect)
{

MOTOR_PORT ^= _BV(MOTOR_ENABLE);
delay_ms(SW_DELAY);
GIFR = _BV (INTF0);
}

int
main (void)
{

uint8_t adc_value;
uint8_t midpoint[5] = { 0,0,0,0,0 };
uint8_t last_direction = GO_FORWARD;
uint8_t i;
uint8_t sensor_bits;

init_io();
init_adc();

enable_motors();
steer_robot(GO_HARD_LEFT);
calibrate_line_sensors(midpoint);
disable_motors();

while (1)
{
sensor_bits = 0;


for (i=0; i<5; sensor_bits =" sensor_bits" adc_value =" get_line_sensor_value(i);">= midpoint[i])
{
sensor_bits = _BV(0);
}
else
{
sensor_bits &= ~_BV(0);
}
}



if (sensor_bits == 0x04 sensor_bits == 0x0E sensor_bits == 0x1F)
{
steer_robot(GO_FORWARD);
last_direction = GO_FORWARD;
}
else if (sensor_bits == 0x0C sensor_bits == 0x08)
{
steer_robot(GO_LEFT);
last_direction = GO_LEFT;
}
else if (sensor_bits == 0x02 sensor_bits == 0x06)
{
steer_robot(GO_RIGHT);
last_direction = GO_RIGHT;
}
else if (sensor_bits == 0x10 sensor_bits == 0x18 sensor_bits == 0x1C)
{
steer_robot(GO_HARD_LEFT);
last_direction = GO_HARD_LEFT;
}
else if (sensor_bits == 0x01 sensor_bits == 0x03 sensor_bits == 0x07)
{
steer_robot(GO_HARD_RIGHT);
last_direction = GO_HARD_RIGHT;
}
else
{

steer_robot(last_direction);
}
}
return (0);
}

void
init_io()
{
/* entradas e saidas */
LED_DDR = _BV(LED1) _BV(LED2) _BV(LED3) _BV(LED4) _BV(LED5);
MOTOR_DDR = _BV(M1PULSE) _BV(M1DIR) _BV(M2PULSE) _BV(M2DIR) _BV(MOTOR_ENABLE);

/* resitor pull-up */
SW_PORT = _BV(SW_BIT);
GICR = _BV(INT0);
sei();
}

void
init_adc(void)
{
ADMUX = 0 _BV(ADLAR);
ADCSRA = _BV(ADEN) _BV(ADPS2);
}

void
enable_motors()
{
MOTOR_PORT = _BV(MOTOR_ENABLE);
}

void
disable_motors()
{
MOTOR_PORT &= ~_BV(MOTOR_ENABLE);
}

void
set_motor_direction(uint8_t motor, uint8_t direction)
{
if (direction == MOTOR_REVERSE)
{
MOTOR_PORT = _BV(motor);
}
else
{
MOTOR_PORT &= ~_BV(motor);
}
}

void steer_robot(uint8_t direction)
{


switch (direction)
{
case GO_LEFT:
set_motor_direction(M1DIR, MOTOR_FORWARD);
set_motor_direction(M2DIR, MOTOR_FORWARD);

MOTOR_PORT &= ~_BV(M1PULSE);
MOTOR_PORT = _BV(M2PULSE);
break;

case GO_HARD_LEFT:
set_motor_direction(M1DIR, MOTOR_REVERSE);
set_motor_direction(M2DIR, MOTOR_FORWARD);

MOTOR_PORT &= ~_BV(M1PULSE);
MOTOR_PORT = _BV(M2PULSE);
break;

case GO_FORWARD:
set_motor_direction(M1DIR, MOTOR_FORWARD);
set_motor_direction(M2DIR, MOTOR_FORWARD);

MOTOR_PORT = _BV(M1PULSE);
MOTOR_PORT = _BV(M2PULSE);
break;


case GO_HARD_RIGHT:
set_motor_direction(M1DIR, MOTOR_FORWARD);
set_motor_direction(M2DIR, MOTOR_REVERSE);

MOTOR_PORT = _BV(M1PULSE);
MOTOR_PORT &= ~_BV(M2PULSE);
break;

case GO_RIGHT:
set_motor_direction(M1DIR, MOTOR_FORWARD);
set_motor_direction(M2DIR, MOTOR_FORWARD);

MOTOR_PORT = _BV(M1PULSE);
MOTOR_PORT &= ~_BV(M2PULSE);
break;

case GO_BRAKE:
set_motor_direction(M1DIR, MOTOR_FORWARD);
set_motor_direction(M2DIR, MOTOR_FORWARD);

MOTOR_PORT &= ~_BV(M1PULSE);
MOTOR_PORT &= ~_BV(M2PULSE);
break;
break;
}
}

uint8_t get_line_sensor_value(uint8_t led_index)
{
uint8_t adc_value;
uint8_t led_bit;


switch (led_index)
{
case 0: led_bit = _BV(LED1); break;
case 1: led_bit = _BV(LED2); break;
case 2: led_bit = _BV(LED3); break;
case 3: led_bit = _BV(LED4); break;
case 4: led_bit = _BV(LED5); break;
}


LED_PORT &= ~led_bit;
_delay_ms(5);


ADCSRA = _BV(ADSC);
while (!(ADCSRA & _BV(ADIF)));
adc_value = ADCH;
ADCSRA = _BV(ADIF);


LED_PORT = led_bit;

return adc_value;
}

void calibrate_line_sensors(uint8_t *midpoint)
{
uint8_t adc_value;
uint8_t i, j;
uint8_t thresh_high[5] = { 0,0,0,0,0 };
uint8_t thresh_low[5] = { 255,255,255,255,255 };

for (i=0; i<100; j="0;" adc_value =" get_line_sensor_value(j);"> thresh_high[j]) thresh_high[j] = adc_value;
}
_delay_ms(250);
}

for (i=0; i<5;>





APRESENTAÇÃO...

Caros amigos, hoje será realizada a apresentação do projeto aos professores orientadores, nessa semana tivemos que trocar os motores os quais eram muito fraco, fizemos os ultimos ajustes, porem nao tivemos tempo de fazer os devidos testes.
Esperamos obter sucesso nessa apresentação.
Equipe SISLA agradece.

Ajustes Finais...

Caros amigos, conseguimos finalmente gravar o microcontrolador e os ultimos ajustes estão sendo feitos para podermos fazer os devidos testes. Na proxima semana será feita a pré-apresentação, a qual será orientada pelo professor GIL (Física III), esperamos que o projeto já esteja funcionando perfeitamente.
Equipe SISLA agradece.

Microcontrolador...

Caros amigos esta semana passamos por um problema com o microcontrolador, tentamos gravá-lo porém o gravador utilizado "Dragon" apresentou alguns problemas, impossibilitando a gravação.
Faremos outra tentativa essa semana para a finalização do projeto.
Equipe SISLA agradece.

Processo Mecânico...






Caros amigos, o carrinho está pronto, agora só nos falta gravar a programação no microcontrolador o qual está planejado para terça-feira dia 27-05, logo, poderemos fazer os testes e correções para a apresentação.
Equipe SISLA agradece.

Código Fonte

Caros colegas conseguimos finalizar a parte de programação, o código fonte esta pronto, sendo que agora so nos falta copilar e gravar no microcontrolador e devido a alguns problemas esta sendo feita novamente a parte da placa principal.

Logo estaremos disponibilizando para downloand o codigo fonte do SISLA.
Equipe SISLA agradece.

Olá

Caros amigos, esta semana fizemos a pci e estamos terminando a implatação dos componentes, para podermos realizar os devidos testes finais e a montagem do carro.
Equipe SISLA agredece.

Amigos...

Pronto o esquema eletrico do carro estamos desenhando ele para passar para placa, esperamos terminar isso ate o dia 29/04 e apresentar a placa pronta para a aula de resolução de problemas de engenharia, conforme solicitação do professor Afonso.
Equipe SISLA agradece.

Caros amigos...

Essa semana terminamos a placa principal, porém, ela está nos causando alguns transtornos, pois a parte condutora solta facilmente, desprendendo os fios, já compramos outras placas de fenolite, a qual iremos fazer pelo metodo fotográfico, esperamos uma melhor performace.
Placa antiga:Placas novas:
Equipe SISLA agradece.

Olá amigos...


Realizamos nesse período o início da construção do eixo das rodas que terão motores indivíduais, realizando os devidos testes de funcionamento, elaboramos um eixo para que fosse possível um encaixe adequado motor - roda. Chegou-nos em mãos no dia 11-04 o microcontrolador o qual nos permitirá as finalizações da placa principal, agora nos resta começar a montagem do carrinho e encontrar a melhor posição para os sensores infra-red.
Equipe SISLA agradece.

Bom dia...


Caros amigos, nesse final de semana começamos a confecção da placa, fizemos os primeiros testes no Protoboard, falta ainda o microcontrolador que ainda irá demorar alguns dias pois está em transe de importação, testamos os motores e começamos a elaborar como iremos montar o carrinho, pois ele não poderá ficar muito pesado por causa da inércia, que poderá fazer com que o carrinho não consiga parar.
Equipe SISLA agradece.

Ola amigos....

Nessa semana nossa dificuldade esta em encontrar o Microcontrolador ATmega8, ja fizemos a solicitação pelo site do fabricante e nos será entregue em alguns dias, link relacionado ao DATA SHEET dele.
Nesse fim de semanda começaremos a montagem da Placa, e a confecção do carro.
Equipe SISLA agradece.

MOON PATROL


Projeto MOON PATROL o qual o SISLA irá se basear, vista inferior e lateral, e veja também no youtube.com um video do MOON PATROL em funcionamento.
Equipe SISLA agradece.

Olá

Modelo de pista a qual o SISLA poderá percorrer.
Equipe SISLA agradece.

Olá Amigos...

Nesta semana que passou, conferimos todos os componetes adquiridos, estamos também a procura de alguns outros, os quais estamos com dificuldade de encontrar.
Demos início também à parte de programação a ser utilizada no desenvolvimento do nosso projeto.

Bom dia a Todos....


Primeiras peças a serem compradas, será iniciada a confecção das placas e os primeiros testes seram feitos logo nesse fim de semana, esperamos sucesso. Também terá inicio esse fim de semana a parte de programação.
A Equipe SISLA agradece.




Ola...

O Projeto...
Fluxograma do carro, onde pode ser visto, onde será localizado os motores e sensores.
Equipe SISLA agradece.

Bom dia a Todos....

Equipe de desenvolvimento do projeto SISLA em sua primeira reunião para definição de escopo de trabalho. Aqui sera postado semanalmente tudo o que estara acontecendo com nosso projeto.
Equipe SISLA agradece.