Talaan ng mga Nilalaman:

Prima - isang Robot na Nagpe-play ng Piano: 13 Hakbang
Prima - isang Robot na Nagpe-play ng Piano: 13 Hakbang

Video: Prima - isang Robot na Nagpe-play ng Piano: 13 Hakbang

Video: Prima - isang Robot na Nagpe-play ng Piano: 13 Hakbang
Video: Йога для начинающих дома с Алиной Anandee #1. Здоровое и гибкое тело за 40 минут 2024, Nobyembre
Anonim
Prima - isang Robot na Nagpe-play ng Piano
Prima - isang Robot na Nagpe-play ng Piano

Ang ideya ng isang robot na tumutugtog ng isang instrumento ay palaging nabighani sa akin, at palagi kong nais na bumuo ng isa sa aking sarili. Gayunpaman, hindi ako nagkaroon ng maraming kaalaman tungkol sa musika at mga instrumento sa musika, kaya hindi ko mawari kung paano talaga ako magsisimula sa ganyan. Hanggang kamakailan lamang, naging interesado ako sa paggawa ng musika, nagsimulang matuto ng mga bagay-bagay sa paggawa ng musika, at pagkatapos makakuha ng isang keyboard na MIDI, napagtanto kong hindi ito isang mahirap na instrumento upang tumugtog at maaari talaga akong bumuo ng isang robot na maaaring tumugtog nito. Kaya, ganoon nagsimula ang paggawa ng Prima.

Hindi ako sigurado tungkol sa tagumpay ng proyektong ito, kaya hindi nag-abala sa pagdokumento nito. Ngunit dahil naging mahusay itong gumana, napagpasyahan kong ibahagi ang mga detalye sa pamayanang Instructables. Hindi ito magiging isang sunud-sunod na build log, sa halip higit pa sa isang gabay upang makapagsimula ka. Ipinapaliwanag ko kung paano gumagana ang bawat bahagi ng robot na ito, ibahagi ang mga larawan ng mga ito at ang code para sa Arduino. Inaasahan kong sapat na iyon kung nais mong gumaya sa proyektong ito.

At, ang disenyo ay inspirasyon ng mga itinuturo na ito, sumigaw sa JimRD!

Kaya, magsimula na tayo

Hakbang 1: Pangkalahatang-ideya ng Buong Proyekto

Ang Prima ay isang robot na maaaring maglaro ng keyboard / piano o anumang katulad na key-based na instrumento. Mayroon itong Arduino Uno bilang utak, isang LCD screen para sa visual na output at isang ultrasonic sensor para sa mas madaling pag-ugnay. Anumang power adapter na naghahatid ng 5 volt 2 amp ay dapat na makakapag-lakas nito.

Mayroon itong mga sumusunod na tampok -

  • Programmable - Maaaring mai-program upang i-play ang anumang komposisyon na limitado sa loob ng isang oktaba.
  • Adjustable Tempo - Ang tempo na susundan nito habang nagpe-play ng instrumento ay maaaring itakda sa code.
  • Hindi Nagsisimula sa Pag-touch - Maaaring ma-trigger ng gumagamit ang pag-play sa pamamagitan lamang ng pag-swipe ng kanyang kamay sa sensor, na makakatulong nang malaki kung ang gumagamit ay abala sa paglalaro ng isa pang instrumento at nais niyang maglaro kasama niya si Prima pagkatapos ng isang tukoy na oras. Ang pag-jamming ng player ng tao sa isang robot player - kahit na ito ay makakamit din, sa tulong ng tampok na ito.

Hakbang 2: Video

Image
Image

Maaari mong panoorin ito sa pag-play ng isang keyboard sa video.

Hakbang 3: Paggawa ng 3D Model

Paggawa ng 3D Model
Paggawa ng 3D Model
Paggawa ng 3D Model
Paggawa ng 3D Model

Matapos na tapusin kung ano ang dapat nitong gawin, idinisenyo ko ang katawan sa TinkerCAD upang masimulan kong itayo ito sa pagkakaroon ng isang malinaw na ideya ng aking ginagawa.

Nakatulong sa akin ang pamamaraang ito upang magwakas sa isang maayos na pagtingin sa robot na gumagana nang eksakto sa paraang idinisenyo dito. Kahit na kailangan kong baguhin ang orihinal na disenyo nang kaunti habang itinatayo ito, ang modelong 3D pa rin ang nag-save sa akin ng maraming oras at pagsisikap. Maaari mong makita ang 3D na modelo sa higit pang mga detalye dito.

Hakbang 4: Mga Bahagi at Mga Tool

Mga Bahagi at Kasangkapan
Mga Bahagi at Kasangkapan
Mga Bahagi at Kasangkapan
Mga Bahagi at Kasangkapan
Mga Bahagi at Kasangkapan
Mga Bahagi at Kasangkapan

Para sa elektronikong bahagi, kakailanganin mo -

  • Arduino Uno (Dami - 1)
  • 16x2 LCD Screen (Dami - 1)
  • I2C Adapter para sa LCD Screen (Dami - 1)
  • TowerPro SG90 Micro Servo (Dami - 2)
  • HC-SR04 Ultrasonic Sensor (Dami - 1)
  • I-toggle ang Push Switch (Dami - 1)
  • Buzzer (Dami - 1)
  • Vero board / Dot Board / Perf Board
  • Lalake sa Lalaki at Lalaki sa Babae na jumper wires

Para sa paggawa ng katawan -

  • 5 mm PVC Sheet
  • Nagsalita ang ikot (Dami - 2)
  • Mga tornilyo
  • Tube ng may hawak na refill
  • Pag-spray ng pintura (Kung nais mong pintura ito)

Ang mga tool na kakailanganin mo -

  • Superglue
  • Mainit na glue GUN
  • Panghinang
  • Anti-cutter (A. K. A Paper-cutter)

Hakbang 5: Circuitry

Circuitry
Circuitry
Circuitry
Circuitry
Circuitry
Circuitry

Ang bahagi ng circuit ay medyo madali. Ipinapaliwanag ko kung paano ko nagawa ang bawat segment nito -

LCD Segment - Gumamit ako ng I2C adapter para sa LCD upang ang Arduino ay maaaring makipag-usap dito sa paglipas ng I2C, na hindi kinakailangan ngunit pinasimple ang circuit at binawasan ang bilang ng mga wire. Maaari mong gamitin ang isang pamantayang LCD sa pamamagitan ng pagbabago ng kaunti sa code.

Power segment - Gumawa ako ng isang simpleng circuit sa veroboard na binubuo ng isang toggle push switch, isang buzzer, isang LED (na napagpasyahan kong huwag gamitin pagkatapos) at isang 5V karaniwang power bus. Ang power bus tulad ng, ang 5V at mga ground pin ng mga servo, ang sonar sensor, ang LCD at ang Arduino ay konektado sa bawat isa ayon sa pagkakabanggit. Ang isang pin ng push switch ay konektado sa linya ng 5V +, at ang isa pang pin ay konektado sa VCC pin ng power supply. Ang linya ng lupa ay konektado sa ground pin ng power supply nang direkta. Kaya, ang Prima ay maaaring i-on / i-off gamit ang switch. Ang buzzer at ang LED ay konektado sa kahanay, at ang VCC pin ng mga ito ay napupunta sa pin 13 ng Arduino. Ang kanilang lupa ay konektado sa lupa ng karaniwang power bus.

Pagbabago ng konektor ng servos '- Dahil ang mga wire ng jumper ay madalas na kumalas mula sa konektor ng servo, pinutol ko ang VCC at ang ground wire mula sa parehong mga servo at idirekta ang mga ito nang direkta sa power bus. Para sa mga signal pin, gayunpaman, gumamit ako ng mga wire ng jumper upang ikonekta ang mga ito sa Arduino.

