shadow-price

所属分类:3D打印
开发工具:C++
文件大小:5108KB
下载次数:0
上传日期:2020-04-01 18:42:18
上 传 者sh-1993
说明:  3d打印bldc飞轮爆炸机,带螺线管推进器和弹药计数器
(3d printed bldc flywheel blaster with solenoid pusher and ammo counter)

文件列表:
code (0, 2020-04-02)
code\double_digit_3_button_ammo_counter (0, 2020-04-02)
code\double_digit_3_button_ammo_counter\double_digit_3_button_ammo_counter.ino (9878, 2020-04-02)
code\firing_code (0, 2020-04-02)
code\firing_code\firing_code.ino (3821, 2020-04-02)
prints (0, 2020-04-02)
prints\barrel (0, 2020-04-02)
prints\barrel\2Xkey.stl (95584, 2020-04-02)
prints\barrel\3Xbarrel tip.stl (234861, 2020-04-02)
prints\barrel\barrel back.stl (156484, 2020-04-02)
prints\barrel\barrel front.stl (312984, 2020-04-02)
prints\barrel\barrel middle.stl (195184, 2020-04-02)
prints\barrel\battery tray.stl (73484, 2020-04-02)
prints\barrel\key.stl (979819, 2020-04-02)
prints\barrel\lock.stl (106299, 2020-04-02)
prints\body (0, 2020-04-02)
prints\body\Tail Decoration.stl (46884, 2020-04-02)
prints\body\handle combined.stl (146084, 2020-04-02)
prints\body\handle.stl (160284, 2020-04-02)
prints\body\knuckle duster.stl (62684, 2020-04-02)
prints\body\left grill.stl (11484, 2020-04-02)
prints\body\pusher cover.stl (46184, 2020-04-02)
prints\body\right grill.stl (11484, 2020-04-02)
prints\body\solenoid cover.stl (175484, 2020-04-02)
prints\body\solenoid mount.stl (265384, 2020-04-02)
prints\body\tail dovetail.stl (19884, 2020-04-02)
prints\body\tail.stl (450484, 2020-04-02)
prints\body\trigger well left combined.stl (161884, 2020-04-02)
prints\body\trigger well right combined.stl (169084, 2020-04-02)
prints\body\trigger.stl (361584, 2020-04-02)
prints\functional (0, 2020-04-02)
prints\functional\cage v1.stl (197884, 2020-04-02)
prints\functional\cage v2.stl (204684, 2020-04-02)
prints\functional\cage v3.stl (200784, 2020-04-02)
prints\functional\current (0, 2020-04-02)
prints\functional\current\flywheel cage hi crush canted.stl (236884, 2020-04-02)
prints\functional\current\flywheel cage hi crush.stl (1128094, 2020-04-02)
prints\functional\current\flywheel lateral lines deep.stl (555884, 2020-04-02)
... ...

Shadow Price ===== ###### Shadow Price is the culmination of many years of CADing, which I had to learn along the way, and Coding, most of which I was taught by @mochoy. It uses brushless motors for the flywheels, a solenoid pusher, and has an integrated IR beam based ammo counter. The shell is based off of the stock weapon model for an auto rifle in the video game Destiny, and my personal blaster is painted like Shadow Price. ### The STLs for all components are not inhenretly in the correct priting orientation, however there are large flat areas on all parts so use your best judgement when printing and print on these faces ### All minor changes to this document will be dated and placed at the bottom, major changes will be noted at the top here ### Note: This version uses tighter tolerances on all print surfaces. You will likely have to file the removeable components to get them to slide past each other. ## Parts List For this Blaster you will need: ### Hardware - 18 Regular Nerf screws (10mm long) - 10 Small Nerf screws (5mm long) - two small washers that will not slide over the main screw heads (or switch two of the small screws for something like the washer screws that are used on Stryfe mag releases) - A small extension spring for the trigger - A small compression spring for the magazine release (pen spring works) - Optional: - An 8-32 or M5 machine screw and nut (to hold up butt plate) ### Ammo Counter Electronics - An Arduino Pro Mini 5V/16MHz - A small solderable breadboard - two .56" 7 segment displays - two resistors (based on the color of your display) - two 7 segment decoders (make sure they are the same type as your displays) - two 5mm breadboard compatible momentary push buttons - A 3mm [IR break beam](https://www.adafruit.com/product/2167) - A small [limit switch](https://www.allelectronics.com/item/sms-371/spdt-mini-snap-action-switch-w/sim-roller-lever/1.html) - 22 gauge wire - Heat shrink - Optional: - Multiple colors of wire (to differentiate each button) - Bread board jumpers (for creating protoboard) - Crimp connectors (for power and ground from ESC-BEC) __Firing System Electronics__ - An Arduino Pro Mini 5v/16MHz - A 10K Ohm [potentiometer](https://www.amazon.com/PoiLee-Potentiometer-Linear-WH148-Shaft/dp/B07BW8JBC8/ref=zg_bs_306810011_15?_encoding=UTF8&psc=1&refRID=9QH8NRF41JYXV1WAPK84) - A medium sized [limit switch](https://www.allelectronics.com/item/sms-219/spdt-mini-snap-action-switch-w/roller-lever/1.html) - A male battery connector of your prefrence - Two ESCs with BEC that are rated up to 3s and have a high enough amperage for your motors - Two 2204-2300Kv brushless motors (currently working on adding support for 1806 sized motors as well) - A 35mm stroke 12v electric solenoid - A 1N540x Rectifier Diode - A IRLB3034PBF MOSFET - A 10K Ohm resistor - 22 gauge wire - 16 gauge wire - heat shrink - Optional: - 5mm bullet connectors (for removeable ESCs and easy polarity switching) - Crimp connectors (for power from ESC-BEC and to keep small control cables organized) - Suild's [MOSFET board 2](https://suild.com/shop/0) (as a replacement for all the MOSFET components) ## Software ### Firing Code To Start, you will need to download the [JC Button Library](https://github.com/JChristensen/JC_Button) by Jack Christensen. If you dont know how to download a library to your Arduino IDE [this is a good guide](https://www.digikey.com/en/maker/blogs/2018/how-to-install-arduino-libraries) that I used, just scroll about half way down and there are two mehtods to download the library. There are only two areas in the code you should ever realistically need to change, the pinout and revSequence. The pinout is simple: ``` #define TRIGGER_PIN 9 #define MOTOR_PIN 10 #define ACTUATOR_PIN 11 #define POT_PIN 1 #define FIRE_MODE_PIN 7 ``` - TRIGGER_PIN is for the trigger microswitch. - MOTOR_PIN is for ***both*** of the signal wires from the ESCs, so make sure you splice the wires together at some point. - ACTUATOR_PIN is for the signal wire coming off the solenoid MOSFET, in the case of the MOSFET board 2 from Suild it would be a wire coming off the gate pin. - POT_PIN is for the 10K Ohm potentiometer signal pin, the wire that comes from the middle tab. - FIRE_MODE_PIN is for an unutilized two position switch that would change between full auto and three round burst. While the code is written for this, there is no mounting geometry in the 3D prints, so you would have to download the .step file in the prints folder and model it in yourself. The other area of code you might need to change is: ``` void revSequence(){ flywheelESC.writeMicroseconds(1860); delay(map(analogRead(POT_PIN), 0, 1023, 150, 50)); flywheelESC.writeMicroseconds(map(map(analogRead(POT_PIN), 0, 1023, 0, 100), 0, 100, 1250, 1650)); delay(70); } ``` In this function you might have to change the delays based on your motors' spin up time. In the first delay, the only values you might need to change are the 150 and 50, which determine how long you need the motors to accelerate for. Effectively, the motors accelerate the greatest when an immediate command to full speed is sent. What this line of code is doing is using that concept to put the motors at max acceleration for longer when the potentiometer is set to a low speed and accelerate for less time when at the optimal speed. Without this line of code the spin up times for all motor speeds would be significantly greater, so change these values only if your first dart fires significantly harder than the rest of your darts when holding the trigger. The second delay at the end of the function is less complicated, and the only value you might need to change is the 70. Once the motor has been told the desired speed (from the previous line of code) it needs a moment to reach it, so the delay is just waiting for the motor to reach that speed, so if your blaster constantly jams when firing the first shot increase this delay, and if you feel like the first dart takes an eternity to fire decrease the delay. If you are going to play with this number I suggest you increase or degrease by units of 5 until you reach the minimum delay where your blaster wont jam. If you use a different ESC than the 12A AFRO that I use, the min and max speed in microseconds (1860) might be different, and since you will use different motors than the 2204-2300KV Turnigy Multistar Elites (because they are discontinued) the minimum firing and optimal speeds in microseconds (1250 & 1650) will be different. To find the max and min speeds in microseconds you will have to refer to the instruction manual that is associated with your ESC, or just test values until you find the threshold value where the motors begin to spin (the minimum microseconds) and find the threshold value where the motor speed does not seem to contimue to increase. Once you find these values just ctrl+F in the arduino IDE and switch out every 1060 & 10*** for your new minimum value and switch out every 1860 & 18*** for yor new maximum value (including in the setup code). Make sure all of these test you conduct inside the assembled blaster, since it is dependent on the solenoid firing To find the minimum firing and optimal speeds you will have to rely solely on testing. For minimum firing value, increase from the minimum value in incriments of 10 until you can fire 10 shots full auto without jamming. For optimal value, degrease from max in incriments of 10 until the FPS of the dart begins to drop, and you'll need a chronograph for this test (or just look at range with measuring tape, but that will take longer and require more walking). These tests can be conducted outside of the blaster, with you manually feeding the darts into the flywheel cage, but it's better if you conduct them inside the blaster since the results will be more realistic. ### Ammo Counter Code I will preface this section by saying that this ammo counter is not exlusive to Shadow Price, if you can find some other low current 5v power source to plug it into it will work completely independent. The amount it can count up to is also expandable, so if you want to make an ammo counter for your backpack fed blaster feel free to use this design, good luck with counting how many balls you put in at the beginning though. Just like before the pinout is relatively simple ``` #define DIG_ONE_A 2 #define DIG_ONE_B 3 #define DIG_ONE_C 4 #define DIG_ONE_D 5 #define DIG_TWO_A 6 #define DIG_TWO_B 7 #define DIG_TWO_C 8 #define DIG_TWO_D 9 #define IR_BEAM 14 #define MAG_SIZE_UP 10 #define MAG_SIZE_DOWN 11 #define MAG_SENSOR 12 ``` - DIG_ONE_A-B and DIG_TWO_A-B are the A-B signal pins on the 7 segment decoders, ONE and TWO being for the tens and ones digits, respectively. - IR_BEAM is for the signal pin of the IR break beam sensor. - MAG_SIZE_UP is for the button that increases the magazine value. - MAG_SIZE_DOWN is for the button that decreases the magazine value. - MAG_SENSOR is for the limit switch that goes inside the magazine well. If you are using this ammo counter for Shadow Price or any other under-100-dart-capacity blaster the only other variables you might change are: ``` int BASEmag = 17; int MAXmag = 35; ``` - BASEmag is the value the ammo counter will show on boot up. You'll be able to change this value using the up and down buttons, so it doesn't really matter what this value is as long as it's less than the MAXmag value; I like putting it as the capacity of my first magazine in my loadout. - MAXmag is the greatest value the ammo counter will display, and the value at which it switches back to 0 if you keep hitting the MAG_SIZE_UP button. Make this value the capacity of your largest magazine you would put into the blaster; In my case the largest magazine I own is the 35 round drum. Now, if you want to expand this ammo counter to three digits (999 rounds max) or four digits (9999 rounds max) its pretty simple. 1. Repeat the code in ```void func()``` that displays the ones position for every added digit (I suggest you put it at the end of the function to keep the code organized). 2. Replace the variable in the ```digitalWrite();``` on your repeated section with the new pinout for your extra digit(s). 3. Replace the conditions in the DIG_ONE display code with your new highest values (e.g. replace the 10,20,30, etc. with 100,200,300, etc) 4. In decending order, update the conditions for the new digits (e.g. replace the %10 == 1,2,3 etc with %100 == 10,20,30 for digit two, and then leave the conditions alone for the last digit). 5. Update the BASEmag and MAXmag to values that better reflect your new ammo capacity. If this didnt make sense feel free ask via reddit (u/Band3rsnach) and I can help, but none of this last bit is required for Shadow Price. ## Printing and Assembly ### Recomended Printing Orientation To save time in generating these images I've placed multiple parts on a single print bed. I am NOT suggesting you print multiple parts at once unless you are confident in your printer's ability. As a general rule, internal features will not need any support, and external features will require supports (if you want the blaster to look pretty). A few parts (tail, stock panel left, trigger well left) have extrememly thin surfaces that are for bridging or to reduce supports. If you are confident in your printer's ability to bridge use them, if not the surfaces should not cause any problems with supports. barrel 1 Depicted: 3X Barrel Tip, Barrel Front, Barrel Middle, Barrel End, 2X Key, Lock barrel 3 Depicted: Battery Tray body 1 Depicted: Handle, Knuckle Duster, Left & Right Grill, Bottom Dovetail, Pusher Cover, Solenoid Cover, Top Dovetail, Trigger body 2 Depicted: Solenoid Mount, Tail, Tail Dovetail, Trigger Well Left & Right The thin surface circled in red on Trigger Well Left is a built in support, and the Tail has a thin surface for bridging inside it. functional Depicted: Flywheel Smooth, High Crush Flywheel Cage magwell 1 Depicted : Alignment Bar, Archway, Battery Tray Latch, Bottom Dovetail, Cage Mount, Flywheel Cover, Mag Release Lever, Mag Tooth, Magazine Release, Picatiny Left & Right, Top Dovetail magwell 2 Depicted: Magwell, Insert stock Depicted: 2X Button, 4X Slot, Button Mount, Buttstock, Fin, Left & Right Panel, Stock Main The part circled in red is the Left Panel, and uses a thin surface for bridging in two areas near each button. ### Assembly Now, if like me you are impatient and like to assmeble as you print, I suggest you begin by printing all the parts in the Body and Magwell folders. These two folders will make up about 60-70% of your time building Shadow Price since they have a relatively complex assembly that keeps the blaster robust and secure. I **highly** suggest you use some form of solvent weld for this blaster instead of an epoxy or superglue, as there are some areas that can take a lot of stress during a fall, and its better to be too secure rather than not. For PLA I suggest Weldon 16, for PetG or similar Pet filaments I suggest Weldon 3 or 4 (4 is just more viscous, same formula), and for ABS obviously any form of acetone. > One cool thing with Weldon 3 or 4 is that it also bonds styrene plastic, so if any part warps (like the Flywheel Cover) you can glue on styrene and it should be super easy to shape and fill gaps. Another good thing about specifically Weldon 3 is it is water thin, so you can use a small spray bottle head (make sure it doesnt disolve in the solvent!) or a brush to cover areas that seem to be cracking. This bonds the layers together like annealing and will make the area stronger (if you can, do this along the top angle of the Cage Mount). You can probably tell at this point that I printed mine in PetG. Ok, suggestions over, lets start assembling: 1. Screw into place and glue down Tail Dovetail into tail step -1 2. Screw into place and glue Insert into Cage Mount step -2 3. Glue the Cage Mount, Archway, Solenoid Mount, and Tail together in a line. We will call this group the "upper reciever" step 1 4. Glue and snap the Magwell and Battery Tray Latch together by aligning the circular cutout and snapping in the triangular piece. If you are using a water thin solvent snap the parts together then put a bit of solvent in between the parts. step 2 5. Glue the Alignment Tab into the Magwell. It should be a tight fit. step 3 6. Place the Mag Release lever into the Mag tooth and slot both into the back of the Magwell. Make sure the the cutout part of the lever faces away from the magwell, the part of the tooth that sticks out is towards the bottom of the magwell, and that **no glue** gets on any of these parts. step 4 step 4-2 These next two steps need to be done pretty quickly if you are not using a water thin solvent, so prepare everything before hand. If you are using a water thin solvent, just dont put any solvent in until after all the pieces are locked in place. 7. Glue and slot Trigger Well Right into the back of the Magwell. This will lock in the magazine lever and tooth so it is critical you align those before gluing this piece on. This collection of pieces we will call the "lower reciever". step 5 8. Glue, slot, and screw the upper and lower reciever together. Make sure the Alignment Tab is pushed into the back and top of the slot in the Archway, the spike on the front of the Cage Mount is flush with the cut out in the Battery Tray Latch and the screw is in place, the L shaped extrusion is in the corner of the Trigger Well Right, and that the entire top surface of the lower reciever is flush with the bottom of the upper. step 6 From here on the rest of the parts are mostly cosmetic, however they make up a lot of the length and weight of the blaster. Make sure they are securely glued and mounted in place or you might get cracks in the shell after painting. 9. Glue and slot the Handle into the bottom of the Trigger Well Right. It should be a secure fit, just make sure you push it as far up as possible. step 7 10. Place the small extension spring on to the Magazine Release pin, and insert the pair into the Knuckle Duster. Make sure the spring sits flat on the inside of the Knuckle Duster. I also suggest you paint this component before you put it in since there is no way to get it out. (Optional: add a bit of craft foam to the front of the Magazine Release to make it more comfortable to hit with your middle finger) step 8 11. Slot the Knuckle Duster assembly into the bottom of the Trigger Well Right and the bottom of the Handle, and align the Magazine Release with the Mag Release Lever, making sure that the system is free to move. step 9 12. Screw the Knuckle Duster into the bottom of the Handle and glue the top of it into the bottom of the Trigger Well Right and the Magwell. Be careful not to get glue on the release system. step 10

相关文件


收藏者