Სარჩევი:

ტარების ტექნოლოგია: ხმის შესაცვლელი ხელთათმანი: 7 ნაბიჯი
ტარების ტექნოლოგია: ხმის შესაცვლელი ხელთათმანი: 7 ნაბიჯი

ვიდეო: ტარების ტექნოლოგია: ხმის შესაცვლელი ხელთათმანი: 7 ნაბიჯი

ვიდეო: ტარების ტექნოლოგია: ხმის შესაცვლელი ხელთათმანი: 7 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
ტარების ტექნიკა: ხმის შესაცვლელი ხელთათმანი
ტარების ტექნიკა: ხმის შესაცვლელი ხელთათმანი
ტარების ტექნიკა: ხმის შესაცვლელი ხელთათმანი
ტარების ტექნიკა: ხმის შესაცვლელი ხელთათმანი

როგორც ჩანს, წარმოუდგენელი ძალის მქონე ხელთათმანები ამ დღეებში მძვინვარებს. მიუხედავად იმისა, რომ თანოსის უსასრულობის ხელთათმანი საკმაოდ ძლიერი ხელთათმანია, ჩვენ გვინდოდა ხელთათმანის გაკეთება, რომელსაც შეეძლო კიდევ უფრო საყურადღებო რამის გაკეთება: რეალურ დროში შეცვალეთ მფლობელის ხმა.

ეს ინსტრუქცია გვაწვდის ინფორმაციას იმის შესახებ, თუ როგორ შევქმენით ხმის შესაცვლელი ხელთათმანი. ჩვენმა დიზაინმა გამოიყენა ხელთათმანში არსებული სხვადასხვა სენსორები და მიკროკონტროლი მოძრაობების დასადგენად, რომლებიც არდუინოს კოდის საშუალებით გაიგზავნა მაქს პაჩში, სადაც ჩვენი აუდიო სიგნალი შემდეგ შეიცვალა და დამახინჯდა სახალისო გზებით. ჩვენ მიერ გამოყენებული კონკრეტული სენსორები, მოძრაობები და ხმის ცვლილებები მოქნილია სხვადასხვა მოსაზრებებისათვის; ეს არის მხოლოდ ერთი გზა ხმის შესაცვლელი ხელთათმანის შესაქმნელად!

ეს პროექტი იყო პომონას კოლეჯის სტუდენტებსა და ფრემონტის ინჟინერი ქალების აკადემიას შორის საზოგადოების პარტნიორობის ნაწილი. ეს არის ელექტრონული ინჟინერიისა და ელექტრონული მუსიკის ელემენტების ნამდვილი სახალისო ნაზავი!

ნაბიჯი 1: მასალები

მასალები
მასალები
მასალები
მასალები
მასალები
მასალები

ნაწილები:

  • HexWear მიკროკონტროლი (ATmega32U4) (https://hexwear.com/)
  • MMA8451 ამაჩქარებელი (https://www.adafruit.com/product/2019)
  • მოკლე მოქნილი სენსორები (x4) (https://www.adafruit.com/product/1070)
  • მსუბუქი გაშვებული ხელთათმანი
  • #2 ხრახნები და საყელურები (x8)
  • Crimp ტერმინალის კონექტორები; 22-18 ლიანდაგი (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • 50kΩ რეზისტორი (x4)
  • მავთული (~ 20 ლიანდაგი)
  • თვითწებვადი უსაფრთხოების პინი
  • თექის ან სხვა ქსოვილი (~ 10 კვ. ინჩი)
  • Საქსოვი ძაფი
  • ციპტები
  • Ლეპტოპი
  • USB მიკროფონი

ინსტრუმენტები

  • შედუღების ნაკრები
  • მავთულის სტრიპტიზატორები და მავთულის საჭრელები
  • ელექტრო ფირზე
  • ცხელი ჰაერის იარაღი
  • Screwdriver
  • Მაკრატელი
  • Საკერავი ნემსი

პროგრამული უზრუნველყოფა:

  • მაქსიმუმ ველოსიპედით '74 (https://cycling74.com)
  • Arduino პროგრამული უზრუნველყოფა (https://www.arduino.cc/en/Main/Software)

ნაბიჯი 2: პროგრამული უზრუნველყოფის ინსტალაცია

ჩვენ ვიწყებთ იმით, რაც არის ნებისმიერი პროექტის ყველაზე ამაღელვებელი ნაწილი: ბიბლიოთეკების დაყენება (და სხვა).

არდუინო:

ჩამოტვირთეთ და დააინსტალირეთ Arduino პროგრამული უზრუნველყოფა (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (მხოლოდ Windows, Mac მომხმარებლებს შეუძლიათ გამოტოვონ ეს ნაბიჯი) დააინსტალირეთ დრაივერი https://www.redgerbera.com/pages/hexwear-driver-installation– ით. ჩამოტვირთეთ და დააინსტალირეთ დრაივერი (.exe ფაილი ჩამოთვლილია მე –2 ნაბიჯზე, დაკავშირებული RedGerbera გვერდის ზედა ნაწილში).

2) დააინსტალირეთ საჭირო ბიბლიოთეკა Hexware– სთვის. გახსენით Arduino IDE. "ფაილში" აირჩიეთ "პარამეტრები". დამატებითი დაფების მენეჯერის URL- ებისთვის გათვალისწინებულ სივრცეში ჩასვით

github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.

შემდეგ დააჭირეთ "OK".

გადადით ინსტრუმენტებზე -> დაფა: -> დაფის მენეჯერი. ზედა მარცხენა კუთხის მენიუდან აირჩიეთ "წვლილი".

მოძებნეთ და შემდეგ დააწკაპუნეთ გერბერას დაფაზე და დააწკაპუნეთ ინსტალაციაზე. დატოვეთ და გახსენით Arduino IDE.

ბიბლიოთეკის სწორად დაყენების უზრუნველსაყოფად, გადადით Tools -> Board და გადაახვიეთ მენიუს ბოლოში. თქვენ უნდა ნახოთ განყოფილება სახელწოდებით "გერბერა დაფები", რომლის ქვეშაც მინიმუმ უნდა გამოჩნდეს HexWear (თუ არა უფრო მეტი დაფა, როგორიცაა mini-HexWear).

აქსელერომეტრი:

ჩამოტვირთეთ და დააინსტალირეთ ამაჩქარებლის ბიბლიოთეკა (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

ნაბიჯი 3: ამაჩქარებლის მიმაგრება

აქსელერომეტრის მიმაგრება
აქსელერომეტრის მიმაგრება
აქსელერომეტრის მიმაგრება
აქსელერომეტრის მიმაგრება

ჩვენ გვჭირდება ორი ძირითადი ტიპის სენსორი, რათა ვითანამშრომლოთ ამ პროექტთან: ამაჩქარებელი და მოქნილი სენსორები. ჩვენ განვიხილავთ მათ ერთდროულად, დაწყებული ამაჩქარებლით. უპირველეს ყოვლისა, ჩვენ გვჭირდება აპარატურის კავშირები ერთმანეთთან შესატყვისად.

თქვენი ექვსკუთხედის დაზიანების თავიდან ასაცილებლად, ჩვენ გირჩევთ #2 ხრახნი და გამრეცხი დააყენოთ სასურველ პორტებში, შემდეგ კი მიამაგრეთ ყველა კავშირი ამ ხრახნზე. ხელთათმანთან თამაშისას არაფრის გაფუჭების თავიდან ასაცილებლად, კავშირები უნდა იყოს შეკრული და/ან შეკრული. რამოდენიმე ინჩის მავთულის გამოყენებით თითოეული კავშირისთვის, გააკეთეთ შემდეგი კავშირები Hex– დან ამაჩქარებლამდე (იხილეთ ზემოთ pinouts მითითებისათვის):

INPUT VOLTAGE VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

როდესაც ყველაფერი გაწყობილია, ჩვენ მზად ვართ გამოცდისთვის!

როგორც ტესტი, გაუშვით ამაჩქარებლის ნიმუშის კოდი Arduino– ში (ფაილი-> მაგალითები-> Adafruit_MMA8451-> MMA8451demo), დარწმუნდით, რომ მას შეუძლია სერიულ მონიტორზე გამოყვანა. მან უნდა აწარმოოს აჩქარება გრავიტაციის გამო (~ 10 მ/წმ) z მიმართულებით, როდესაც ის დგას დონეზე. აქსელერომეტრის დახრით, ეს აჩქარება გაიზომება x ან y მიმართულებით; ჩვენ ამას გამოვიყენებთ, რათა მის მფლობელს შეეძლოს შეცვალოს ხმა ხელის ბრუნვით!

ახლა ჩვენ უნდა წარმოვადგინოთ აქსელერომეტრის მონაცემები ისე, რომ ის მაქსიმალურად იყოს დაკავშირებული. ამისათვის ჩვენ უნდა დავბეჭდოთ x და y მნიშვნელობები, რომლებიც შესაძლოა შეიცვალოს სასურველ დიაპაზონში (იხ. ნაწილი 6). აქ მიმაგრებულ ჩვენს კოდში ჩვენ ვაკეთებთ შემდეგს:

// გაზომეთ thex- მიმართულება და y- მიმართულება. ჩვენ ვყოფთ და ვამრავლებთ MAX– ის სწორ დიაპაზონში (დიაპაზონი 1000 x და დიაპაზონი 40 y) xdir = event.acceleration.x/0.02; ydir = abs (event.acceleration.y)*2; // დაბეჭდე ყველაფერი მაქსისთვის წაკითხული ფორმატით - თითოეულ ნომერს შორის ინტერვალით Serial.print (xdir); Serial.print ("");

ეს უნდა იყოს ექვსკუთხედის ამობეჭდვის აქსელერომეტრის x და y მიმართულებების შეცვლილ მნიშვნელობებს ყველა ხაზზე. ახლა ჩვენ მზად ვართ დავამატოთ მოქნილი სენსორები!

ნაბიჯი 4: Flex სენსორების მიმაგრება

Flex სენსორების მიმაგრება
Flex სენსორების მიმაგრება
Flex სენსორების მიმაგრება
Flex სენსორების მიმაგრება
Flex სენსორების მიმაგრება
Flex სენსორების მიმაგრება

მფლობელს შეუძლია მიიღოს პოტენციური ხმის კონტროლი, თუ ჩვენ შეგვიძლია გამოვავლინოთ მოხრილი თითები. მოქნილი სენსორები ამას გააკეთებენ. თითოეული მოქნილი სენსორი არსებითად არის პოტენომეტრი, სადაც არხუნებულს აქვს წინააღმდეგობა K 25KΩ, ხოლო სრულად მოხრილს აქვს წინააღმდეგობა ~ 100KΩ. ჩვენ თითოეულ მოქნილ სენსორს ვდებთ ძაბვის მარტივ გამყოფში 50K რეზისტორით, როგორც ეს ნაჩვენებია პირველ სურათზე.

ისევ საკმაოდ მოკლე სიგრძის მავთულის გამოყენებით (გაითვალისწინეთ, რომ ეს ყველაფერი ხელთათმანის უკანა ნაწილზე იქნება მორგებული), შეაერთეთ ოთხი ძაბვის გამყოფი მოდული. ოთხი მოდული იზიარებს ერთსა და იმავე ვინს და გრუნტს-ჩვენ ერთმანეთზე გადავაბრუნეთ მავთულის გაშიშვლებული ბოლოები, ასე რომ ჩვენ გვექნება მხოლოდ ერთი ტყვიის გამაგრება. დაბოლოს, აიღეთ ოთხი მოდული და დაამყარეთ კავშირი მეორე სურათზე (თუ ვინმემ იცის როგორ გააკეთოს ეს საშინლად ჩახლართული არეულობის გარეშე, გთხოვთ გაამჟღავნოთ თქვენი საიდუმლოებები).

ახლა, ჩვენ გვჭირდება არდუინოს კოდი თითოეული სენსორის ძაბვაში წასაკითხად. ჩვენი მიზნებისათვის, ჩვენ მოვიქეცით მოქნილი სენსორები, როგორც კონცენტრატორები; ისინი ან ჩართული ან გამორთული იყვნენ. როგორც ასეთი, ჩვენი კოდი უბრალოდ ადგენს ძაბვის ზღურბლს-ამ ზღურბლზე მაღლა, ჩვენ გამოვყოფთ 1 სერიულ პორტს (იგულისხმება რომ სენსორი მოხრილია), წინააღმდეგ შემთხვევაში ჩვენ გამოვა 0:

// მიიღეთ რიგი

ანალოგური ნიმუშები და დაამატეთ ისინი თითოეული Flex სენსორისთვის

while (sample_count <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

ნიმუშის რაოდენობა ++;

// მოკლე შეფერხება, რომ არ მიიღოთ ისინი ძალიან სწრაფად

დაგვიანება (5);

}

// გამოთვალეთ ძაბვა, საშუალო ნიმუშები სწრაფ ნიმუშებზე

// გამოიყენეთ 5.0 5.0V ADC– სთვის

საცნობარო ძაბვა

// 5.015V არის დაკალიბრებული

საცნობარო ძაბვა

ძაბვა 10 = ((float) თანხა 10 /

(ათწილადი) NUM_SAMPLES * 5.015) / 1024.0;

ძაბვა 9 = ((float) თანხა 9/

(ათწილადი) NUM_SAMPLES * 5.015) / 1024.0;

ძაბვა 7 = ((float) ჯამი 7 /

(ათწილადი) NUM_SAMPLES * 5.015) / 1024.0;

ძაბვა 11 = ((float) თანხა 11 /

(ათწილადი) NUM_SAMPLES * 5.015) / 1024.0;

// შეამოწმეთ არის თუ არა თითოეული მოქნილი სენსორი

ზღურბლზე მეტია (ბარიერი) - თუ ასეა, დააყენეთ რიცხვი

// პინკის თითი

თუ (ძაბვა 10> ბარიერი)

{

//-5 ამაღლება

ხმის ტემბრი ერთი ოქტავით

flex10 = -10;

}

სხვაგან flex10 = 0;

// ბეჭედი თითი

თუ (ძაბვა 9>

(thresh-0.4)) {

// 5 ქვემოთ

ხმის ტემბრი ერთი ოქტავით

flex9 = 5;

}

სხვაგან flex9 = 0;

//Შუა თითი

თუ (ძაბვა 7> ბარიერი) {

// 1 დასაყენებლად

რევერბული ეფექტი

flex7 = 1;

}

სხვაგან flex7 = 0;

//Საჩვენებელი თითი

თუ (ძაბვა 11> ბარიერი)

{

// 50 დასაყენებლად

ციკლი 50 -მდე

flex11 = 93;

}

სხვაგვარად flex11 = 0;

// ყველა დათვლის გადაყენება

ცვლადი 0 -მდე მომდევნო მარყუჟისთვის

ნიმუშის_სახელი = 0;

თანხა 10 = 0;

თანხა 9 = 0;

თანხა 7 = 0;

თანხა 11 = 0;

ამ მომენტში, სერიულმა პორტმა უნდა აჩვენოს მნიშვნელობები ამაჩქარებლის ორიენტაციისთვის და ასევე არის თუ არა მოხრილი თითოეული მოქნილი სენსორი. ჩვენ მზად ვართ მივიღოთ ჩვენი Arduino კოდი მაქსთან!

ნაბიჯი 5: დაკავშირება მაქსთან

ინტერფეისი მაქსთან
ინტერფეისი მაქსთან

ახლა, როდესაც Hex კოდი უამრავ რიცხვს აფურთხებს სერიული პორტის საშუალებით, ჩვენ გვჭირდება Max პროგრამული უზრუნველყოფა ამ სიგნალების წასაკითხად. ზემოთ გამოსახული კოდის ბლოკი ამას აკეთებს! ძალიან მისასალმებელია

მნიშვნელოვანი შენიშვნა: კოდის ჰექსზე ატვირთვის შემდეგ დახურეთ სერიული პორტის ყველა ფანჯარა, შემდეგ შეცვალეთ შემოხაზული ასო მაქს კოდში, რათა შეესაბამებოდეს ექვსკუთხა პორტს. თუ არ ხართ დარწმუნებული რომელი ასო უნდა დააყენოთ, მაქს კოდის „დაბეჭდვის“ნაწილის დაჭერით გამოჩნდება ყველა დაკავშირებული პორტი.

Hex– ის სერიული პორტიდან ნაბეჭდი ხაზი იკითხება მაქს კოდის ბლოკის საშუალებით და შემდეგ იშლება სივრცის გამყოფების საფუძველზე. მაქს ბლოკის ბოლოს გამომავალი გაძლევთ საშუალებას თითოეული ნომერი ინდივიდუალურად დაიჭიროთ, ასე რომ ჩვენ დავუკავშირებთ პირველ გამომავალ სივრცეს იქ, სადაც გვინდა, რომ წავიდეს ამაჩქარებლის მაჩვენებელი x მიმართულება, მეორე სივრცე იქნება y მიმართულება და ა.შ. ახლა, უბრალოდ დააკავშირეთ ეს რიცხვითი ბლოკებით, რათა დარწმუნდეთ რომ ისინი მუშაობენ. თქვენ უნდა შეეძლოთ აქსელერომეტრის და მოქნილი სენსორების გადატანა და რიცხვების ცვლილება მაქს პროგრამულ უზრუნველყოფაში.

ნაბიჯი 6: შექმენით დანარჩენი მაქს კოდი

მაქს ენის სიძლიერის გათვალისწინებით, თქვენ ნამდვილად შეგიძლიათ დაუშვათ თქვენი ფანტაზია აქ ყველა საშუალებით, რომლითაც შეგიძლიათ შეცვალოთ შემომავალი ხმოვანი სიგნალი თქვენი ჯადოსნური ძალის ხელთათმანით. და მაინც, თუ იდეები ამოიწურა, ზემოთ არის აღწერილი, რას აკეთებს ჩვენი მაქს კოდი და როგორ მუშაობს იგი.

თითოეული პარამეტრისთვის, რომლის შეცვლასაც ცდილობთ, თქვენ ალბათ გინდათ არეოთ Arduino კოდის მნიშვნელობების დიაპაზონი, რომ მიიღოთ სწორი მგრძნობელობა.

ზოგიერთი სხვა Max რჩევები პრობლემის მოსაგვარებლად:

  • თუ ხმა არ გესმით

    • დარწმუნდით, რომ მაქს დაყენებულია თქვენი მიკროფონიდან აუდიოს მიღება (პარამეტრები აუდიოს სტატუსის შეყვანის მოწყობილობა)
    • დარწმუნდით, რომ Master მოცულობის სლაიდერი Max- ში არის ჩართული და ნებისმიერი სხვა მოცულობის კონტროლი, რომელიც შეიძლება გქონდეთ თქვენს კოდში
  • თუ კოდი თითქოს არაფერს აკეთებს

    • დარწმუნდით, რომ თქვენი პატჩი ჩაკეტილია (დაბლოკვის სიმბოლო ქვედა მარცხენა კუთხეში)
    • დარწმუნდით, რომ Max patch– ში წაკითხვის საშუალებით თქვენი Max patch კვლავ იღებს მონაცემებს Arduino სერიული პორტიდან. თუ არა, სცადეთ სერიული პორტის გადატვირთვა (როგორც ეს მოცემულია ნაბიჯ 5 -ში) და/ან შეამოწმეთ თქვენი ფიზიკური გაყვანილობის კავშირები.
  • უცნაური ხმაური პარამეტრების შეცვლისას

    ეს არის რაღაც დაკავშირებული როგორ მუშაობს ~ ტაპინი და ~ ტაპუტი; კერძოდ, როდესაც თქვენ შეცვლით მათ ღირებულებებს, ისინი გადატვირთულია, რაც იწვევს კლიპს. პროგრამის შესახებ ჩვენი შეზღუდული ცოდნის გათვალისწინებით, ჩვენ თითქმის დარწმუნებული ვართ, რომ არსებობს უკეთესი გზა ამის გაკეთება Max- ში და საკითხის აღმოფხვრა…

ნაბიჯი 7: სიტყვასიტყვით აყალიბებს ყველაფერს ერთად

სიტყვასიტყვით აყენებს ყველაფერს ერთად
სიტყვასიტყვით აყენებს ყველაფერს ერთად
სიტყვასიტყვით აყენებს ყველაფერს ერთად
სიტყვასიტყვით აყენებს ყველაფერს ერთად
სიტყვასიტყვით აყენებს ყველაფერს ერთად
სიტყვასიტყვით აყენებს ყველაფერს ერთად
სიტყვასიტყვით აყენებს ყველაფერს ერთად
სიტყვასიტყვით აყენებს ყველაფერს ერთად

ყველაფერი რაც ახლა რჩება არის ჩვენი წრედის მიმაგრება ჩვენს ხელთათმანზე. აიღეთ დამატებითი ქსოვილი და ამოჭერით ზოლები ოდნავ უფრო დიდი ვიდრე მოქნილი სენსორები. შეკერეთ დამატებითი ქსოვილი ხელთათმანის თითზე, სადაც მუხლი იკეცება, რის გამოც მგრძნობიარე სენსორი იჯდება (ჩვენ არ შეგვიძლია მხოლოდ წებოვანი სენსორების წებო პირდაპირ ხელთათმანზე, რადგან ხელთათმანის ქსოვილი იჭიმება თითების მოხრისას)). მას შემდეგ, რაც ყდის უმეტესად არის შეკერილი, გადაასრიალეთ მოქნილი სენსორი შიგნით და ფრთხილად მიაკარით ხელები ხელთათმანისკენ, დააფიქსირეთ მოქნილი სენსორი ადგილზე. გაიმეორეთ ეს თითოეული მოქნილი სენსორისთვის.

შემდეგი, გამოიყენეთ თვითწებვადი უსაფრთხოების ბალიში, რომ დაურთოთ ექვსკუთხედი ხელთათმანის უკანა მხარეს (შეიძლება დაგჭირდეთ ცხელი წებოს დადება ქინძისთავზე, რათა დარწმუნდეთ, რომ ის არ გაუქმდება ტარების დროს). მიამაგრეთ აქსელერომეტრი ხელთათმანის მაჯაზე. დაბოლოს, გამოიყენეთ ჯაფის ჯადოსნური მაგია, რომ ლამაზად გაასუფთაოთ ნებისმიერი უსიამოვნო მავთული.

თქვენ მზად ხართ გამოცადოთ თქვენი საბოლოო სიმღერა! (შეიძლება ჩვენ გირჩევთ Daft Punk- ის "უფრო რთული უკეთესი უფრო სწრაფად", რათა სრულად წარმოაჩინოთ თქვენი ხმის შეცვლის შესაძლებლობები)

გირჩევთ: