Мазмуну:

Arduino Fireflies: 11 кадам (сүрөттөр менен)
Arduino Fireflies: 11 кадам (сүрөттөр менен)

Video: Arduino Fireflies: 11 кадам (сүрөттөр менен)

Video: Arduino Fireflies: 11 кадам (сүрөттөр менен)
Video: 3 drone one remote test 😳 2024, Июнь
Anonim
Image
Image
Сизге эмне керек
Сизге эмне керек

Пенсильванияда жай мезгилинде чыдамсыздык менен күткөн нерселердин бири - менин короодогу от чымындар. Мен жакында өзүмө бул жөнөкөй долбоорду жасоо үчүн Adruino программалоону үйрөттүм. Бул баштоо үчүн эң сонун программа жана башталгыч экспертке бир нече мүнөттүн ичинде куруу, өзгөртүү жана көңүл ачуу үчүн жетиштүү оңой. Кел, баштайлы.

1 -кадам: Сизге эмне керек

Сизге эмне керек
Сизге эмне керек

Мүчүлүштүктөрүңүздү өчүрүү үчүн сизге бул компоненттер керек:

  • Arduino. Мен Nano менен баштадым, бирок Arduino менен шайкеш келген микро контроллер.
  • Сары LED, 5мм. Сиз алардын 6га чейин колдоно аласыз.
  • Резисторлор. Токту чектөө үчүн бир LEDга бир резистор керек болот. Мен 470-Ом колдондум, бирок микро-контроллериңизди коргоо үчүн 150 Омдон жогору нерсе жакшы болушу керек.
  • Breadboard.
  • Jumper зымы.

Сиздин корооңуз үчүн долбоорду аяктоо үчүн, сизге керек:

  • Аба ырайына каршы долбоордун кутусу.
  • Туташтыргычы бар 9 вольттуу батарея. (Бул бөлүмдүн ылдый жагындагы эскертүүлөрдү караңыз.)
  • Которуу. (Мен бул суу өткөрбөй турган өчүргүчтөрдү тандадым. Эгер сиз муну сыртта колдонбосоңуз, анда кандайдыр бир которгуч жасайт.)
  • LEDдын диодун бактын айланасына жайгаштыруу үчүн бир нече ярд зым. Мен LEDге Cat5 Ethernet зымынын болжол менен 10 футун колдондум.
  • Кичинекей нан же бир аз тактай.
  • LED зымдары өтүүчү аба ырайына каршы кабелдик без. (Эгер сиз муну сыртта колдонбосоңуз, муну өткөрүп жибере аласыз.)
  • Сиздин LED мүчүлүштүктөрүңүздү коргоо үчүн жылытуучу түтүк.
  • Жашыл илгич-илмек (б.а. велкро) LED от чымындарын бакчаңыздагы өсүмдүктөргө жана постторго жабыштыруу үчүн.
  • Кичинекей нан тактаңызга компоненттерди туташтыруу үчүн эркек аталыштар.

Куралдар:

  • Долбоор кутучасы үчүн бургулоо биттери. (Бул мүмкүнчүлүктөн пайдаланып, өзүңүзгө жакшы кадам жасаңыз. Сиз кылганга кубанычта болосуз).
  • Ысык желим мылтык.
  • Кандооч.
  • Ротари куралы (б.а. Дремел), эгер сизге керек болсо, долбоор кутусуна мейкиндикти оюп салуу үчүн.

Бул жерде бир нече эскертүүлөр:

1. Батареяны тандоо тез жана оңой баштоо үчүн болгон. 9 вольттуу батареяны биротоло колдонуу бир аз ысырапкорчулук. Сиз 4х АА-батарейка кармагычты колдонуу менен жакшыраак иштейсиз (бирок сизге ылайыктуу болгон чоңураак долбоор кутусу керек болот).

2. Эгерде сиз Cat 5 Ethernet кабелин зымдарга ажыратууну чечсеңиз, анда алар жез өзөк экенине көзүңүз жетип, иштөөдө аларды тартипке келтирүү үчүн аларды ПВХнын айланасына тыкан ороп коюңуз. Дагы, мен LEDга 10 футка жакын зым колдондум. Эгерде сиз жарыкты алыска жайгыңыз келсе, анда узун зымдарды колдонуңуз!

3. Акырында, мен берген бардык шилтемелер жөн гана сунуштар. Сураныч, бир нерсени куруудан же сатып алардан мурун ушул Нускаманы толугу менен окуп чыгыңыз, анткени сиз жеке улантууну каалаарыңызды жакшыраак түшүнөсүз.

2 -кадам: Районду куруу

Circuit куруу
Circuit куруу
Circuit куруу
Circuit куруу
Circuit куруу
Circuit куруу

Бул долбоор сиздин Arduinoңуздагы импульстун туурасы модуляция казыктарын колдонот. Микроконтроллерде 6 төөнөгүч бар жана сиз каалаганча колдоно аласыз. Район абдан түз алдыга. Бардык күчтү импульстун туурасы модуляциясынан (PWM) D3, D5, D6, D9, D10 жана D11 пиндеринен диоддордун оң жактарына чейин өткөрүңүз. Терс жактарын резисторлорго, андан кийин жалпы жерге бургула. (Резисторлор светодиоддун алдына же артына кете алышат. Эгерде сиз жогорку токтун кыска туташууларынан коргогуңуз келбесе, эч кандай мааниси жок.) Мен зымга жардам берүү үчүн бир нече схемаларды киргиздим. (Fritzing дизайн программасын колдонуу менен түзүлгөн схемалар.)

3 -кадам: Кодекс

Image
Image

Эгерде сиз тажрыйбалуу программист болсоңуз, анда бул кодду оңой таба аласыз. Бул өзгөрмөлөрдү, пинмоддорду, функцияларды жана ал тургай туш келди генераторду колдонуу менен тааныштырып, үйрөнүүнү баштоо үчүн эң сонун код. Код ушунчалык компакт эмес, мен ишенем, ошол эле эффектке массивдер ж.

Код комментарийлери ар бир бөлүмдүн логикасын аныктайт. Бардык код ушул жерге камтылган жана сиз төмөндөгү эскизди жүктөп алсаңыз болот.

/*

Бул скрипт PWMди колдонуп, туш келди тартипте 6 LED (албетте, сары) жаркырайт. Ар бир LED өзүнүн функциясы менен башкарылат. */ int led1 = 3; // LED PWM pin 3 -ке туташкан, мен баардык 6 PWM казыктарын колдондум. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; узун ранднум; // randnum жарк этүү менен узакка созулган жарыш ортосундагы убакыт аралыгын көзөмөлдөйт; // randbug кайсы ката күйүп турганын көзөмөлдөйт. жараксыз орнотуу () {pinMode (led1, OUTPUT); // Бардык PWM казыктарын чыгаруу катары коюу. pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); } void loop () {randbug = random (3, 12); // randbug туш келди аткаруучу функцияны тандайт, // ошентип туш келди жарык берүү үчүн катаны тандайт. if (randbug == 3) {bug1 (); } if (randbug == 5) {bug2 (); } if (randbug == 6) {bug3 (); } if (randbug == 9) {bug4 (); } if (randbug == 10) {bug5 (); } if (randbug == 11) {bug6 (); }} / * * Бул функциялардын ар бири бирдей иштейт. "Илмек үчүн" көбөйтүү, андан кийин азайтуу * LED жарыгын көзөмөлдөө үчүн ошол пиндин чыгышы. * 'randnum' - бул туш келди убакыт аралыгы 10дон 3000 мске чейин * жана мүчүлүштүктөрдүн жарыгынын ортосундагы убакыт аралыгын тандайт. * "Кечиктирүү 10" жөн эле өчүрүү эффектиси үчүн. */ void bug1 () {randnum = random (10, 3000); үчүн (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led1, fadeValue); кечигүү (10); } кечигүү (randnum); } void bug2 () {randnum = random (10, 3000); үчүн (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led2, fadeValue); кечигүү (10); } кечигүү (randnum); } void bug3 () {randnum = random (10, 3000); үчүн (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led3, fadeValue); кечигүү (10); } кечигүү (randnum); } void bug4 () {randnum = random (10, 3000); үчүн (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led4, fadeValue); кечигүү (10); } кечигүү (randnum); } void bug5 () {randnum = random (10, 3000); үчүн (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led5, fadeValue); кечигүү (10); } кечигүү (randnum); } void bug6 () {randnum = random (10, 3000); үчүн (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led6, fadeValue); кечигүү (10); } кечигүү (randnum); }

