Orodha ya maudhui:

Makadirio ya Azimuthal Mapambo ya Ramani ya 3D Mchezo wa Folk Music Puzzle - Arduino: Hatua 7
Makadirio ya Azimuthal Mapambo ya Ramani ya 3D Mchezo wa Folk Music Puzzle - Arduino: Hatua 7

Video: Makadirio ya Azimuthal Mapambo ya Ramani ya 3D Mchezo wa Folk Music Puzzle - Arduino: Hatua 7

Video: Makadirio ya Azimuthal Mapambo ya Ramani ya 3D Mchezo wa Folk Music Puzzle - Arduino: Hatua 7
Video: Why all world maps are wrong 2024, Julai
Anonim
Image
Image
Buni Bodi
Buni Bodi

UTANGULIZI

Ukurasa ufuatao utakuelekeza jinsi ya kuunda mradi wa Arduino, ambao una kazi kuu mbili-mapambo wazi na taa na mchezo wa fumbo wa muziki, ambao unajumuisha uwanja wa jiografia, jiometri, ramani, Umoja wa Mataifa, na muziki zote kwa pamoja. Kujengwa juu ya muundo wa hexagoni, kifaa kinaonyesha ramani ya ulimwengu katika Makadirio ya Azimuthal Equidistant, ambayo ni aina ya makadirio ya ramani yanayotumiwa na Umoja wa Mataifa (na ishara yake).

Wakati wa kuamsha hali ya mapambo, mabara ya ramani yangeangaza kwa rangi tofauti zilizoamuliwa na mchanganyiko wa maadili ya RGB kupitia utumiaji wa RGB za LED.

Njia ya mchezo, kwa upande mwingine, inahitaji watumiaji kutambua asili ya nyimbo za muziki wa kiasili (zilizochaguliwa kwa nambari za nasibu kutoka 1 hadi 20) na kuweka bodi ya jibu la jibu lake katika nafasi yake inayofanana kwenye bodi kuu ya mbao ndani ya seti. muda (weka mapema kwa dakika 1).

_

VIFAA

Vifaa halisi

  • LED za RGB 5mm * 20
  • Waya
  • Vipinga * 9
  • Bodi ya Arduino * 1 (aina yoyote)
  • Bodi za mikate * 3
  • Vifungo * 7
  • Bodi ya Kuonyesha LCD I2C * 1
  • Sanduku la Kadibodi (13 * 9 * 5.7 inchi; 33 * 23 * 14.5 cm)
  • Bodi ya Mbao (37.5 * 29 * 0.8 cm)
  • Bodi za Acrylic (uwazi * 2, nusu ya uwazi * 1)
  • Chaja inayobebeka * 1

Zana:

  • Blade * 1
  • Viboreshaji vya Tiba ya UV * 1
  • Tape ya pande mbili * 1 roll
  • Moto Gundi Bunduki * 1

Mashine:

Mashine ya Kukata Laser

Programu:

  • Adobe Illustrator
  • Adobe Photoshop
  • Kifaru 3D

Hatua ya 1: Buni Bodi

Unaweza kupakua faili iliyoambatishwa moja kwa moja au kufuata hatua zilizo hapa chini.

Kuelezea Ramani

  1. Pakua muhtasari wa ramani kutoka Google

    1. Google "nembo ya umoja wa mataifa"
    2. Chagua "zana - saizi - kubwa"
    3. Pakua picha yako unayopenda zaidi (ile inayotumiwa na mradi huu: kiunga) * Jaribu kuchagua zile zilizo na laini ngumu zinazoingiliana na ardhi za bara *
  2. Hamisha ramani iliyopakuliwa kwenye toleo la uchapishaji

    1. Rangi mikoa isiyofaa iwe nyeupe kwa kutumia kazi ya brashi ya rangi kwenye Adobe Photoshop
    2. Hamisha faili (JPEG)
    3. Ingiza faili kwenye Adobe Illustrator na utumie kazi ya "picha ya kufuatilia" kufuatilia ramani
    4. Hamisha faili (dxf)

Kuongeza usuli wa Hexagon

  1. Ingiza faili ya dxf kwenye Rhino
  2. Chagua kazi ya "polygon" na ufunguo katika "6" kwa chaguo la "NumSides"
  3. Ufunguo katika "3.5" kwa thamani ya eneo
  4. Chora hexagoni 28 za ukubwa sawa
  5. Hamisha faili katika 3dm

Hatua ya 2: Kukata Laser

Image
Image
Kukata Laser
Kukata Laser
Kukata Laser
Kukata Laser
Kukata Laser
Kukata Laser
  1. Ingiza faili iliyokamilishwa hapo awali kwa xxx.
  2. Kutumia mashine ya kukata laser, chapa mwili kuu kwenye ubao wa mbao na mabara kwenye bodi za akriliki (uwazi 2 na nusu ya uwazi) (video zimetolewa hapo juu)

Hatua ya 3: Jenga Kifaa

Jenga Kifaa
Jenga Kifaa
Jenga Kifaa
Jenga Kifaa
Jenga Kifaa
Jenga Kifaa

Bodi Baada ya Kukata Laser

  • Mabara ya Acrylic

    1. Tumia viambatisho vinavyotibika vya UV kubandika bodi zote tatu za bara pamoja (na nusu wazi kama safu ya kati)
    2. Tumia taa ya UV kuangaza kwenye maeneo yaliyofunikwa ili kuruhusu glues kuimarika
  • Msingi wa Bodi ya Mbao

    1. Kwa mikono ondoa maeneo madogo ya ardhi yaliyokwama kwenye bodi kuu ya mbao
    2. * Ikiwa sehemu yoyote ya bodi ya mbao imevunjika, tumia viambatisho vinavyotibika vya UV ili kuziunganisha tena *

Kujenga Msingi (Msingi wa chini wa Kifaa Chote)

  1. Pata sanduku la kadibodi la ukubwa wa kutosha, na vipimo vikiwa karibu na inchi 13 * 9 * 5.7 (33 * 23 * 14.5 cm)
  2. Kutumia bodi ya mbao kama mfano wa kumbukumbu, fuatilia sehemu za bara kwenye uso wa juu wa sanduku
  3. Fuatilia sehemu ya chini ya vifungo kwenye uso wa juu wa sanduku, na kila kifungo kimejikita ndani ya kila sehemu ya bara
  4. Tumia blade kukata sehemu za vifungo kwa kufuata athari
  5. Katika sehemu za bara zinazofuatiliwa, tumia blade kukata sehemu fupi zinazozunguka kitufe
  6. Fuatilia sehemu mbili za chini za kitufe kwenye upande wa kulia wa sanduku (jaribu kupanga alama na urefu sawa)
  7. Fuatilia bodi ya kuonyesha LCD upande wa kulia wa sanduku (juu ya vifungo viwili katika hatua ya awali)
  8. Tumia blade kukata sehemu mbili za kitufe na sehemu ya LCD kwa kufuata athari katika hatua ya 6 na 7

Hatua ya 4: Jenga nyaya

Jenga Mizunguko
Jenga Mizunguko

Ikimaanisha skimu hapo juu, jenga mzunguko.

Kumbuka:

  • Vipinga vya LED za RGB na zile za vifungo ni tofauti, TAZAMA WAZI WAZI!
  • Kwa kuwa Bodi ya Kuonyesha ya LCD hapo juu haina mfano wa I2C, haijaunganishwa kikamilifu. (Bodi za Kuonyesha za LCD zilizo na mifano ya I2C lazima zizie pini nne)

    • Unganisha GNDs kwenye onyesho na bodi ya Arduino
    • Unganisha VCC kwenye onyesho na pini nzuri kwenye ubao wa mkate
    • Unganisha SDA kwenye onyesho na bodi ya Arduino
    • Unganisha SCL kwenye onyesho na bodi ya Arduino

Hatua ya 5: Pakia Nambari

Nambari ya mradi huu inaweza kupatikana hapa au chini.

Kila laini ya kuweka alama ina maelezo ya kando inayoelezea kusudi lake na kazi.

Kumbuka:

  • Pini zote maalum za D zinaweza kubadilishwa na kurekebishwa kulingana na mpangilio wa mzunguko wako
  • Sekunde zote zilizocheleweshwa zinaweza kubadilishwa kuwa maadili tofauti, lakini USIWAFUTE! (Sekunde hizi zilizocheleweshwa zinaruhusu nambari kutiririka kimantiki zaidi. Bila wao, sehemu zingine za nambari zinaweza zisifanye kazi!)
  • Kwenye laini ya 24 (kuletwa kwa "kitanzi"), unaweza kuteua idadi ya marudio ambayo ungependa kitanzi kiendeshwe (thamani ya asili ni 5)
  • Mchanganyiko wa rangi za LED za RGB katika kila kitufe "ikiwa imeshinikizwa" na "ikiwa haijasisitizwa" vitanzi vinaweza kubadilishwa na kugeuzwa. (Hapo awali, LED za RGB zingeangaza kwa kijani ikiwa zinabanwa wakati zingeangaza kwa nyekundu ikiwa hazisisitizwa. Unaweza kubadilisha maadili kuwa na rangi za ubunifu za kujibu KULIA na KOSA)

# pamoja

# pamoja na LiquidCrystal_I2C lcd_I2C_27 (0x27, 16, 2); // weka anwani ya LCD kwa chars 16 na onyesho la laini 2 int _R; // tambulisha R inayobadilika, ambayo inasimama kwa Thamani Nyekundu ya RGB za LED int _G; // tambulisha G inayobadilika, ambayo inasimama kwa thamani ya Kijani ya RGB LEDs _ _B; // kuanzisha B inayobadilika, ambayo inasimama kwa thamani ya Bluu ya RGB LEDs _ _SongNumber; // tambulisha usanidi batili wa SongNumber () {pinMode (10, INPUT); // huweka D10 kama pembejeo kwa pinMode ya mapambo-ramani (9, INPUT); // huweka D9 kama pembejeo kwa kitufe cha mchezo wa puzzle-pin pinMode (8, INPUT); // huweka D8 kama pembejeo kwa kitufe cha kifungo cha Eurasia (4, INPUT); // huweka D4 kama pembejeo kwa pinMode ya kifungo cha Amerika Kaskazini (3, INPUT); // huweka D3 kama pembejeo kwa pinMode ya kifungo cha Amerika Kusini (2, INPUT); // huweka D2 kama pembejeo kwa PINMode ya kifungo cha Afrika (1, INPUT); // huweka D1 kama pembejeo kwa kitufe cha Oceania lcd_I2C_27.init (); // anzisha bodi ya kuonyesha LCD lcd_I2C_27. mwangaza wa taa (); // washa mwangaza wa bodi ya maonyesho ya LCD} kitanzi batili () {ikiwa (dijitiSoma (10)) {// ikiwa kitufe cha mapambo ya ramani kimeshinikizwa (int i = 0; i <5; ++ i) {/ endesha kitanzi kifuatacho kwa mara 5 _R = nasibu (0, 1023); // toa kutofautisha R thamani ya nasibu kutoka 0 hadi 1023 _G = nasibu (0, 1023); // toa kutofautisha G thamani ya nasibu kutoka 0 hadi 1023 _B = nasibu (0, 1023); // toa kutofautisha B thamani ya nasibu kutoka 0 hadi 1023 AnalogWrite (13, (_R / 4)); // Thamani ya R ya LED za RGB kwa mbadala za kikundi cha kwanza na inaandika thamani ya kutofautisha kutoka 0 hadi 255 analogWrite (12, (_G / 4)); // Thamani ya G ya LED za RGB kwa mbadala za kikundi cha kwanza na inaandika thamani ya kutofautisha kutoka 0 hadi 255 analogWrite (11, (_B / 4)); // thamani ya B ya RGB za LED kwa mbadala za kikundi cha kwanza na inaandika thamani ya kutofautisha kutoka 0 hadi 255 analogWrite (7, (_R / 4)); // thamani ya R ya LED za RGB kwa mbadala za kikundi cha pili na inaandika thamani ya kutofautisha kutoka 0 hadi 255 analogWrite (6, (_G / 4)); // Thamani ya G ya LED za RGB kwa mbadala za kikundi cha pili na inaandika thamani ya kutofautisha kutoka 0 hadi 255 analogWrite (5, (_B / 4)); // thamani ya B ya RGB za LED kwa mbadala za kikundi cha pili na inaandika thamani ya kutofautiana kutoka kwa kuchelewa kwa 0 hadi 255 (3000); // subiri kwa millisekunde 3000 (sekunde 3)} // kwa kuwa maadili ya kutofautisha R, G, B yamedhamiriwa kitanzi, kutakuwa na mchanganyiko wa rangi tano tofauti kwa kitanzi} ikiwa (digitalRead (9)) {// if kitufe cha mchezo wa puzzle ni taabu _SongNumber = nasibu (1, 20); // toa Tofauti ya Nambari ya Thamani kutoka 1 hadi 20 lcd_I2C_27.setCursor (0, 0); // weka mshale, kuhesabu huanza na 0 lcd_I2C_27.print (_SongNumber); // chapisha thamani ya SongNumber kwa Analog ya LCD ya bodi ya kuonyesha (13, 0); // kuweka upya na andika thamani ya D13 kama 0 Analog Andika (12, 0); // kuweka upya na andika thamani ya D12 kama 0 Analog Andika (11, 0); // kuweka upya na andika thamani ya D11 kama 0 Analog Andika (7, 0); // kuweka upya na andika thamani ya D7 kama 0 Analog Andika (6, 0); // kuweka upya na andika thamani ya D6 kama 0 Anwani Andika (5, 0); // weka upya na andika thamani ya D5 kama 0 ikiwa Maneno yanayobadilika ni kutoka kwa kuchelewa kwa 18 hadi 20 (60000); // subiri kwa milliseconds 60000 kwa wachezaji kusikiliza muziki wa kitamaduni (sekunde 60; dakika 1) ikiwa (digitalRead (1)) {// ikiwa kitufe cha Oceania kimeshinikizwa Analogi Andika (13, 0); // Analog Andika thamani ya D13 kama 0 Analog Andika (12, 255); // Analog Andika thamani ya D12 kama 255 analog Andika (11, 0); // Analog Andika thamani ya D11 kama 0 Analog Andika (7, 0); // Analog Andika thamani ya D7 kama 0 Analog Andika (6, 255); // Analog Andika thamani ya D6 255 analog Andika (5, 0); // Analog Andika thamani ya D5 kama 0} // LED zote za RGB zingeangaza kwa rangi nyingine ya kijani {// ikiwa kitufe cha Oceania hakikandamizwa Analog Andika (13, 255); // Analog Andika thamani ya D13 kama 255 analog Andika (12, 0); // Analog Andika thamani ya D12 kama 0 Analog Andika (11, 0); // Analog Andika thamani ya D11 kama 0 Analog Andika (7, 255); // Analog Andika thamani ya D7 kama 255 analog Andika (6, 0); // Analog Andika thamani ya D6 kama 0 Analog Andika (5, 0); // Analog Andika thamani ya D5 kama 0} // LED zote za RGB zingeangaza kwa rangi nyekundu} // kwani majibu sahihi ya SongNumber 18 hadi 20 yote ni Oceania, hii "ikiwa kitanzi" inafikia ikiwa jibu la mchezaji ni sahihi au sio lcd_I2C_27. wazi (); // futa ucheleweshaji wa bodi ya kuonyesha LCD (1000); // subiri kwa sekunde 1000 (sekunde 1)}}

Hatua ya 6: Kumaliza Kifaa

  1. Fungua sanduku la kadibodi na uweke mizunguko iliyojengwa hapo awali (pamoja na vitu vyote, ex: bodi tatu za mkate, bodi ya Arduino, chaja inayoweza kubebeka)
  2. Ikimaanisha nambari na sehemu za bara zilizo juu ya sanduku, weka vifungo kwenye kila moja ya nafasi zao zinazolingana.

    * Unaweza kurejelea vidokezo vya kando nyuma ya nambari ili kuhakikisha kitufe cha pini ni kwa bara gani *

  3. Weka vitu "vitufe vya kazi" viwili (ramani-deco ya D10 na mchezo wa fumbo wa D9) katika kila sehemu zilizokatwa upande wa kulia wa sanduku
  4. Sakinisha bodi ya kuonyesha LCD kwenye sehemu yake iliyokatwa upande wa kulia wa sanduku
  5. Fungua sanduku na uhakikishe waya zote zimeunganishwa vizuri kwenye bodi
  6. Bandika msingi wa bodi ya mbao kwenye sehemu ya juu ya sanduku kwa kutumia mkanda wenye pande mbili (hakikisha kujipanga vizuri ili vifungo viweze kutoshea kwenye sehemu iliyokatwa ya bodi za mbao)
  7. Tumia bunduki ya gundi moto kujaza sehemu ndogo za mkoa (sio mabara kuu)

Hatua ya 7: UMEFANYA !!!!!

Kwa mchezo wa fumbo, nenda kwenye kiunga cha orodha ya kucheza ya upimaji!

Ilipendekeza: