Starting Out - Dev Board To Grow With...

Electronics discussions / projects / advice / questions

Starting Out - Dev Board To Grow With...

Postby Frilby » Sun Jan 15, 2012 1:41 am

First post for the forum - thanks to everyone for such a great environment to share info... :)

I am looking to start a robotics project with my son and the MSR-H01 seems to tick all the right boxes.

I have a fairly strong background in programming but haven't coded for over 15 years (Z80 was the chip of choice in my time).

I am looking to buy a development board to dust off the cobwebs and skill up ahead of the robotics project, and have narrowed the choice down to a few boards, but would appreciate some advice from those that know a whole lot more than me right now...

The main question is the criticality of going with the same MCU family as the p.Brain (dsPIC33)?

There are good Dev boards for the PIC18, as well as some for the dsPIC30, etc, but if ultimately I am going to be working with the p.Brain am I crazy buying a high end Dev board that isn't dsPIC33 based?

I know the dsPIC33 has special functions that help with mathematical calculations, etc that could influence the way you code for things such as leg gait calculations, etc - so will learning on a PIC18 for example be a disadvantage when it comes to finally coding the dsPIC33 on the p.Brain (I.e. would you need to re-learn different coding when you moved to the p.Brain)?

Boards I am looking at are (NOTE: I am not looking for a budget board, but something that will provide the best learning experience, usability, and functionality):
http://www.mikroe.com/eng/products/view/430/lv-24-33-v6-development-system/ (PIC24 & dsPIC33 dip 100)
http://www.mikroe.com/eng/products/view/494/easy24-33-v6-development-system/ (PIC24 & dsPIC33 dip 28)
http://www.mikroe.com/eng/products/view/757/easypic-v7-development-system/ (Only up to PIC18 but a great board layout and features)

The new V7 EasyPIC board is my favorite given the great layout, logical grouping of status LED's and push buttons for each port, and general range of peripheral components to play with - but as indicated it only supports up to PIC18.

The other boards support dsPIC33 in different pin formats so both should be equally suitable for learning dsPIC33 coding.

None of these boards are available in Australia, and as my knowledge on MCU programming is a little ancient these days ;) , I am hoping the expertise from this forum will be able to come to the rescue and provide some insight and guidance to point me in the right direction.

Any and all recommendations, comments, and feedback would be greatly appreciated on the above...

Cheers,
Frilby :)

P.S. If I have posted this query in the wrong section, my apologies (and please amend if necessary).
Frilby
 
Posts: 3
Joined: Tue Jan 10, 2012 4:58 am

Re: Starting Out - Dev Board To Grow With...

Postby Matt Denton » Tue Jan 17, 2012 1:08 pm

Hi Frilby, Welcome to the forum!

Well there is all sorts of information with regards to which micro/dev board to go with, but I guess it comes down to what you hope to achieve? For example, if you were using one of our kits with the HexEngine, then you would be looking to control the hexapod with hi level PIP commands such as forwards backwards, left right etc and let the HexEngine take care of the locomotion, allowing you to develop your own obstacle avoidance, tracking etc.. or do you intend to create your own hexapod control algorithms? In which case you will need a fair amount of grunt! Which is why I chose the dsPIC33 series. Having said this I have written a HexEgnine on an 18 series pic, but this was all written in C and heavily optimised! In fact I write most of my code for the PIC processors in C these days, which means I don't need to worry too much about the special math functions of the processor, as long as the compiler is good enough to take advantage of them.

If your just looking to write hi level applications to control the hexapod, then maybe a basic style processor module such as the atom series or arduino would be better?
Matt Denton
AKA: Winchy_Matt

micromagic systems ltd
Matt Denton
Site Admin
 
Posts: 1622
Joined: Tue May 20, 2008 9:15 pm
Location: Winchester UK

Re: Starting Out - Dev Board To Grow With...

Postby Frilby » Tue Jan 17, 2012 4:09 pm

Matt,

Thanks for the welcome...

My ultimate goal is something built around a hexapod design with possible PS3 wireless controller and some autonomy features (really like the idea of some form of facial recognition and image capture, etc). Whilst this is a simple summary, I have researched enough to know that this will be a very ambitious undertaking with a steep learning curve.

Whilst I may ultimately go for higher level control over a HexEngine setup, I would like to at least explore the viability (i.e. my ability) to potentially tackle the whole mobility engine myself (gait programming, etc). Having said that, from the limited research I have undertaken so far (struggling to find info on how to approach gait programming), this may be a task that is beyond my capabilities - I have never been a keen Maths Guy!

Given the wide range of options for any robotic project, I am starting to think that it may be better to simply separate the learning exercise from the final project (i.e. look for the best functionality in a Dev board layout for the sole purpose of learning the C language and general PIC programming principals, and then tackle any new skills as and when needed once I know more about the project I want to undertake).

I was simply hoping to align the two so that the Dev board could become a tool for programming and testing for the final project.

Given your experience with the PIC processor family, if I used C as the Dev language, would this largely remove the differences between say the PIC18 and dsPIC33 chips, beyond general performance and pin count - or is there more to it than that?

With regard to high level control using the HexEngine, does the HexEngine provide the ability to control individual leg movements at all (i.e. allow you to lift the front two legs for example)?

Also, for functions such as object tracking or sonic object detection, could this sort of functionality potentially be handled by the p.Brain in combination with the HexEngine (i.e. an all in one solution), or is the HexEngine dedicated to motor control only, requiring an additional MCU or other external control to facilitate this functionality?

Thanks again Matt for your feedback and help - I am really looking forward to the overall journey and learning experience ahead (even more so that the final destination I think :roll: )...

Cheers,
Frilby
Frilby
 
Posts: 3
Joined: Tue Jan 10, 2012 4:58 am

Re: Starting Out - Dev Board To Grow With...

Postby Matt Denton » Tue Jan 17, 2012 9:09 pm

Given your experience with the PIC processor family, if I used C as the Dev language, would this largely remove the differences between say the PIC18 and dsPIC33 chips, beyond general performance and pin count - or is there more to it than that?


Well kind of, but there are some hardware differences that also need to be understood such as setting up the processor clock and I/O ports etc. But the compiler should use the features of the CPU to its best advantage, although not always the case!

With regard to high level control using the HexEngine, does the HexEngine provide the ability to control individual leg movements at all (i.e. allow you to lift the front two legs for example)?


No. It allows gait and direction control, along with six axis of body motion control, and up to six channels of auxiliary servo control. Effectively its like an elaborate remote control car!

Also, for functions such as object tracking or sonic object detection, could this sort of functionality potentially be handled by the p.Brain in combination with the HexEngine (i.e. an all in one solution), or is the HexEngine dedicated to motor control only, requiring an additional MCU or other external control to facilitate this functionality?


The HexEngine is closed source so you wouldn't be able to add your own code to it. You would need to add a second micro controlling the HexEngine, or control the HexEngine from a PC via a serial or bluetooth link. This way you can develop high level applications on a PC without the need to add a second on-board micro controller. The HexEngine will allow some simple I2C devices to be polled over the bluetooth link via the HexEngine PIP protocol, so you could for example add an ultrasonic range finder with I2C bus to the HexEngine and poll its data back to the control PC.
Matt Denton
AKA: Winchy_Matt

micromagic systems ltd
Matt Denton
Site Admin
 
Posts: 1622
Joined: Tue May 20, 2008 9:15 pm
Location: Winchester UK

Re: Starting Out - Dev Board To Grow With...

Postby Frilby » Wed Jan 18, 2012 4:25 am

Thanks again Matt...

That makes it much clearer now regarding the HexEngine, and makes sense too.

So in a nutshell, the HexEngine is literally the "engine" of the hexapod, with the need to add a "driver" to control the unit - either as an on-board control system (MCU, mini PC, etc), or remotely via a PC link (tethered or wireless).

With regard to using the HexEngine vs programming this myself, could you recommend any reference material that would be worth a read to get an idea on the complexity of programming this from the ground up (to help me determine if this is even remotely achievable or simply something to avoid at all costs for fear go going completely insane :P )?

With regard to C compilers, you mentioned that this was you primary language for PIC controllers. Would you have any recommendations on a good compiler at all? If I go ahead with one of the Mikro Dev boards they offer MikroC which is aware of the associated Dev board accessories. Is this a good starting point, or am I better off with an alternative and more universal compiler?

I certainly have a long road ahead to wrap my head around this very exciting field!

Once again... Thanks for your time...

Cheers,
Frilby :)
Frilby
 
Posts: 3
Joined: Tue Jan 10, 2012 4:58 am


Return to General

Who is online

Users browsing this forum: No registered users and 2 guests

cron