Sonar sensor - In-solder ang dalawang wires ayon sa pagkakabanggit sa VCC at ground pin ng sonar sensor, na papunta sa karaniwang power bus, at gumamit ng mga jumper wires para sa pagkonekta ng gatilyo at echo pin sa Arduino.

Arduino - Pinapagana sa pamamagitan ng konektor ng jack jack.

Alin ang pupunta sa alin -

Ang trigger pin ng Sonar Sensor -> A1 pin ng Arduino

Ang echo pin ni Sonar Sensor -> A3 pin ni Arduino

SD2 pin ng I2C Adapter -> A4 pin ng Arduino

Ang SCL pin ng I2C Adapter -> A5 pin ng Arduino

VCC ng Buzzer's -> Ang pin ng Arduino na D13

Key pin ng signal ng servo pinindot -> Ang pin ng Arduino na D9

Signal pin ng X axis servo -> Ddu pin ng Arduino

Ang lahat ng mga VCC at ground pin ay konektado sa karaniwang power bus.

Hakbang 6: Sonar Sensor Mount

Mount ng Sonar Sensor
Mount ng Sonar Sensor

Mabilis na nagpapaliwanag ang larawan, sobrang nakadikit lamang ng isang hugis na istante ng L sa "dingding" at idinikit ang sonar sensor sa istante.

Hakbang 7: Paggawa ng X Axis Rail

Paggawa ng X Axis Rail
Paggawa ng X Axis Rail
Paggawa ng X Axis Rail
Paggawa ng X Axis Rail

Hiniram ko ang konsepto ng X axis rail mula sa mga makina ng CNC. Dalawang cycle cycle lang ang nakalagay na magkatugma sa bawat isa, at ang mga "pader" ay may mga butas kung saan dumadaan ang mga tagapagsalita ng ikot. Sa iba pang mga dulo ng dingding, ang mga tagapagsalita ng ikot ay mainit na nakadikit sa mga dingding upang hindi sila gumalaw. Ang mga tagapagsalita ng ikot ay sapat na malakas upang suportahan ang X axis platform.

Hakbang 8: X Axis Platform

X Axis Platform
X Axis Platform
X Axis Platform
X Axis Platform
X Axis Platform
X Axis Platform
X Axis Platform
X Axis Platform

Ito ang bahagi na pailid upang maabot ang ilang mga key at may isang servo na may braso na nakakabit dito na pumipindot sa key.

Mayroon itong dalawang tubo ng may hawak na ref ref na naka-nakadikit sa ilalim nito kung saan napupunta ang mga tagapagsalita ng ikot na pinapayagan itong dumulas sa kanila. Nakuha ko ang tubong ito mula sa isang pluma, maaari kang gumamit ng anumang bagay na umaangkop sa mga tagapagsalita tulad ng pag-inom ng dayami.

Pagkatapos, sa gitna ng ilalim ng sheet ng PVC, may isa pang sheet ng PVC na tuwid na nakatayo. Mayroon itong butas na pinutol sa mas mababang bahagi na umaangkop sa servo body at ang servo ay naipasok sa pamamagitan nito. Ang servo ay na-secure gamit ang mainit na pandikit.

Ang servo ay may braso na konektado dito. Kapag kailangang pindutin ng robot ang isang susi, paikutin ng servo ang braso pababa na nagreresulta sa isang key press at paikutin ito sa dating posisyon pagkatapos.

Hakbang 9: Paglipat ng X Axis Platform

Paglipat ng X Axis Platform
Paglipat ng X Axis Platform
Paglipat ng X Axis Platform
Paglipat ng X Axis Platform
Paglipat ng X Axis Platform
Paglipat ng X Axis Platform

Ang servo na "X axis mover" ay nakakabit sa isang nakataas na platform na nasa kaliwang bahagi ng robot. Ang X axis platform ay may isang istante sa tuktok kung saan ang isang braso ay pinagsama gamit ang isang tornilyo. Sa kabilang dulo ng braso, ang isa pang braso ay pinagsama gamit ang tornilyo at ang isang ito ay konektado sa servo sungay. Ang lahat ng mga kasukasuan ay maililipat, at ang servo ay maaaring maghimok ng X axis platform sa riles ng axis X sa pamamagitan ng pag-ikot ng sungay nito pakaliwa / pakanan na gagawing braso upang itulak / hilahin ang platform sa riles.

Ang mga kasukasuan ay ginawa gamit ang tornilyo.

Hakbang 10: Code

Matapos matapos ang pagbuo ng katawan at ng circuit, i-upload ang code sa Arduino. Ilagay ang robot sa kahanay ng keyboard / piano Ang x axis platform ay unang magsisimulang gumalaw patungo sa kaliwa at hihinto sa isang tiyak na punto. Ilipat ang robot hanggang sa matugunan ng C key ng piano ang puntong iyon. Ito ay isang kritikal na hakbang, dahil nang walang pagpoposisyon ng robot sa ganitong paraan, hindi ito maglalaro nang tama ng himig. Pagkatapos ay i-on ang robot, dapat itong magsimulang maglaro ng isang himig sa loob ng ilang segundo.

Ang code ay medyo basic at may lugar para sa pagpapabuti. Kung nais mo ang robot na tumugtog ng iyong sariling himig, kakailanganin mo lamang na ilagay ito sa code na medyo madali.

Hakbang 11: Pagpipinta Ito

Kung nais mong pintura ito tulad ng sa akin (Mas iminumungkahi kong gawin ito, mukhang mas mahusay itong ipininta), gawin muna ang lahat ng mga bahagi ng katawan, siguraduhing naputol ang mga ito. Pagkatapos, hugasan ang mga ito gamit ang sabon upang malaya sila sa langis at dumi. Karaniwan nang ibinubuhos ng mga tao ang ibabaw bago ipinta ito, ngunit narito hindi mo na kailangan. Pagwilig muna ng isang layer sa kanila, bigyan ito ng sapat na oras upang matuyo (Ilang oras), pagkatapos ay magpinta ng isa pang layer. Maaari mong simulan ang pag-iipon ng mga bahagi at pagdikit sa kanila pagkatapos na matuyo ang pintura.

Gumamit ako ng spray pintura upang pintura ang minahan

Hakbang 12: paglalagay at Pag-aayos ng Elektronika

Paglalagay at Pag-aayos ng Elektronika
Paglalagay at Pag-aayos ng Elektronika
Paglalagay at Pag-aayos ng Elektronika
Paglalagay at Pag-aayos ng Elektronika

Inikot ko ang Arduino sa base sheet ng PVC at mainit na nakadikit ang parehong circuit ng kuryente at ang LCD sa base board. Naayos ang mga wires na may mainit na pandikit.

Hakbang 13: Konklusyon: Salamat sa Pagbasa ng Mga Tagubilin

Kaya, ito ang paraan kung paano ko itinayo ang Prima. Inaasahan kong ang build log ay malinaw at madaling maunawaan. Kung mayroon kang anumang mga katanungan, huwag mag-atubiling iwanan ang mga ito sa seksyon ng komento, susubukan kong tumugon nang maaga hangga't maaari.

Mga plano sa hinaharap sa proyektong ito -

  • Ang paggawa ng isang software para sa pagprogram ng Prima nang mas madali.
  • Ang pagdaragdag ng tampok na pag-tap sa tempo upang maaari mo lamang i-tap ang isang pindutan para sa pag-aayos ng tempo.
  • Pagpalit ng mga servo ng mas tahimik at mas mabilis

Kung itatayo mo ito, mag-drop ng mga larawan sa komento, nais kong makita ang iyo!:)

Inirerekumendang: