Model animation

Hi all,
I have a project in mind that I think can be accomplished by an arduino, but I'm not sure if 1 arduino has the capability or indeed where to start learning how to achieve it.

I have used an arduino several years ago to reasonable success so I'm not a total noob, but by no means an expert!

The project:
the end result is to have a static model aircraft (4 engines/dc motors). At the start point, all motors will be off. Press 1 button and an audio file (wav/mp3?) starts to play, then each engine starts to rotate until it reaches max rpm, when the next engine starts. The end of the start sequence would be when all 4 engines are at max rpm with an audio loop playing.
Then press another button (or same) and the sequence will reverse, i.e. play a different audio as the motors power down until all 4 are stopped.

In a perfect world I would also like to have a mini screen (tft maybe) displaying some kind of count down, or other info.

So, from rest.

  • images/video playing on the screen
  • press button 1 and the screen starts a 30 sec countdown
  • when count down ends the engines go through their start sequence to the max rpm loop
  • engines stay at max rpm with a sound file looped
  • press button 2 and the shutdown sequence starts until all engines are stopped, the screen then goes back to images/video playing.

From memory, doing the motors won't be too much of an issue on 4ch pwm
I've never done sound from an arduino, do I need some kind of shield?
I've never controlled a screen from an arduino, do I need some kind of shield?

Would 1 arduino have enough outputs to achieve this or would I have an easier time having one arduino doing the motors and maybe sound, and the other doing the video and event triggers (sent to the other board)

So, basically, help, could someone point me in the right direction!

The motors and switch, no problem. There are MP3 player shields for the sound. They play recorded sound from an SD card. The display will depend on how big that you want it and if you want color. There are libraries for most any display that make using them pretty easy. They also come in I2C or SPI interfaces so use few pins.

You should be able to fit the hardware to one Uno or the like.

The video may be the hard part. Arduino boards don't have the memory nor the speed for video.

Well I think you might have trouble with the motor speed. Using PWM to control the motor speed only works when the motor is loaded. A free running motor with no load to speak of will tend to look as being on fast or off with nothing much in between in the way of speed.

Try one motor first before you commit to anything.

Thanks for the replys.
I was reading a page about using a screen for images, that may work, depends on how they're drawn though, that page mentioned drawing from a point. Does the image appear as if someone were playing snake? (Line across, line down, line across etc?

Good call on the motors. The ones intended to go in are little geared ones that offer 5-200rpm at 3-12v

Sounding positive so far. Where would you recommend starting. Is it as simple as working out the motor control, then getting it to trigger correctly, then adding the sound code to the existing motor code, then screen code in the middle of all that? I'm worried it'll end up as one huge cluster ***k!

Might it be wise to start building on one of the larger boards with more Io pins, in case I need the 'space'?
If needed could the code be written to an unofficial or is the addressing different ?

I am only familiar with drawing bitmaps on an LCD. The library that you use will have the particulars on how to place and draw a bitmap. It is hard to talk about the LCD in such general terms. There are so many. If you have a specific display in mind we could give more specific advice.

Your plan sounds good. The Planning and implementing a program tutorial will help to remove some of the cluster danger.
A tutorial on using millis() for timing to write non-blocking code.

Might it be wise to start building on one of the larger boards with more Io pins, in case I need the 'space'?

Sure, but I really think that an Uno (or the smaller mega328 based boards like Nano) would have enough pins to do what you want. Also, it is easy to add pins with shift registers or I2C IO expanders.

If needed could the code be written to an unofficial or is the addressing different ?

If it says Arduino compatible your code should should run on it, whether it is official or a clone, without changes.

Thanks for all the replies, i think the next step is going to be a lot of reading and buying an Arduino.

For the LCD I have no.idea maybe 5x3cm or up to 10x7 at a push do you have any suggestions? No use or need for touch acreen.

I'm gonna to have a look on ebay this eve, is there any thing Al's you suggest I get. I was thinking, Arduino of some description, MP3 shield, maybe an ir module for remote triggering
What should.i look for in an mp3 shield?

For the LCD I have no.idea maybe 5x3cm or up to 10x7

The important thing is the resolution, how many pixels there are. Then you need to know there are two types of displays. One type where you need a buffer of the same size as the display and you transfer the buffer into the display in one go. This has the disadvantage that you need a large buffer and this sometimes exceeds the memory you have in an Arduino.

The other type has the memory on board and you just accumulate an image from the bits you tell the Arduino to change.