INHOUDSOPGAWE:

Azimuthal -projeksie 3D -kaartversiering X Folk Music Puzzle Puzzle - Arduino: 7 stappe
Azimuthal -projeksie 3D -kaartversiering X Folk Music Puzzle Puzzle - Arduino: 7 stappe

Video: Azimuthal -projeksie 3D -kaartversiering X Folk Music Puzzle Puzzle - Arduino: 7 stappe

Video: Azimuthal -projeksie 3D -kaartversiering X Folk Music Puzzle Puzzle - Arduino: 7 stappe
Video: Tilt sensor | Wikipedia audio article 2024, Julie
Anonim
Image
Image
Ontwerp die bord
Ontwerp die bord

INLEIDING

Die volgende bladsy sal u leer hoe u 'n Arduino-projek kan opstel met twee hooffunksies: eenvoudige versiering met beligting en volksmusiek-puzzelspel, wat die velde van geografie, meetkunde, kaarte, Verenigde Nasies en musiek alles in een bevat. Gebaseer op die struktuur van seshoeke, beeld die toestel die wêreldkaart uit in die Azimuthal Equidistant Projection, wat die vorm is van kaartprojeksie wat deur die Verenigde Nasies (en sy simbool) gebruik word.

By die aktivering van die versieringsmodus sou die kontinente van die kaart in verskillende kleure gloei, bepaal deur willekeurige kombinasies van RGB -waardes deur die gebruik van RGB -LED's.

Die spelmodus, aan die ander kant, vereis dat gebruikers die oorsprong van volksmusiekliedere moet herken (gekies deur willekeurig getalle van 1 tot 20 te genereer) en die kontinentale bord van sy/haar antwoord in die ooreenstemmende posisie op die hoofhoutbord binne 'n stel te plaas tyd (vooraf ingestel vir 1 minuut).

_

VOORSIENINGS

Werklike materiaal

  • 5 mm RGB LED's *20
  • Drade
  • Weerstande *9
  • Arduino Board *1 (enige tipe)
  • Broodplanke *3
  • Knoppies *7
  • LCD Display Board I2C *1
  • Kartondoos (13*9*5,7 duim; 33*23*14,5 cm)
  • Houtbord (37,5*29*0,8 cm)
  • Akrielborde (deursigtig * 2, halfdeursigtig * 1)
  • Draagbare laaier *1

Gereedskap:

  • Lem *1
  • UV -geneesmiddels *1
  • Dubbelzijdige band *1 rol
  • Warmlijmpistool *1

Masjiene:

Laser snymasjien

Sagteware:

  • Adobe Illustrator
  • Adobe Photoshop
  • Renoster 3D

Stap 1: Ontwerp die bord

U kan die aangehegte lêer direk aflaai of die onderstaande stappe volg.

Omskryf die kaart

  1. Laai 'n kaartlyn van Google af

    1. Google se "verenigde nasies -logo"
    2. Kies 'gereedskap - grootte - groot'
    3. Laai u gunsteling prentjie af (die een wat deur hierdie projek gebruik word: skakel) *Probeer om nie die een te kies met ingewikkelde lyne wat oorvleuel met die vasteland nie *
  2. Dra die afgelaaide kaart oor in die drukweergawe

    1. Kleur die ongewenste streke in wit met die verfkwasfunksie in Adobe Photoshop
    2. Voer die lêer (JPEG) uit
    3. Voer die lêer in Adobe Illustrator in en gebruik die 'image trace' -funksie om die kaart op te spoor
    4. Voer die lêer uit (dxf)

Voeg die seshoekagtergrond by

  1. Voer die dxf -lêer in in Rhino
  2. Kies die funksie "veelhoek" en tik "6" in vir die opsie "NumSides"
  3. Tik "3.5" vir die radiuswaarde
  4. Teken 28 ewe groot seshoeke
  5. Voer die lêer in 3dm uit

Stap 2: Lasersny

Image
Image
Laser sny
Laser sny
Laser sny
Laser sny
Laser sny
Laser sny
  1. Voer die voorheen voltooide lêer in na xxx.
  2. Druk die lasermasjien op die houtbord en die kontinente op die akrielborde (2 deursigtig en 1 halfdeursigtig) af (video word hierbo verskaf)

Stap 3: Bou die toestel

Bou die toestel
Bou die toestel
Bou die toestel
Bou die toestel
Bou die toestel
Bou die toestel

Bord na lasersnit

  • Akriel kontinente

    1. Gebruik die UV-geneesbare gom om die drie planke van elke kontinent aan mekaar te plak (met die halfdeursigtige as die middelste laag)
    2. Gebruik die UV -lig om op die vasgeplakte gebiede te skyn sodat die gom kan stol
  • Wooden Board Foundation

    1. Verwyder die klein landstreke wat op die hoofhoutbord vas is, met die hand
    2. *As enige deel van die houtbord stukkend is, gebruik dit met UV -geneesbare gom om dit weer vas te plak*

