Master-slave with PC communication

Hi everyone!

I’m making a degree project about robot localization system using Pololu 3pi as a development platform. Localization algorithm will probably use built-in 3pi IR sensors for detecting a floor grid and some ultrasonic devices to avoid wall collisions.

Here comes the important part: I want to be able to perform a localization algorithm on my robot and I want to be able to communicate with my robot using a PC. In order to achieve this, I think I should put heavy calculations on another microcontroller (master), connect it by serial with 3pi (slave) and a wireless transceiver (PC communication). I already have a 3pi and a wireless module, but I don’t know what kind of master uC I really need. Could you help me make my decision?

3pi robot:
https://www.pololu.com/catalog/product/975

MSP430 eZ430-RF2500 transceiver:
http://www.ti.com/tool/ez430-rf2500

Some tips:

  • Transceiver can be connected to master by UART (and maybe a voltage divider). So can Atmega328p from 3pi. That should mean a master uC needs to have at least 2 UARTs.
  • I have a usbasp AVR programmer, so master uC should be able to work with it.
  • Also, I would like to keep it cheap and simple.

Unfortunately that’s all I can say about the part I need.
Thanks in advance!!!

Hi! From your description it sounds like you are basically looking for an AVR with two UARTs. Atmel’s ATmega1284p could work for you: it has 128K of program space and can run at 20 MHz. You could buy it on an Orangutan SVP-1284 or get the DIP version.

The ATmega2560 also has a two UARTs. You could get that on an Arduino Mega 2560.

Both of the boards I mentioned above have integrated programming capabilities, so you wouldn’t need your programmer.

If you are willing to try something that’s not an AVR, the mbed would be a fine choice. Its 32-bit ARM processor is much more capable than the AVRs. With an m3pi robot, you could even mount the mbed on one of your 3pis, which might be interesting for this application.

–David

Thank you very much for your help!