Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Volautomatische 3D-geprinte borstelloze Nerf Blaster Arduino-besturing

Componenten en benodigdheden

Arduino Nano Elke
Arduino Nano Every Is zeer compact en past in een Nerf-pistool met behoud van alle functionaliteit die je nodig hebt.
× 1
Lineaire solenoïde, 12 VDC
Zorg ervoor dat u een slaglengte van 35 mm bij 12V krijgt.
× 1
Borstelloze gelijkstroommotor
Nerf-vliegwielkooien werken het beste met borstelloze motoren van het Outrunner-type. Zorg ervoor dat hij 12V (3s Lipo) aankan.
× 2
Brushless ESC
Zorg ervoor dat de Brushless ESC minstens 20% meer stroom aankan dan de motor trekt. Zorg ervoor dat het 3s Lipo aankan. Eén ESC per motor.
× 2
Lipo Batterij 3S 11.1-12.6V 1300mAh 25C
Zorg ervoor dat de ontladingssnelheid van de batterij het huidige verbruik aankan, plus 20% veiligheidsmarge. Beveel minimaal 1300mAh aan.
× 1
Microschakelaar, miniatuur
Elke generieke microschakelaar. Hoeft geen hoge stroom te zijn.
× 2
Power MOSFET N-kanaal
Zorg dat het logisch is! N Kanaal>20V>15A Afvoer-naar-bron @5V poortspanning.
× 1
Weerstand 10k ohm
R3 in schema - Voorkomt zwevende spanning bij MOSFET-poort.
× 1
Through Hole Resistor, 4,7 kohm
R1 in schema om MS2-microschakelaar omhoog te halen.
× 1
Through Hole-weerstand, 150 ohm
Voor LED's (waarde hangt af van uw opstelling).
× 1
Weerstand 220 ohm
R2 in schema om de stroom van de MOSFET-poort te beperken. Dit kan optioneel zijn, hoewel ik niet zonder heb getest.
× 1
1N4007 – Diode voor hoge spanning, hoge stroomsterkte
Algemene diode gebruikt als flyback-diode D2 om MOSFET te beschermen tegen EMF tegen solenoïde. D1 om Arduino-voedingsinvoer te beschermen tegen sperspanning.
× 2
Condensator 100 µF
Verminder spanningsverzakking naar Arduino-voedingsingang - Polariteitsgevoelig, dus sluit het op de juiste manier aan of het werkt knal! C1 in schema.
× 1
Condensator 100 nF
Dit werkt als een ruis-/interferentiefilter voor Arduino-stroominvoer. C2 in schema.
× 1

Benodigde gereedschappen en machines

3D-printer (algemeen)
Mijn 3D-printer is Evnovo (Artillerie) X1 - 300x300x400mm

Over dit project

Ik heb het altijd leuk gevonden om dingen te bouwen en te maken, dus heb ik besloten om rekwisieten en replica's te maken van objecten uit films en videogames. Een virtueel object tot leven brengen en vervolgens mijn technieken delen met mensen met dezelfde interesses.

Mijn nieuwste en beste creatie is de Kang Tao, een slim wapen in de aankomende videogame Cyberpunk 2077 . Om zo'n complex object te maken, werd een 3D-printer gebruikt om de esthetiek en mechanische montage van onderdelen te bereiken.

Een statisch object zou echter te gemakkelijk zijn, ik wilde een uitdaging. Dus ontwierp ik het als een functionele Nerf Blaster.

Om deze functionaliteit te bereiken, moest het een solenoïde en ESC's voor borstelloze motoren regelen. Relais en vertragingen enz. zouden te omslachtig zijn en dus was een Arduino een meer praktische oplossing.

Dit artikel zal gericht zijn op het Arduino- en elektrische circuitaspect van dit project (aangezien dit een Arduino-site is). Ik heb dit 'gemakkelijk' genoemd omdat het Arduino-gedeelte vrij eenvoudig is. Het mechanische ontwerp en 3D-printen is echter geavanceerd. Als je een borstelloze ESC, borstelloze motoren en solenoïde met Arduino voor Nerf Blasters wilt besturen, is deze gids iets voor jou!

CAD-ontwerp, 3D-printen enz. worden hier uitgelegd:http://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/

of hier:https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/

Handleidingen voor het bouwen van video's hier:https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber

Het schema (zie schematische sectie) is getekend om te illustreren hoe alles is aangesloten. Een Arduino Nano wordt gebruikt vanwege zijn kleine formaat. Dit zou ook moeten werken met een Uno en anderen.

Raadpleeg het schema voor de onderstaande terminologieën MS1, C2 enz.

Verwijzen naar Code sectie aan uitleg van hoe de code werkt.

Triggers met vliegwielen en solenoïde

De manier waarop de code werkt, is dat wanneer MS2 (secundaire microschakelaar-trigger) wordt vastgehouden, de borstelloze motoren draaien op.

Wanneer MS1 (primaire microschakelaar-trigger) wordt ingedrukt of vastgehouden, wordt een signaal naar de MOSFET-poort gestuurd om de solenoïde af te vuren (S ) herhaaldelijk. De solenoïde duwt de Nerf-pijl uit het magazijn en in de vliegwielen (M1 &M2 ) die vervolgens de pijl uit de loop versnellen.

Echter, MS1 activeert alleen terwijl MS2 wordt gehouden. Dit helpt vastlopen te voorkomen als een dart in niet-draaiende vliegwielen wordt geduwd. In de code (raadpleeg de codesectie), is het waar '&&' wordt gebruikt.

Het vermogen dat aan de borstelloze motoren en solenoïde wordt geleverd, gaat niet door de microschakelaars. Dit betekent dat u geen microschakelaars met hoge stroomsterkte nodig hebt.

Borstelloze motoren

Ik ga hier niet uitleggen hoe brushless verschilt van brushed motoren, je kunt zoeken naar een aantal geweldige verklaringen.

Er zijn inrunner en buitenloper borstelloze motoren. U wilt een outrunner motor omdat ze platter van vorm zijn, zodat je geen lelijke blikjes hebt die uit de zijkant van je Nerf-blaster steken. Outrunner-motoren hebben ook een deel van de externe kan roteren met de as. Dit maakt het gemakkelijk om vliegwielen in 3D te printen om over de motor te gaan.

Koop een motor met montagegaten achter .

Spanningen van motoren moeten minimaal 12,6 V (3s lipo) aankunnen.

De stroom van de motor mag de borstelloze ESC-stroomwaarde niet overschrijden.

Het vermogen van de motoren moet>60W zijn. Dit project gebruikt 12.6V voedingsspanning x gemeten 7A motorverbruik =~80W elk.

Het toerental van borstelloze motoren moet ~25k zijn en wordt bepaald door kV-waarde x spanning. Dit project maakt gebruik van 2600kV motoren @ 12.6V. Daarom 2600 x 12,6 =~32, 760 RPM. Ik laat de motoren alleen op halfgas draaien en darts vliegen 25m / 82ft!

Borstelloze ESC's

Deze regelen in feite het vermogen van de borstelloze motoren.

Borstelloze motoren werken niet met geborstelde ESC's, worden borstelloos.

Je hebt één ESC per motor nodig. Anders zal de achterste EMF van twee motoren die op één ESC zijn aangesloten, de ESC-timing verpesten en de ESC en/of motoren beschadigen.

De huidige classificatie van ESC moet hoger zijn dan de stroomafname van de motor. Motor werd in dit geval gemeten op 7A elk. Aanbevolen ESC is 20A of hoger.

Spanningsclassificatie van ESC moet minimaal 12,6 V (3s Lipo) zijn.

ESC heeft geen ingebouwde BEC nodig. U kunt 'OPTO' ESC's gebruiken. Als je een ESC met BEC hebt, sluit dan de grond- en signaalkabels aan op Arduino zoals weergegeven in het schema. Sluit de . NIET aan ESC 5V rode kabel naar alles. (Tenzij je er een specifiek doel voor hebt en weet wat je doet).

Batterij

Een enkele batterij om alles van stroom te voorzien. Ik raad aan om een ​​XT60-connector te gebruiken.

Spanning is 12.6V 3S Lipo-batterij.

Capaciteit is minimaal 1300mAH aanbevolen.

De huidige ontladingswaarde van de batterij zou voldoende moeten zijn voor het stroomverbruik van alle belastingen. In dit project is de belastingsstroom ~25A.

De maximale ontladingssnelheid van de batterij wordt berekend door de ontladingssnelheid (25C) x capaciteit in Ah (1, 300 mAh =1,3 Ah).

Daarom 25 x 1,3 =32A maximale ontladingssnelheid voor de batterij. Je zou deze nummers in de batterijspecificaties moeten kunnen vinden.

MOSFET

Een 12V / 8A-solenoïde rechtstreeks vanuit een Arduino voeden, veroorzaakt magische rook (Arduino sterft). Oplossing? MOSFET.

De power MOSFET wordt gebruikt als aan/uit schakelaar voor de Solenoid. Het onderbreekt in feite de grond die de solenoïde aandrijft. Dit staat bekend als een N-Channel MOSFET. Zorg ervoor dat je een N-kanaal krijgt.

De MOSFET weet wanneer hij moet in- en uitschakelen vanwege een signaal dat naar de MOSFET-poortpin wordt gestuurd vanaf een Arduino-uitgangspin (D4 in dit geval). Arduino's hebben 5V afgegeven en de poort moet volledig aan zijn op 5V. Om dit te laten werken, moet het een Logic Level MOSFET zijn.

De stroomopname van Solenoid heeft een nominaal vermogen van 8A. Zorg ervoor dat de MOSFET een hogere maximale stroomsterkte heeft. Dit project maakt gebruik van een MOSFET van maximaal 30 A.

De spanning door de MOSFET is 12,6 V om de solenoïde van stroom te voorzien. Deze MOSFET heeft een maximale capaciteit van 60V, wat voldoende hoofdruimte is.

De temperatuur van de MOSFET is in dit geval minder dan 35°C. Dit wordt bereikt omdat de MOSFET geschikt is voor 30A, hoewel er slechts ~8A belasting doorheen wordt getrokken. De andere reden is dat de belasting (solenoïde) slechts kort wordt ingeschakeld voordat deze wordt uitgeschakeld, in plaats van constant aan te staan. Een koellichaam is in dit geval niet nodig.

Solenoïde

Hierdoor wordt de pijl in de vliegwielen geduwd. Het enige dat u wilt, is een 12V-solenoïde met een slaglengte van 35 mm. Kortere slagen zullen de Nerf-darts van het volledige lengtetype niet ver genoeg duwen.

Upgrade de veer naar draad met een diameter van 0,9 mm, een diameter van 14 mm en een lengte van 40 mm om vastlopen te voorkomen.

Omdat de solenoïde kortstondig is ingeschakeld in plaats van constant, mag deze slechts een beetje warm worden tot ~40°C en hoeft hij daarom niet te worden gekoeld.

Deze solenoïden zijn relatief goedkoop en generiek. Ze zijn te vinden op Ebay, Aliexpress enz.

Veiligheidsschakelaar

ZW veiligheidsschakelaar is gewoon een schuifschakelaar met 2 standen. Het heeft 3 contacten, hoewel er maar 2 worden gebruikt. Schakelt Arduino uit wanneer de veiligheid is ingeschakeld, waardoor wordt voorkomen dat vliegwielen en solenoïde worden geactiveerd.

Beveiligingsschakelingen

In dit gedeelte wordt uitgelegd hoe u kunt voorkomen dat uw elektronica aanbrandt!

C1 33μF (100μF aanbevolen) &C2 100nF (0,1 µF) vermindert spanningsschommelingen naar de Arduino-voedingsingang.

Let op:C1 is polariteitsgevoelig, gestreepte zijde is negatief, anders het gaat knal!

D1 voorkomt omgekeerde spanning naar Arduino VIN. Let op de polariteit.

D2 is een fly-back / vrijloopdiode. Het voorkomt dat de solenoïde (of andere inductoren) terug-EMF creëren. Deze tegen-EMK zou de MOSFET anders kunnen beschadigen. Let op de polariteit.

R1 &R2 zijn 4,7 kΩ pull-up weerstanden voor MS1 &MS2. Dit voorkomt zwevende spanning op de microschakelaars.

R3 is een 10kΩ pull-down weerstand om zwevende spanning bij de gate van de MOSFET te voorkomen.

R4 is een 150kΩ voor de optionele LED's. Mijn LED's zijn 2 in serie met elk 2,4V / 50mA. Uw weerstandswaarde kan variëren. Deze LED's knipperen synchroon met de solenoïde aan en uit om de flits op de snuit na te bootsen!

Video-uitleg &testvuren hieronder!

Dat vat deze gids samen, voor vragen kun je hieronder een reactie achterlaten :)

Bestand downloaden zodat u het zelf kunt afdrukken!

UPDATE:hier is de link naar de Thingiverse-bestanden, veel plezier!

https://www.thingiverse.com/thing:3984125

Code

  • Nerf Blaster Borstelloze Motor &Solenoid Arduino Code - Clark3DPR
Nerf Blaster Borstelloze Motor &Solenoid Arduino Code - Clark3DPRArduino
1. Wanneer Arduino wordt ingeschakeld via de veiligheidsschakelaar, voert het de inschakelvolgorde uit voor de borstelloze ESC's. Mijn ESC's duren 3,7 seconden (3700 in de code). Mogelijk moet u deze waarde verhogen tot 10000 (10 seconden), afhankelijk van uw eigen ESC om de veilige modus te verlaten.

2. Houd de secundaire microschakelaar ingedrukt om de vliegwielen te laten draaien en houd vervolgens de primaire microschakelaar ingedrukt om te vuren.

2. Wijzig throttle.write (92) om het stationair toerental van de motor te verhogen/verlagen of uit te schakelen. Motoren draaien standaard op lage snelheid om de spin-up tijd te verkorten. (Waarde is afhankelijk van uw motor / ESC)
Wijzig throttle.write(97) om de topsnelheid van de motor en de dartsnelheid te wijzigen. (Waarde is afhankelijk van uw motor / ESC)

Wijzig vertraging (90) en vertraging (100) om de brandsnelheid van de solenoïde te verhogen/verlagen.

4. Wanneer de microschakelaar wordt losgelaten, stopt het ESC PWM-signaal voor vliegwielen en het signaal naar de MOSET-poort voor de solenoïde met draaien / activeren.

5. Wanneer ESC's signaal van Arduino verliezen (wanneer de veiligheidsschakelaar is ingeschakeld en Arduino is uitgeschakeld), keren de ESC's terug naar de veilige modus en worden de motoren uitgeschakeld.
const int buttonPinF =2; // Vliegwiel Rev microschakelaar pinnummerconst int buttonPinS =5; // Solenoïde microschakelaar pinnummerint buttonStateF =0; // Variabele voor het lezen van de status van de vliegwiel Rev microschakelaar in buttonStateS =0; // Variabele voor het lezen van de status van de solenoïde microschakelaar in de solenoidPin =4; // Solenoid MOSFET Gate-pinnummer #inclusief Servo-gasklep;int pos =0;int pin =3; // ESC-signaal pinvoid setup () {pinMode (buttonPinF, INPUT); // Initialiseer de vliegwielmicroschakelaarpin als een invoerpinMode (buttonPinS, INPUT); // Initialiseer de microschakelaarpin van de solenoïde als een ingangsthrottle.attach (pin); pinMode (solenoïdePin, UITGANG); // Stelt Solenoid MOSFET Gate-pin in als een output // ESC Arming Sequence voor (pos =90; pos <=91; pos +=1) {throttle.write (pos); vertraging (3700); // Wacht tot ESC is ingeschakeld / Sluit de veiligheidsmodus af // Verhoog deze 3700-waarde afhankelijk van hoe lang het duurt voordat uw ESC is ingeschakeld }}void loop () { buttonStateF =digitalRead (buttonPinF); // Lees de status van de vliegwielmicroschakelaarwaarde als (buttonStateF ==HOOG) { // Controleer of de microschakelaar is ingedrukt, zo ja, vliegwielknopstatus is HOOG throttle.write (92); // <(92) =Motor uit / (92) =Stationair toerental } else { throttle.write (97); // Motor aan (92) =Stationair toerental / ~(115) =Max. toerental }buttonStateS =digitalRead (buttonPinS); // Lees de status van de microschakelaarwaarde van de solenoïde als (buttonStateF ==LAAG &&buttonStateS ==LAAG) {digitalWrite (solenoidPin, HOOG); // Schakel solenoïde AAN vertraging (90); // AAN duur digitalWrite (solenoidPin, LOW); // Schakelsolenoïde UIT-vertraging (100); // Duur UIT} else {digitalWrite (solenoidPin, LOW); // Schakel solenoïde UIT }}

Schema's

Zo zit het allemaal in elkaar. Let goed op de polariteit van de diodes en condensatoren. Getekend met AutoCAD.

Productieproces

  1. Maak thuis een zelfgemaakte schrijfmachine voor huiswerk
  2. Maak Monitor Ambilight met Arduino
  3. Schakel Alexa Control in op je plafondventilator
  4. Universele afstandsbediening met Arduino, 1Sheeld en Android
  5. Bedien muntvangers met Arduino
  6. Arduino-controlecentrum
  7. Arduino met Bluetooth om een ​​LED te bedienen!
  8. Arduino 3D-geprinte robotarm
  9. Arduino-luchtbevochtigerbediening
  10. Arduino Nano:bedien 2 stappenmotoren met joystick
  11. Doucheregelaar