Sisukord:

Modulaarne arkaadimasin: 12 sammu
Modulaarne arkaadimasin: 12 sammu

Video: Modulaarne arkaadimasin: 12 sammu

Video: Modulaarne arkaadimasin: 12 sammu
Video: 15 крутых электровелосипедов с AliExpress, Фэтбайк 2021 2024, Juuli
Anonim
Modulaarne arkaadimasin
Modulaarne arkaadimasin

Minu kaks poissi ja mina tahtsime ehitada arkaadimasinat, kuid me ei suutnud otsustada, millist tüüpi ehitada täislauakapi, baariplaadi või võitluspulga stiilis konsooli vahel, mille teleriga ühendada. Lõpuks tuli meile pähe, et saame kõik kolm moodullahendusena ehitada moodulitega, mida saab kasutada individuaalselt või soovi korral kombineerida.

Tänu lihtsale disainile ja komponentide valikule on see ka üsna odav konstruktsioon võrreldes paljude koduste arkaadimasinate projektidega ning teil peaks olema võimalik saavutada alla 200 €/$ materjalide eest. Mul oli juba enamik puidutööstuse materjale ja elektroonikat laotatud, seega olen siiani kulutanud alla 100 €.

Samm: kujundage

Disain
Disain
Disain
Disain
Disain
Disain

Disaini põhikontseptsioon on kahe mängijaga arkaadisüsteem, mis koosneb sõltumatutest moodulitest, millest igaühel on teatud funktsioon ja mis täiendavad üksteist ka poltidega kokku keerates.

  • Juhtmoodul sisaldab kõiki juhtelemente ja juhtelektroonikat, sealhulgas USB -kontrollereid. Seda moodulit saab kasutada võitluspulga stiilis kontrolleriga, mis on ühendatud konsooli või Raspberry PI -ga.
  • Ekraanimoodul sisaldab ekraani ja vaarika PI-d (või teie valitud SBC-d) ning seda saab kasutada iseseisvalt "kõik-ühes" arvutina või ühendada juhtmooduliga, et moodustada bartop-arkaad.
  • Stand-moodul toimib eraldiseisvas režiimis mäluseadmena ja moodustab koos bartopiga täieliku püstise arkaadimasina.

Püüdsime hoida disaini võimalikult lihtsana ja funktsionaalsena, võttes mõned 70ndate ja 80ndate vintage -lauamängude disaini näpunäited ja vältides mittefunktsionaalseid elemente, nagu paljudes kappides leiduv valgustatud telk ja T -vormimine. Loomulikult saate disaini muuta, et neid elemente soovi korral lisada.

Otsustasin üsna klassikalise nuppude paigutuse üle, mida ma justkui meenutasin oma nooruspõlvest, kus iga juhtkangi kõrval oli „sirge kuue” nupuklaas (StreetFighter2 FTW). Asetasin esipaneelile nupud Start ja Select, et rahuldada nii konsooli emuleerimist kui ka müntide sisestamist ja mängijate valimist. Panin ka pinballi mängude jaoks igale poole nupu. Loomulikult saate kujundust vabalt muuta vastavalt oma maitsele ja soovitud sisestusmeetoditele, nt. rajapallid. kaalutud vurrid jne.

Tegin paberile esmase ligikaudse visandi riba ülaosast ja seejärel taastasin SketchUpis skaalal õiged mudelid - vaadake lisatud faile iga mooduli ja kombinatsiooni kohta.

Lähtusin mõõtmetest 19 -tollise laiekraanmonitori ümber, mille ostsin kasutatud hinnaga 10 euro eest. Selle tulemuseks oli kapi üldlaius 500 mm, jättes monitori vahetamise korral umbes 30 mm mänguruumi.

Vaadake SketchUp -failidest kõigi mõõtmete täpseid mõõtmisi. Konkreetse paneeli või augu lõikamisel kasutasin SketchUpis mõõdulindi tööriista, et mõõta mudeli mõõtmeid enne ehitusmaterjalile tehtud lõikude märkimist.

Samm: puidutöövahendid ja -materjalid

HOIATUS: KASUTAGE ETTEVAATUST JA TEGEVAD OHUTUSVARUSTUSID TOITETÖÖRIISTADE KASUTAMISEL

