Hello Everybody,
I'm teenager DIYer. I'm a completely newcomer to the world of robotics. Can somebody please provide me a good PIC based scheamtic of a robot...which is not tooo much complex....preferably line following, wall following or anything else.
Please help🙂 😀 😉 😎
I'm teenager DIYer. I'm a completely newcomer to the world of robotics. Can somebody please provide me a good PIC based scheamtic of a robot...which is not tooo much complex....preferably line following, wall following or anything else.
Please help🙂 😀 😉 😎

I Just saw some in "Nuts and Volts" magazing. I forget which issue. Search their website. Also check "Make" magazine. There are vendors to sells inexpensive kits with schematics and software.
-David
-David
Thanks friend
I decided to make http://www.diylive.net/index.php/2005/12/13/diy-line-following-robot2/http://www.diylive.net/index.php/2005/12/13/diy-line-following-robot2/
But can somebody tell me is it possible to program PIC 12C672 using a homemade "JDM Programmer"
I decided to make http://www.diylive.net/index.php/2005/12/13/diy-line-following-robot2/http://www.diylive.net/index.php/2005/12/13/diy-line-following-robot2/
But can somebody tell me is it possible to program PIC 12C672 using a homemade "JDM Programmer"
Paswa said:
But can somebody tell me is it possible to program PIC 12C672 using a homemade "JDM Programmer"
Just make a Ponyprog - faster, better, more devices, etc.
And btw this thread should not be in "Digital"
have a look at the arduino's- www.arduino.cc
Very easy and convenient to program and ideal for making simple robotics as you can easily interface stepper motors and servos.
A great intro to robotics.
Very easy and convenient to program and ideal for making simple robotics as you can easily interface stepper motors and servos.
A great intro to robotics.
here's another question. Can somebody tell me which PIC programmer to make with support of programming PIC 12xxx series chips.....
1> EzPIC http://www.kmitl.ac.th/~kswichit%20/ezpic/index.html
2> http://www.diylife.com/2008/02/15/program-a-pic-microcontroller/
<<I selected it it>>
3> SI Prog
http://www.lancos.com/siprogsch.html
((I Like IT ))🙂
or anything else?
1> EzPIC http://www.kmitl.ac.th/~kswichit%20/ezpic/index.html
2> http://www.diylife.com/2008/02/15/program-a-pic-microcontroller/
<<I selected it it>>
3> SI Prog
http://www.lancos.com/siprogsch.html
((I Like IT ))🙂
or anything else?
Dear paswa,
Do not use pic 12c672, because you can use it only once as you can not erase it. Use flash pic which are of F series. You can use 12f683 which is of 8 pin and having 2k word memory and having internal oscillator. You can use 12f675 which is similar of 12f683 but with 1k memory and costs less.
These 12f675 and 12f683 is having some advance modules like adc, comparator etc. If you are new user, you may find problem to start from these.
If you are new in the embedded world, you can start from pic 16f 84a, which is of 18 pin and easy to learn. It is always better to learn the all pros and cons of the micro controller and then land up in the complex world of robotics. Just following and copying something from internet with out understanding it deeply will bear no long lasting result.
Making pic programmer is very easy and software is readily available in internate.
Do not use pic 12c672, because you can use it only once as you can not erase it. Use flash pic which are of F series. You can use 12f683 which is of 8 pin and having 2k word memory and having internal oscillator. You can use 12f675 which is similar of 12f683 but with 1k memory and costs less.
These 12f675 and 12f683 is having some advance modules like adc, comparator etc. If you are new user, you may find problem to start from these.
If you are new in the embedded world, you can start from pic 16f 84a, which is of 18 pin and easy to learn. It is always better to learn the all pros and cons of the micro controller and then land up in the complex world of robotics. Just following and copying something from internet with out understanding it deeply will bear no long lasting result.
Making pic programmer is very easy and software is readily available in internate.
I agree that the 16F84A is a good PIC to start with. It should be easy to find and is well supported.
Do not use pic 12c672, because you can use it only once as you can not erase it. Use flash pic which are of F series. You can use 12f683 which is of 8 pin and having 2k word memory and having internal oscillator. You can use 12f675 which is similar of 12f683 but with 1k memory and costs less.
Thanks, friends. I dont know why diyaudio members were not responding to my this thread. But thanks, becoz there were all if you. PIC16F84, I'll get the sample. But my sample of PIC12F683-I/P is on the way. pic12c672 is just outdated. new EEPROM is on the way. But one thing; can I use the same programming code (which was written for PIC12C672) for PIC12F683?
Can you please suggest me a good ebook or webpage , from where i can learn basic PIC theories and programming?
Making pic programmer is very easy and software is readily available in internate.
What about this schematic....I'm going to make it...
http://www.diylife.com/2008/02/15/program-a-pic-microcontroller/
Yes, Pic 16F 84A is the right Pic for starting/learning and also you can program it erase it and program it many many times.
After learning that, go for Pic 16F 628 which is of 18 pin like 84A but having 2k memory and internal oscillator but costs less than 84A.
Then move to 12F675 which is of 8 pin with 1k memory/ 12F683 also 8 pin with 2k memory.
After that 16F 673A/ 16F676 which are of 28 pins and lastly 16F877A, which is of 40 Pins and real work horse of Pic 16F series. If you can learn these, and having knowledge in Electronics, you can do undo anything in Electronics. For using these you can collect free MPLAB IDE from Microsoft Company and you can write, edit , convert Assembly to Hex File and also simulate your written program. You can purchase a trainer board to test your programs in real world or you can make one for yourself if you have knowledge in Electronics.
You can make your own Programmer and Training Board. The satisfaction and pleasure you will get by doing yourself, that is immense and the confidence you will get, that is unparalleled.
If you have real and practical knowledge in Microcontroller and Modern Electronics, you can do anything - earn whatever you want.
I said Modern Electronics, because you will find people are still engaged in obsolete technology and ideas which is far behind modern tech. and know how.
After learning that, go for Pic 16F 628 which is of 18 pin like 84A but having 2k memory and internal oscillator but costs less than 84A.
Then move to 12F675 which is of 8 pin with 1k memory/ 12F683 also 8 pin with 2k memory.
After that 16F 673A/ 16F676 which are of 28 pins and lastly 16F877A, which is of 40 Pins and real work horse of Pic 16F series. If you can learn these, and having knowledge in Electronics, you can do undo anything in Electronics. For using these you can collect free MPLAB IDE from Microsoft Company and you can write, edit , convert Assembly to Hex File and also simulate your written program. You can purchase a trainer board to test your programs in real world or you can make one for yourself if you have knowledge in Electronics.
You can make your own Programmer and Training Board. The satisfaction and pleasure you will get by doing yourself, that is immense and the confidence you will get, that is unparalleled.
If you have real and practical knowledge in Microcontroller and Modern Electronics, you can do anything - earn whatever you want.
I said Modern Electronics, because you will find people are still engaged in obsolete technology and ideas which is far behind modern tech. and know how.
Mistakenly mentioned MPLAB from Microsoft co. but it should be Microchip co.
You can convert program written for one chip for another but you have to do some modifications and for that you have to read and understand Data sheet.
You can do the JDM programmer but I have doubt whether it would work or not. I never made or use serial programmer but I made and used parallel port programmer and used EPic win and oshon soft software. For different pic with different pin no., I made different socket and changing socket, I programme different pics with same programmer.
Thanks.
You can convert program written for one chip for another but you have to do some modifications and for that you have to read and understand Data sheet.
You can do the JDM programmer but I have doubt whether it would work or not. I never made or use serial programmer but I made and used parallel port programmer and used EPic win and oshon soft software. For different pic with different pin no., I made different socket and changing socket, I programme different pics with same programmer.
Thanks.
I have used a JDM on several models of PICs without any problems.
I learned PIC programming from this series of tutorials:
http://www.mstracey.btinternet.co.uk/pictutorial/picmain.htm
You probably want to read a bit about basic computer architecture, and assembly language, if you haven't already.
I learned PIC programming from this series of tutorials:
http://www.mstracey.btinternet.co.uk/pictutorial/picmain.htm
You probably want to read a bit about basic computer architecture, and assembly language, if you haven't already.
OKKKKK!Thank you alll🙂
I'll get a PIC16F84A for starting my PIC projects just between a few days.
But I have a PIC12F683, which I wanna use in building a coooool line following robot. I got this circuit...
And this code was written for PIC12C671, but I'm using new flash based PIC12F683. Can I use the same code for PIC12F683////the code is
list p=12c672
#include <p12c672.inc>
count equ H'0025' ;defines count variable and gives a memory address
resss equ H'0030' ;defines resss variable and gives a memory address
org 0x00 ; defines the start of memory as 00h
reset
goto start
; initialize the settings of the A/D converter, and picks input/output pins
start org 0x05 ; defines where to start the code
bsf STATUS, RPO ;selects bank 1
movlw 0x04 ; moves 04 hex into working register
movwf ADCON1 ; moves working register into functional register ADCON1
movlw 0x03 ; moves 03h into working register
movwf TRISIO ; moves working register into TRISIO
bcf STATUS, RPO ;selects bank 0
movlw 0x89 ; moves 089h into working register
movwf ADCON0 ; moves w into f
;subroutine that starts A/D converter, and checks results
loop movlw 0x10 ;put 10h into the working register
movwf count ;move contents of working register into f register
good decfsz count,1 ;decrements count by one, skips next if zero
goto good ;if not zero go to good
bsf ADCON0,GO ;starts A/D by setting GO bit of ADCON0
one btfsc ADCON0,GO ;tests to see if A/D is done, skips next code if 0
goto one ;if not zero go to “one”
movf ADRES,0 ;
movwf resss ;moves results into ress
btfss resss,7 ;tests to see if results bit 7 set, skips next if set
goto Toff ;calls Toff subroutine
goto Ton ;calls Ton subroutine
Toff bsf GPIO,4 ;sets GP4 to high output
bcf GPIO,2 ;sets GPIO2 to low output
goto loop ;jump to loop subroutine
Ton bsf GPIO,2 ;sets GPIO2 to high output
bcf GPIO,4 ;sets GPIO4 to low output
goto loop ; starts A/D conversion over again
end
I'll get a PIC16F84A for starting my PIC projects just between a few days.
But I have a PIC12F683, which I wanna use in building a coooool line following robot. I got this circuit...
And this code was written for PIC12C671, but I'm using new flash based PIC12F683. Can I use the same code for PIC12F683////the code is
list p=12c672
#include <p12c672.inc>
count equ H'0025' ;defines count variable and gives a memory address
resss equ H'0030' ;defines resss variable and gives a memory address
org 0x00 ; defines the start of memory as 00h
reset
goto start
; initialize the settings of the A/D converter, and picks input/output pins
start org 0x05 ; defines where to start the code
bsf STATUS, RPO ;selects bank 1
movlw 0x04 ; moves 04 hex into working register
movwf ADCON1 ; moves working register into functional register ADCON1
movlw 0x03 ; moves 03h into working register
movwf TRISIO ; moves working register into TRISIO
bcf STATUS, RPO ;selects bank 0
movlw 0x89 ; moves 089h into working register
movwf ADCON0 ; moves w into f
;subroutine that starts A/D converter, and checks results
loop movlw 0x10 ;put 10h into the working register
movwf count ;move contents of working register into f register
good decfsz count,1 ;decrements count by one, skips next if zero
goto good ;if not zero go to good
bsf ADCON0,GO ;starts A/D by setting GO bit of ADCON0
one btfsc ADCON0,GO ;tests to see if A/D is done, skips next code if 0
goto one ;if not zero go to “one”
movf ADRES,0 ;
movwf resss ;moves results into ress
btfss resss,7 ;tests to see if results bit 7 set, skips next if set
goto Toff ;calls Toff subroutine
goto Ton ;calls Ton subroutine
Toff bsf GPIO,4 ;sets GP4 to high output
bcf GPIO,2 ;sets GPIO2 to low output
goto loop ;jump to loop subroutine
Ton bsf GPIO,2 ;sets GPIO2 to high output
bcf GPIO,4 ;sets GPIO4 to low output
goto loop ; starts A/D conversion over again
end
An externally hosted image should be here but it was not working when we last tested it.
The short answer is: probably. If you feel like winging it, just change the target and see if it compiles in MPASM.
But for the sake of learning something, you should go through the code step by step and understand what it does. Look at the datasheets for the two parts and compare the register settings. Ultimately, you should aim to understand the entire design.
But for the sake of learning something, you should go through the code step by step and understand what it does. Look at the datasheets for the two parts and compare the register settings. Ultimately, you should aim to understand the entire design.
just change the target and see if it compiles in MPASM.
target means? registers?
MPASM? what's that? I heard microchip's MPALAB
Dear Paswa,
Don't bother. MPASM is the Assembler inside MPLAB. Do you know how to write Program in MPLAB IDE? Do you have programmer to load the Hex File from MPLAB to the PIC? You should have, otherwise no use of writing the Program.
There is some difference between pic 12c671/672 and pic 12f683. 12c672 is having 4mb internal oscillator but 12f683 is having internal oscillator of 8 mb. So, timing calculation will be different.
Whenever changing over to new pic, you have to change the header file.
So, when you go to pic 12f683 from 12c672, you should write,
list p = pic12f683
#include <p12f683.inc>
config???
If you don't mention configuration bits according to pic 12f683, program will not respond.
Then change the program according to pic 12f683.
Your schematic is also not clear to me.
What is the purpose of 2x 9v inputs to Pic?
Try to find the full schematic.
Thanks.
Don't bother. MPASM is the Assembler inside MPLAB. Do you know how to write Program in MPLAB IDE? Do you have programmer to load the Hex File from MPLAB to the PIC? You should have, otherwise no use of writing the Program.
There is some difference between pic 12c671/672 and pic 12f683. 12c672 is having 4mb internal oscillator but 12f683 is having internal oscillator of 8 mb. So, timing calculation will be different.
Whenever changing over to new pic, you have to change the header file.
So, when you go to pic 12f683 from 12c672, you should write,
list p = pic12f683
#include <p12f683.inc>
config???
If you don't mention configuration bits according to pic 12f683, program will not respond.
Then change the program according to pic 12f683.
Your schematic is also not clear to me.
What is the purpose of 2x 9v inputs to Pic?
Try to find the full schematic.
Thanks.
Hi,
The program of 12c672 you have given is not fully correct and hence if it is converted to pic 12f683, it will not work.
In the Header File, Configuration bits are not given and hence Programmer can not detect what type of PIC it is.
After org 0x00, it is written reset. In PIC 16F series, there is no instruction as reset. Moreover, you cannot reset the PIC after 0x00, because 0x00 is the reset vector address and hence whenever pic resets with Master Clear switch or any other means, it will return to 0x00 address.So, it will remain in reset vector address and will not move forward to carryout further instructions. Reset should not be used and after org 0x00, next should be goto start.
In your schematic, it is found that pin2 and pin3 of Pic 12c672 is used as input/output pin and hence it is clear that external oscillator is not used and so internal oscillator is used. But in the Program, there is no instruction is written to bring the internal calibrated frequency through bringing the data incorporated in the Program memory. So, the Pic will not work as it will not have any oscillator working for it.
Find out the original schematic and the program. If you are not acquainted yourself, in most cases you will find difficulties in following the program/schematics in the Net.
With thanks.
The program of 12c672 you have given is not fully correct and hence if it is converted to pic 12f683, it will not work.
In the Header File, Configuration bits are not given and hence Programmer can not detect what type of PIC it is.
After org 0x00, it is written reset. In PIC 16F series, there is no instruction as reset. Moreover, you cannot reset the PIC after 0x00, because 0x00 is the reset vector address and hence whenever pic resets with Master Clear switch or any other means, it will return to 0x00 address.So, it will remain in reset vector address and will not move forward to carryout further instructions. Reset should not be used and after org 0x00, next should be goto start.
In your schematic, it is found that pin2 and pin3 of Pic 12c672 is used as input/output pin and hence it is clear that external oscillator is not used and so internal oscillator is used. But in the Program, there is no instruction is written to bring the internal calibrated frequency through bringing the data incorporated in the Program memory. So, the Pic will not work as it will not have any oscillator working for it.
Find out the original schematic and the program. If you are not acquainted yourself, in most cases you will find difficulties in following the program/schematics in the Net.
With thanks.
Thanks friend for your help.....I sorry for my delay....My broadband connection was gone for duck for 3 days due to severe storm and rain..I just got ya back today.
NOW, I can't take final decision at this time. Because I'll tell my father to look for PIC16F84A and Atmel Atmega8 at kolkata. There is a really nice line following robot with Atmega8 at here
I can make it only if I get the Atmega8 .
BUT IF NOT🙄
🙁 Then I've to correct my current schematics and codes for these robot. Don't know why but I love PIC more than AVR. Thanks for your help without it, I could never get inspirations for robot-building.
I've changed the schematic a bit...I hope now it is correct. And again, the scheamtic is not mine it's just from a website. there was only one 9V battery but the schematic-drawer made a error, he put 2 9V batt. I've a more advanced plan to use 2*AAA batteries instead of a bulky 9v batt. and 7805.
If you can write out the code for me or correct the previous one, there would be a lots of help...because I have a plenty of xperience in analog and digital circuity(though I'm a school student) but I'm just a learner of Microcontroller programming..Please help here... 🙂
Thanks
THEO

NOW, I can't take final decision at this time. Because I'll tell my father to look for PIC16F84A and Atmel Atmega8 at kolkata. There is a really nice line following robot with Atmega8 at here
I can make it only if I get the Atmega8 .
BUT IF NOT🙄
🙁 Then I've to correct my current schematics and codes for these robot. Don't know why but I love PIC more than AVR. Thanks for your help without it, I could never get inspirations for robot-building.
I've changed the schematic a bit...I hope now it is correct. And again, the scheamtic is not mine it's just from a website. there was only one 9V battery but the schematic-drawer made a error, he put 2 9V batt. I've a more advanced plan to use 2*AAA batteries instead of a bulky 9v batt. and 7805.
If you can write out the code for me or correct the previous one, there would be a lots of help...because I have a plenty of xperience in analog and digital circuity(though I'm a school student) but I'm just a learner of Microcontroller programming..Please help here... 🙂
Thanks
THEO
Attachments
- Status
- Not open for further replies.
- Home
- General Interest
- Everything Else
- Need a PIC based Line Following Robot