Bluetooth_controlled_Robotic_ARM
Code:
#include <avr/io.h>
#define F_CPU 8000000ul
#include<util/delay.h>
#define m11 PB0
#define m12 PB1
#define m21 PB2
#define m22 PB3
#define m31 PA2
#define m32 PA1
#define m41 PA4
#define m42 PA3
#define m51 PC4
#define m52 PC6
#define LED11 PD7
#define LED12 PC0
#define motor PORTC
char str[3],i=0;
void serialinit()
{
UCSRB=0x18;
UCSRC=0x86;
UBRRL=0x33;
}
void send(char p)
{
UDR=p;
while(!(UCSRA & (1<<UDRE)));
}
void txstring(char *ptr)
{
while(*ptr)
{
send(*ptr);
ptr++;
}
}
void rxdata()
{
while(!(UCSRA & (1<<RXC)));
char temp=UDR;
str[i++]=temp;
}
int main(void)
{
DDRC=0xff;
DDRA=0xff;
DDRB=0xff;
DDRD|=1<<LED11;
serialinit();
while(1)
{
rxdata();
/***** based Movement ****/
if(str[i-1]=='1')
{
PORTB|=1<<m11;
PORTB&=~(1<<m12);
txstring("Left Moving\r\n");
i=0;
_delay_ms(100);
}
else if(str[i-1]=='2')
{
PORTB|=1<<m12;
PORTB&=~(1<<m11);
txstring("Moving Right\r\n");
i=0;
_delay_ms(100);
}
/******solder Movement *****/
else if(str[i-1]=='3')
{
PORTB|=1<<m21;
PORTB&=~(1<<m22);
txstring("Solder Up\r\n");
i=0;
_delay_ms(100);
}
else if(str[i-1]=='4')
{
PORTB|=1<<m22;
PORTB&=~(1<<m21);
txstring("Solder Down\r\n");
i=0;
_delay_ms(100);
}
/******* Elbow Movement ********/
else if(str[i-1]=='5')
{
PORTA|=1<<m31;
PORTA&=~(1<<m32);
txstring("Elbow Up\r\n");
i=0;
_delay_ms(100);
}
else if(str[i-1]=='6')
{
PORTA|=1<<m32;
PORTA&=~(1<<m31);
txstring("Elbow Down\r\n");
i=0;
_delay_ms(100);
}
/***** wrist Movement ******/
else if(str[i-1]=='7')
{
PORTA|=1<<m41;
PORTA&=~(1<<m42);
txstring("Wrist Up\r\n");
i=0;
_delay_ms(100);
}
else if(str[i-1]=='8')
{
PORTA|=1<<m42;
PORTA&=~(1<<m41);
txstring("Wrist Down\r\n");
i=0;
_delay_ms(100);
}
/****** holding ********/
else if(str[i-1]=='9')
{
PORTC|=1<<m51;
PORTC&=~(1<<m52);
txstring("Holding\r\n");
i=0;
_delay_ms(100);
}
else if(str[i-1]=='t')
{
PORTC|=1<<m52;
PORTC&=~(1<<m51);
txstring("Releasing\r\n");
i=0;
_delay_ms(100);
}
else
{
PORTA=0;
PORTC=0;
PORTB=0;
}
}
}
0 comments:
Post a Comment
if you have any doubt please let me know