Мазмұны:
- 1 -қадам: материалдарды жинау
- 2 -қадам: тізбектерді құру
- 3 -қадам: қолғапты жобалау
- 4 -қадам: дәнекерлеу
- 5 -қадам: кодтау
- 6 -қадам: Өзгерістер
Бейне: Қол ырғағы: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл киберглов дұрыс сәтте дұрыс қадам жасау туралы.
Шамдар қолыңыздан (шынтақтан) қолыңызға өтеді, ал шамдар сіздің қолыңызға жеткенде саусақтарыңызды шағын фотоэлементке басу керек.
Егер сіз қолыңызды шағын фотоэлементті бассаңыз, жарық диодтары жасылға айналады. Олай болмаған жағдайда, светодиодтар қызыл түске боялады.
1 -қадам: материалдарды жинау
- Қолғап
- Қолғапты ұзартатын мата
- WS2812B жарық диодты жолағы
- Сымдар
- Ардуино
- Шағын фотосурет
2 -қадам: тізбектерді құру
Алдымен жарықдиодты жолақты arduino -ға қосыңыз. Сіз мұны +5v ардуинодағы 5в -ке қосу арқылы жасай аласыз. Din arduino -да A0 -ке, ал GND -ге arduino -да GND -ге қосылуы керек.
Сондай -ақ, шағын фотоэлементті arduino -ға 5В сымына светодиодтан және сол сыммен ардуинодағы PIN 6 -ға қосылу арқылы қосу керек. Шағын фотоэлементтің екінші жағы GND сымына жарықдиодты жолақтан қосылуы керек
3 -қадам: қолғапты жобалау
Қолғаптың жетекші жолақтарға сәйкес келетін өлшемі болуы керек. Қарауға жағымды болу үшін жарықдиодты туралау керек.
Бұл ойын үшін сіз қолыңызды пайдалануыңыз керек және сіз еркін қозғалғыңыз келеді. Мұны ардуиноны қолғапқа қою арқылы жүзеге асыруға болады. Мен ардуиноны қолғапқа жабыстыру үшін бекіткіш ретінде велкро қолдандым. Содан кейін тұрақтылықты жоғарылату үшін қолғап пен ардуино айналасына арқан салуға болады.
Шағын фотоэлемент қолғаптың ішіне тігілген, сондықтан ол орнында қалады.
Ақырында, сым жақсы көрінуі үшін оны жасыру керек. Бұл сымдардың үстіне тігілетін матамен жасалуы мүмкін.
4 -қадам: дәнекерлеу
Енді сіз дәнекерлеу арқылы тізбектен қосылатын сымдарды қауіпсіз ете аласыз.
5 -қадам: кодтау
// NeoPixel күнделікті тестілеудің негізгі бағдарламасы.
// НЕОПИКСЕЛДІҢ ЕҢ жақсы тәжірибесі: // - NeoPixel жолағының + және - қосылыстары арасында 1000 uF CAPACITIT қосыңыз. // - микроконтроллер тақтасы мен бірінші пиксель арасындағы сым ұзындығын азайту. //-NeoPixel жолағының DATA-IN 300-500 OHM резисторы арқылы өтуі керек. // - NeoPixels -ті LIVE CIRCUIT -те қосудан аулақ болыңыз. Егер қажет болса, ӘРҚАШАН // алдымен GROUND (-), содан кейін +, содан кейін деректерді қосыңыз. //-5В қуатты NeoPixel жолағы бар 3.3В микроконтроллерді қолданған кезде, // деректер желісіндегі ЛОГИКАЛЫҚ ДЕҢГЕЙЛІ КОНВЕРТЕР қатаң түрде ұсынылады. // (Оларды өткізіп жіберу жұмыс үстелінде жақсы жұмыс істеуі мүмкін, бірақ өрісте сәтсіздікке ұшырауы мүмкін)
#қосу #ifdef _AVR_ #қосу // 16 МГц Adafruit Trinket үшін қажет #endif
// Arduino -дағы қандай түйреуіш NeoPixels -ке қосылған? // Trinket немесе Gemma -де біз оны 1 -ге өзгертуді ұсынамыз: #define LED_PIN 6
// Arduino -ға қанша NeoPixels бекітілген? 60. LED_COUNT анықтаңыз
// Біздің NeoPixel жолақ объектісін жариялаңыз: Adafruit_NeoPixel жолағы (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = жолақ. Түс (127, 127, 127); // Ақ түс, әдепкі bool үшін clickedCorrectly = false; // 1 -аргумент = NeoPixel жолағындағы пиксель саны // 2 -аргумент = Arduino түйреуішінің нөмірі (көпшілігі жарамды) // 3 -аргумент = пиксель түріндегі жалаушалар, қажет болғанда бірге қосыңыз: // NEO_KHZ800 800 КГц бит ағыны (NeoPixel өнімдерінің көпшілігі/ WS2812 жарық диодтары) // NEO_KHZ400 400 КГц (классикалық 'v1' (v2 емес) FLORA пиксельдері, WS2811 драйверлері) // NEO_GRB пиксельдері GRB бит ағыны үшін сымды (NeoPixel өнімдерінің көпшілігі) // NEO_RGB пиксельдері RGB разрядтық ағыны үшін (v1 FLORA пикселдері), v2 емес) // NEO_RGBW пиксельдері RGBW ағыны үшін сымды (NeoPixel RGBW өнімдері)
// setup () функциясы-іске қосылған кезде бір рет іске қосылады --------------------------------
void setup () {// Бұл сызықтар Adafruit Trinket 5V 16 MHz қолдау үшін арнайы жасалған. // Кез келген басқа тақта, сіз бұл бөлікті алып тастай аласыз (бірақ одан шығудың зияны жоқ): #if анықталған болса (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Trinket арнайы кодының соңы.
pinMode (A0, INPUT); strip.begin (); // INITIALIZE NeoPixel жолақ объектісі (REQUIRED) strip.show (); // Барлық пикселдерді ASAP strip.setBrightness (10) өшіріңіз; // BRIGHTNESS мәнін 1/5 шамасына орнатыңыз (max = 255)}
// loop () функциясы-тақта қосулы болғанша бірнеше рет жұмыс істейді ---------------
void loop () {clickedClaimly = teatrChaseOne (түс); if (clickedClaimly) {color = strip. Color (0, 255, 0); } else {color = strip. Color (255, 0, 0); }}
// Анимациялық эффектілерді құруға арналған кейбір функциялар -----------------
// Театр-марк стиліндегі қуатын шамдар. Түсті (32 биттік мән, // a la strip. Color (r, g, b) жоғарыда айтылғандай) және кадрлар арасында кешігу уақытын (мс) // өткізіңіз. bool театрChaseOne (uint32_t түсі) {bool correct = false; bool clickedWrong = жалған; for (int index = 0; index 800) {// жарық сенсоры, егер (индекс <16) {// 2 соңына дейін болса, онда color = strip. Color (255, 0, 0) түймесін басуға болады; // қызыл түсті жарық диодтары clickedWrong = true; // қате басылғанда светодиодтар қызыл түске айналады} else if if (! clickedWrong) {// егер қате болмаса color = strip. Color (0, 255, 0); // жасыл түсті жарық диодтары дұрыс = ақиқат; // дұрыс басылғанда светодиод жасылға айналады}} strip.clear (); strip.setPixelColor (17 - индекс, түс); // бірінші қатардағы шамдар strip.setPixelColor (18 + индекс, түс); // екінші қатардағы жарықдиодты шамдар strip.setPixelColor (53 - индекс, түс); // үшінші қатар жарықдиодты шамдар strip.show (); кешіктіру (300); } дұрыс қайтару; }
6 -қадам: Өзгерістер
Мен кейбір өзгерістер енгіздім. Біріншіден, мен «ритмдік қолды» пайдалану ыңғайлы болу үшін ардуиноны жасырдым, екіншіден кодты сәл өзгерттім. Мен кодты өзгерттім, егер сіз оны дәл бассаңыз, түс жасылға айналады және жарық диодтары жылдамырақ қозғалады. Осылайша, жарық диодты жарықтандыру бұрынғыға қарағанда 10% жылдамырақ болады. Бұл ойынды қызықты етеді
Бұл код қазір:
// NeoPixel күнделікті тестілеудің негізгі бағдарламасы. // Неопиксельдің ең сенімді тәжірибесі үшін ең жақсы тәжірибе: // - NeoPixel жолағының + және - қосылыстары арасында 1000 uF CAPACITIT қосыңыз. // - микроконтроллер тақтасы мен бірінші пиксель арасындағы сым ұзындығын азайту. //-NeoPixel жолағының DATA-IN 300-500 OHM резисторы арқылы өтуі керек. // - NeoPixels -ті LIVE CIRCUIT -те қосудан аулақ болыңыз. Егер қажет болса, ӘРҚАШАН // алдымен GROUND (-), содан кейін +, содан кейін деректерді қосыңыз. //-5 В қуатымен жұмыс істейтін NeoPixel жолағы бар 3.3В микроконтроллерді қолданған кезде, // деректер жолындағы ЛОГИКАЛЫҚ ДЕҢГЕЙЛІ КОНВЕРТЕР қатаң түрде ұсынылады. // (Оларды өткізіп жіберу сіздің жұмыс үстеліңізде жақсы жұмыс істеуі мүмкін, бірақ өрісте сәтсіздікке ұшырауы мүмкін) #include #ifdef _AVR_ #include // 16 MHz Adafruit Trinket үшін қажет #endif // Arduino -дегі қай түйреуіш NeoPixels -ке қосылған? // Trinket немесе Gemma -де біз оны 1 -ге өзгертуді ұсынамыз: #define LED_PIN 6 // Arduino -ға қанша NeoPixels бекітілген? #define LED_COUNT 60 // Біздің NeoPixel жолақ объектісін жариялаңыз: Adafruit_NeoPixel жолағы (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = жолақ. Түс (127, 127, 127); // Ақ түс, әдепкі bool үшін clickedCorrectly = false; int индексі = 0; int интервал = 300; int нәтижесі = 0; белгісіз ұзақ алдыңғыMs = millis (); // 1 -аргумент = NeoPixel жолағындағы пиксель саны // 2 -аргумент = Arduino түйреуішінің нөмірі (көбі жарамды) // 3 -аргумент = пиксель түріндегі жалаушалар, қажет болған жағдайда қосыңыз: // NEO_KHZ800 800 КГц бит ағыны (NeoPixel өнімдерінің көпшілігі/ WS2812 жарық диодтары) // NEO_KHZ400 400 КГц (классикалық 'v1' (v2 емес) FLORA пиксельдері, WS2811 драйверлері) // NEO_GRB пиксельдері GRB бит ағыны үшін сымды (NeoPixel өнімдерінің көпшілігі) // NEO_RGB пиксельдері RGB разрядтық ағыны үшін (v1 FLORA пикселдері), v2 емес) // NEO_RGBW пиксельдері RGBW бит ағыны үшін сымды (NeoPixel RGBW өнімдері) // setup () функциясы-іске қосылған кезде бір рет іске қосылады -------------------- ------------ void setup () {// Бұл сызықтар Adafruit Trinket 5V 16 MHz қолдау үшін арнайы жасалған. // Кез келген басқа тақта, сіз бұл бөлікті алып тастай аласыз (бірақ одан шығудың зияны жоқ): #if анықталған болса (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Trinket арнайы кодының соңы. Serial.begin (9600); while (! сериялық) {; // сериялық порт қосылуын күтіңіз. Тек USB порты үшін қажет} pinMode (A0, INPUT); strip.begin (); // INITIALIZE NeoPixel жолақ объектісі (REQUIRED) strip.show (); // Барлық пикселдерді ASAP strip.setBrightness (10) өшіріңіз; // BRIGHTNESS параметрін шамамен 1/5 мәніне орнатыңыз (max = 255)} // loop () функциясы-тақта қосулы болғанша бірнеше рет жұмыс істейді -------------- void loop () {unsigned long currentMs = millis (); // Ағымдағы уақытты алу int мәні = analogRead (A0); // Егер ағымдағы жарық сенсоры оқылса, егер (мәні> 900 && нәтиже == 0) {// Егер сенсор басылса және әлі нәтиже жазылмаса, нәтижені түсіруді іске қосыңыз, егер (индекс = интервал) {// Ағымның бар -жоғын тексеріңіз цикл алдыңғыMs = currentMs интервалынан асады; // Жаңа аралықты ағымдағы уақытқа орнатыңыз + интервал индексі + = 1; // Циклде жарық диодтарын бір қадам алға қойыңыз, егер (индекс> 17) {// Циклды өңдеудің соңы индексі = 0; if (нәтиже == 2) {// Дұрыс нәтиже интервалында = (int) max ((интервал * 0,95), 50); // Жылдамдық 10%-ға, 50 мс интервалға дейін/ color = strip. Color (0, 255, 0); // Жарықдиодты жасылға орнатыңыз} else if if (result == 1) {// Қате нәтиже интервалында = 300; // color = strip. Color (255, 0, 0) интервалын қалпына келтіру; // Жарықдиодты қызылға орнатыңыз} else {// Ешқандай нәтижеге түспеген түс = strip. Color (255, 0, 0); // Жарықдиодты қызылға орнатыңыз} result = 0; // Келесі цикл үшін нәтижені қалпына келтіру} teatrChaseOne (түс, индекс); // Көрсету үшін жарықдиодты жарықтандырыңыз. }} // Анимациялық эффектілерді құруға арналған біздің кейбір функциялар ----------------- // Театр-марке стиліндегі қуатын шамдар. Түсті (32 биттік мән, // a la strip. Color (r, g, b) жоғарыда айтылғандай) және кадрлар арасында кешігу уақытын (мс) // өткізіңіз. void театрChaseOne (uint32_t түсі, int индексі) {strip.clear (); strip.setPixelColor (17 - индекс, түс); // бірінші қатардағы шамдар strip.setPixelColor (18 + индекс, түс); // екінші қатардағы жарықдиодты шамдар strip.setPixelColor (53 - индекс, түс); // үшінші қатардағы жарықдиодты шамдар strip.show (); }
Ұсынылған:
Ойыншықтарды ауыстыруға бейімделу: бу пойыз ойыншығына қол жетімді! 7 қадам (суреттермен)
Ойыншықтарды ауыстырып-бейімдеңіз: пойыз ойыншықтары ойыншықтарға қол жетімді болды!: Ойыншықтарды бейімдеу моторикасының шектеулі немесе дамуында ауытқулары бар балаларға ойыншықтармен өз бетінше араласуға мүмкіндік беретін жаңа мүмкіндіктер мен арнайы шешімдер ашады. Көп жағдайда бейімделген ойыншықтарды қажет ететін балалар кіре алмайды
Ойыншықтарды ауыстырып-бейімдеңіз: су дем алатын серуендеу айдаһар қол жетімді болды!: 7 қадам (суреттермен)
Ойыншықтарды ауыстырып-бейімдеңіз: суға дем алатын жаяу айдаһар қол жетімді болды!: Ойыншықтарды бейімдеу моторикасының шектеулі немесе дамуында ауытқулары бар балаларға ойыншықтармен өз бетінше әрекет етуге мүмкіндік беретін жаңа мүмкіндіктер мен арнайы шешімдер ашады. Көп жағдайда бейімделген ойыншықтарды қажет ететін балалар кіре алмайды
Қол дезинфекциялаушы диспенсер схемасы/DIY [Байланыссыз]: 10 қадам
Қол дезинфекциялаушы диспенсерлік схемасы/DIY [Байланыссыз]: Хесам Мошири, [email protected] Ерекшеліктері Жоғары тұрақтылық және қоршаған ортаға сезімталдық жоқ Лазермен кесілген акрил (плексигласс) қоршау Қолмен тазартқыштың шығынды үнемдеу мүмкіндігі /алкоголь (тиімділік)
Arduino MIDI ырғағы секциясы: 8 қадам (суреттермен)
Arduino MIDI ритм секциясының тізбегі: Жақсы бағдарламалық қамтамасыз ету барабаны бар машина бүгінде оңай және арзан, бірақ тінтуірді пайдалану мен үшін көңілді өлтіреді. Міне, сондықтан мен бастапқыда 12 түрлі барабан элементін іске қосуға қабілетті таза 64 қадамды MIDI барабан секвенсері ретінде не қажет екенін түсіндім
Үшінші қол ++: электроника мен басқа да нәзік жұмыстарға арналған көп мақсатты көмекші қол.: 14 қадам (суреттермен)
Үшінші қол ++: электроника мен басқа да нәзік жұмыстарға арналған көп қолданыстағы көмекші қол: Мен бұрын электронды дүкендерде сатылатын үшінші қолды/көмекші қолды қолдандым және олардың ыңғайлылығына наразы болдым. Мен клиптерді дәл өзім қалаған жерге ала алмадым немесе орнатуға қажет уақыттан көп уақыт кетті