Die bou van die basis (onderste fondament van die hele toestel)

  1. Soek 'n kartondoos van voldoende grootte, met afmetings so naby as 13*9*5,7 duim (33*23*14,5 cm)
  2. Gebruik die houtbord as die verwysingsmodel en spoor die kontinentale dele op die bokant van die boks op
  3. Trek die onderste deel van die knoppies op die bokant van die boks, met elke knoppie in die middel van elke kontinentale deel
  4. Gebruik 'n lem om die knoppies af te sny deur die spore te volg
  5. Gebruik 'n lem binne die opgespoorde kontinentale dele om kort segmente rondom die knoppie af te sny
  6. Trek nog twee onderste dele van die knoppie na die regterkant van die boks (probeer om die spore met dieselfde hoogte in lyn te bring)
  7. Volg die LCD -skerm aan die regterkant van die boks (bo die twee knoppies in die vorige stap)
  8. Gebruik 'n lem om die twee knoppies en die LCD -deel af te sny deur die spore in stap 6 en 7 te volg

Stap 4: Bou die stroombane

Bou die stroombane
Bou die stroombane

Met verwysing na die skemas hierbo, bou die stroombaan.

Let wel:

  • Die weerstande vir die RGB -LED's en die knoppies is anders, KYK DUIDELIK!
  • Aangesien die LCD Display Board hierbo nie die I2C -model het nie, is dit nie perfek verbind nie. (LCD -skermborde met I2C -modelle hoef slegs vier penne in te sluit)

    • Koppel GND's op die skerm en die Arduino -bord
    • Koppel die VCC op die skerm met die positiewe penne op die broodbord
    • Koppel die SDA's op die skerm en die Arduino -bord
    • Koppel die SCL's op die skerm en die Arduino -bord

Stap 5: Laai die kode op

Die kode vir hierdie projek kan hier of onder gevind word.

Elke kodelyn het 'n syaantekening wat die doel en funksie verduidelik.

Let wel:

  • Al die spesifieke D -penne kan verander en aangepas word volgens die uitleg van u kring
  • Al die vertraagde sekondes kan in verskillende waardes verander word, maar moenie dit uitvee nie! (Hierdie vertraagde sekondes laat die kode meer logies vloei. Sonder hulle werk sommige dele van die kode moontlik nie!)
  • Op reël 24 (die bekendstelling van die 'vir lus'), kan u die aantal herhalings aandui waarvoor u die lus wil laat loop (die oorspronklike waarde is 5)
  • Die kleurkombinasie van die RGB -LED's in die lusse "as ingedruk" en "indien nie ingedruk nie" kan aangepas en aangepas word. (Oorspronklik sou die RGB -LED's groen skyn as dit ingedruk word terwyl dit in rooi sou skyn as dit nie ingedruk word nie. U kan die waardes verander om kreatiewe kleure te hê om regs en verkeerd te antwoord)

#insluit

#sluit LiquidCrystal_I2C lcd_I2C_27 (0x27, 16, 2) in; // stel die LCD -adres in vir 'n 16 tekens en 2 reëls vertoning int _R; // stel veranderlike R voor, wat staan vir die rooi waarde van die RGB LED's int _G; // stel veranderlike G voor, wat staan vir die groen waarde van die RGB LED's int _B; // stel veranderlike B voor, wat staan vir die blou waarde van die RGB LED's int _SongNumber; // stel veranderlike SongNumber -leemte -opstelling () {pinMode (10, INPUT) bekend; // stel D10 as invoer vir die kaartversieringsknoppie pinMode (9, INPUT); // stel D9 as invoer vir die legkaart-knoppie pinMode (8, INPUT); // stel D8 as invoer vir die Eurasia -knoppie pinMode (4, INPUT); // stel D4 as invoer vir die Noord -Amerika -knoppie pinMode (3, INPUT); // stel D3 as invoer vir die South America -knoppie pinMode (2, INPUT); // stel D2 as invoer vir die Afrika -knoppie pinMode (1, INPUT); // stel D1 as invoer vir die Oseanië -knoppie lcd_I2C_27.init (); // initialiseer die LCD -skermbord lcd_I2C_27.backlight (); // skakel die agtergrond van die LCD-skerm aan} void lus () {if (digitalRead (10)) {// as die kaartversieringsknoppie ingedruk word (int i = 0; i <5; ++ i) {// voer die volgende lus 5 keer uit _R = random (0, 1023); // gee veranderlike R 'n ewekansige waarde van 0 tot 1023 _G = random (0, 1023); // gee veranderlike G 'n ewekansige waarde van 0 tot 1023 _B = random (0, 1023); // gee veranderlike B 'n ewekansige waarde van 0 tot 1023 analogWrite (13, (_R /4)); // die R -waarde van die RGB -LED's vir die eerste groep vervang en skryf die veranderlike waarde van 0 tot 255 analogWrite (12, (_G /4)); // die G -waarde van die RGB -LED's vir die eerste groep vervang en skryf die veranderlike waarde van 0 tot 255 analogWrite (11, (_B /4)); // die B -waarde van die RGB -LED's vir die eerste groep vervang en skryf die veranderlike waarde van 0 tot 255 analogWrite (7, (_R /4)); // die R -waarde van die RGB -LED's vir die tweede groep vervang en skryf die veranderlike waarde van 0 tot 255 analogWrite (6, (_G /4)); // die G -waarde van die RGB LED's vir die tweede groep vervang en skryf die veranderlike waarde van 0 tot 255 analogWrite (5, (_B /4)); // die B -waarde van die RGB -LED's vir die tweede groep vervang en skryf die veranderlike waarde van 0 tot 255 vertraging (3000); // wag vir 3000 millisekondes (3 sekondes)} // aangesien die waardes van veranderlike R, G, B in die lus bepaal word, sal daar vyf verskillende kleurkombinasies per lus wees} if (digitalRead (9)) {// if die legkaart-knoppie word ingedruk _SongNumber = random (1, 20); // gee veranderlike SongNumber 'n ewekansige waarde van 1 tot 20 lcd_I2C_27.setCursor (0, 0); // stel die wyser, die telling begin met 0 lcd_I2C_27.print (_SongNumber); // druk die waarde van SongNumber af op die LCD -displaybord analogWrite (13, 0); // herstel en skryf die waarde van D13 as 0 analogWrite (12, 0); // herstel en skryf die waarde van D12 as 0 analogWrite (11, 0); // herstel en skryf die waarde van D11 as 0 analogWrite (7, 0); // herstel en skryf die waarde van D7 as 0 analogWrite (6, 0); // herstel en skryf die waarde van D6 as 0 analogWrite (5, 0); // stel terug en skryf die waarde van D5 as 0 as (_SongNumber> = 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) {// as die waarde van veranderlike SongNumber is van 18 tot 20 vertraging (60000); // wag vir 60000 millisekondes totdat spelers na die volksmusiek luister (60 sekondes; 1 min) as (digitalRead (1)) {// as die knoppie Oseanië op analogWrite (13, 0) gedruk word; // analogWrite die waarde van D13 as 0 analogWrite (12, 255); // analogWrite die waarde van D12 as 255 analogWrite (11, 0); // analogWrite die waarde van D11 as 0 analogWrite (7, 0); // analogWrite die waarde van D7 as 0 analogWrite (6, 255); // analogWrite die waarde van D6 255 analogWrite (5, 0); // analogWrite die waarde van D5 as 0} // al die RGB LED's sou in groen kleur anders skyn {// as die Oceania -knoppie nie ingedruk word nie analogWrite (13, 255); // analogWrite die waarde van D13 as 255 analogWrite (12, 0); // analogWrite die waarde van D12 as 0 analogWrite (11, 0); // analogWrite die waarde van D11 as 0 analogWrite (7, 255); // analogWrite die waarde van D7 as 255 analogWrite (6, 0); // analogWrite die waarde van D6 as 0 analogWrite (5, 0); // analoog Skryf die waarde van D5 as 0} // al die RGB -LED's sal in rooi kleur skyn} // aangesien die korrekte antwoorde vir SongNumber 18 tot 20 almal Oceanië is, kry hierdie "if lus" toegang tot of die speler se antwoord korrek is of nie lcd_I2C_27.clear (); // maak die vertraging van die LCD -bord skoon (1000); // wag vir 1000 millisekondes (1 sekonde)}}

Stap 6: Maak die toestel klaar

  1. Maak die kartondoos oop en sit die voorheen gemaakte stroombane in (insluitend alle elemente, byvoorbeeld: drie broodborde, die Arduino -bord, die draagbare laaier)
  2. Met verwysing na die kode en die opgespoorde kontinentale dele bo -op die boks, druk die knoppies in elk van hul ooreenstemmende posisies

    *U kan na die byskrifte agter die kodes verwys om te verseker watter knoppie die knoppie vir watter kontinent is*

  3. Plaas die twee "funksieknoppies" (map-deco van D10 en puzzelspel van D9) in elk van die snydele aan die regterkant van die boks
  4. Installeer die LCD -skerm in die gesnyde deel aan die regterkant van die boks
  5. Maak die boks oop en maak seker dat al die drade behoorlik met die planke verbind is
  6. Plak die fondament van die houtbord aan die bokant van die boks vas met dubbelzijdige band (maak seker dat dit reguit pas sodat die knoppies reg in die snydeel van die houtplanke kan pas)
  7. Gebruik warm lijmpistool om die dele van die klein gebiede in te vul (nie die belangrikste kontinente nie)

Stap 7: GEDOEN !!!!

Vir die legkaartspel, gaan na die skakel vir die toets -snitlys!

Aanbeveel: