2
\$\begingroup\$

I am at a loss of whether I need to use an FPGA or a microcontroller.

I need to build a robot that can chase my cats around and shoot them with a water gun. So there seems to be a number of parallel processes going on, including:

  • ultrasonic detection
  • color detection
  • motors
  • infrared remote commands
  • navigation
  • other stuff

Should I do this robot on FPGA? I mean programming it in C on a microcontoller would be super easy if I could use pthreads or something. Not interested in maintaining a bunch of finite state machines, I think doing it in just logic gates would be hard too?

Or maybe I need something like parallella or raspberri pi with a breakout board?

asked Apr 28, 2014 at 22:06
\$\endgroup\$
5
  • 2
    \$\begingroup\$ Cats have it easy these days. Back in my days, the bad kids used to tie a empty can on a string to the poor cat's tail. [Sorry, I couldn't resist making this remark.] \$\endgroup\$ Commented Apr 28, 2014 at 22:13
  • \$\begingroup\$ if it were dogs they are a much bigger target and an arduinoguing would be enoug \$\endgroup\$ Commented Apr 28, 2014 at 22:23
  • \$\begingroup\$ My stupid android misspelt that!! \$\endgroup\$ Commented Apr 28, 2014 at 22:24
  • \$\begingroup\$ Consider something off the shelf like Sparki -a cheap robot based on Arduino ? It is quite extensible. (bought one, no other association) \$\endgroup\$ Commented Apr 28, 2014 at 23:19
  • \$\begingroup\$ On a microcontroller, you would likely use an RTOS rather than something pthreads based. FreeRTOS is very popular and would let you spawn the different tasks that you need. You may want to think about chunking up the design into navigation/sensing and movement control. One micro to handle movement would be relatively simple, and it could receive commands from the nav/sens micro. \$\endgroup\$ Commented Apr 30, 2014 at 14:10

1 Answer 1

3
\$\begingroup\$

I do both hardware and firmware, and I think this project is a much better fit for a microcontroller than an FPGA, unless you're way more comfortable with logic design than coding C. As you said, running under Linux you can use multiple threads.

I believe the BeagleBone Black is probably the best platform for this project. It has way more I/O pins available than the Raspberry Pi. Forget the Parallella, since they've stopped taking pre-orders.

Although you didn't mention it in your post, I see you added a tag for Arduino. Don't even think of trying to use one of those for this project. The cats would win.

answered Apr 28, 2014 at 22:18
\$\endgroup\$
2
  • \$\begingroup\$ I quite like the idea of my cats being tormented by a Beagle. The paralella looks really good though, that's a shame. \$\endgroup\$ Commented Apr 28, 2014 at 22:27
  • 2
    \$\begingroup\$ +1 for microcontroller. The thing about logic gating is that it can get pretty wild when you need it to be conditional, and you'd probably end up building a soft microprocessor or controller into the FPGA anyway. \$\endgroup\$ Commented Apr 28, 2014 at 22:30

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.