Tööriistad

  • Kruvikeeraja ja kruvid
  • Laua- või ketassaag
  • Pusle
  • Puur- ja muud otsikud, sealhulgas nuppude jaoks 28 mm augusaag
  • Liivapaber
  • Ruuter ja ümardusnurk

Materjalid

  • 19 mm (3/4 ") MDF -leht
  • 6 mm (3/4 ") MDF -leht
  • Nurgaklambrid (kasutasin mõnda tõeliselt käepärast plastikust - vaata ehitusfotosid)
  • Puidust täiteaine
  • Värvige (üksikasju vt hiljem lõpuleviimisest)

3. samm: juhtimismooduli ehitus

Juhtmooduli ehitus
Juhtmooduli ehitus
Juhtmooduli ehitus
Juhtmooduli ehitus
Juhtmooduli ehitus
Juhtmooduli ehitus
Juhtmooduli ehitus
Juhtmooduli ehitus

Alustasin juhtmoodulit, lõigates 19 mm MDF -ist küljed SketchUp mudeli mõõtmete põhjal välja.

Järgmisena lõikasin esi- ja tagapaneeli. Märgistasin nende paneelide kalded, asetades need tihedalt külgede külge ja märgistades pliiatsiga nurga ning ühendades seejärel mõlemal küljel olevad märgid sirge servaga. Lõikasin selle siis lauasae nägemise järgi ja lõpetasin liivapaberiga. Olen üsna kindel, et on olemas parem viis seda teha, kasutades rohkem tööriistu ja/või paremaid oskusi, kuid see töötas minu vajadustele hästi ja ei võtnud kaua aega.

Seejärel lõikasin välja esi- ja külgmised nupuaugud ning ühendasin kõik paneelid nurgaklambrite ja kruvidega. Plaanisin esialgu liimi kasutada, kuid minu testid MDF -i lõigatud servale liimimisega näitasid, et see pole piisavalt tugev. Samuti oli mul juba hunnik sulgusid, mille vanast projektist taaskasutasin;).

Ümardasin selles etapis ka ülemised eesmised servad, kasutades nurga ümardusotsikuga ruuterit. See annab moodulile parema välimuse ja mugavama tunde ning röövib karmid servad, kus teie käed puhkavad loomulikult juhtnuppude kõrval.

Järgmisena lõikasin 6 mm MDF -ist välja ülemise ja alumise osa. Ülemise paneeli kaldusin nagu esi- ja tagapaneelidega, et tagada sobiv istuvus ja sujuv viimistlus. Ma ei kaldunud alumist paneeli, kuna ma ei plaani seda täita ja värvida. Selle asemel kasutan seda hoolduse juurdepääsupaneelina. Puurisin ja süvendasin kruviaugud ning puurisin sobivad nurgad sulgudes.

Seejärel võtsin tagumise paneeli lahti ja lõikasin suure augu, et pääseda regulaarselt juurde USB -kaablitele ja Raspberry PI -le.

Lõpuks lõikasin ülemise paneeli nupu ja juhtkangi augud kokku ning panin uuesti kokku. Ma ei kinnitanud ülemist paneeli oma kohale, kuna tahtsin seda juhtmestiku ajal lahti hoida.

Samm: elektroonikatööriistad ja -materjalid

NB! See nimekiri on vajalik ainult siis, kui soovite elektroonikaga täielikku närvi minna. Saate ja tõenäoliselt peaksite seda kõike saama plug and play komplekti osana (nagu need) ja vältida kõiki jootmist ja kohandatud juhtmeid. Olles seda korra "raskel teel" teinud, lähen kindlasti komplekti, kui kunagi veel mõne kapi valmistan.

Tööriistad

  • Multimeetri/ühenduvuse tester
  • Jootekolb
  • Traadi lõikur
  • Pressimisvahend (kasutasin just traatlõikurit)

Materjalid

  • Arduino Leonardo/Pro Micro USB HID juhtkangi profiiliga (kasutasin odavaid kloone)
  • USB -jaotur
  • Arkaadkang ja nupud.
  • Kinnitage pistikud vastavalt valitud juhtkangile ja nuppudele
  • 2x Mini leivalauad
  • Ühendusjuhtmed (kasutasin peamiselt Duponti hüppajajuhtmeid)
  • Elektroonika jootmine (mul oli alles minu originaalne kolofoni südamiku rull kolledžist)
  • Kuumakahandavad torud

Samm: juhtmooduli juhtmestik

Juhtmooduli juhtmestik
Juhtmooduli juhtmestik
Juhtmooduli juhtmestik
Juhtmooduli juhtmestik
Juhtmooduli juhtmestik
Juhtmooduli juhtmestik

Jällegi soovitan kaaluda siin dokumenteeritud lähenemise asemel plug and play komplekti. Järgige seda lähenemisviisi ainult siis, kui:

A. Tahad täielikku kontrolli madala taseme nuppude käitlemise koodi üle

B. Nautige tõesti jootmist ja kohandatud juhtmestikku (kes seda ei tee)

C. Tööriistad ja osad on juba olemas ja/või soovite säästa paar dollarit

D. Tahad selle asja kohta rohkem teada saada või lihtsalt harjutada

Minu isiklikud motiivid olid segu ülaltoodust. Ok, nii et ma tegin juhtmestiku:

Kõigepealt tegin adapterkaablid, et ühendada nuppude pressimispistikud Duponti pistiku juhtmetega. Tegin ühe neist nuppude mikrolüliti jaoks ja neli juhtkangi nelja. Karjuge Larry keelamiseks, et nende jaoks tootmisliinil kaevata.

Seejärel kasutasin neid kohandatud kaableid, et ühendada nupud ja juhtnupud leivaplaatide kaudu iga mikrokontrolleri sisendpistikutega.

NB! Selles konstruktsioonis on iga mängija jaoks eraldi mikrokontroller ja seega USB-kaabel. Jagage juhtkangi ja nuppude mikrolülitid vastavalt nende vahel ning ühendage mõlemad flippernupud samale mikrokontrollerile. Vaadake fotosid, mis näitavad juhtmestiku edenemist, kui jääte kinni.

Järgmisena pidin lisama juhtme, et saata signaal igale mikrolülitile, mis tagastaks signaali nupu vajutamisel mikrokontrolleri sisendnõelale. Kasutasin mõne Cat 5e kaabli 4 keerdpaari, et anda juhtkangidele signaal, jootes need kõik ühest otsast kokku ja kinnitades Duponti pistikukaabli, mis on ühendatud mikrokontrolleri signaali tihvtiga.

Tegin igale 6 nupuklastrile väikese daisy-kettkaabli ja kasutasin lõpuks oma kohandatud adapterkaableid start/select ja flippernuppudel, mis kõik olid ühendatud mikrokontrolleri signaali tihvtiga.

Mikrolülitite ühendamine mikrokontrolleritega oli üsna lihtne tänu mini-leivaplaadi ja Duponti pistikute kasutamisele, mis tähendas, et võisin juhtmeid vajadusel hõlpsalt teisaldada.

6. samm: kontrolleri kood

Kontrolleri kood
Kontrolleri kood
Kontrolleri kood
Kontrolleri kood
Kontrolleri kood
Kontrolleri kood

Kood on üsna lihtne. Muutsin mängupuldi näidet suurepärasest Arduino juhtkangi raamatukogust

Selle raamatukoguga alustamise kohta saate lisateavet sellest käepärasest juhendist.

Selle sammu lõpus oli meil toimiv kahe mängijaga võitluspulga kontroller, nii et tähistasime mõne vooruga StreetFighter2 minu sülearvutis!

Plaanisin algselt ühendada mikrokontrollerid USB kaudu otse Raspberry PI-ga, kuid sülearvutiga katsetades leidsin, et mikro-USB-pistikute ühendamine ja lahtiühendamine mikrokontrolleritega juurdepääsupaneeli kaudu oli väga keeruline ja lõpuks katkestasin selle mikro-USB-pistik ühest mikrokontrollerist.

Selle lahenduseks oli juhtmoodulisse USB -jaoturi lisamine. See tähendas, et juhtmoodulist paljastati ainult üks ühendus ja üldine lahendus oli palju tugevam. Kui juhtmestik oli valmis, lisasin ülemisele paneelile süvistatud kruviaugud ja keerasin selle oma kohale.

gamepad.ino

// Lihtne mängupuldi näide, mis demonstreerib viie Arduino lugemist
// digitaalsed nööpnõelad ja kaardistage need Arduino juhtkangi raamatukokku.
//
// Digitaalsed tihvtid on nende vajutamisel maandatud.
//
// MÄRKUS. See visandifail on mõeldud kasutamiseks koos Arduino Leonardo ja
// Ainult Arduino Micro.
//
// Matthew Heironimuse algse koodi muudetud versioon
// 2018-08-11
//--------------------------------------------------------------------
#kaasake
Joystick_ Joystick;
voidsetup () {
// Initsialiseeri nuppude nööpnõelad
pinMode (2, INPUT_PULLUP);
pinMode (3, INPUT_PULLUP);
pinMode (4, INPUT_PULLUP);
pinMode (5, INPUT_PULLUP);
pinMode (6, INPUT_PULLUP);
pinMode (7, INPUT_PULLUP);
pinMode (8, INPUT_PULLUP);
pinMode (9, INPUT_PULLUP);
pinMode (10, INPUT_PULLUP);
pinMode (16, INPUT_PULLUP);
pinMode (20, INPUT_PULLUP);
pinMode (21, INPUT_PULLUP);
// Joystick Library initsialiseerimine
Joystick.begin ();
Joystick.setXAxisRange (-1, 1);
Joystick.setYAxisRange (-1, 1);
}
// Nuppude viimane olek
int lastButtonState [12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int tihvtid [12] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 20, 21};
voidloop () {
// Tihvtide väärtuste lugemine
jaoks (intindex = 0; indeks <12; indeks ++)
{
int currentButtonState =! digitalRead (tihvtid [indeks]);
if (currentButtonState! = lastButtonState [register])
{
lüliti (tihvtid [indeks]) {
juhtum2: // ÜLES
if (currentButtonState == 1) {
Joystick.setYAxis (-1);
} muud {
Joystick.setYAxis (0);
}
murda;
juhtum3: // ÕIGE
if (currentButtonState == 1) {
Joystick.setXAxis (1);
} muud {
Joystick.setXAxis (0);
}
murda;
case4: // DOWN
if (currentButtonState == 1) {
Joystick.setYAxis (1);
} muud {
Joystick.setYAxis (0);
}
murda;
juhtum5: // VASAK
if (currentButtonState == 1) {
Joystick.setXAxis (-1);
} muud {
Joystick.setXAxis (0);
}
murda;
juhtum 6:
Joystick.setButton (0, currentButtonState);
murda;
juhtum 7:
Joystick.setButton (1, currentButtonState);
murda;
juhtum 8:
Joystick.setButton (2, currentButtonState);
murda;
juhtum 9:
Joystick.setButton (3, currentButtonState);
murda;
juhtum10:
Joystick.setButton (4, currentButtonState);
murda;
juhtum 16:
Joystick.setButton (5, praeguneButtonState);
murda;
juhtum20:
Joystick.setButton (8, praeguneButtonState);
murda;
juhtum21: {
Joystick.setButton (9, praeguneButtonState);
murda;
}
}
lastButtonState [indeks] = currentButtonState;
}
}
viivitus (10);
}

vaata rawgamepad.ino, mille hostiks on GitHub ❤

Samm 7: Vaarika PI seadistamine

Vaarika PI seadistamine
Vaarika PI seadistamine

Mängu maksimaalse jõudluse ja ühilduvuse jaoks soovitan Pi 3, kuid kui olete huvitatud ainult vanematest mängudest, oleks ka madala võimsusega seade nagu Pi Zero hea. Ma kasutan varu Pi 2, mis mul juba oli.

Veebis on palju suurepäraseid ressursse, mis kirjeldavad, kuidas seadistada teie valitud Pi või muu SBC koos erinevate emulaatorite ja esiotsaga. Mina isiklikult kasutan ja soovitan RetroPie't ning leidsin, et need - suurepärased - ETA Prime'i videod on suurepärane viis kiireks tööks.

8. samm: ekraanimooduli ehitus

Kuva mooduli ehitus
Kuva mooduli ehitus
Kuva mooduli ehitus
Kuva mooduli ehitus
Kuva mooduli ehitus
Kuva mooduli ehitus

Alustasin kuvarimooduli ehitust külgpaneelidega, märgistades ja lõigates välja esimene mõõtmetest, mida mõõdeti virtuaalse mõõdulindi abil SketchUp -failist. Seejärel kasutasin esimese paneeli mallina teise märkimiseks.

Järgmisena lõikasin välja alumise tagapaneeli, kruvisin mõne nurgaklambri külge ja kruvisin selle seejärel külgpaneelide külge. Selles etapis veendusin, et mu monitor sobib. See oli veidi kitsam kui ma ootasin, kuid ruumi oli piisavalt.

Seejärel lisasin alumise esipaneeli ja lõikasin sellesse juhtmooduliga sobivad augud. Nende märkimiseks asetasin juhtimismooduli vastu ekraanimoodulit ja joonistasin ümber juhtmooduli olemasoleva augu sisemuse.

Selles etapis suutsin kaks moodulit kahe kapi pistikupoldi abil kokku keerata. Nüüd nägin kombineeritud baar-top mooduli lõplikku kuju!

Järgmine samm oli paneelide servade marsruutimine. Selleks võtsin seadme uuesti lahti. Lõikasin välja ka toite sisselaskeava ja lüliti ava. Selleks märgistasin esmalt augu välja, seejärel puurisin väikese puupulgaga nurgad ja lõpuks lõikasin spiraalsae abil ülejäänud materjali välja.

Panin siis üksuse kokku, liimides seekord iga tüki kokku. Kuna kasutasin ka klambreid, ei pidanud ma tükkide koos hoidmiseks klambreid kasutama.

Nüüd, kui seade oli lõplikul kujul, lõikasin ekraanipaneeli välja ja paigaldasin selle oma kohale, töödeldes seda liivapaberiga, kuni see tihedalt kinni istus. Kui olin sobivusega rahul, viskasin selle välja ja lõikasin mosaiigi abil välja ekraani jaoks ava, et see vastaks nähtavale ekraanipinnale. Seda tehes suutsin ekraani paigal testida, kasutades mõningaid sulgusid, et monitori lõdvalt oma asendis hoida.

Panin kaks moodulit kokku, et näha, kuidas see välja näeb, ja lõpetasin siis ekraani ümbrise liimimise. Selleks lisasin ekraaniümbruse taha mõned lisatükid 6 mm MDF -ist, et veenduda selle tugevuses ja vältida värvi pragunemist hiljem.

9. samm: lõpetage

Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama

Kui liim oli kuvarimoodulil täielikult kuivanud, kandsin kõikidele vuukidele ja plekkidele heldelt puidust täiteainet ning lihvisin jämeda liivapaberiga maha.

Seejärel katsin selle esimese tihenduskihina veega niisutatud PVA -sidemega. Järgmisena kandsin garaažist leitud mitu kihti PVA ja valge üldotstarbelise puit-/terasvärvi segu.

Kõik need esialgsed kihid kanti tavalise 2 -tollise värvipintsliga.

Kui aluskihid kuivasid, lihvisin kergelt peeneteralise liivapaberiga. Pärast seda lisasin veel ühe kihi valget värvi.

Kui see oli kuiv, lihvisin uuesti kergelt ja kandsin seejärel paar kihti odavat üldotstarbelist pihustusvärvi ehituspoodist ostetud purkidest.

Enne juhtmooduli jaoks protsessi kordamist lõikasin ekraanimooduli ülemise tagapaneeli välja. Sellel paneelil on auk, et saaksin kuvarimoodulit kergemini kanda. See võimaldab ka heli sisseehitatud monitori kõlaritel korpusest välja pääseda.

Selles etapis otsustasin ka juhtmooduli ülemiselt paneelilt kruvid eemaldada ja selle asemel liimida. Selleks, et veenduda selle turvalisuses, liimisin kõigepealt mõned lisatükid.

Kui juhtimismoodul värviti, puhastasin Dremeli nuppude aukude puhastamiseks, kontrollides nende suurust pidevalt ühe nupuga. Lõpuks liimisin mööblipistiku mutri juhtmoodulite tagaküljele.

Jäin selle etapi lõpus saadud viimistlusega mõistlikult rahule, arvestades kulutatud aega ja vaeva. See polnud kaugeltki täiuslik ja seda saaks selles etapis rohkem aega anda. See sõltub tõesti sellest, millist viimistlustaset soovite saavutada, kui palju aega see samm võtab.

Samm 10: Mooduli komponentide kuvamine

  • 19 "laiekraanmonitor koos kõlaritega
  • Raspberry PI 2 ühe pardaarvuti (SBC)
  • Vaarika PI 2 ümbris
  • 2Amp USB toiteadapter
  • Micro-usb kaabel
  • 3,5 mm helikaabel
  • HDMI kaabel
  • Šassii pistikupesa (veekeetja juhtme tüüp)
  • Veekeetja juhe
  • Kahekordne pistikupesa

Samm 11: Kuva mooduli juhtmestik

Ekraanimooduli juhtmestik
Ekraanimooduli juhtmestik
Ekraanimooduli juhtmestik
Ekraanimooduli juhtmestik
Ekraanimooduli juhtmestik
Ekraanimooduli juhtmestik
Ekraanimooduli juhtmestik
Ekraanimooduli juhtmestik

Esmalt lisasin kuvarimooduli kestale aluse ja tagapaneeli. Tagapaneel kinnitati magnetlukkude abil oma kohale, nii et seda oleks lihtne komponentidele kiireks juurdepääsuks eemaldada.

Seejärel ühendasin toitelüliti kahekordse pistikupesaga PI ja monitori toiteks. Jootsin toitejuhtmed lüliti külge ja hülsisin kaablid termokahanevate torudega. Kui te ei tunne seda osa täielikult, küsige abi kvalifitseeritud isikult. ÄRGE võtke elektrivõrgu juhtmetega mingeid riske.

Kui olin lüliti kindlalt korpuse külge kinnitanud, panin monitori asendisse. Arvestades niigi tihedat võitlust, piisas ekraani paika kinnitamiseks paarist lisaklambrist.

Järgmisena ühendasin PI jaoks USB -toiteadapteri ja monitori jaoks veekeetja juhtme. Alles jäi vaid heli- ja videosignaalide ühendamine monitoriga.

Kuna monitoril pole HDMI-sisendit, kasutasin HDMI-DVI-adapterit. Heli tarniti sisseehitatud monitori kõlaritesse 3,5 mm audiokaabli kaudu PI-st. Kui tagapaneel on sisse lülitatud ja heliseaded on sisse lülitatud, on helitugevus korras, kuid mitte vali. Võin tulevases värskenduses lisada kõlarid ja minivõimendi.

Lõpuks ühendasin PI -ga USB -jaoturi ja sain lasta täielikult toimiva ekraanimooduli testimisel alata.

12. samm: lõplik kokkupanek ja mõtted

Lõplik assamblee ja mõtted
Lõplik assamblee ja mõtted
Lõplik assamblee ja mõtted
Lõplik assamblee ja mõtted
Lõplik assamblee ja mõtted
Lõplik assamblee ja mõtted
Lõplik assamblee ja mõtted
Lõplik assamblee ja mõtted

Viimane töö enne lõplikku kokkupanekut oli juhtmooduli uuesti ühendamine ja kokkupanek pärast värvimist. See läks päris sujuvalt peale ühe juhtme katkestamise, mis tuli uuesti jootma hakata.

Enne juhtimis- ja kuvarimoodulite kombineerimist lõikasin paar ketast läbipaistvast kleepuvast kontaktkilest välja, et vältida juhtmoodulist väljaulatuvate mööblipistikute tünnide kriimustamist kuvarimooduli värvkatte eest.

Siis oli lihtne moodulite paigutamine ja kokku keeramine. Selles etapis on riba ülaosa täielikult komplekteeritud ja tööks valmis. Tundub, et see on eelistatud konfiguratsioon, nii et ma ei pea vähemalt mõnda aega tugimoodulit konstrueerima. Kui ja millal, siis uuendan seda postitust. Stendimoodul ise peaks olema kõige lihtsam. Põhimõtteliselt on see lihtne hoiukapp, mille ülaosas on poltide augud, et ühendada riba ülaosaga.

Mul on olnud tore koos lastega selle projekti kallal töötada. Õppisime palju ja ootame nüüd uue masinaga palju vana arkaadi- ja konsooliklassika mängimist. Täname, et lugesite ja andke meile kommentaarides teada, mida arvate projektist!

Soovitan: