Pull to refresh

Самодельный игрушечный пистолет, стреляющий видимым лучом



Какой мальчишка не мечтает об игрушечном пистолете, у которого при дневном свете видно не только световое пятно при попадании на препятствие, но и сам луч? Луч микромощного лазерного диода можно сделать видимым при помощи струи глицеринового пара, создав миниатюрную дым-машину. При этом и луч, и пар, моментально остывающий на выходе из сопла, безопасны для зрения, дыхания и кожи. Статья описывает изготовление авторской электронно-механической игрушки со световыми эффектами, собранной в подарок сыну на 23 февраля.



Устройство и сборка
За основу взят корпус китайского игрушечного пистолета, изготовленный из качественного прочного пластика. Питания от одного литий-ионного аккумулятора типоразмера 14500 (AA) вполне достаточно для микрокомпрессора от измерителя артериального давления, нагревательной спирали дым-машины, 5 мВт красного лазерного модуля и RGB-набора светодиодов внутри корпуса, имитирующих плазменный мини-реактор. От первоначального намерения дополнить игрушку звуковыми эффектами автор отказался, так как шум и вибрация моторчика микрокомпрессора сами по себе создают реалистичное ощущение энергетического оружия. Внутренняя компоновка пистолета представлена на фото.



Управляет игрушкой микроконтроллер PIC12F629/75/83. Силовая нагрузка коммутируется полевым транзистором. На микросхеме LTC4054 собран контроллер заряда аккумулятора через miniUSB разъём, благодаря чему отсутствует необходимость замены элемента питания с разборкой корпуса. Синий и жёлтый светодиоды не только информируют о состоянии зарядки, но и, будучи видимыми сквозь прорези корпуса, ещё более дополняют образ фантастического оружия будущего.



При токе заряда более 390 мА горит жёлтый светодиод, при 300-390 — жёлтый и синий, менее 300 — синий. Благодаря встроенному в LTC4054 ограничителю тока, из пистолета можно «стрелять» во время зарядки без боязни перегрузить микросхему или внешний источник питания. Защита от чрезмерного разряда реализуется самим аккумулятором, который взят защищённой модели.



Дым-машина представляет собой «непроливайку», собранную из одноразового шприца 10 мл, двух пробок с резиновыми уплотнителями из соединителя шлангов от садовой поливочной системы, двух трубочек от леденцов в качестве воздуховода и паропровода, двух дискодержателей-мандрелей для бормашины, служащих стойками для нихромовой или фехралевой спирали. Спираль сопротивлением 2 Ом намотана на куске кремнезёмного шнура, служащего фитилём. Монтаж и герметизация стоек и трубок в пробках осуществляется термоклеем. Заправка испарителя глицерином производится при помощи шприца с безопасной тупой пластиковой иглой через отверстие паропровода без разборки пистолета. Медицинский глицерин совершенно безопасен для детского организма (только не надо его пить: внутреннее употребление значительной дозы глицерина сработает как слабительное).



Игрушка производит роскошную струю пара, завихрения которого создают впечатление потока энергии или плазмы, передающейся по лучу. Излучение лазерного диода, такого же, как в зажигалках, маломощных указках и игрушечных лазерных прицелах, не представляет опасности для людей и животных, но не забываем: не следует направлять луч любого фонаря или лазера прямо в глаза.


Программа для микроконтроллера написана на языке JAL v.2
-- Compiler: 2.4l
include 12f683
pragma target CLOCK     8_000_000
pragma target OSC       INTOSC_NOCLKOUT
pragma target WDT       disabled
pragma target PWRTE disabled
pragma target MCLR internal
pragma target BROWNOUT disabled
pragma target CPD disabled
pragma target CP disabled
OSCCON_IRCF   = 0b_111
-- 8 MHz от внутреннего генератора

enable_digital_io()   -- настраиваем цифровые выходы
alias rled is pin_a0   -- светодиоды эффекта "плазмы"
alias gled is pin_a2
alias bled is pin_a1
alias fire is pin_a5    -- силовой ключ
alias trig is pin_a4    -- спусковой крючок
OPTION_REG_NGPPU = 0
WPU_WPU4 = 1 -- внутренний резистор подтяжки
IOC_IOC4 = 1
pin_a2_direction = output
pin_a1_direction = output
pin_a0_direction = output
pin_a5_direction = output
OPTION_REG_INTEDG = 0 - по логическому 0
INTCON_GIE = on -- разрешаем прерывания
INTCON_GPIF = off

procedure interrupt is -- по прерыванию
pragma interrupt         -- просто сбрасываем флаг
 if INTCON_GPIF then
  INTCON_GPIF = off
 end if
end procedure

forever loop
 fire = off  -- всё выключаем
 rled = off
 gled = off
 bled = off
 INTCON_GPIE = on -- разрешаем прерывания с ножек
 asm sleep -- и спим, пока не нажата кнопка
 while trig == false loop -- пока кнопка нажата
  INTCON_GPIE = off -- запрещаем прерывание с ножек
  fire = on -- включаем лазер и дым-машину
  rled = on -- имитация плазмы
  _usec_delay(25000)
  rled = off
  gled = on
  _usec_delay(25000)
  gled = off
  bled = on
  _usec_delay(25000)
  bled = off
 end loop
end loop


Готовая прошивка в HEX формате
:020000040000FA
:040000008A110C282D
:08000800FF00030E8301A200BA
:100010000A08A3008A0123288F3083160F05703841
:100020008F009F0183129F01073099009A01831668
:10003000811315161616051185100510851201136A
:100040008B170B102C280B180B1023088A00220E7C
:100050008300FF0E7F0E09008312A412240885007E
:10006000241024088500241124088500A4102408E5
:1000700085008B156300051A2C288B11A416240803
:100080008500241424088500831203137430A00013
:100090005530A1000A128A11A10B4A280A128A11AE
:1000A000A00B4828000024102408850024152408EB
:1000B0008500831203137430A0005530A1000A128A
:1000C0008A11A10B5F280A128A11A00B5D2800007B
:1000D000241124088500A414240885008312031326
:1000E0007430A0005530A1000A128A11A10B7428A7
:1000F0000A128A11A00B72280000A410240885009F
:020100003B289A
:02400E00D43CA0
:00000001FF
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.