Show Posts
Pages: [1] 2 3 ... 14
1  Topics / Robotics / Re: My second robot... on: October 24, 2012, 02:18:43 pm
It's been a while since I've updated this project...

Now she has retractable treads!



And some type of... weapon???

2  Using Arduino / General Electronics / Re: Making Custom PCB's on: September 06, 2012, 06:30:00 pm
I experimented with the back side of a board that I did a toner transfer on and was surprised at how well the sharpie masked!  I was thinking about fooling with doing some "plated" vias with one of those circuit writer pens as well. Not sure how well it would work though.
3  Using Arduino / LEDs and Multiplexing / Re: Need some help with mucho led's... on: August 26, 2012, 03:47:18 pm
Sorry about the vid. I guess I need to stop putting music to them.

I built this:


The pins at the bottom are numbered in the order they connect to the 85. I'm just trying to get something working with 12 leds for now.

I found some code that compiled and loaded fine but damned if I can get it to work properly...

the matrix is like this (led ground is the first number):

Led1-2,3
Led2-1,3
Led3-0,3
Led4-0,2
Led5-1,2
Led6-3,2
Led7-2,1
Led8-0,1
Led9-3,1
Led10-2,1
Led11-1,0
Led12-3,0

This is the sketch I'm playing with:

Code:
#include <avr/pgmspace.h>  //This is in the Arduino library

int pins[4];
int blinkdelay = 200;   //This basically controls brightness. Lower is dimmer
int runspeed = 150;      //smaller = faster

const int ledPins[12][2] ={ // This stores the led pins order NOTE:You may need to change the order of these
  {
    3,2  } //1
  ,
  {
    3,1  }//2
  ,
  {
    3,0  }//3
  ,
  {
    2,0  }//4
  ,
  {
    2,1  }//5
  ,
  {
    2,3  }//6
  ,
  {
    1,2  }//7
  ,
  {
    1,0  }//8
    
  ,
  {
    1,3  }//9
  ,
  {
    1,2  }//10
  ,
  {
    0,1  }//11
  ,
  {
    0,3  }//12
  ,


};

byte displays[][12] PROGMEM ={  // This stores the array in Flash ROM. You can easily have 500+ frames.
  //left right blinking
   {0,1,1,1,0,0,0,0,0,0,0,0},
   {0,0,0,0,0,0,0,0,1,1,1,0},
   // out in blinking
   {0,0,0,0,0,1,1,0,0,0,0,0},
   {1,1,0,0,0,0,0,0,0,0,1,1},
   // counting in binary
   {0,0,0,0,0,0,0,0,0,0,0,0},
   {0,0,0,0,0,0,0,0,0,0,0,1},
   {0,0,0,0,0,0,0,0,0,0,1,0},
   {0,0,0,0,0,0,0,0,0,0,1,1},
   {0,0,0,0,0,0,0,0,0,1,0,0},
   {0,0,0,0,0,0,0,0,0,1,0,1},
   {0,0,0,0,0,0,0,0,0,1,1,0},
   {0,0,0,0,0,0,0,0,0,1,1,1},
   {0,0,0,0,0,0,0,0,1,0,0,0},
   {0,0,0,0,0,0,0,0,1,0,1,0}
};


// The setup() method runs once, when the sketch starts

void setup()   {                
  // initialize the digital pin as an output:
  pins[0] = 0;
  pins[1] = 1;
  pins[2] = 2;
  pins[3] = 3;
  sequenceon(); // Does one loop of the cylon effect
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void loop()                    
{
    sequenceon(); //Turns on cylon effect
//  displayChar(0,1, 100); //In/out blinking
//  displayChar(4,14, 200); //Counts to 15 in binary
}

void displayChar(int from, int through, int tranSpeed)// loads a Pattern from above. From & though spesify what patterns to show. tranSpeed is the speed of the frames
{
  boolean run = true;
  byte k;
  int t = from;
  while(run == true)
  {
    for(int i = 0; i < tranSpeed; i++)
    {
      for(int j = 0; j < 12; j++)
      {
        k = pgm_read_byte(&(displays[t][j]));
        if (k == 2)
        {
          run = false;
        }
        else if(k == 1)
        {
          turnon(j);
          delayMicroseconds(blinkdelay);
          alloff();
        }
        else if(k == 0)
        {
          delayMicroseconds(blinkdelay);
        }
      }
    }
    if(through == t){
      return;
    }
    t++;
  }
}
void ledSpecify(int highPin, int lowPin) // This allows you to manually control which pin goes low & which one goes high
{
  for(int i; i < 4; i++){
    pinMode(pins[i], INPUT);
  }
  pinMode(pins[highPin], OUTPUT);
  digitalWrite(pins[highPin], HIGH);
  pinMode(pins[lowPin], OUTPUT);
  digitalWrite(pins[lowPin], LOW);
}

void turnon(int led) // This turns on a certian led from the list of leds
{
  int pospin = ledPins[led][0] + 2;
  int negpin = ledPins[led][1] + 2;
  pinMode (pospin, OUTPUT);
  digitalWrite (pospin, HIGH);
  pinMode (negpin, OUTPUT);
  digitalWrite (negpin, LOW);
}


void alloff() // This turns all the LED's off
{
  for(int i = 0; i < 5; i++)
  {
    pinMode (pins[i], INPUT);
  }
}

void sequenceon() // This handles the cylon effect
{
  for(int i = 0; i < 12; i++)
  {
    turnon(i);
    delay(100);  
    alloff();
  }
  for(int n = 10; n > 0; n--)
  {
    turnon(n);
    delay(100);  
    alloff();  
  }
}


Ye Olde Charlieplex schematic:


I just noticed that the 85 only has 3 analog inputs and I'm only using 1. Not sure if that's part of the problem...

I figured I'd change the thread title because this is what It's morphed into.

New matrix schematic:



In the code where the pins are listed in order does the cathode or anode go first?



4  Using Arduino / LEDs and Multiplexing / Re: Need some help with mucho led's... on: August 26, 2012, 04:40:34 am
I'm confused...

I was going by this: http://www.instructables.com/id/CharliePlexed-LED-string-for-the-Arduino/

And I basically copied it only I added an ATtiny 85 to it instead of using an Arduino.

http://www.youtube.com/watch?v=SgrLfPds3n0&feature=youtu.be

At least it's doing something...
5  Using Arduino / LEDs and Multiplexing / Re: Need some help with mucho led's... on: August 22, 2012, 07:34:18 pm
I ordered a couple of MAX7219CNG chips. I guess I'll study up on them this weekend...
Any tips?
6  Using Arduino / LEDs and Multiplexing / Charlieplexing a row of LED's on: August 21, 2012, 07:18:53 pm
Wow, I really hate to bump my own thread but if anyone has any parts recommendations I need to get them on the way...

Her project is a sort of animated atom with 12 neutrons and 12 protons in the nucleus. She was thinking two different colors and having them blink in a pattern. The first shell will have 8 leds and only 2 will be illuminated at once, also in a blinking pattern. The 2nd shell will have 12 leds with 8 illuminated at once in a pattern similar to the 1st and the 3rd shell will have 8 leds with 2 illuminated.  I hope that makes sense. I don't really have time to do a lot of searching so I was hoping for some help.

I ordered abut 200 leds from ebay a while back and my daughter thought the project up and has already built some of the "hardware"  smiley-red

She's pretty good at soldering because she makes jewelry from old computer board parts  smiley so she'll handle most of the work. It just came at a bad time because this week is REALLY busy at work so I don't have much free time. I need to get in the bed soon...

Anyway, I have a couple of 328 chips that aren't doing anything and I have experimented a little bit with multiplexing on attiny 85's but that's about it.

Any help would be GREATLY APPRECIATED!

Thanks.
7  Using Arduino / LEDs and Multiplexing / Charlieplexing a row of LED's on: August 21, 2012, 03:26:57 pm
I mainly fool with motors and such but my 13 year old daughter wants to put some blinking led's on a project. It's going to be about 40 leds in 4 groups of 6-10. She wants a random pattern between groups. I'm going to be very busy with work this week so it's going to have to be done over the weekend.

Any tips? I need to know if any parts will be required so I can order soon.

Thanks.
8  Using Arduino / General Electronics / Re: Could someone look over this board on: August 20, 2012, 06:32:35 pm
I added room for another cap, plus the pull up resistor for reset (To 5v right?) and the reset button grounds the reset pin. I'm not having much luck generating a schematic from fritzing. Mainly because I used 2 pin headers to make 3 pins and the 15 pin...

I just used the PCB view to sort of point-to-point  smiley-roll-blue

I guess this is it:



I'm going to carefully go over everything before attempting to etch. I added some vias at the corners to aid with registration.

The power led resistor is in the cap spot beneath it. Fritzing doesn't seem to have an "up and down" resistor footprint so I substituted a cap. But thanks for scoping it out florinc!

I appreciate all the input and I'm working on straightening the schematic out...
9  Using Arduino / General Electronics / Re: Could someone look over this board on: August 20, 2012, 02:25:25 pm
I'm not familiar with ground planes although I've heard reference to them. Interesting about the 90 deg bends! I always wondered why boards seem to have a lot of 45's.
10  Using Arduino / General Electronics / Could someone look over this board on: August 20, 2012, 02:12:16 pm


This will be my first attempt at something this complicated and I'm just learning Fritzing and basic board layout so it may be a bit funky.

The bottom is power in going to a 7805 which powers the 328 and L298. A couple of places for decoupling caps and a power LED. The next chunk under the header holds the diodes, 4 LED's and output sockets for the motors.

Above that is a header for a little L298 breakout board 1-15 numbered from the left. I was going to build the L298 onto the board but I figured I could make some other plugin driver boards if I wanted to fool with other drivers.

Above that is the 328. I still need to route the reset button. I put a place for another decoupling cap close to the chip.

The VR spot in the upper left is for a DC/DC converter for driving servo motors from the pins to the right of it. The DC converter will power them and the inputs are wired to the chip.

The 2x6 is a programming plug. I just pull the chip on my UNO to program standalone stuff...

The 8 pin header on the right are just I/O pins but the bottom 4 pins have 5V and ground for plugging in an ultrasonic sensor.

I still need to review my notes to check all the 328 "life support" stuff.

This is the L298 circuit I used:

http://content.solarbotics.com/products/schematics/solarbotics-l298_schematic_complete.jpg

I built one driver board plus another driver board with a 328 and both worked well. They were on protoboard but I want to do something with PCB's. It's pretty cool messing with it  smiley

Thanks.
11  Using Arduino / General Electronics / Re: Tips on double sided PCBs... on: August 20, 2012, 07:49:27 am
Thanks for the tips! Sounds like there isn't any magic bullet...

Nice board resinator! I'm etching mine and using Fritzing. I may try Eagle in the future...

If I needed a bunch of boards I would consider having them made but making my own stuff is pretty rewarding.
12  Using Arduino / General Electronics / Tips on double sided PCBs... on: August 19, 2012, 08:58:24 pm
I've started moving away from the protoboard because soldering all those wires is such a PITA but it seems that making PCB's has it's own set of troubles...

I've been fooling with L298's some and figured a breakout board would be a fun first project:





It ended up being a double sided deal and the way I handled it was just to solder both sides where the components mounted. It worked OK but that'll be tough to do on my next project because I'm going to have a female header and I won't have access to the pads underneath.

Does anyone have any tips on how to deal with this? I was thinking that there may be some way of "wicking" solder through the holes before assembly.

Thanks.
13  Topics / Robotics / Re: Robot #3... on: August 13, 2012, 07:23:32 pm
You can see one chassis pretty well in this vid:



It's a dollar store erector set knockoff bulldozer kit with 2 servos modified for continuous rotation. That seems to be the easiest route to turning wheels/tracks etc.

The vid in the first post is a Tamiya dual gearbox and Tamiya track set that I rigged up with another cheap-o erector set.

Here's a couple of bad pics:





The second is a board with an L298 driver which seems to work well with the Tamiya box. It may not be the best choice but it was fun to build  smiley-razz

The gearbox is a little model that you assemble and the track set is just a bunch of parts. I got them both from Sparkfun.

Yea, bots and stuff that rolls around under power are cool to mess with  smiley-cool

That board turned out to be pretty large and I think I'm going to try to duplicate it only smaller. Maybe with a home brew PCB  smiley-roll-blue

Here's a link to a thread about my L298 adventures:

http://arduino.cc/forum/index.php/topic,116935.0.html
14  Topics / Robotics / Robot #3... on: August 12, 2012, 06:30:59 pm
DC motors instead of modified servos this time.

15  Using Arduino / General Electronics / Re: LM298 question on: August 08, 2012, 05:49:40 pm
Quote
const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;

This sounds wrong. There are no brake + direction pins on the L298. See the
following logic table.

http://html.alldatasheet.com/html-pdf/22437/STMICROELECTRONICS/L298/9733/6/L298.html

You should tie the PWM lines to the Enable inputs, and set C,D hi/low to set
direction, plus stop and brake per the table.


Thanks! I think that's what had me confused. I did figure out that PWM goes to the enable pins.
Pages: [1] 2 3 ... 14