Death-ray til junior...

Beskriv dine tips, tricks og gør-det-selv projekter.
Dette forum er IKKE til at stille spørgsmål om ting du gerne vil gøre, men til at FORTÆLLE OM TING DU HAR LAVET, til glæde og inspiration for andre.
Besvar
Brugeravatar
Bofhenator
Moderator
Moderator
Indlæg: 9702
Tilmeldt: 22. apr 2010, 22:01
Interesser: Pistol, Riffeljagt, Genladning
Geografisk sted: Nordsjælland
Has thanked: 1726 times
Been thanked: 2152 times
Kontakt:

Death-ray til junior...

Indlæg af Bofhenator » 17. okt 2016, 14:20

Jeg kan ikke tage kredit for navnet, det var Refrak der kom med det i en SAAB tråd... og jeg lovede en opdatering.

Her er servoerne styret med thumbsticken:

youtu.be/DG1QlFWik9Y

Og her med accelrometeret:

youtu.be/WLUAryxeDOw

Man skal stadig manuelt skifte imellem det i koden. Det bliver opdateret så man kan bruge en af knapperne til det.

Den anden knap skal bruges til at slippe elektroner løs... Men det er ikke færdigt endnu...

Her er koden for dem der er nysgerrige, den er stadig lidt rodet og fyldt med egne noter og debug-output.

Kode: Vælg alt

/*
 * WiiChuck for two servos
 * Using thumbstick or accel.
 * Bofh, 17-10-2016
 *
 */

#include <Wire.h>
#include <nunchuck_funcs.h>
#include <Servo.h>

int loop_cnt=0;

byte accx,accy,zbut,cbut,joyx,joyy; //store byte from chuck
int ledPin = 13;

Servo myservox;  // create servox object to control a servo on the horisontal axis
Servo myservoy;  // create servoy object to control a servo on the vertical axis

int valx; //a var to move servox
int valy; //a var to move servoy


void setup()
{
    Serial.begin(19200);
    nunchuck_setpowerpins();
    nunchuck_init(); // send the initilization handshake
    
    Serial.print("WiiChuckDemo ready\n"); //Chuck ready?
    delay(500);

    //Get servos ready
    
    
    myservox.attach(9);  // attaches the servo on pin 9 to the servo object
    myservoy.attach(10);  // attaches the servo on pin 10 to the servo object
    myservox.write(45); //set servox to 90
    delay(10);
    myservoy.write(90); //set servoy to 90
    delay(10);
    Serial.print("Servos ready\n");
    delay(500);

    
    
}

void loop()
{
    if( loop_cnt > 50 ) { // every X msecs get new data
        loop_cnt = 0;

        nunchuck_get_data();

        accx  = nunchuck_accelx(); // ranges from approx 70 - 182
        accy  = nunchuck_accely(); // ranges from approx 65 - 173
        zbut = nunchuck_zbutton(); // 0 or 1
        cbut = nunchuck_cbutton(); // 0 or 1
        joyx = nunchuck_joyx(); // ranges from approx 31 to 234
        joyy = nunchuck_joyy(); // ranges from approx 19 to 213
        Serial.print("accx: "); Serial.print((byte)accx,DEC);
        Serial.print("\taccy: "); Serial.print((byte)accy,DEC);
        Serial.print("\tzbut: "); Serial.print((byte)zbut,DEC);
        Serial.print("\tcbut: "); Serial.println((byte)cbut,DEC);
        Serial.print("\tjoyx: "); Serial.println((byte)joyx,DEC);
        Serial.print("\tjoyy: "); Serial.println((byte)joyy,DEC);
        //valx = map(joyx, 31, 234, 4, 176); //make joyx values 2 servox values 
        valx = map(accx, 70, 182, 4, 176); //make acellx values 2 servox values 
        myservox.write(valx); //write to servox
        //valy = map(joyy, 19, 212, 0, 123); //make joyy values 2 servoy values 
        valy = map(accy, 65, 173, 0, 123); //make accy values 2 servoy values 
        myservoy.write(valy); //write to servoy
    }
    loop_cnt++;
    delay(1);
    
}
Jeg har tre røde laser sigter der skal på (eller måske et laserkryds), men med tre røde prikker og monteret på skulderen i et paprør og lidt oogoo, så er der ikke et predator-øje tørt (ja, du må gerne låne den til næste comic-con Elbæk).

Nærbillede af gimballen:
4a556a2482573581b47ba1a6f8ec1766.jpg
4a556a2482573581b47ba1a6f8ec1766.jpg (234.51 KiB) Vist 1972 gange
Der kan man også tydeligt se hvilke servoer jeg har brugt.
/bofh
"never attribute to malice that which is adequately explained by stupidity"
Hanlons razor

Brugeravatar
Elbæk
Platin Member
Platin Member
Indlæg: 6305
Tilmeldt: 15. okt 2007, 15:01
Interesser: WW2/jagt/CAS/blankvåben
Geografisk sted: Østjylland
Has thanked: 559 times
Been thanked: 1340 times

Re: Death-ray til junior...

Indlæg af Elbæk » 17. okt 2016, 14:31

:Hug:
"Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."
-Friedrich Nietzsche, Jenseits von Gut und Böse, 1886

Kenned
Platin Member
Platin Member
Indlæg: 2228
Tilmeldt: 28. mar 2008, 12:52
Interesser: UV-jagt, våben, Teknik
Geografisk sted: København S
Has thanked: 462 times
Been thanked: 352 times

Re: Death-ray til junior...

Indlæg af Kenned » 17. okt 2016, 14:46

Cool - så skal accelerometeret bare monteres i Elbæks predatorhjelm :biggrin:

/K
Jeg er multi-religiøs - jeg tror lige lidt på alle religioner

Brugeravatar
Bofhenator
Moderator
Moderator
Indlæg: 9702
Tilmeldt: 22. apr 2010, 22:01
Interesser: Pistol, Riffeljagt, Genladning
Geografisk sted: Nordsjælland
Has thanked: 1726 times
Been thanked: 2152 times
Kontakt:

Re: Death-ray til junior...

Indlæg af Bofhenator » 17. okt 2016, 16:35

Kenneth Jensen skrev:Cool - så skal accelerometeret bare monteres i Elbæks predatorhjelm :biggrin:

/K
Netop...


Nu er koden fikset så den skifter mellem headtracking og manuel kontrol når man trykker på knap C på nunchuck'en:

Kode: Vælg alt

/*
 * WiiChuck for two servos
 * Using thumbstick or accel.
 * Bofh, 17-10-2016
 *
 */

#include <Wire.h>
#include <nunchuck_funcs.h>
#include <Servo.h>

int loop_cnt=0;

byte accx,accy,zbut,cbut,joyx,joyy; //store byte from chuck
int ledPin = 13;

Servo myservox;  // create servox object to control a servo on the horisontal axis
Servo myservoy;  // create servoy object to control a servo on the vertical axis

int valx; //a var to move servox
int valy; //a var to move servoy


void setup()
{
    Serial.begin(19200);
    nunchuck_setpowerpins();
    nunchuck_init(); // send the initilization handshake
    
    Serial.print("WiiChuckDemo ready\n"); //Chuck ready?
    delay(500);

    //Get servos ready
    
    
    myservox.attach(9);  // attaches the servo on pin 9 to the servo object
    myservoy.attach(10);  // attaches the servo on pin 10 to the servo object
    myservox.write(45); //set servox to 90
    delay(10);
    myservoy.write(90); //set servoy to 90
    delay(10);
    Serial.print("Servos ready\n");
    delay(2000);

    
    
}

void loop()
{
    if( loop_cnt > 25 ) { // every X msecs get new data
        loop_cnt = 0;

        nunchuck_get_data();

        accx  = nunchuck_accelx(); // ranges from approx 70 - 182
        accy  = nunchuck_accely(); // ranges from approx 65 - 173
        zbut = nunchuck_zbutton(); // 0 or 1
        cbut = nunchuck_cbutton(); // 0 or 1
        joyx = nunchuck_joyx(); // ranges from approx 31 to 234
        joyy = nunchuck_joyy(); // ranges from approx 19 to 213
        //Serial.print("accx: "); Serial.print((byte)accx,DEC);
        //Serial.print("\taccy: "); Serial.print((byte)accy,DEC);
        //Serial.print("\tzbut: "); Serial.print((byte)zbut,DEC);
        //Serial.print("\tcbut: "); Serial.println((byte)cbut,DEC);
        //Serial.print("\tjoyx: "); Serial.print((byte)joyx,DEC);
        //Serial.print("\tjoyy: "); Serial.print((byte)joyy,DEC);

if (cbut == 0) {
        //Serial.print ("JOY  CBUT0\n");
        valx = map(joyx, 31, 234, 4, 176); //make joyx values 2 servox values
        myservox.write(valx); //write to servox

        valy = map(joyy, 19, 212, 0, 123); //make joyy values 2 servoy values
        myservoy.write(valy); //write to servoy
        }
        else if (cbut == 1){
        //Serial.print ("ACC  CBUT1\n");
        valx = map(accx, 70, 182, 4, 176); //make acellx values 2 servox values 
        myservox.write(valx); //write to servox
         
        valy = map(accy, 65, 173, 0, 123); //make accy values 2 servoy values 
        myservoy.write(valy); //write to servoy
        
        }
         
    }
    loop_cnt++;
    delay(1);
    
}
/bofh
"never attribute to malice that which is adequately explained by stupidity"
Hanlons razor

Brugeravatar
Refraktorius
Admin
Admin
Indlæg: 21720
Tilmeldt: 23. maj 2006, 11:13
Interesser: Skydning, dimser og alu-bats
Geografisk sted: Århus
Has thanked: 465 times
Been thanked: 2368 times

Re: Death-ray til junior...

Indlæg af Refraktorius » 17. okt 2016, 21:33

Det er smukt!

Jeg glæder mig til at se den med lasere på.
"Det tager kun 2 minutter at læse opslagene øverst i et forum."

Brugeravatar
Bofhenator
Moderator
Moderator
Indlæg: 9702
Tilmeldt: 22. apr 2010, 22:01
Interesser: Pistol, Riffeljagt, Genladning
Geografisk sted: Nordsjælland
Has thanked: 1726 times
Been thanked: 2152 times
Kontakt:

Re: Death-ray til junior...

Indlæg af Bofhenator » 18. okt 2016, 16:17

Refraktorius skrev:Det er smukt!

Jeg glæder mig til at se den med lasere på.
Så er der kommet lasere på... Dog ikke helt som jeg havde forudset. Tanken om verdensherredømmet ved hjælp af en kæmpe skuldermonteret laser siger åbenbart ikke ungdommen noget nu til dags... Næææh, det skal være zombier og uhyggeligt (dog ikke klovne) og da knægten har fødselsdag samtiddig med der skal fejres allehelgen. Jaja. Her er hvad det blev til:

Jeg har foldet koden ned i en lille Leonardo (Pro Micro) i stedet for den store Uno. Der skal man lige holde sig for øje at så kan man ikke bruge de analoge pins til strøm til nunchucken. Den skal fodres fra VCC. Det betyder også at nunchuck_funcs.h skal modificeres da man ellers ikke kan compilere koden, den kalder funktioner som en Leonardo ikke understøtter (jeg har en nunchuck_funcs_leo.h hvis nogen vil lege med den).

Det endte således:
DSC_0231.JPG
DSC_0231.JPG (485.05 KiB) Vist 1797 gange
Efter en kort tur på den lokale kirkegård gør vi klar til at åbne op så vi kan bygge vores sæt ind i den nye affutage:
DSC_0232.JPG
DSC_0232.JPG (459.61 KiB) Vist 1797 gange
Der bores ud så lysindtaget kan blive til laser-eyes-of-death:
DSC_0234.JPG
DSC_0234.JPG (393.04 KiB) Vist 1797 gange
Og der testes efter montage:
DSC_0235.JPG
DSC_0235.JPG (451.14 KiB) Vist 1797 gange
Indersiden:
DSC_0240.JPG
DSC_0240.JPG (428.86 KiB) Vist 1797 gange
Undersiden:
DSC_0242.JPG
DSC_0242.JPG (408.87 KiB) Vist 1797 gange
Og det færdige resultat:

youtu.be/6y4nVmx1xLo

Jeg håber at samtiddig med han bliver lidt ældre, så vil han begynde at interessere sig for laserkanoner og verdensherredømme igen...
/bofh
"never attribute to malice that which is adequately explained by stupidity"
Hanlons razor

Brugeravatar
Agamemnon
Moderator
Moderator
Indlæg: 3607
Tilmeldt: 6. jan 2008, 15:36
Interesser: Skydning genladning Etymologi
Geografisk sted: København
Has thanked: 567 times
Been thanked: 1056 times

Re: Death-ray til junior...

Indlæg af Agamemnon » 19. okt 2016, 09:33

Bofhenator skrev:
Refraktorius skrev:Det er smukt!

Jeg glæder mig til at se den med lasere på.
Så er der kommet lasere på... Dog ikke helt som jeg havde forudset. Tanken om verdensherredømmet ved hjælp af en kæmpe skuldermonteret laser siger åbenbart ikke ungdommen noget nu til dags... Næææh, det skal være zombier og uhyggeligt (dog ikke klovne) og da knægten har fødselsdag samtiddig med der skal fejres allehelgen. Jaja. Her er hvad det blev til:

Jeg har foldet koden ned i en lille Leonardo (Pro Micro) i stedet for den store Uno. Der skal man lige holde sig for øje at så kan man ikke bruge de analoge pins til strøm til nunchucken. Den skal fodres fra VCC. Det betyder også at nunchuck_funcs.h skal modificeres da man ellers ikke kan compilere koden, den kalder funktioner som en Leonardo ikke understøtter (jeg har en nunchuck_funcs_leo.h hvis nogen vil lege med den).

Det endte således:
DSC_0231.JPG

Efter en kort tur på den lokale kirkegård gør vi klar til at åbne op så vi kan bygge vores sæt ind i den nye affutage:
DSC_0232.JPG

Der bores ud så lysindtaget kan blive til laser-eyes-of-death:
DSC_0234.JPG

Og der testes efter montage:
DSC_0235.JPG

Indersiden:
DSC_0240.JPG

Undersiden:
DSC_0242.JPG

Og det færdige resultat:

youtu.be/6y4nVmx1xLo

Jeg håber at samtiddig med han bliver lidt ældre, så vil han begynde at interessere sig for laserkanoner og verdensherredømme igen...
Wuaaaah..... Du er jo ikke rask.... Og så har du for meget tid..... :numberone:
The only thing necessary for the triumph of evil is for good men to do nothing.

Edmund Burke, 1729-1797.

ReneKJ
This member is
This member is
Indlæg: 3139
Tilmeldt: 25. jun 2015, 11:10
Interesser: Våbenrelateret information
Geografisk sted: Jylland
Has thanked: 323 times
Been thanked: 674 times

Re: Death-ray til junior...

Indlæg af ReneKJ » 19. okt 2016, 13:08

Bofhenator skrev:
Jeg håber at samtiddig med han bliver lidt ældre, så vil han begynde at interessere sig for laserkanoner og verdensherredømme igen...
Det ser ud som om du er gået fra Predator til Warhammer 40K Servo-skulls :fun:
Hvis den skal bruges til Halloween skal den vel også kunne fyre nogle lyde af?
Servoskull.jpg
Servoskull.jpg (254.56 KiB) Vist 1715 gange

Brugeravatar
Bofhenator
Moderator
Moderator
Indlæg: 9702
Tilmeldt: 22. apr 2010, 22:01
Interesser: Pistol, Riffeljagt, Genladning
Geografisk sted: Nordsjælland
Has thanked: 1726 times
Been thanked: 2152 times
Kontakt:

Re: Death-ray til junior...

Indlæg af Bofhenator » 19. okt 2016, 14:01

ReneKJ skrev:
Bofhenator skrev:
Jeg håber at samtiddig med han bliver lidt ældre, så vil han begynde at interessere sig for laserkanoner og verdensherredømme igen...
Det ser ud som om du er gået fra Predator til Warhammer 40K Servo-skulls :fun:
Hvis den skal bruges til Halloween skal den vel også kunne fyre nogle lyde af?
Heh, ja, det ligner da lidt... Havde ellers tænkt det stadig var Arnold-territorie og noget terminator...

Men ja... der mangler lyd og røg... nu du siger det...
/bofh
"never attribute to malice that which is adequately explained by stupidity"
Hanlons razor

Besvar