Connect with us

Which PIC to pick? Could use a few pointers.

Discussion in 'General Electronics Discussion' started by Canobi, Aug 10, 2014.

Scroll to continue with content
  1. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    Hi guys

    I've recently been getting some serious interest in a replica prop project I started a while back from cosplayers and collectors alike, quite a biggie for a small time hobbyist like myself :)

    Only trouble is, I had to put it on hold due to lack of electronics skills, every other aspect of the project I had nailed or help with (including input from the props original creator, a very rare thing in the replica game, so count myself very lucky).

    Times moved on a bit and I can muddle through simple circuits and etch my own boards now, so I'm going to attempt to un-shelve the project and see how far I can get with it.

    As I've learned with any new undertaking, this is probably looking bigger than it actually is, but I could do with a few pointers and suggestions to pin down some of the componants needed.

    In an attempt to make it easier, I'll go through my overall plan so please bare with me if you can.



    This is one of my holy grails which is why I started the project, and after having studied them at length, I'm hoping it shouldn't be too hard to identify the right ICs and componants needed to make the replica work, though there are most likely going to be some I'm unaware of that might be better suited to the task, if my ramblings bring one or two to mind, I'd be glad to hear of them :)



    This is the prop in question. For those that don't know, it's an identity disc from the film Tron Legacy (I've been an avid Tron fan since I was a kid when the first one came out in the 80s, and I attribute it as one of the big influances for my interst in electronics)
    [​IMG]

    Here's a render of the replica modelled for CNC:
    [​IMG]


    There are two main light sequances and a bunch of sounds that are associated with this prop, so I'm going to need a decent ic that's up to the task of controlling both.

    The first animation I need to recreate is pretty basic and concerns the C shaped light in the centre of the disc body, luckily the sequance handily lends itself to the the LEDs being arranged as parallel groups.

    disc sync animation sequance, see [email protected]:00:34:

    TRON: LEGACY - "Sirens Dress Sam" Clip:




    The second animation is a bit more complex, but doable using PWM (blade animation @00:07.):

    The Grid: Disc Arena HD: ).




    I discovered LED driver buck ICs the other day, but it looks like they don't have PWM capability which is a shame.

    Anyone know if its possible to achieve the same effect without PWM?




    The ICs I've looked at so far are....

    ATMEGA8A-AU. The specs seem pretty good, though it comes with a heafty 350 pages of datasheet...(erk!). A major plus is that it supports capacitance switches which I was hoping to use for the on/off function.

    Handily, I've also been tentatively delving into the arduino language recently, so programing it shouldn't be too hard once I've had a bit more time to get to grips with it. There's also a lot of usefull code that's already written for most of the sensor switches I'm interested in so they should give me a good starting point when the time comes.


    The other micro controller I've been looking at is the PIC16F887 which I stumbled across while ham handedly googling for appropriate ICs. I'm still going through the datasheet which says its simple to code, and it does look like it has enough oomph for the job. It must be good as this one also sports a beefy 338 pages of datasheet, but I like the coding odds being as it only needs like 30 something basic commands, I can deal with that lol.



    Quick question, does anyone know if sounds can be embedded/coded into either of these chips?

    If not, does anyone one know of a small multi addressable sound/play chip with a capacity of about 10-15 sec of addressable wav quality audio that might be compatible?

    I see modules everywhere with some decently small chips on them, the really small ones are usually coated with some kind of black apoxy or equvilent (probably a bit lo-fi for my needs though), but I'll be damned if I can find any of the ICs on their own.

    So far I have an ISD2540 which fits the above description, however, it's in a PDIP package and is somewhat large. Not sure its going to work with the PCB design plan I'm aiming for, so I'm looking for an alternative

    Also, it seems that while my back was turned, the ISD25xx family were discontinued, so not sure I'll be able to get the smaller MSOP versions now, if I do they're likely to be somewhat expensive, and they weren't cheap to start with.



    Now, since I need to control some 200+ LEDs in a matrix, stuffing enough power onto one PCB in such a tight space was looking like a major a problem. The prop guys solved this by giving each LED it's own button cell, but the disc didnt stay lit for long before a recharge was needed. Fine for filming perposes, but not as a display item or costume prop where longer durations of "on" time are wanted/needed.

    After giving it some serious thought, I hit on the idea of splitting the PCB into sections and making it modular rather than go for a solid ring. One as the master, with the remainder being slaved (4 or 8 sections in total making a full ring).

    Also, if each one has its own power supply and charging capabilty during the charging, it solves the problem of supplying enough juice to the LEDs since each section has a lot less of them to deal with in the first place.

    I'm given to understand there's some pretty small lithium batteries for PCBs that could be used in this case, anyone have a lead on those?


    Splitting up the PCB also means that only two, maybe three small boards need to be designed rather than one big one depending on what will fit. It would also make repairs down the line simple too as it'll be possible to hot swap sections out should a one of them stop working.

    I will of course need to find a way to link the boards up, though possibly using right angle headers will be ok as the disc shell and other parts have been specifically designed to firmly hold and protect the PCB within.

    The plan for the C ring and blade is to make them from a medium firm rubber to allow the light to pass while acting as an impact/vibration absorbers.
    [​IMG]


    If anyone fancies making the gerber files for this once I've sorted out the component side of things, please drop me a PM. I have no experiance with PCB CAD yet, bar a phone app for tonor transfer which doesnt really count lol.
     
  2. (*steve*)

    (*steve*) ¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd Moderator

    25,500
    2,840
    Jan 21, 2010
  3. Gryd3

    Gryd3

    4,098
    875
    Jun 25, 2014
    Looks pretty easy to code for.
    14-16 LEDs in the middle ring, and a single PWM output on a PIC, or AVR can take care of the outer ring.
    Inner ring does not appear to use PWM in either scene presented.
    You could probably get away with using a 14-Pin microcontroller.
    2 pins for power, 1 pin for the PWM responsible to drive the outer ring, and that leaves you with 11 left over for the inner ring.
    Using Multiplexing, you could drive 16 segments with 8 or 9 pins. which leaves you with 2 pins for 'functions'.
    Of course, if you use an analogue pin, you could use a small resistor network to give a single pin the ability to detect several individual buttons or modes.
    This does not account for the sound effects you wish to use though, but you will find all sorts of resources on devices that can store and replay audio. (Personally, I would not do this with the same microcontroller that I was controlling lights with... but thats just me)

    As Steve has said, you should pick one and start to learn with it.
    What you want to accomplish will not be any easier or harder with an AVR or PIC. Pick one that catches your attention and that you would feel comfortable with.
    Members on this forum have experience with all sorts of goodies ;)
     
  4. (*steve*)

    (*steve*) ¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd Moderator

    25,500
    2,840
    Jan 21, 2010
    And, of course, there are many other options.

    My advice for beginners is to start with something for which there's a lot of support. If you're not already an assembly language programmer, don't initially pick something and think you'll be programming it in assembly in a few minutes... High level languages (Basic, C, C++, Pascal, etc.) may not be as fast to run or as tight, but they're a lot easier to learn and get going with.
     
    Arouse1973 likes this.
  5. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    Wow guys, thanks for the replies :D
     
  6. Canobi

    Canobi

    87
    3
    Jul 25, 2014

    Thank you for the links :) I saw the bottome one while researching this topic, but didn't see the top one, most helpful I must say.


    Multi plexing is looking like the way to go. It should be possible to link them up so via the board connectors so will be looking for chips that are ok to use alongside audio.

    Any suggestions for a starting point?
     
  7. Canobi

    Canobi

    87
    3
    Jul 25, 2014

    I saw someone post a pic of some kind of light sequencing program for arduino over one of the forums I frequent, going to try and find out what it is as it would simplify things massively:
    RING_SQUENCER.JPG.jpeg



    I wish I could get away with just 14-16 LEDs for the C ring, but I'm going for accuracy (seems to be the main reason for so much interest as well). According to Dougless, the original prop creator, each section has 9 small LEDs, though as mentiond, they are all in parallel.

    I'm now thinking about using two micro controllers for the master board. While the C ring doesn't do much, PWM is a good power saver, and having the extra coding space would mean I could play with charging status animations (not exactly cannon, but desirable nonetheless), and utilise all the switches I have planned.

    I'm interested to hear more on this resistor array for tactile control, I'll be implimenting that for sure.

    Embedding the sound as well as light control probably isn't the best idea I've had, makes sense to keep them seperate, so its looking like three boards.

    Well, I think I'm going for the ATMega. Datasheet is bigger, but I see that as only added flexibilty down the line, better to grow into something than grow out of it I've always said.
     
  8. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    I have an arduino pro mini so I'm going to play with that for a while. With the amount of info and support for it out there, it makes it the perfect place to start for me. Might even be able to use the same code I compile with the ATMegeA8A.
     
  9. Gryd3

    Gryd3

    4,098
    875
    Jun 25, 2014
    Devices like this will make it very easy to integrate audio. There are many devices like this on the market that will allow you to store audio on an memory card or on-board memory and playback at will.
    https://www.sparkfun.com/products/11125

    As far as the LEDs are concerned for the C-Ring.
    The video appears to have 16 segments. Using 9 pins would allow you to use 1 pin as a left/right half selector, and the other 8 will control pairs of segments based on the state of the first pin. Each segment can easily be multiple LEDs connected in series or parallel depending on your voltage supply, and it wont make a difference to your micro controller unless you wish to individually control each led within each segment.
    It also does not appear as though the C-Ring utilizes PWM as the segments light immediately and do not fade. The outer-ring however does appear to require PWM ( or you can implement it in software... doable but hardware support for PWM is much better )
    For input... do you want to use buttons, a small dial, a multi position switch, or capacitive touch?

    Also, I should mention that the pic you posted for the LED sequencer is for 'neopixels' which are addressable LEDs. They are unique in the fact that you can run an entire string of these things with a single data pin. Programming is a little different for them though, as you need to push out serial data to control the LEDs, but it cuts down on wiring. They have an amazing amount of support for the arduino family with pre-built code and utilities such as that.
    Here's some food for thought as well... google around for arduino clones. You may very well be able to build your circuit with an AVR and specific support components and program it like an arduino. Advantage here is that you dont need to glue a pre-built arduino board onto your project, and you save significantly on component cost.
     
  10. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    Thanks for the awesome replies everyone, super helpful :)

    I was just looking at those, found the ic too so it can be fully integrated on the board :)

    So even though they are linked in pairs, each group can be controlled individually?

    Ah, ok I get it :).


    I only mentioned PWM for the C ring as I thought it might save on energy usage.


    I'm guessing it saves on memory too which would be handy. How component heavy is it going the hardware rout?


    I'm going to need a few inputs.

    capacitance switch: A bit vague on how to best implimant this one. I know it's a proximity switch, so if I want it to latch I'm guessing I'll need a relay, or try and code it for things like time delay/do this/do that. Essentially I want to use it as the on switch.

    Reed switch = hidden behind the button detail on the disc shell:
    [​IMG]
    The plan for this is for cycling through functions. The magnet will be hidden in the index finger of the costume glove.

    Vibration switch/accelerometer = light to medium movement on z axis (I think thats the horizontal plain) activates disc throw sounds. Heavy movement/light impact-yz axis activates clash sounds and blade flash (the disc shell halves are 3mm thick and will be a tough plastic, durability is something I always strive for when I make something).




    Thats the ATMegeA8a right? Hmmm

    Can neopixle LEDs be bought individually?

    Less wiring sounds good to me, will need to look into it more as the C ring comes in different colours depending on which characters disc it is. It would be great to be able to change the colours at will.



    Thanks, I will do. I was hoping to avoid pre made modules in favour of making a set that link up to form a solid ring as an exact fit for the disc shell.
     
  11. Gryd3

    Gryd3

    4,098
    875
    Jun 25, 2014
    Yes, but will require some code trickery. The result will be that all LEDs in the C-Ring will be at a 50% duty cycle. Mutliplexing LEDs will cause this. You can counteract the loss in brightness by slightly overdriving the LEDs. (Each pin controls a pair of segments, so if you want to light both at the same time, you toggle the 'select' pin quickly and it appears as though both segments are lit. In reality, they are just flashing really fast. This is the same method digital clocks use ;))
    Please note that if the frequency is not high enough, you will be able to see the LEDs flicker if you swing your prop. (Google LED POV display)

    PWM is great for dimming your LEDs. The result is usually less power usage, however the end result is less light for a longer battery life. This is your call.

    Hardware support will not be component heavy unless you want to add a lot of PWM controls (for example, one for each C-Ring segment)
    Most microcontrollers have at least one PWM capable pin, which can be set and forgotten while you do something else. This is the hardware support I was referring to. If you want more PWM than a microcontroller can provide, you can find latching PWM controllers in the form of another IC that you can 'enable and set' and they will continue to provide a PWM signal at whatever you told it to do. It won't stop or change till you tell it to.

    You can use a reed switch for this or a hall effect sensor. The hall affect sensor has no moving parts, so may be an ideal alternative.

    You can find solid state accelerometers that you can implement for this project. I would not use a vibration switch unless you plan to buy multiples to experiment with to determine the best sensitivity.

    Not too sure what you mean here... the ATMega is an AVR that is used in Arduino products... ?

    Take a look at the adafruit store, they have neopixels available in strips, rings, and as individual through hole and surface mount LEDs.
    These are not some special item that only adafruit carry though. These LEDs have an ws2801 embedded inside that allows the control of 3 LED channels (usually RGB). You can buy the controller chips separately as well which will allow you to have 3 PWM capable outputs which you can use to control RGB LEDs or each chip can control 3 C-Ring segments. These are 'addressable LEDs' and there are many other suppliers. Be careful though, as some of theses devices have incredibly picky timing requirements to operate properly. Make sure you get a data sheet, and try to ask around before buying a specific kind.

    Haha, well. If we go back up to the previous quote. The addressable LEDs can be multicolor allowing you to set each element as you desire with the PWM output from the built in controllers. You want pink? no problem XD


    On a side note, it's great to see another Rhino user! That program has been my favorite for a long time.
     
  12. BobK

    BobK

    7,682
    1,688
    Jan 5, 2010
    For 16 LEDs I would not bother with multiplexing, which makes the code a lot more difficult. Use a big enough uC to drive each segment separately. A 28-pin should do for everything.

    Bob
     
  13. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    Well thats cleared that up nicely, cheers :) I can see why it saves on power being only a 50% duty cycle. Driving the current higher for extra brightnes almost seem counter intuitive though.

    I didn't realise it was called POV. Saw this effect years ago for a gizmo in Japan. Traffic wardens had these battons which they waved about leaving the words in the air, totally blew me away and always wanted to know that was done.

    Might make for an intersting extra though, with some clever programming I bet it would be possible to personalise each disc to have the customers username appear when activated and swung, that would go down a storm.


    The blade is goint to be PWM heavy as that does need more detailed animations, and if I've got this right, in order to address each LED, they need to be series?

    After doing a bit of math (I'm basing the math on the SMT LEDs being 3 mm, though I guess there are smaller and bigger ones out there so this number is just a ball park for now), splitting the PCB into 8 seems to work best as each section only has to deal with 16-18 leds each for the C ring, and about 30-36 LEDs for the blade (for the blade it's however many it takes so there are no visible gaps seen when looking at the lit blade).

    Given the amount of blade LEDs, I think I'll need to stick some voltage step up bucks, and PWM ICs in the circuit to run them I expect.

    OK, this perticular sensor has been throwing me for ages until you got me to look it up. Coming from a music/production background, I thought it was for measuring ambiance acoustic differences or something similar lol.

    I use software that can capture the audio acuostic properties of any piece of equipment or ambiant environment and use it on something else. It'll make anyone sound like their singing at the Sistine Chappel or any other open or enclosed space in existance. Or replicate the electronic behavior of top end sound production equipment that cost a months wages just to hire (this is my relm of expertise, been arsing with sound and music since I was 1 1/2)

    Yeh, much better control for sure :thumbsup


    Just a bit if confusion, no biggie ;)

    I originally mentioned two possible MCUs that could be used for the master board, the ATMegaA8a and the PIC16F887. You then responded by mentioning it was for neopixals, but you didnt say which of the two you were referring to.


    That info if gold dust right there, thank you. I'm begginning to see how this might all go together now, just need to work out how to figure voltage step up buck ICs into the equasion. I can't see it working without them.


    K, that helped it to sink in, heh heh. Oh the possibilities.......



    Loving it so far. I have to admit that most if the details on the disc were added by a pro. My 3D skills are still a bit basic.

    I took a look at lightwave first and ended up just scratched my head and fiddling for days with little to show.

    I found Rhino so much more intuitive that I was banging out shapes by the end on one day. I also found loads of useful tutorials and how-to's on YouTube which I follow as sort of lessons, but I don't get much time to sit in front of my screen between the family and project that need to be finished up for one customer or another:



    PhotoGrid_1407795248118.jpg PhotoGrid_1406420048027.jpg PhotoGrid_1388865532252.jpg PhotoGrid_1368895491302.jpg PhotoGrid_1368895685348.jpg PhotoGrid_1372610465388.jpg
     
  14. Gryd3

    Gryd3

    4,098
    875
    Jun 25, 2014
    The blade may be lit with as few or as many LEDs you desire.
    Running LEDs in series will require a boost converter or a higher voltage supply, but this will only be ideal if you are using LEDs of one color!
    It can be very difficult to power multi-color LEDs in parallel if you still want multiple colors to function independently.
    The addressable LEDs will typically be run in parallel, but the signal wire will be connected in 'series' (daisy chained together)
    You may get a kick out of this datasheet: http://www.adafruit.com/datasheets/WS2801.pdf

    You can of course make 3 different 'strings' of LEDs and control the whole string at once.

    Just so I'm sure.. You want the C-Ring to be multi-color AND to control each segment individually.
    Did you want the same for the outer ring?

    Here is another link that may get you thinking some more:
    http://hackaday.com/2014/06/24/the-200-led-ring-clock/
    Lots of addressable LEDs... which... if you want any other affect other than color, overall brightness control and 'burst' of light for the outer-ring... Addressable LEDs may be the way to tackle this one.
     
  15. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    Could you drop some names for these, id like to see how big they are as 16 LEDs for the C ring just won't cut it so will need three per section most likely.

    4d7e018f.jpg
    9d262e20.jpg

    Technically the gaps seen between each segment is only due to the shell structure obscuring the light from below as can be seen in the 3D render.

    The closest I came to recreating such a solid band of light was to bunch nine 3mm Leds together and make the clear window semi opaque white.

    I'm hoping to find very small and bright smt LEDs as this will help the diffusing effect since they will be further from the shell wall than through hole leds. Might mean I can use less to achive the same evenness too.
     
  16. Gryd3

    Gryd3

    4,098
    875
    Jun 25, 2014
    Let's drop the 16 LEDs in favor for 16 segments. Each segment can be as many LEDs as you can connect together, and each segment can be driven by a single pin on a microcontroller ;)
    Of course, adding color will require additional pins...
     
  17. Gryd3

    Gryd3

    4,098
    875
    Jun 25, 2014
    https://www.sparkfun.com/categories/21
    You have tons of freedom between what you pick. Just pick something with enough pins ;)
     
  18. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    Thanks for the datasheet, me likey :D

    Spookey, that guys LED clock is basically the same setup I'm aiming for (cues x files music).

    To clear thing up, all blades are white.

    The c rings different colours reflect the disc owners allegiance or hierarchy within the computer system. Neos sound the way to go, it would be neat not to have to buy a ton of different colour LEDs just to get confused and mix em up.
     
  19. Gryd3

    Gryd3

    4,098
    875
    Jun 25, 2014
    If it is only the C-Ring that is color, you have a couple options for each segment: (If we are avoiding multiplexing... which we probably should)
    1) Pack 6-9 LEDs into each segment (2-3 of each color)
    Connect identical colors together in a string, and power all 3 strings in each segment with a WS2801.
    2) Use 2-3 neopixels in each segment. (You will need to remember this when you make your code, as you will most-likely want to have each led within a segment to be the same color. Method #1 will behave as if all of the LEDs wired to the WS2801 were a single neopixel.)
    3) Using LOTS of pins, or GPIO expanders to control 54 outputs! (18 segments, 3 colors per segment)
    (Alternatively, multiplexing will work, but the pre-made neopixels or the ws2801 driver may be the way to go)

    The outer-ring will be the easiest part to control :D A single PWM capable pin will control a transistor or similar that will switch the entire collection of LEDs in the outer ring on/off. Using PWM, you can control the total brightness of the Outer-Ring. This will allow any number of fading effects of the entire ring at a time. If you want any kind of animation, you will need to employ additional tricks.
     
  20. Canobi

    Canobi

    87
    3
    Jul 25, 2014
    NeoPixels are an awesome idea, but for them to fit I'll need to get the C ring lightpipe tweeked as it was modeled for 3mm LEDs and noes are 5x5mm. Also, as space is at a premium inside the disc shell, making the base of the C ring lightpipe wider to accommodate them might compromise the ic and battery placement options as it would need to be around 7mm wide at the base. The PCBs max width is around 2.5" and about .5" at the highest near the inner edge of the pcb.

    IMG_20140813_135119.jpg

    The circuit complexity goes up a bit using neos too, so I may do a revised edition board at a later date (y'never never know, 3mm versions could be seen in the future).

    I also tend to get a little starry eyed and try to over engineer things if I'm not careful :lol. I have to remember that possibilities are great when in just in reach, but too much overstretching can topple a great idea. For now I'm going to do this as simply as possible.

    I have found the following items which might be of use to drive the blade and C ring LEDs, but could do with a second opinion.


    NCP1406

    TPS63020/1

    TPS61080/1

    WS2801 (as per suggestion)


    And an "if only" by these guys

    http://m.linear.com/product/LT3477

    Can't find the ic from any other vendor which is a shame, looks perfect for both sets of LEDs. Just wish I was a registered company and needed 25,000 of them. No samples available without the above either. Total bummer)


    Any idea where to find right angle/side mounting SMD LEDs?

    The blade sits 90° to the PCB so they need to point in that direction, not stright up.

    My search terms probably aren't up to it as I've seen LEDs with the emitter at the side of the package before, but I don't know if there's a proper name for 'em or not.


    Going to need more resolution for the blade LEDs as setting them all as parallel won't look right.

    There's a kind of ripple effect that travels around the blade as well as pulsing which is why I've hopefully selected the right components above to supply enough juice for them.
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-