Агуулгын хүснэгт:
- Алхам 1: Схем ба техник хангамж
- Алхам 2: ПХБ -ийг LED дээр байрлуулах
- Алхам 3: Хайрцаг хийх
- Алхам 4: зангиа бэлтгэх
- Алхам 5: Fiberoptics -ийг нааж болно
- Алхам 6: Fiberoptics -ийг зангиагаар оруулах
- Алхам 7: Fiberoptics -ийг зангианд наалдуулах
- Алхам 8: Код
- Алхам 9: Эцсийн бүтээгдэхүүн
Видео: Одтой тэнгэрийн удирдлага: 9 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Хэсэг хугацааны өмнө би долларын дэлгүүрээс fiberoptics бүхий хүүхдийн тоглоом олж, үүнийг юу хийх талаар бодож эхлэв.
Надад байсан галзуу санаануудын нэг бол одтой тэнгэрийн нөлөөгөөр зангиа хийх явдал байв.
Надад энэ төсөлд тохирсон arduino pro mini's, adafruit хавтан, батерейнууд байсаар л байсан.
Тиймээс би хотынхоо ломбарднаас сайхан өргөн зангиа олоод, тоног төхөөрөмжид тохирох хайрцаг олсон даруйдаа үүнийг хийхээр оролдож, бүтээхээр шийдлээ.
Энэхүү зааварчилгаа нь миний яаж хийснийг танд харуулах болно.
Энэ нь arduino pro mini, adafruit powerboost 500 цэнэглэгч, emmerich icr 18650nh-sp, 5 цагаан LED дээр ажилладаг. Код нь LED -ийн өөрчлөлтийн тод байдлыг санамсаргүй болгодог. (Видеоны эхний 40 секунд нь 3 дахин хурдтай)
Алхам 1: Схем ба техник хангамж
Би дараах тоног төхөөрөмжийг ашиглаж байна.
- Мөсөн цагаан LED, 220 Ом эсэргүүцэлтэй ПХБ.
-Arduino pro mini (би тоглосон)
-Adafruit Powerboost 500 цэнэглэгч
-Эммерих Ли-ион ICU-18650NH-SP
- Оптик утас (өөр өөр хэмжээтэй)
Алхам 2: ПХБ -ийг LED дээр байрлуулах
Би LED барихын тулд ПХБ -ийн тууз хайчилж, гол тээглүүр дээр гагнахын тулд LED тээглүүрийг ашигласан.
Бүх катодуудыг (-) GND-т холбож, гол ПХБ-д наалдсан тээглүүрийн талыг ашигласан.
Бүх анодуудыг (+) резистор, кабелиар arduino руу холбосон.
LED тус бүрийг дараах ХОУХ -ны портуудтай холбох ёстой: 3, 5, 6, 9, 10, 11
Тэнэг намайг энэ төслөөр маш их алдаа гаргаж, ХОУХ -ны зөв портуудыг шалгахаа мартсан тул хэдхэн хоногийн дараа дахин зарах шаардлагатай болсон. Өндөр/Бага туршиж үзсэн тул үүнийг сүүлд л анзаарсан.
Би 7 LED -ээр эхэлсэн боловч зөвхөн 6 ХОУХ -ны порт байсан бөгөөд миний дахин зарсан LED -ийн нэг нь нас барсан. Би дөнгөж 5 ажиллаж байгаа LED -ээ хадгалж, 6 -рыг нь ашиглахгүй байна.
Алхам 3: Хайрцаг хийх
Би Bosch GRO (Dremel гэх мэт) болон өрмийн тусламжтайгаар зайны хэлбэр, товчлуур, микро-USB порт, Arduino-ийн толгой ба оптик утаснуудыг таслав. (тоосны маск ашиглаарай!)
Батерейг хайрцагт 2 туузаар наасан.
Адафрутын самбар ба ПХБ -ийг бэхлэхдээ боолтыг ашигласан.
Нээх, хаах үед үүсэх үрэлтийн улмаас зарим утас гэмтсэн байна. Дахин давтагдахгүйн тулд би тэдгээрийг дахин зарж, цавуу хэрэглэх шаардлагатай болсон.
Алхам 4: зангиа бэлтгэх
Резинэн хуудсанд тааруулахын тулд зангианы доод хэсгээс оёдолыг арилгав.
Тоног төхөөрөмжийг нууж, шаардлагатай бол түүнд хандах боломжтой байхын тулд би цахилгаан товч ашиглахаар шийдсэн.
Би оёдлын машин сайн мэддэггүй болохоор хөөрхөн ээж маань зангианы ард цахилгаан товч тавьдаг.
Үүнийг хийсний дараа би зангиа дахь резинэн хуудсыг наасан. Нэхмэлийг хангаж, урд талаас нь харагдуулах цавууг хэт их хэрэглэхээс айж байсан тул тэгшлэхийг хичээж, хэт их хэрэглэхгүй байхыг хичээв. Ерөнхийдөө энэ нь сайн харагдаж байна, гэхдээ цөөхөн хэдэн газарт би цавуу хэт их эсвэл бага байгааг анзаарсан, учир нь энэ нь даавуугаар дамжин ирсэн, эсвэл даавууг сайн наалдуулаагүй юм. Аз болоход энэ нь тод гэрэлд ойрхон зайнаас бараг харагдахгүй байна.
Хайрцаг, зангиа бэлэн боллоо. Fiberoptics -ийг нааж өгөх цаг боллоо!
Алхам 5: Fiberoptics -ийг нааж болно
Тоглоом нь нэг том боодолтой шилэн кабельтай бөгөөд амархан салдаг байв. Би эхлээд тэдгээрийг нэг нэгээр нь наах гэж оролдсон боловч удалгүй жижиг боодол хийж, тэдгээрийг LED дээр наасан нь дээр болохыг анзаарав. Энэ нь цавуу хуурай болтол тогтвортой байлгахад хялбар болгоно. Үүнийг ойлгохын тулд анхны LED -ийг эвдсэн.
Ил тод цавуу хэрэглэхээ мартуузай! Миний хэрэглэж байсан цавуу нь маш удаан хатааж, эхний LED дээр туршиж үзсэн хурдан хатаадаг цавуу нь цагаан болж, анхны LED -ийн зарим ширхэгийг арай гэрэлтүүлэхгүй болгосон.
Дээрээс гэрэл гоожихгүй байх, LED -ийг салгахын тулд би жижиг хар резинэн хуудас наасан.
Нэг хуудас нь хэргийг хаахаас сэргийлж, тагийг нь таглахгүйн тулд резинэн тууз нэмэв.
Алхам 6: Fiberoptics -ийг зангиагаар оруулах
Доод талаас нь би нүхийг зүүгээр чимхэж, утаснуудыг нэг нэгээр нь оруулав. LED -ийн утас бүр зангиа даяар санамсаргүй байдлаар тархдаг.
Би хайрцгийнхаа жинг хадгалахын тулд зангианыхаа жижиг хэсэг хүртэл явах ёстой байсан нуруун дээр хар зурвас наасан боловч бүх утсыг салгаад утаснуудын хурцадмал байдлыг мэдэрсний дараа би наахаар шийдсэн. тэнцсэн бүх зүйл илүү сайн санаа байсан бөгөөд зурвасыг таслав.
Тоглоомын шилэн кабель маш богино байсан тул зангианы бүх хэсэгт тааруулахад хэцүү байв. Би хайрцгийн байрлалыг хязгаарлаж, бүх зүйлийг хүссэнээрээ хавтгай болгоход хэцүү байсан.
Алхам 7: Fiberoptics -ийг зангианд наалдуулах
Утасыг резинэн хуудаснаас гаргахгүй байх, зангиаг тэгш болгохын тулд би бүх шилэн кабелийг резинэн хуудсан дээр наасан.
Даралт хийхдээ хавчаарыг зангианд нааж чадаагүй эсэхийг шалгахын тулд би хооронд нь цаас тавив. Энэ нь тийм ч сайн харагддаггүй, гэхдээ сайн ажилладаг. Тэгээд хаагдсан байхад та үүнийг харахгүй байна.
Цавуу хатсаны дараа би урд талын утаснуудаа хайчилж, хамгийн өндөр утсан дээрх резинэн хуудсыг бага зэрэг таслав, зангиа нь хэтэрхий урт байсан.
Цагаан цамцтай зургуудыг хамгийн сүүлчийн резинийг огтлохоос өмнө хийдэг.
Алхам 8: Код
Миний зангианд зориулж бичсэн кодын доор.
Бүх LED нь "дундаж" гэсэн утгатай байдаг (үнэндээ дундаж биш харин дунд зэргийн гэрэл).
Дундаж хэмжээнд хүрсэн даруйдаа 3/4 харьцаагаар илүү бага гэрэлтүүлгийг сонгох болно. Энэ нь санамсаргүй байдлаар хамгийн бага тод байдал, хамгийн их тод байдал, хамгийн бага ба хамгийн их гэрэлтүүлгийг хүлээх хугацаа, тойрог тутамд (1-255) 5 урьдчилан тохируулсан утгаас нэмэгдүүлэх эсвэл бууруулах хурдыг санамсаргүй байдлаар тохируулдаг. Дараа нь дахин дундаж түвшинд хүрэх хүртэл мөчлөг хийх болно. Зөвхөн 2 LED нэгэн зэрэг өндөр мөчлөгт байж болно.
Муж бүр нь бүхэл тоо (1-7) -аар илэрхийлэгддэг бөгөөд энэ нь дунджаас доогуур, дунджаас доогуур, бага хүлээх, шинэчлэх гэх мэтийг тодорхойлдог.
Arduino -д код байршуулах талаар мэдээлэл авахыг хүсвэл www.arduino.cc хаягаар орж үзнэ үү
/ * Одтой тэнгэрийн зангиа * * Энэ бол 5 LED -ийг дунджаас санамсаргүй байдлаар бүдгэрүүлэх скрипт юм. * Энэ тохиолдолд эдгээрийг тэнцсэн байдлаар хэрэгжүүлнэ. * * Дээш/доош боломж = 1/4 дээш, 3/4 доош, дээд тал нь 2 * дээд тал нь нэгэн зэрэг дээшлэх боломжтой. * * Дундаж түвшин хэвээр байна. * Хамгийн бага, хамгийн их, цаг хугацааны сонголтууд санамсаргүй байдлаар өөрчлөгддөг * LED нь дахин дунджид хүрэх бүрт 5 сонголтоос. * * Билли Жасперс бүтээсэн, 2019 оны 5 -р сар. *
/ Тээглүүр зарлах
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Цаг хугацааны хувьсагчид
гарын үсэг зураагүй урт currentTime; гарын үсэг зураагүй удаан хүлээх цаг [5]; гарын үсэг зураагүй урт lastRound;
// LED хувьсагчид
int brightMin [5] = {10, 10, 10, 10, 10}; // Хамгийн бага гэрэл int parlakAvg [5] = {200, 200, 200, 200, 200}; // дундаж тод байдал int brightMax [5] = {240, 240, 240, 240, 240}; // Хамгийн их гэрэл int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Хүлээх хугацаа int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Хүлээх хугацаа int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Хүлээх хугацаа int increment [5] = {2, 5, 4, 5, 2}; // Тодруулгын өсөлт int currentBright [5] = {200, 230, 210, 210, 235}; // Одоогийн тод байдал
// LED хувьсагчийн боломжууд
int brightMinPos [5] = {5, 20, 40, 5, 20}; // Хамгийн бага гэрэлтүүлгийн боломж int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Гэрлийн дээд боломж int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Гэрэл багатай боломжуудыг хүлээх хугацаа int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Дундаж гэрэлтүүлгийн боломжуудыг хүлээх хугацаа int incrementPos [5] = {2, 4, 5, 3, 1}; // гэрэлтэх боломжийг нэмэгдүүлэх
// Хувьсагч
bool эхлүүлэх = үнэн; // Эхлэх тохиргоог эхлүүлэх шаардлагатай юу?
// Чиглэлийн хувьсагчид
/* 0 = Дунджаар хүлээж байна 1 = Дундаас 2 руу явна = Хүлээж байна Бага 3 = Багаас Дунд хүртэл явна 4 = Дундаас 5 хүртэл явна = Макс 6 дээр хүлээнэ үү = Дундаж дунджид хүрнэ 7 = Хувьсагчдыг шинэчилж байна// int statusLED [5] = {0, 0, 0, 0, 0}; int amountHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {худал, худал, хуурамч, худал, худал}; // Лед хүлээж байна уу?
// Санамсаргүй хувьсагчид
урт санамсаргүй тоо; // Санамсаргүй тоог хадгалах урт Long randomNumberTwo; // Хоёр дахь санамсаргүй тоог хадгалах урт
// тоолуур
int i = 0; // Гол давталтын тоолуур
хүчингүй тохиргоо () {
Цуваа.begin (115200); // Цуваа randomSeed эхлүүлэх (analogRead (A0)); // Санамсаргүй үрийг тохируулах
// Үр дүнг зарлах
pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }
// LED -д өгөгдөл бичих
хүчингүй бичихToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }
// Үндсэн гогцоо
void loop () {if (startup) {// Startup settings lastRound = millis (); // lastRound -ийг ачаалах writeToLED () дээр тохируулах; // LED өгөгдөлд эхлэх өгөгдлийг бичих = худал; // Эхлэлийг унтраах} currentTime = millis (); // Одоогийн цагийг тохируулах
if (currentTime - lastRound> = refreshRate) {
for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Шинэчлэх Led randomNumber = санамсаргүй (5); brightMin = brightMinPos [randomNumber]; // Хамгийн бага тод байдлын хувьд санамсаргүй утгыг тохируулах randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Хамгийн их тод байдлын хувьд санамсаргүй утгыг тохируулах randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Хүлээх хугацаа багатай үед санамсаргүй утгыг тохируулах randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Хүлээх хугацаа өндөр байх үед санамсаргүй утгыг тохируулах randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Хүлээх дундаж хугацааны хувьд санамсаргүй утгыг тохируулах randomNumber = random (5); increment = incrementPos [randomNumber]; // Санамсаргүй утгыг нэмэгдүүлэхийн тулд randomNumber = random (2); // randomNumberTwo = random (2) чиглэлд санамсаргүй утгыг тохируулах; // Чиглэлийн хувьд санамсаргүй утгыг тохируулна уу (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Хэрэв хамгийн бага цэг дээр бол: Хүлээж буй дундаж руу орно уу} өөр {currentBright = currentBright +нэмэгдэл ; // Өөр: Илүү өндөр тод байдал}} if if (statusLED == 2) {// -2- If (! StatusWaiting ) {/ -2; // Хүлээх цагийн төлөвийг тохируулахWaiting = үнэн; // Хүлээж эхэл} өөрөөр бол (statusWaiting && currentTime-waitTime > = timeWaitLow ) {// Хэрэв хүлээх AND timeWaitAvg өнгөрсөн бол: statusWaiting = худал; // Статус хүлээхээ боль LEDD = 3; // StatLed -ийг шинэчлэхийг хүлээж байна}} өөрөөр тохируулна уу, өөрөөр бол (statusLED == 1) {// -1- (currentBright <= brightMin ) {statusLED = бол Дундаж руу шилжих болно. 2; // Хэрэв хамгийн бага цэг дээр бол: Хүлээх бага руу очно уу} өөр {currentBright = currentBright -нэмэгдэл ; // Өөр: Доод тод байдал}} if if (statusLED == 6) {// -6- If (currentBright = timeWaitMax ) {/ max: statusWaiting = худал; // Статусыг хүлээхээ боль LED = 6; // StatLed -ийг шинэчлэлтийг хүлээж байна гэж} тохируулна уу, өөр тохиолдолд (statusLED == 4) {// -4- If (currentBright > = brightMax ) {statusLED = 5; // Хэрэв хамгийн доод цэг дээр байвал: Хүлээх өндөр рүү очно уу} өөр {currentBright = currentBright +өсөлт ; // Өөр: Илүү өндөр тод байдал}} if if (statusLED == 0) {// -0- If (! StatusWaiting ) if {)); // Хүлээх цагийн төлөвийг тохируулахWaiting = үнэн; // Хүлээж эхэл} өөрөөр бол (statusWaiting && currentTime-waitTime > = timeWaitAvg ) {// Хэрэв хүлээх AND timeWaitAvg өнгөрсөн бол: statusWaiting = худал; // Статус хүлээхээ боль LED = 7; // StatLed -ийг шинэчлэлтийг хүлээж байна гэж тохируулна уу}}} i = 0; lastRound = millis (); // Сүүлийн тойрог дуусах үед тохируулна уу. writeToLED (); // Бүх өгөгдлийг LED дээр бичээрэй}}
Алхам 9: Эцсийн бүтээгдэхүүн
Энэ нь сайн болсон гэж бодож байна. Зангиа нь хэт зузаан биш, хатуу, урт, хүнд биш бөгөөд одны эффект гайхалтай харагдаж байна.
Зөвлөмж болгож буй:
ТВ -ийн алсын удирдлага нь RF -ийн алсын удирдлага болжээ -- NRF24L01+ заавар: 5 алхам (зурагтай)
ТВ -ийн алсын удирдлага нь RF -ийн алсын удирдлага болжээ || NRF24L01+ заавар: Энэхүү төсөл дээр би алдартай nRF24L01+ RF IC ашиглан LED зурвасын гэрэлтүүлгийг телевизийн алсын удирдлагын ашиггүй гурван товчлуураар утасгүйгээр тохируулах аргыг танд үзүүлэх болно. Эхэлцгээе
Шөнийн цагаар гэрэлтдэг LED одтой мананцар: 4 алхам
Шөнийн цагаар гэрэлтдэг LED одтой мананцар: Энэхүү төсөл нь Auroris галактикийн зургаас санаа авсан болно. Би анх зааварчилгааны дагуу зураг зурахаар төлөвлөж байсан боловч НАСА -гийн вэбсайт дээр Хаббл сансрын дурангийн гайхалтай цуглуулга байдгийг санаж байна
Бүх тэнгэрийн камерын Raspberry Pi шүүдэр халаагч: 7 алхам
Бүх тэнгэрийн камерт зориулсан Raspberry Pi шүүдэр халаагч: [Ашигласан релений өөрчлөлтийг 7-р алхамаас харна уу] Энэ бол Томас Жакины маш сайн гарын авлага (Wireless All Sky Camera) -ийн дагуу бүтээсэн бүх тэнгэрийн камерын шинэчлэлт юм. Тэнгэрийн камеруудад (мөн дурангаар ч гэсэн) тохиолддог нь шүүдэр хамтрах болно
Fusion 360: 7 алхам дээр 8 битийн одтой модны дээд хэсгийг зохион бүтээгээрэй (зурагтай)
Fusion 360 дээр 8 битийн одтой модны дээд хэсгийг зохион бүтээгээрэй: Энэ жил зул сарын гацуур модондоо 3D хэвлэсэн 8 битийн одтой модны оройгоор ямар нэгэн дүр нэмж оруулаарай. Fusion 360 дээр одыг зохион бүтээх нь хичнээн энгийн болохыг би харуулахын тулд дагаж мөрдөөрэй. Би энд загвараа хэвлэхийн тулд STL файлын холбоосыг оруулсан болно
Шөнийн тэнгэрийн ажиглагчдад зориулсан зөөврийн цаг уурын станц: 7 алхам (зурагтай)
Шөнийн тэнгэрийн ажиглагчдад зориулсан зөөврийн цаг уурын станц: Гэрлийн бохирдол бол дэлхийн олон асуудлын нэг юм. Энэ асуудлыг шийдэхийн тулд шөнийн тэнгэр хиймэл гэрлээр хэр их бохирдсоныг мэдэх хэрэгтэй. Дэлхийн олон багш нартай оюутнууд гэрлийн бохирдлыг үнэтэй мэдрэгчээр хэмжихийг хичээдэг. Би шийдсэн