4 -кадам: Кутуну куруңуз

Мүчүлүштүктөрдү куруу!
Мүчүлүштүктөрдү куруу!

Сиз Arduino кодуңузду жарк эттирип, өзүңүз каалагандай иштеп жаткан от өчүрүүчүлөрүңүздү алгандан кийин, аларды бакчага салгыңыз келиши мүмкүн; бул долбоордун кутусун жана Arduino менен LEDди кургак кармоо үчүн кээ бир жылуулуктун азайышын билдирет. Жасайлы!

5 -кадам: Мүчүлүштүктөрдү куруу

Мүчүлүштүктөрдү куруу!
Мүчүлүштүктөрдү куруу!
Мүчүлүштүктөрдү куруу!
Мүчүлүштүктөрдү куруу!
Мүчүлүштүктөрдү куруу!
Мүчүлүштүктөрдү куруу!
  • Жарык диоддорун 5 ммге чейин кыркыңыз.
  • Колдонуп жаткан зымдарыңыздын учтарын сыйрып, калайлаңыз, болжол менен 5 мм.
  • Ар бир зымдын учунда 1 мм жылуулукту кысуучу түтүктөрдү жылдырыңыз.
  • Жарык диодун зымга туташтырыңыз. (Бул учурда, сиз жубуңуздагы кайсы зым сиздин позитивдүү, кайсынысы терс болорун тандап алышыңыз керек. Мен катуу зымды оң жана ак зымды терс катары тандап алдым. Кийинчерээк баш оору болбошу үчүн, бул стратегияны долбоор аркылуу сактаңыз!)
  • Жылуулукту жылаңач зымдын жана LED сымдарынын үстүнөн жылдырыңыз. Зымдарга аларды кичирейтүү үчүн алардын үстүнөн тез от жагыңыз.
  • Жарыктын дагы бир бөлүгүн светодиод менен зымдын үстүнө жылдырыңыз, анын артында LED линзасы бар жана аны эритип алыңыз.
  • Жылуулуктун бир нече бөлүгүн зымга кыскартуу менен анын узундугу чыгып, зымдын тыкан болушу үчүн аны бир нече футта эритип алыңыз.

6 -кадам: Долбоор кутучасын даярдаңыз

Долбоор кутучасын даярдаңыз
Долбоор кутучасын даярдаңыз
Долбоор кутучасын даярдаңыз
Долбоор кутучасын даярдаңыз
  • Долбоор кутуңуздагы керексиз пластикти тазалоо үчүн тегиздөөчү барабан менен айлануучу куралды колдонуңуз. (Этият болуңуз, кутуңузду кайра бириктирүү үчүн керектүү болгон бурама орнотмолорду кесип албаңыз.)
  • Которгучтун кайда болушун жана LED зымдары кайда чыгарын чечиңиз. Мен тараптарды сунуштайм, бирок сиздин муктаждыктарыңызга ылайык келген нерсени колдонуңуз.
  • Тиешелүү өлчөмдөгү бургуңузду колдонуп, кабелиңиздин тешиктерин жасаңыз.

Эскертүү: Жогорудагы сүрөттө менин "муляждык кабель" жасаганымды көрөсүз. Бул мен аларды жылытуу үчүн светодиоддор үчүн колдонгон 6 жуп зымдын түйүнү. Мен муну кабелдик түйүндүн чыныгы кабелдик топтомго жакшы дал келерине ынануу үчүн, ошондой эле которгуч, кабель түйүнү жана капкагы күйгүзүлгөндө кутунун сууга туруштук берүүсүн текшерүү үчүн колдондум. (6 дюймдук сууга 24 саат чөгүп кеткенден кийин ичинде ным аз болчу. Мен бул кутуну "аба ырайына чыдамдуу" деп атасам кубанычта болом).

7 -кадам: Күчтү алып келиңиз

Бийликти алып кел!
Бийликти алып кел!
Бийликти алып кел!
Бийликти алып кел!
  • Бардык үч компонентти болжол менен долбоордун кутусуна салып, Arduinoго жетүү үчүн канча батарея жана которуштуруучу зым керек экенин аныктаңыз. Коммутатордун жана 9В батарея туташтыргычынын зымдарын кыркыңыз. Учтарын сыйрып, туураңыз. Кийинки кадам үчүн бир аз жылуулукту азайтыңыз.
  • Тилкеңизден эки эркек баш казыкты кесип салыңыз (бирок аларды бири -бирине жабыштырып туруңуз).
  • 9В батарея туташтыргычынын кызыл коргошун которгучтун бир четине. Которгучтун экинчи учун эркектин башына төөнөгүчкө туташтырыңыз. Кара батарейканы башка эркектин башына төөнөгүчкө туташтырыңыз.
  • Жогорудагы диаграммада көрсөтүлгөндөй, башкы пиндер наного VIN (оң) жана GND (терс) жагуу үчүн нан тактасына кирет. VIN пин 7-12 вольтту башкара алат. Эгерде сиз Arduino -ңузду 9В батарейкасынан башка жол менен иштетүүнү пландап жатсаңыз, башка камсыздоо пинин колдонуңуз.

8 -кадам: Керек болсо нанону өзгөртүү

Керек болсо нанону өзгөртүү
Керек болсо нанону өзгөртүү

Менин проектимдин кутусу өтө тайыз болгондуктан, ICSPтин башына төөнөгүчтөрдү батыраак алып салышым керек болчу. Бул казыктар сиздин Arduino менен экинчи интерфейс. Аларды алып салуу наноңузга зыян келтирбейт, анткени скрипттерди дайыма USB порт аркылуу жүктөй аласыз.

Эскертүү: Эгерде сиздин наноңузга баштык казыктары керек болсо, Arduino монтаждоодо бул казыктарды калтырып коюңуз.

9 -кадам: Ички зым

Image
Image
Ички зым
Ички зым
Ички зым
Ички зым
  • Кабелдик порттун портун проектинин кутусуна тешип коюңуз. Эгерде сиз кабелдик безди кантип колдонуу керектигин билбей жатсаңыз, мен YouTubeдан тапкан бул видеодо чогулганын көрүүгө болот. (0: 57ге чейин алдыга.) Сиздикинде резина жуугуч болушу мүмкүн. Бул долбоордун коробкасы менен кабелдик бездин сырткы гайкасынын ортосунда жүрөт.
  • LED зымдарынын бош учтарын чогулткула. Бул убакытты алып, аларды бирдей узундукта кыркып, учтарын сыйрып, калемпирлеңиз. Кабелдин капкагы аркылуу учтарын өткөрүңүз жана учтарын бириктирүү үчүн жылуулукту кыскарткычты колдонуңуз, кутунун ичиндеги нанга жетүү үчүн жетиштүү узундук калтырыңыз.
  • Кабелдик зым порту аркылуу зымдын тобун долбоордун кутусуна өткөрүңүз жана зымдарды бекитүү үчүн бездин капкагын бураңыз, эң жакшысы сиз аларды жылытуу үчүн колдонулган жылуулуктун тегерегинде.
  • Жер зымдарын оң зымдардан ажыратыңыз (кайсынысын мурда тандаганыңызды эстеп). Бардык жерге коюлган зымдарды бирдиктүү жерге бириктирүү. Ошол тутамдан кыска зымды тиркеп, аны 1 эркек баш менен бүтүрүңүз. Жылаңач структураларыңызды коргоо үчүн жылуулукту азайтыңыз.
  • Ар бир оң зымдын учунда Solder эркек башчылары. Дагы, жылуулукту азайтууну колдонуңуз.
  • Ардуинодогу PWM төөнөгүчтөрүнө туташуу үчүн оң жагындагы эркектин башын нанга салыңыз.
  • Жалпы чекти нан тактасына киргизиңиз, ал токту чектөөчү резистордон өтүп, андан кийин Arduinoдогу GNDге өтөт.
  • Батарейкага салып, которгучту мурда бургулаган кутуңуздун тешигинен өткөрүңүз. Долбоор кутучасы менен бурама капкактын ортосуна резина шайбаны орнотуңуз. Электр өткөргүчтөрүн нан тактасына сайыңыз.
  • Капкакты кутучага илип же бурап салыңыз. Сен бүттүң!

Эскертүү: Схемада жана өнүгүү стадиясында мен LED үчүн бир чектөөчү резисторду колдондум. Адатта, ар бир светодиод өзүнүн резисторуна ээ болушу керек, адатта, бир эле убакта бирден ашык LED жарык болот. Код бир убакта бирден ашык светодиоддун күйүшүнө жол бербейт, ошондуктан Arduino'ду коргоо үчүн бир гана резисторду колдонуу жакшы. Бул ошондой эле кичинекей нан тактасында орунду үнөмдөйт же ар бир LEDди линиядагы резистор менен ширетүү убактысын үнөмдөйт. Бул мындай деди … ЭСКЕРТҮҮ !!! Эгерде сиз кодду бир эле убакта бирден ашык светодиодго өзгөртүүнү пландасаңыз, анда ар бир LED үчүн өзүнчө резисторлор керек болот.

10 -кадам: Аны колдонуңуз

Аны колдонуу
Аны колдонуу

Жарык диоддорун өсүмдүктөргө, тосмолорго, кызгылт фламинголорго же корооңуздагы башка нерселерге жабыштыруу үчүн Velcro боолорун же ысык желимди колдонуңуз. Аларды шарап текчелерине, көшөгөлөрдүн артына тыгып же караңгыда 3D калкып жүрүүчү эффект үчүн зымдарды шыптан асып коюңуз! Бул кечелер, үйлөнүү үлпөтү, кино жана фотография үчүн эң сонун болмок.

11 -кадам: Андан ары …

Жогоруда айтылгандай, бул долбоордун алгачкы версиясы, бирок ал абдан чоң потенциалга толгон! Көчүрүү реестрин туташтыруу менен көбүрөөк LED иштетүү (JColvin91дин көрсөтмөсүн караңыз.) "Орнот жана унут" функциясына жарык сенсорун, күн заряддагычын жана таймерди кошуңуз! Мүчүлүштүктөргө өзүңүздүн жарыгыңызды кошуу үчүн код менен чаташтырыңыз. Жасаган нерселериңиз менен бөлүшүңүз жана ырахат алыңыз !!

UPDATE: Бул Instructable басылып чыккандан бери акыркы эки жумада көптөгөн салым кошуучулар бул долбоордун кодун, жабдууларын жана аткарылышын жакшыртууну сунушташты. Эгер сиз муну курууну пландап жатсаңыз, мен кеңеш берем, сиз комментарийлерди жана жоопторду окуп, бул чагылган мүчүлүштүктөрүн мен пландаштырбаган жолдор менен кантип жасоо керектиги жөнүндө ойлонуп көрүңүз. Бул долбоорду мен ойлогондон да көбүрөөк өнүктүрүүгө жардам берген бардык идеяларды ачык булактан чыгаруу рухунда кабыл алдым … жана муну ишке ашыргандардын баарына ыраазычылык билдирем.

Баруу. Жасоо !!!

Сунушталууда: