Агуулгын хүснэгт:

Зотон даавуугаар шилэн кабелийн гэрэл: 5 алхам
Зотон даавуугаар шилэн кабелийн гэрэл: 5 алхам

Видео: Зотон даавуугаар шилэн кабелийн гэрэл: 5 алхам

Видео: Зотон даавуугаар шилэн кабелийн гэрэл: 5 алхам
Видео: Truck Campers for Adventurous Travelers: Top 10 Picks 2024, Долдугаар сарын
Anonim
Image
Image
Зотон даавуугаар шилэн кабелийн гэрэл
Зотон даавуугаар шилэн кабелийн гэрэл

Энэхүү төсөл нь ердийн зотон зураг дээр өвөрмөц эргэлт өгдөг. Би 4 өөр гэрэлтүүлгийн горимд програмчилсан боловч та илүү хялбар нэмж болно. Хүрээг гэмтээхгүй байхын тулд тусдаа товчлууртай байхын оронд унтраах, асаах бүртээ горимыг өөрчилдөг. Батерей нь 50+ цаг ажиллах боломжтой - Би сайн мэдэхгүй байна, гэхдээ би найздаа ижил төстэй төсөл хийсэн бөгөөд 5 дахин их гэрэл хэрэглэж, нэг багц батерей дээр 20+ цаг үргэлжилсэн.

Материал

  • Ажиллах боломжтой зай бүхий зотон даавуугаар хэвлэх - Тэд сайн үнэ, нуруу нээлттэй байсан тул би https://www.easycanvasprints.com дээрээс захиалга өгсөн. Зузаан 1.5 "хүрээ нь төгс төгөлдөр байсан бөгөөд надад шилэн кабелийг нугалахад маш их зай өгсөн. Нэмж хэлэхэд та батерейны багц, микроконтроллер, LED туузан дээр ажиллах боломжтой 3" 8 "зайтай зургийг хүсч байна.
  • LED туузны гэрэл - Би хаягтай WS2812 LED туузыг ашигласан. Бүү ай, учир нь тэдгээрийг FastLED эсвэл Neopixel номын санд ашиглахад үнэхээр хялбар байдаг! Та ямар ч стандарт LED туузыг ашиглаж болно, гэхдээ илүү их утас тавихгүйгээр гэрлийн хэсэг бүрийг дангаар нь хянах боломжгүй болно.
  • Микроконтроллер - Би Arduino Uno -ийг ашигласан боловч та энэ төслийн хувьд бараг бүх зүйлийг ашиглаж болно.
  • Батерейны багц - Би үүнийг eBay -ээс (Хятадаас) захиалсан бөгөөд "6 x 1.5V AA 2A CELL зайны батерейны эзэмшигч" гэсэн гарчигтай байсан.
  • Хятадаас eBay дээр захиалсан шилэн утас нь "PMMA хуванцар шилэн кабелийг LED гэрлээр чимэглэх боломжтой" эсвэл "Оддын таазны гэрлийн иж бүрдэлд зориулсан PMMA төгсгөлийн гэрэлтдэг шилэн кабель" юм. Би 1мм ба 1.5мм хэмжээтэй хэмжээтэй байсан, үнэндээ үүнээс бага хэмжээтэйг ашиглахыг зөвлөж байна.
  • Асаах/унтраах унтраалга - "SPDT асаах/асаах 2 байрлалд бяцхан шилжих унтраалга"
  • Утасны зохион байгуулалтын хавчаарууд - Эдгээр нь шилэн кабелийг сайхан, эмх цэгцтэй байлгахад тусалдаг.
  • Хөөс хавтан, хатуу цөмт холбогч утас, дулаан багасгадаг хоолой

Багаж хэрэгсэл

  • Дремел - асаах/унтраах товчлуурыг зургийн жаазанд үүрлэхэд ашигладаг. Үүнийг өрөмдлөгийн тусламжтайгаар хийж болох юм, гэхдээ би үүнийг хийхийг зөвлөдөггүй.
  • Гагнуурын төмөр - LED туузанд утас холбох
  • Халуун цавуу буу - энэ төслийн алхам бүр
  • Оёдлын том зүү - гэрэл, хөөсөнцөр даавуугаар даавуугаар нүх гаргах зориулалттай

Алхам 1: Хөөс хавтан, Батерейны багц, Асаах/унтраах унтраалга

Хөөс хавтан, Батерейны багц ба асаах/унтраах унтраалга
Хөөс хавтан, Батерейны багц ба асаах/унтраах унтраалга
Хөөс хавтан, Батерейны багц ба асаах/унтраах унтраалга
Хөөс хавтан, Батерейны багц ба асаах/унтраах унтраалга

Юу ч хийхээс өмнө даавууны ар талд хөөсөнцөр хавтанг хавсаргах хэрэгтэй. Энэ нь бидэнд бусад бүх зүйлийг бэхлэх сайхан гадаргууг өгч, шилэн кабелийг бэхлэхэд тусалдаг. Хөөс хавтанг хүссэн хэмжээгээр нь хайчилж, олон газарт халуун цавуу хийхэд яг яг хутга эсвэл хайрцаг таслагч ашиглаарай. Би хар хөөс хавтанг ашиглахыг зөвлөж байна, ингэснээр их хэмжээний гэрэл нэвтэрч чадахгүй болно.

Би жирийн өрөм шиг харагддаг боловч материалыг арилгахад үнэхээр тохиромжтой dremel битийг ашигласан. Энэ бол ямар ч дремельтэй хамт байх ёстой зүйлүүдийн нэг юм. Дремелээс гарсан модны үртэсийг зайлуулахын тулд лааз шахсан агаар ашиглана уу.

Халуун цавуу бүх зүйлийг байрлуулна. Батерейг маш сайн хавсаргасан эсэхийг шалгаарай, учир нь батерейг оруулах/салгахад бага зэрэг хүч шаардагддаг бөгөөд батерей эзэмшигч хаашаа ч явахыг хүсэхгүй байна.

Алхам 2: Микроконтроллер ба хэлхээ

Микроконтроллер ба хэлхээ
Микроконтроллер ба хэлхээ
Микроконтроллер ба хэлхээ
Микроконтроллер ба хэлхээ
Микроконтроллер ба хэлхээ
Микроконтроллер ба хэлхээ

Би цахилгаан унтраалгыг Arduino UNO -ийн өмнө тавьсан бөгөөд ингэснээр та унтраалгыг асаахад батерейны цэнэгийг ашиглахгүй болно. Энэ нь төслийг асаахгүй байгаа тохиолдолд батерейг аль болох удаан ажиллуулахад туслах болно. Arduino самбар нь эрчим хүчний менежментийн хувьд муу байдаг - хэрэв тэд идэвхтэй юу ч хийгээгүй байсан ч асаалттай байвал маш их гүйдэл ашигладаг.

Батерейны эерэг үзүүрийг микроконтроллерийн VIN (хүчдэлийн оролт) руу залгаарай, ингэснээр хүчдэлийг шаардлагатай 5В хүртэл бууруулахын тулд хянагчийн суурилуулсан хүчдэлийн зохицуулагчийг ашиглана. Хэрэв бид илүү их гэрэл асааж байгаа бол тэдэнд өөрсдийн хүчдэлийн зохицуулагчийг ашиглах шаардлагатай байж магадгүй, гэхдээ НҮБ нь 5 LED -ийг удирдах чадвартай байх ёстой.

Би дохиог жигд болгохын тулд өгөгдлийн гаралт ба LED зурвасын хооронд резистор ашигласан. Эсэргүүцлийн хэмжээ нь хамаагүй, 50Ω -аас 400Ω хооронд ажиллах ёстой.

Алхам 3: Шилэн кабелийн гэрэл

Image
Image
Шилэн кабелийн гэрэл
Шилэн кабелийн гэрэл
Шилэн кабелийн гэрэл
Шилэн кабелийн гэрэл

Туршилт, алдааны дараа би шилэн кабелийг даавуугаар дамжуулах сайн аргыг олж мэдэв.

  1. Хамгийн том оёдлын зүүг ашиглан даавуу болон хөөсөн хавтангийн урд хэсгийг нүхлээрэй. Би хүссэн бүх нүхээ эхнээс нь цоолохыг зөвлөж байна, ингэснээр та үүнийг эргүүлж, кабелийн зохион байгуулалтын клипээ хаана байрлуулж болохгүйг харж болно.
  2. Зүү хамартай бахө аваад төгсгөлөөсөө нэг см-ээс бага зайд шилэн кабелийг ав.
  3. Шилэн кабелийг зүүгээр хийсэн нүхээр цоол
  4. Янз бүрийн хуванцар хавчаараар туузыг шаардлагатай хэмжээнээс арай урт уруу чиглүүлээрэй - бид дараа нь таслах болно
  5. Халуун цавуу буугаа LOW температурын тохиргоонд (хэрэв ийм сонголт байгаа бол) шилэн кабелийн хэсэгт дусал халуун цавуу хийж хөөсөнцөр хавтангаар дамжуулна. Эсвэл та тэр цэнхэр өнгийг ашиглаж болно. Халуун цавуу нь туузыг бага зэрэг гажуудуулдаг боловч оптик чанарыг хэт их алдагдуулдаггүй юм шиг санагддаг
  6. Утас таслагч ашиглан туузыг зотон дээрээс бага зэрэг зүснэ.

Процессыг хурдасгахын тулд халуун цавуу хийхээсээ өмнө олон ширхэг утаснуудыг дараалан нэвт норгож болно. Тэд ерөнхийдөө ганцаараа байрандаа байх ёстой.

Ширээн дээрх шилэн утсыг таслах, хавчихаас болгоомжил - тэд тасрах болно, хэрвээ энэ утас хэт богино байвал та гунигтай байж, дахин хийх хэрэгтэй болно. Батерейны багцыг эсрэг жин болгон ашигла, ингэснээр та зургийн жаазыг ширээн дээр хагасаас бага байлгах боломжтой болно.

Би хар биш цагаан хөөс хавтанг ашигладаг байсан тул LED асах үед маш их гэрэл тусдаг байв. Үүнийг засахын тулд би гэрэл, зурагны хооронд хөнгөн цагаан тугалган цаас наажээ.

Шилэн кабелийн боодол бүрийг нэг дор байлгахын тулд дулаан агшаагч хоолой ашиглана уу.

  1. Багцын утаснуудыг ойролцоогоор ижил урттай хайчилж ав
  2. Дулаан агшилтын хоолойгоор дамжуулсан хэсгийг тавь
  3. Үүнийг багасгахын тулд дулааны буу эсвэл гагнуурын төмрийг ашигла. Хэрэв та гагнуурын төмрийг ашиглаж байгаа бол төмрийн хажуу талыг гуурсан хоолойд бага зэрэг хүрэхэд л багасна. Энэ нь бага зэрэг халуунд зориулагдсан тул хоолойг хайлуулж болохгүй.

Эцэст нь би халуун цавуугаар боодлын төгсгөлийг LED гэрэл тус бүрт хавсаргав. Би маш их халуун цавуу хэрэглэсэн бөгөөд ингэснээр утаснууд улаан/ногоон/цэнхэр диод тус бүрээс гэрэлд тусдаг - утаснууд нь гэрэлд үнэхээр ойрхон байвал "цагаан" өнгөтэй (энэ нь улаан, ногоон, цэнхэр өнгөтэй байдаг) Дараа нь зарим утас нь цагаан байхын оронд улаан, зарим нь ногоон өнгөтэй болно. Үүнийг сарниулахын тулд цаас эсвэл өөр зүйл ашиглан сайжруулж болох боловч халуун цавуу надад хангалттай сайн ажилласан.

Алхам 4: Програмчлал

Үүнийг програмчлахдаа би гурван номын сан ашигласан

FastLED - WS2812 LED зурвас (болон бусад хаягтай бусад LED зурвас) -ыг удирдах гайхалтай номын сан -

Arduino Low Power - Энэ нь хичнээн их эрчим хүч хэмнэдэгийг би мэдэхгүй, гэхдээ үүнийг хэрэгжүүлэхэд маш хялбар байсан бөгөөд зөвхөн цагаан гэрэл асаагаад үүрд хойшлуулах функцийг бага зэрэг хэмнэхэд туслах ёстой.

EEPROM - Төслийн одоогийн горимыг унших/хадгалахад ашигладаг. Энэ нь төслийг унтраах, асаах бүрт өнгөний горимыг нэмэгдүүлэх боломжийг олгодог бөгөөд ингэснээр горимыг өөрчлөхийн тулд тусдаа товчлуур шаардлагагүй болно. Arduino IDE -ийг суулгах бүрт EEPROM номын санг суулгадаг.

Би бас өөр хүний тавьсан гэрлийг анивчихдаа ноорог зурсан. Энэ нь санамсаргүй байдлаар пикселийг үндсэн өнгөнөөс дээд хүртэл нь асааж, дараа нь буцааж өгдөг. https://gist.github.com/kriegsman/88954aae22b03a66… (энэ нь FastLED номын санг бас ашигладаг)

Би бас Visual Studio -д зориулж vMicro залгаасыг ашигласан - энэ бол Arduino IDE -ийн сайжруулсан хувилбар юм. Энэ нь маш олон тооны автоматаар бөглөх функцтэй бөгөөд үүнийг эмхэтгэхгүйгээр таны кодын асуудлыг тодруулдаг. Энэ нь 15 долларын үнэтэй боловч хэрэв та хэд хэдэн Arduino төсөл хийх гэж байгаа бол энэ нь үнэ цэнэтэй бөгөөд энэ нь таныг супер хүчирхэг програм болох Visual Studio -ийн талаар сурахад хүргэнэ.

(Github Gist -ийн зааварчилгааны хостинг нь файл доторх олон хоосон зайг устгадаг тул би.ino файлын кодыг хавсаргаж байна)

Arduino код нь Arduino UNO дээр 4 өнгийн горимд ажилладаг бөгөөд зарим WS2812B LED зурвасын гэрлийг FastLED номын сангаар ашигладаг

#оруулах
#оруулах
#оруулах
// FastLED тохиргоо
#тодорхойлохNUM_LEDS4
#definePIN3 // LED зурвасын өгөгдлийн зүү
CRGB LED [NUM_LEDS];
// Twinkle тохиргоо
#deBine_COLORCRGB (2, 2, 2) // Үндсэн дэвсгэр өнгө
#definePEAK_COLORCRGB (255, 255, 255) // Оргил өнгө хүртэл гялалзах
// Илүү гэрэл гэгээтэй болох тусам давталт бүрээр өнгийг нэмэгдүүлэх хэмжээ:
#тодорхойлохDELTA_COLOR_UPCRGB (4, 4, 4)
// Өнгө нь бүдэгрэх тусам давталт бүрээр буурах хэмжээ:
#тодорхойлохDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Пиксел бүрийн гэрэлтэх боломж.
// 1 эсвэл 2 = хэд хэдэн гэрэлтүүлэгч пикселүүд.
// 10 = олон пикселийг нэг дор гэрэлтүүлж байна.
#тодорхойлох_ХОЁРДУГААР_ХАНДАХ_2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
байт runMode;
байт globalBright = 150;
байт globalDelay = 20; // Гялалзах үед хойшлуулах хурд
байт хаяг = 35; // Ажиллуулах горимыг хадгалах хаяг
voidsetup ()
{
FastLED.addLeds (leds, NUM_LEDS);
FastLED.setCorrection (TypicalLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps (5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Ажиллуулах горимыг аваарай
runMode = EEPROM.read (хаяг);
// Гүйдлийн горимыг 1 -ээр нэмэгдүүлэх
EEPROM.write (хаяг, runMode + 1);
}
voidloop ()
{
шилжүүлэгч (runMode)
{
// Хатуу цагаан
case1: fill_solid (leds, NUM_LEDS, CRGB:: White);
FastLED.show ();
DelayForever ();
завсарлага;
// аажмаар гялалзана
тохиолдол2: FastLED.setBrightness (255);
globalDelay = 10;
TwinkleMapPixels ();
завсарлага;
// Хурдан гялалзана
case3: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixels ();
завсарлага;
// Солонго
тохиолдол4:
RunRainbow ();
завсарлага;
// Индексийг мужаас хэтрүүлж, 2 болгож дахин тохируулаад 1 горимыг ажиллуулна уу.
// arduino дахин асах үед 2 -р горимыг ажиллуулах боловч одоогоор 1 -р горимыг ажиллуулна
анхдагч:
EEPROM.write (хаяг, 2);
runMode = 1;
завсарлага;
}
}
voidRunRainbow ()
{
байт *в;
uint16_t i, j;
байхад (үнэн)
{
for (j = 0; j <256; j ++) {// дугуй дээрх бүх өнгөний 1 мөчлөг
for (i = 0; i <NUM_LEDS; i ++) {
c = Дугуй (((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c + 1), *(c + 2));
}
FastLED.show ();
саатал (globalDelay);
}
}
}
байт * Дугуй (байт WheelPos) {
статик байт c [3];
хэрэв (WheelPos <85) {
c [0] = WheelPos * 3;
c [1] = 255 - WheelPos * 3;
c [2] = 0;
}
elseif (WheelPos <170) {
WheelPos -= 85;
c [0] = 255 - WheelPos * 3;
c [1] = 0;
c [2] = WheelPos * 3;
}
өөр {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
буцах c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
байхад (үнэн)
{
for (uint16_t i = 0; i <NUM_LEDS; i ++) {
хэрэв (PixelState == SteadyDim) {
// энэ пиксел нь одоогоор: SteadyDim
// Тиймээс бид үүнийг гэрэлтүүлж эхлэхийг санамсаргүй байдлаар бодож үздэг
хэрэв (санамсаргүй8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter;
}
}
elseif (PixelState == GettingBrighter) {
// энэ пиксел нь одоогоор: GettingBrighter
// Тиймээс хэрэв энэ нь дээд цэгтээ хүрсэн бол түүнийг дахин бүдэгрүүлэх горимд шилжүүлээрэй
хэрэв (leds > = PEAK_COLOR) {
PixelState = GettingDimmerAgain;
}
өөр {
// эс бөгөөс үүнийг гэрэлтүүлээрэй.
leds += DELTA_COLOR_UP;
}
}
өөр {// дахин бүдэгрэх
// энэ пиксел нь одоогоор: GettingDimmerAgain
// тиймээс хэрэв энэ нь үндсэн өнгө рүү буцаж ирвэл түүнийг тогтмол бүдэгрүүлээрэй
хэрэв (leds <= BASE_COLOR) {
leds = BASE_COLOR; // бид хэтрүүлсэн тохиолдолд яг үндсэн өнгө болгон дахин тохируулна уу
PixelState = SteadyDim;
}
өөр {
// өөрөөр хэлбэл зүгээр л бүдгэрүүлээрэй.
leds -= DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // бүх пикселүүдийг SteadyDim болгон эхлүүлэх.
fill_solid (LED, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
байхад (үнэн)
{
саатал (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, улаан байт, ногоон байт, цэнхэр байт) {
// FastLED
leds [Pixel].r = улаан;
leds [Пиксел].g = ногоон;
leds [Pixel].b = цэнхэр;
}

GitHub -аас ❤ -аар зохион байгуулагдсан rawFiberOptic_ClemsonPic.ino -г үзэх

Алхам 5: Эцсийн бүтээгдэхүүн

Эцсийн бүтээгдэхүүн
Эцсийн бүтээгдэхүүн
Эцсийн бүтээгдэхүүн
Эцсийн бүтээгдэхүүн
Эцсийн бүтээгдэхүүн
Эцсийн бүтээгдэхүүн

Та-да! Энэхүү зааварчилгаа нь өөр хэн нэгэнтэй ижил төстэй төсөл хийх урам зориг өгсөн гэж найдаж байна. Үүнийг хийхэд үнэхээр хэцүү байгаагүй бөгөөд хэн ч үүнийг хийгээгүйд би гайхаж, энэ талаар нарийвчилсан зааварчилгаа хараахан бичээгүй байна.

Зөвлөмж болгож буй: