Halo Battle and Assault Style Toys With Realistic Firing.

7,855

52

30

Published

Introduction: Halo Battle and Assault Style Toys With Realistic Firing.

Based on the Halo 3 Battle and Assault weapons, outline 1:1 scaled to what Halopedia determine as the correct dimensions.

Car locking solenoids for sound/vibration, white and yellow phased LEDs for muzzle flash, 36 and 32 rounds ammo counter and realistic rounds per minute.

Further pictures and CCS C source at my web site www.iecd.co.uk/toys

Share

    Recommendations

    • Casting Contest

      Casting Contest
    • Flowers Challenge

      Flowers Challenge
    • Spotless Contest

      Spotless Contest
    user

    We have a be nice policy.
    Please be positive and constructive.

    Tips

    Questions

    30 Comments

    user

    Sorry this is an old project, I had a look through my old stuff and I think this should be a working example.

    #include<16f883.h>
    #use delay (clock=4000000,RESTART_WDT)
    #byte PORTC=7
    #fuses NOWDT,INTRC_IO, MCLR

    long k = 0;

    void SSeg(int Count);

    #define MUZ1 PIN_A5
    #define MUZ2 PIN_A4
    #define TORCH PIN_A3
    #define LED1 PIN_A2
    #define LED2 PIN_A1
    #define SOLENOID PIN_B0

    #define SSEG1_K PIN_A7
    #define SSEG2_K PIN_A6

    #define TRIG PIN_B5
    #define MAG_IN PIN_B4
    #define BOLT_BACK PIN_B3
    #define SAFE_ON PIN_B2
    #define TORCH_ON PIN_B1


    void main(void)

    {

    int Rounds_Rem = 0, TRIG_LATCH = 0;
    long X = 0;
    short TRIG_FLAG = 0;

    //printf("Halo Assault Rifle V1.1 J.Austin 2008\n\r\n\r\n\r");

    //setup_adc(ADC_CLOCK_INTERNAL);
    //setup_adc_ports(sAN0|VSS_VREF);

    output_low(TORCH);
    output_low(MUZ1);
    output_low(MUZ2);
    output_low(SOLENOID);
    output_low(LED1);
    portc = 0;



    output_low(BOLT_BACK);
    output_low(MAG_IN);
    output_low(TORCH_ON);
    output_low(SAFE_ON);
    output_low(TORCH);
    output_low(LED1);
    output_low(LED2);

    Rounds_Rem = 36;
    do
    {

    if(Rounds_Rem == 0 )
    {
    if(X < 300)
    {
    SSeg(Rounds_Rem);
    delay_ms(50);
    X++;
    }
    else
    {

    Rounds_Rem = 36;
    X = 0;
    }
    }


    if(input(TRIG) && TRIG_FLAG == 0 )
    {
    TRIG_LATCH = 3;
    TRIG_FLAG = 1;
    }

    if(!input(TRIG) )
    {
    TRIG_LATCH = 0;
    TRIG_FLAG = 0;
    }


    if( Rounds_Rem > 0 && TRIG_LATCH > 0)
    {
    Rounds_Rem--;
    TRIG_LATCH--;

    output_high(MUZ1);
    delay_ms(20);
    output_high(MUZ2);
    delay_ms(20);
    output_low(MUZ1);
    delay_ms(10);
    output_low(MUZ2);

    output_high(SOLENOID);
    delay_ms(30);
    output_low(SOLENOID);

    }


    if( input(TRIG) ) k = 0; //Batt go into "low usage mode".

    k++; //5ms+ prog time for SSeg to return 12000=1min
    if( (k > 12000) )
    {
    delay_ms(500);
    portc = 0;
    }
    else
    {

    delay_ms(1); //delay plus execution time, of 7 seg off duration
    SSeg(Rounds_Rem); //call 7 seg display
    output_high(LED2); //turn led off
    }



    }
    while(true);

    }



    void SSeg(int Count)
    {

    Int Tens, Units, NumToConv, x=0;
    Short F=1;


    Tens=Count/10; //Divide count by 10 to get Tens
    Units=Count%10; //And find the remainder for the Units



    set_tris_c(0);



    do
    {

    ++x;
    if(F) //F is just a scratch flag here
    {

    NumToConv = Tens;
    Output_low(SSEG1_K); //Turn off "10s" & on "1s"
    Output_high(SSEG2_K);
    F=0;

    }
    else
    {

    NumToConv = Units; //Turn off "1s" & on "10s"
    Output_low(SSEG2_K);
    Output_high(SSEG1_K);
    F=1;

    }

    switch (NumToConv)
    {
    case 0:
    PORTC=63; //Decimal 63 produces 0 on the 7 seg display
    break;

    case 1:
    PORTC=6;
    break;

    case 2:
    PORTC=91;
    break;

    case 3:
    PORTC=79;
    break;

    case 4:
    PORTC=102;
    break;

    case 5:
    PORTC=109;
    break;

    case 6:
    PORTC=125;
    break;

    case 7:
    PORTC=39;
    break;

    case 8:
    PORTC=127;
    break;

    case 9:
    PORTC=111;
    break;

    default:
    PORTC=128; //Turn "nav" led on
    restart_wdt();
    }


    delay_us(2500); //This delay sets the On time for each Display
    portc = 0;
    }
    while(x<2);

    portc = 0;
    output_low(SSEG1_K); //Turn off both "10s" & "1s"
    output_low(SSEG2_K);


    }

    I could not access your website. Is there any other website that I can go to for the CCS C source code?

    I'm looking to purchase a lazertag system to start a lazertag business,
    would you be able to produce or lead me to the guns and equipment I need
    that would be safe and certifiable, that would be a cheaper option than
    the $600/gun price range that I've seen advertised by the lazertag
    manufacturers? email if so at ulrichinvesting@gmail.com

    wow please send me the scemitac for this

    dude you are so lucky you know how to make all that electric crap

    i really want an Electric Energy Sword so bad but im not smart enough XD

    and :( :(

    1 reply

    hey listen make a engry sword out of clear plastic tubes then just wire up batterys to leds or el wire and thats all

    While this is very nice, im a newbie to some of the stuff on the new site, can you edit the text on the page and give a small step by step on what we should be reading and looking at? i cant find material lists or anything

    i hve the same scope

    It would've been better if you rounded the top of the assault rifle, but none the less, it's still awesome!

    a step by step would be apriciated ... i bet you could rig it to work w the covenant lazer tag weapons

    6 replies
    user

    I will try and put something together. I am not familiar with the exact equipment of the covenant laser tag, but these systems are generally very simple. You would need to examine the serial data transmitted via the laser. Some time ago I built an experimental "sniper rifle" with scope. It fired an encoded laser at a "target" consisting of rotating photo diodes. The software tried to account for theoretical wind and gravity, of course these did not effect the laser, but we tried to simulate what would be happening to a projectile. I had it working over distances of half a mile. The project returned data over a radiolink.

    What kind of Photo-Diodes dis you use? Do you have schematics? What kind of laser with what kind of power source? Was the "Working distance" the laser, or projectile? Did it actually shoot the diodes? How? -RoAr

    user

    I am sorry that was a commercial project, and I can not expand on it here.

    The covenent tag system is easy, i modded a few nerf guns to work with them, i just took a few broken parts and some spare IR leds and soldered them to a momentry switch on the trigger =D

    covenant as in the aliens from halo

    wow thats realy cool :P

    You should definitely make a how-to.