Мазмұны:
- Жабдықтар
- 1 -қадам: Тұжырымдама
- 2 -қадам: акселерометрді дайындаңыз
- 3 -қадам: қолғапты жасаңыз
- 4 -қадам: Ableton -да жазыңыз
- 5 -қадам: Фирматаны пайдалануды бастаңыз
- 6 -қадам: Фирматаны тексеріңіз
- 7 -қадам: Музыканы қол қозғалыстарымен әсер етіңіз
- 8 -қадам: трек класы (бонус!)
- 9 -қадам: Track Length, Beats және т.б. (бонус!)
Бейне: Би қолғаптары: 9 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл оқулықта мен сізге би арқылы музыкамен қарым -қатынас жасауға мүмкіндік беретін қолғаптың дизайнын көрсетемін. Сіз акселерометрмен жұмыс істейтін қолғап жасайсыз, Ableton-да композиция құрастырасыз, содан кейін екеуін қалағаныңызша күрделі немесе қарапайым етіп қосасыз!
Жабдықтар
- Аблетон (немесе ақысыз сынақ нұсқасы)
- Ардуино
- Өтпелі кабельдер
- Пісіру темірі
- Картон
- Ыстық желім қаруы
- Көптеген қиял
1 -қадам: Тұжырымдама
Бұл жоба көңілді болу үшін жасалған. Егер осы оқулықтағы мысал жобасы сізге қызықты болмаса, оны қайта жасаңыз!
Мен сіздің сүйікті әндеріңізді қосуды, оларға қолыңызды жылжытуды және не болатынын көруді ұсынамын. Қолыңызды жоғары-төмен жылжытыңыз ба? Жанама? Баяу немесе тез? Музыканың қандай аспектілері қолыңызды қозғауға мәжбүр етеді? Егер сізде олардың тізімі жазылған болса, сіз өзіңізге ұнайтын қозғалыстарды сіздің алгоритмдеріңізге енгізудің кейбір әдістерін таба аласыз.
Міне мен қолданған қозғалыстар:
- Жылдам жоғары және төмен қозғалыс әннің, барабанның немесе басстың басталуына себеп болады. (Бұл әннің әр жерінде болады, міндетті түрде бір мезгілде емес!)
- Баяу, қисайған бүйірлік қозғалыс жаңғырықты, жоғары дыбысты тудырады.
- Әннің белгілі бір бөлімінде қолымды жоғары қарату музыканы бәсеңдетеді, сондықтан мен оны жабық жұдырығыммен «ұстап алдым».
Оларды қолданыңыз немесе өзіңіз жасаңыз!
(Назар аударыңыз: бұл оқулықта Ableton -да қалай музыка мен әуендерді шығаруға болатыны қарастырылмаған! Егер сіз осы нұсқауларды орындасаңыз, сіз тек тректердің көлемін немесе дыбыс эффектілерін қолдана аласыз/төмендете аласыз.)
2 -қадам: акселерометрді дайындаңыз
Алдымен сізде акселерометрдің қандай түрі бар екенін анықтаңыз. Мен мұны қолдандым; кез келген үш осьті акселерометр жасайды. (Немесе жабайы күйге түскіңіз келсе, сенсордың басқа түрін қолданып көріңіз.) Arduino -дан акселерометр деректерін қалай оқу керектігін біліңіз. Егер аналогты енгізуден гөрі күрделі нәрсе қолданылса, акселерометрге кітапхананы жүктеу қажет болуы мүмкін.
Оны нан тақтасында тексергеннен кейін акселерометрдің түйреуіштеріне қысқа түстермен сымдарды дәнекерлеңіз. Қуат түйреуішіне қызыл сымды, жерге түйреуішке қара сымды және акселерометр байланысына қажетті басқа сымдарды салыңыз. (Егер сізде I2C үдеткіші болса, бұл SCL және SDA түйреуіштері болады. Егер сізде аналогты акселерометр болса, онда x, y және z шығуларының әрқайсысы үшін бір түйреуіш болуы мүмкін.) Дәнекердің қатты және моншақтар көршілес түйреуіштердің арасында қабаттаспайды.
3 -қадам: қолғапты жасаңыз
Жіңішке картонды немесе қалың қағазды акселерометрден сәл үлкенірек төртбұрыш етіп кесіңіз. Акселерометрді картонға жабыстырыңыз, оның түбіне желім қойғаныңызға көз жеткізіңіз. Содан кейін, қолғаптың артына картонмен бекітілген акселерометрді жабыстырыңыз. Акселерометрдегі шиеленісті жеңілдету үшін әр сымды қолғаптың білегіне байлап тігіңіз, сонда сіздің қолғап дайын болады. Қосылған кезде қолыңызды жылжыту үшін жеткілікті орын болуы үшін оны ұзын сымдарға қосыңыз.
4 -қадам: Ableton -да жазыңыз
Енді сіз бақылауға қолғапты қолданатын ән жазатын кез келді. Мен Ableton ілмектерін ұсынамын, олар бір -бірімен жақсы естіледі, бірақ оларды бірте -бірте құруға болады: әуенді, аккордтарды, бассты және перкуссияны қолданып көріңіз. Сіз қолғапты әрбір цикл ойнағанын немесе ойнамайтынын бақылау үшін пайдалана аласыз.
Егер сіз біртүрлі дыбыс эффектісі немесе дәстүрлі емес құрал сияқты әнге кейде қосылатын қызықты дыбыстарды ойласаңыз, солардың біреуін немесе екеуін қосып көріңіз! Сіз оларды сирек кездесетін қол қозғалыстарымен байланыстыра аласыз.
Міне, сіз өзіңіздің жеке жазбаңызды қаламасаңыз, менің Arduino үйлесімді композициясына сілтеме:
(Өкінішке орай, сізге Аблетонды үйрету оқу құралының шеңберінде емес. Алайда, онда көптеген жақсы бейнелер бар, ал Аблетонның 90 күндік ақысыз сынақ нұсқасы бар! Мен бұл бейнені ұсынамын.)
5 -қадам: Фирматаны пайдалануды бастаңыз
Arduino -ға Ableton -мен байланыс орнату үшін сізге Firmata деп аталатын кітапхананы пайдалану қажет. Сондай -ақ, Ableton үшін Connection Kit жүктеу қажет болады.
Ableton бағдарламасында Пакеттер> Байланыс жиынтығы> Құрылғыларды жоғарғы сол жақтағы мәзірден нұқыңыз, содан кейін оны қосу үшін бірінші құрылғыны (Arduino) екі рет басыңыз. Құрылғыны қай Ableton трегіне қосқаныңызды ұмытпаңыз!
6 -қадам: Фирматаны тексеріңіз
Біріншіден, біз сіздің Arduino Ableton -мен байланысып жатқанын тексереміз және тексереміз. Осы код үзіндісін Arduino -ға жүктеп, іске қосыңыз:
#include void analogWriteCallback (байт түйреуіші, int мәні) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (түйреуіш), мән); }} void setup () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}
Бұл Фирматамен қарым -қатынас жасау үшін қажет минимум. Ол Ableton қаласындағы Firmata құрылғысының 0 портына 800 (1024 -тен) шығысын үздіксіз жібереді. Егер сіз бұл кодты Ableton -да Firmata құрылғысы ашық болғанда Arduino -ға жүктесеңіз, ол жоғарыдағы суретке ұқсас болуы керек. (Мәндерді көру үшін 0 портын Аблетондағы кез келген нәрсемен салыстырыңыз.)
Сіз бұл портқа алынған кіріс пен сол Ableton құрылғысының мәні арасындағы салыстыруды қосу үшін Карта түймешігін, содан кейін Ableton ішіндегі кез келген Firmata үйлесімді құрылғыны басуға болады. Оңай мысалдар аудиоэффект кез келген тректің немесе кез келген терудің дыбыс деңгейін қамтиды. Қарастыру үшін не табуға болатынын зерттеңіз және қараңыз!
7 -қадам: Музыканы қол қозғалыстарымен әсер етіңіз
Осы уақытқа дейін сізде Аблетондағы музыка, Arduino -да Firmata сценарийі және акселерометр қолғаптары болуы керек. Музыка жасайық!
Ableton қаласындағы Arduino құрылғысының порттарын әр түрлі нәрселерге салыстырыңыз (мен дыбыс деңгейін ұсынамын), содан кейін Arduino -дан әр портқа деректерді жіберу үшін код жолдарын қосыңыз.
Firmata.sendAnalog (порт, volumeLevel);
Әр Firmata портына осындай кодты қолданыңыз.
Егер сіз қарапайым нәрсе жасағыңыз келсе, акселерометр мәндерін өңделмеген түрде Ableton порттарына жіберіп, оларды сол жерден салыстыра аласыз. Неғұрлым күрделі тәжірибе үшін сіз шеше аласыз: акселерометрдің қандай мәндері дыбыстарды, қалай және қашан іске қосуы керек?
Содан кейін барлық Ableton ілмектерін ойнаңыз, Arduino кодын іске қосыңыз және билеңіз!
(Жауапкершіліктен бас тарту: егер сіз өзіңіздің әніңізге қандай да бір күрделі алгоритм құруды жоспарлап отырсаңыз, онда дәл реттеу үшін көп уақыт кетуі мүмкін. «Алыста би билеу» күткеннен дәл болмауы мүмкін.)
8 -қадам: трек класы (бонус!)
Егер сіз дыбыс деңгейінің көтерілуіне қарсы болмасаңыз немесе оны азайтудың басқа әдісі болса, бұл қадамды өткізіп жіберіңіз. Әйтпесе, оқыңыз!
Мен дыбысты бір уақытта дыбыссыздан толыққа ауыстыру жағымсыз дыбыстар шығаратынын байқадым, ал дыбыстың біртіндеп өшуі жақсы. Алайда, Arduino синхронды бағдарламалау ортасында мұны істеу қиын. Міне, жарылып кетуді болдырмайтын код:
class Track {public: int volume; int volumeGoal; int updateSpeed; Track () {volume = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int goal) {volumeGoal = goal; } int getVolumeGoal () {қайтару volumeGoal; } жарамсыз setUpdateSpeed (int fastness) {updateSpeed = жылдамдық; } int getVolume () {қайтару көлемі; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } if if ((volume = updateSpeed)) {volume += updateSpeed; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = жылдамдық; } void full (int fastness) {volumeGoal = 950; updateSpeed = жылдамдық; }};
Әр тректің ағымдағы көлемі, мақсаттық көлемі және сол мақсатқа жету жылдамдығы бар. Жолдың дыбыс деңгейін өзгерткіңіз келсе, setVolumeGoal () қоңырау шалыңыз. Сіз Arduino жүйесінде loop () функциясын іске қосқан сайын, әр трекке updateVolume () қоңырау шалыңыз, содан кейін бұл ақпаратты Firmata -ге getVolume () көмегімен жіберіңіз. Жаңарту жылдамдығын тез немесе біртіндеп жоғалту үшін өзгертіңіз! Сондай -ақ, мүмкін болса, дыбыс деңгейін 0 -ге орнатудан аулақ болыңыз; орнына, оны өте төмен мәнге қойыңыз (mute () параметрінде әдепкі - 100).
9 -қадам: Track Length, Beats және т.б. (бонус!)
Сіз өзіңіздің жобаңыздан шыққан дыбысты тыңдауды жеңілдету үшін көп нәрсе жасай аласыз. Міне бірнеше нұсқа:
Сіз әннің қанша уақыт жұмыс істейтінін бақылай аласыз. Мұны істеу үшін сіз әннің қашан басталғанын анықтауыңыз керек; Мен Set () функциясында уақытша циклды ұсынамын, ол сіздің қолыңыздың қозғалысын сезгенше оның жұмыс істеуін кешіктіреді. Әннің басталу уақытын millis () көмегімен айнымалы мәнде сақтаңыз және () айналдырған сайын оның қанша уақытқа созылғанын тексеріңіз. Сіз мұны әннің белгілі бір уақытында белгілі бір мүмкіндіктерді қосу немесе өшіру үшін пайдалана аласыз.
Егер сіз циклдарыңыздың миллисекундтарда қанша болатынын білсеңіз, ән құрылымын тереңірек түсіну үшін қанша циклды өткеніңізді бақылай аласыз!
Мүмкін болатын тағы бір ықтимал мәселе - тректі ойнатуды қашан бастау және тоқтату. Мен бұл мәселені әннің қазіргі уақытта қандай жиілікте екенін қадағалау арқылы шештім. Содан кейін мен оны бірден өшірудің орнына, қимылдан кейін кез келген соққыға тректерді ойнай алатынмын. Бұл заттардың қозғалысын едәуір жеңілдетеді. Міне мысал:
if (millis () - lastLoop> = 4000) {ілмектер += 1; lastLoop = миллис (); for (int j = 0; j <8; j ++) {beatNow [j] = жалған; }} beat = (millis () - lastLoop) / 250; if (beat! = lastBeat) {lastBeat = beat; beatsLeft -= 1; }
Дыбыстарды beatNow [beat] және/немесе beatsLeft мәндеріне сәйкес жаңартқаныңызға көз жеткізіңіз. Бұл оқулықта барлығын қамтитын мысал коды, сонымен қатар кейбіреулері, егер сіз оны іс жүзінде көргіңіз келсе, қоса беріледі.
Ұсынылған:
Өнер қолғаптары: 10 қадам (суреттермен)
Art Glove: Art Glove - бұл киюге арналған қолғап, оның құрамында әр түрлі сенсорлар бар, олар графиканы Micro: bit және p5.js арқылы басқарады, саусақтарда r, g, b мәндерін басқаратын иілгіш датчиктер қолданылады және Micro -дегі акселерометр: бит басқару элементтері x, y координата
Vive Tracker үшін VT қолғаптары: 13 қадам (суреттермен)
Vive Tracker үшін VR қолғаптары: Бұл оқу құралы Vive трекерімен VR -де қолдануға арналған текстильді қолғаптарды қалай жасау керектігін көрсетеді. Олар Vive -ге арналған джойстиктерді алмастырады, бұл VR өзара әрекеттесуін сезімтал және адами етеді. Олар «мудра» қолғаптары деп аталады, себебі сіз индексті қысасыз және
Taser қолғаптары: 7 қадам
Taser қолғаптары: бір реттік камераның әлсіз кернеуі бар ақымақ көрінетін электр қолғаптарынан шаршадыңыз ба? Ютубтағы адамдарды жек көреді, олар сізге тек қолғаптың сыртын ғана көрсетіп, оны қалай жасағанын айтпайды ма? Сіз талғампаз дәмге ие болдыңыз және қолғаптың екі күшке ие болғанын қалайсыз
Жұмсақ робототехника қолғаптары: 8 қадам (суреттермен)
Жұмсақ робототехника қолғаптары: Менің жобам - жұмсақ робототехникалық қолғап. Оның әр саусаққа орнатылған жетегі бар; қолғаптың төменгі бөлігі пайдаланушының оны киюін жеңілдету үшін алынады. Іске қосқыштар білекке сағаттан сәл үлкенірек орналасқан құрылғы арқылы қосылады
RGB (Refino Gaunlet Beta) қолғаптары: 7 қадам
RGB (Refino Gaunlet Beta) қолғаптары: Сіз блоктағы келесі ең жақсы гантель жасағыңыз келе ме, ол түрлі -түсті болуы мүмкін, бірақ, мүмкін, жұқпалы шкафтан гөрі, технологияны үнемдейді? Егер сіз «иә» деп жауап берсеңіз, балам, мен саған арналған шағын жобам бар