karthikselva
#SoftwareEngineer #SalesforceDeveloper #RubyonRails #Music

Remote car on 'C'

remote car on c

/** This is a basic hardware program in c interfacing a remote car here consider a basic table

lpt port has pin 2-9 for data we can send data to it by calling

here we use only data pins 2,3,4,5 only

syntax : outport(port_address,number);

port address is 0×378 for lpt 2 and 0×3bc for lpt 1

well now move towards the code concentrate on lowest 4 bits

number data operation

1 0001 right steer 2 0010 left steer 4 0100 forward 8 1000 backward 5 0101 right steering + forward (right turn forward) 10 1010 left steering + backward (left turn backward) 6 0110 right steering + backward (right turn back) 9 1001 left steering + forward(left turn front)

this is the logic of code */

#include #include #include #include

void circle() //to move in circular path {int i=0; while(!getch()) { outport(0×3bc,5); // 5 = 0101 means on the right and on the forward

} }

void rectangle() { int i=0; coutl;cin»b; while(!getch()) { outport(0×3bc,4); // forward i++; delay(1000b); outport(0×3bc,5); // right steer delay(1000); outport(0×3bc,4); // forward delay(1000l); } }

void zigzag() { while(!getch()) { outport(0×3bc,5); //right forward delay(3000); outport(0×3bc,9); // left forward delay(3000);

} }

void manual()

{char c=’a’; while(c!=’x’) { clear(); cout«endl«endl«” use move keys for direction ‘x’ to exit”; c=getch(); if(c==’^[[A’) { outportb(0x3bc,1); delay(1000); } else if(c==’^[[B’) { outport(0x3bc,4); } else if(c==’^[[C’) { outportb(0x3bc,2); delay(1000); } else if(c==’^[[D’) { outportb(0x3bc,8); delay(1000); } } }

void manual(char choice, int time) // oveloaded fn for creative {char c; c=choice; while(c!=’x’) { clear();

if(c==’^[[A’) { outportb(0x3bc,1); delay(time1000); } else if(c==’^[[B’) { outport(0x3bc,4); delay(time1000); } else if(c==’^[[C’) { outportb(0x3bc,2); delay(time1000); } else if(c==’^[[D’) { outportb(0x3bc,8); delay(time1000); } } } void creative() { char str[20]; int i=0,n[20]; while(str[i]!=’x’) { coutstr[i]; coutn[i]; i++; } i=0; while(str[i]!=’x’) { manual(str[i],n[i]); } }

void automatic() { clear(); int g,h; cout«” enter 1 to circle “«endl«” 2 to rectangle move”g;

if(g==1) { circle(); } else if(g==2) { rectangle(); } else if(g==3) { zigzag(); } else if(g==4) { creative(); } }

void clear() { int n=0; while(n<300) { cout«endl; n++; } }

void menu() { clear(); int ch; cout«” 1 for manual”«endl«” 2 for automatic “ch; if(ch==1) { manual(); } else if(ch==2) { automatic(); } } /* now its time to open your car’s remote step 1: find the wires which goes for right ,left forward backward step 2: attach lpt ports pin 2 to right 3 to left 4 to forward 5 to backward and ground to pin 23 warning ! remove external batteries from remote which may leak at times step 3: run this code and enjoy racing !

thank you ! by karthik selvakumar B

mail bugs to karthikselvakumar@tce.edu */