Sisällysluettelo:

PIC16F877 Yleismittari: 6 vaihetta
PIC16F877 Yleismittari: 6 vaihetta

Video: PIC16F877 Yleismittari: 6 vaihetta

Video: PIC16F877 Yleismittari: 6 vaihetta
Video: 5 УДИВИТЕЛЬНЫХ ЖИЗНЕННЫХ ХАКОВ # 2 2024, Marraskuu
Anonim
PIC16F877 Yleismittari
PIC16F877 Yleismittari

PICMETER Johdanto

Tästä PICMETER -projektista on tullut hyödyllinen ja luotettava työkalu kaikille elektroniikan harrastajille.

  • Se toimii PIC16F877 / 877A -mikro -ohjaimella.
  • Se on PIC -kehitysjärjestelmä
  • Se on 19-toimintoinen monimetri (voltimetri, taajuusmittari, signaaligeneraattori, lämpömittari …)
  • Se on komponenttien tarkistus (R, L, C, diodi …), jossa on enintään 5 aluetta kullekin toiminnolle.
  • Siinä on 433 MHz: n kaista -ASK -radio, joka odottaa jonkinlaista sovellusta.
  • Se on etähakujärjestelmä, jossa toinen tietokone (PC) voi kerätä tietoja sarjaportin kautta graafista näyttöä varten. (Sitä on käytetty EKG -projektin etupäässä).
  • Siinä on kirjausmahdollisuus (tietojen kirjaamiseen tuntien aikana), tulokset ladataan EEPROMista.
  • Se tuottaa testisignaaleja joidenkin moottoreiden käyttämiseen.
  • Se on testattu perusteellisesti, katso valokuvat vaiheessa 5.
  • Ohjelmisto julkaistaan avoimen lähdekoodin muodossa

Tämä Instructable on supistettu versio koko dokumentaatiosta. Siinä kuvataan laitteisto ja ohjelmisto, joka riittää muille rakentamaan sen joko valmiina projektina tai käyttämään sitä kehitysjärjestelmänä lisämuutosten tekemiseen tai vain etsimään ideoita käytettäväksi muissa projekteissa.

Tarvikkeet

Ainoa ostettava kriittinen siru on mikrosiru PIC16F877A-I/P

  • A = myöhempi versio, joka eroaa alkuperäisestä määritysbittien määritelmässä.
  • I = Teollisuuden lämpötila -alue
  • P = 40-kytkentäinen muovinen kaksoislinjapaketti, 10 MHz, normaalit VDD-rajat.

Myös Hitachi LM032LN 20 merkin kaksirivinen nestekidenäyttö, jossa on sisäänrakennettu HD44780 -ohjain.

Muut osat ovat vain yleisiä sähkökomponentteja, nauhalevypiirilevy, LM340, LM311, LM431, yleiskäyttöiset pienitehoiset transistorit jne.

Vaihe 1: PICBIOS -kuvaus

PICBIOS Kuvaus
PICBIOS Kuvaus

PICBIOS Kuvaus

Tämä ohjelmisto toimii PIC16F877 -kortilla ja käyttää ohjelmamuistin alinta 4k. Se tarjoaa ohjelmistoympäristön sovellusohjelmalle, joka vie ohjelmamuistin yläosan. Se on ajatuksiltaan samanlainen kuin PC-BIOS, jossa on muutamia "debug" -komentoja ohjelman kehittämiseen, ja siinä on 5 komponenttia:

  1. Käynnistys valikko
  2. Asennusohjelma
  3. Komentoriviliitäntä (sarjaportin kautta)
  4. Ydin ja laiteajurit
  5. Sovellusohjelmointirajapinta

Vaihe 2: PICMETER Kuvaus

PICMETER Kuvaus
PICMETER Kuvaus

PICMETER Kuvaus

Johdanto

Kuten yleismittarissa (voltit, vahvistimet, ohmit), tässä on monia toimintoja, jotka valitaan valikkojärjestelmän avulla. Laitteiston ja ohjelmiston yhdistelmä tekee siitä kuitenkin erittäin monipuolisen, esimerkiksi ominaisuuksia, kuten pitkäaikainen kirjaaminen ja sarjatietojen lähettäminen, ovat käytettävissä.

Valikko on sydän, jossa toiminnot valitaan [vasen] - ja [oikea] -painikkeilla. Tämän jälkeen kullekin toiminnolle valitaan eri alueet [inc] - ja [dec] -painikkeilla. Esimerkiksi kondensaattoreita mitataan noin 0,1 nF - 9000 uF 5 erillisen alueen avulla.

2.1 PICMETER -ohjelmisto

Tämä on järjestetty sovellusohjelmaksi, joka vie ohjelmamuistin ylemmän 4k: n ja perustuu PICBIOS -laitteen toimintoihin laitteen I/O- ja keskeytyskäsittelyssä. Se koostuu valikkokohdasta, joka toimii taustatehtävänä ja kyselee painikkeita 20 ms: n välein. Kun painiketta painetaan toiminnon tai alueen vaihtamiseksi, kutsutaan sopiva rutiini. Kun mitään painiketta ei paineta, mitattu lukema päivittyy noin 0,5 sekunnin välein. Valikko on pohjimmiltaan hakutaulukko.

2.2 Mittaritoiminto - osiot

Toimintoja on monia, joten tämä osa on jaettu osiin, joista jokainen käsittelee samankaltaisia toimintoja. Tämä on lyhyt luettelo osioista. Katso koko dokumentaatio nähdäksesi kuinka jokainen osa toimii yksityiskohtaisesti. Porttirajoitusten vuoksi projektissa on 3 muunnelmaa (katso koko dokumentaatio). Toiminnot normaalilla fontilla ovat yhteisiä kaikille projekteille. KOROSTAMATTOMAT toiminnot sisältyvät vain PICMETER1 -projektiin. ITALIIKAN toiminnot sisältyvät vain PICMETER2- tai PICMETER3 -projekteihin.

VoltMeter -osio - Lähdetiedosto on vmeter.asm

Sisältää toimintoja, jotka perustuvat jännitteen mittaamiseen ADC: llä.

  • ADC -jännite (lukee valitun tulon jännitteen, AN0 - AN4)
  • AD2 Dual (näyttää jännitteen AN0: ssa ja AN1: ssä samanaikaisesti)
  • TMP -lämpömittari -10-80? degC (2N3904 tai kaksi LM334 -kaikuanturia)
  • LOG - määrittää kirjausvälin
  • OHM - Vastusmittaus (potentiometrimenetelmä) 0Ω - 39MΩ 4 alueella
  • DIO-diodi, mittaa eteenpäin jännitettä (0-2,5V)
  • CON - Jatkuvuus (piippaa, kun vastus on alle 25, 50 tai 100)

Komponenttimittari1 - Lähdetiedosto on meter1.asm

Kondensaattorin, induktorin ja vastuksen mittaus LM311 -vertailupiirillä. Perustuu yhden latausjakson ajan mittaamiseen.

  • CAL - kalibrointi - mittaa kiinteät 80nf ja 10μF itsetestausta ja säätöä varten
  • Cx1 - kondensaattorin mittaus 0,1 nF - 9000μF 5 alueella
  • Lx1 - induktorin mittaus 1 mH - ?? mH 2 alueella
  • Rx1 - vastuksen mittaus 100Ω - 99MΩ 3 alueella

Komponentti Meter2 Lähdetiedosto Meter2.asm

Komponenttimittaus vaihtoehtoisella LM311 -rentoutusoskillaattorilla ja Colpitts -oskillaattorilla. Perustuu N syklin ajanjakson mittaamiseen. Tämä on hieman tarkempi kuin yllä oleva menetelmä, koska aika N = jopa 1000 sykliä mitataan. Se on enemmän laitteistoratkaisu ja vaatii enemmän rakentamista.

  • Cx2 - kondensaattorin mittaus 10pF - 1000 μF 5 alueella.
  • Rx2 - vastuksen mittaus 100 ohmista 99M 5 alueella.
  • Lx2 - induktorin mittaus 1 mH - 60 mH 1 alueella.
  • osc - induktorin mittaus (Colpitts -menetelmä) välillä 70μH - 5000μH? 2 alueella.

Taajuusmittari - lähdetiedosto Fmeter.asm

Sisältää toimintoja, jotka käyttävät PIC -laskureita ja ajastimia, ja vähän muuta;

  • FREQ - Taajuusmittari 0 Hz - 1000 kHz 3 alueella
  • XTL - mittaa LP -kiteiden taajuuden (ei testattu)
  • SIG - signaaligeneraattori 10 Hz - 5 kHz 10 askelta
  • SMR - askelmoottori - käänteinen suunta
  • SMF- askelmoottori eteenpäin.

Viestintä - Lähdetiedosto on comms.asm

Toiminnot signaalin lähettämiseksi/vastaanottamiseksi sarja- ja SPI -oheislaitteiden testaamiseksi;

  • UTX -testisarja TX & inc ja pienennä bittinopeutta 0,6 - 9,6 kt
  • URX -sarjan sarjavastaanotto ja vastaanotto ja laske bittinopeus 0,6 - 9,6 kt
  • SPM - testaa SPI: tä isäntätilassa
  • SPS - testaa SPI: tä orjatilassa

FSK -radiomoduuli - Lähdetiedosto on Radio.asm

Toiminnot RM01- ja RM02 -radion vastaanotto- ja lähetysmoduuleilla. Nämä moduulit liitetään SPI: n kautta, joka käyttää suurimman osan Port C -nastoista.

  • RMB - aseta radiomoduulin BAUD -taajuus
  • RMF - aseta radiomoduuli RF -taajuus
  • RMC - asettaa radiomoduulin kellotaajuuden
  • XLC - säätää kidekapasitanssikuormitusta
  • POW - asettaa lähettimen tehon
  • RM2 - lähetä testitiedot (RM02 -moduuli)
  • RM1 - vastaanota testitietoja (RM01 -moduuli)

Ohjausmoduuli - Lähdetiedosto control.asm

  • SV1 - Servolähtö (käyttäen CCP1) 1 ms - 2 ms 0,1 ms välein
  • SV2 - Servolähtö (käyttäen CCP2) 1 ms - 2 ms 0,1 ms välein
  • PW1 - PWM -lähtö (käyttäen CCP1) 0-100% 10% askelin
  • PW2 - PWM -lähtö (käyttäen CCP2) 0-100% 10% askelin

Etätietojen hankinta - Lähdetiedosto on remote.asm

Etätila (Rem) - komentojoukko, jotta mittaria voidaan käyttää tietokoneesta sarjaliitännän kautta. Yksi komento kerää EEPROMiin kirjautuneita tietoja tuntien aikana. Toinen komento lukee jännitteet ADC: n täydellä nopeudella muistipuskuriin ja lähettää puskurin sitten PC: lle, jossa tulokset voidaan näyttää graafisesti. Käytännössä tämä on oskilloskooppi, joka toimii äänitaajuusalueella

Aika - Lähdetiedosto on time.asm

Tim - näyttää ajan vain muodossa tt: mm: ss ja sallii muutoksen 4 painikkeella

Vaihe 3: Piirin kuvaus

Piirin kuvaus
Piirin kuvaus
Piirin kuvaus
Piirin kuvaus

Piirin kuvaus

3.1 Peruskehityslautakunta

Kuva 1 esittää peruskehityskortin PICBIOSin käynnistämiseksi. Se on erittäin vakio ja suoraviivainen, 5 V: n säädetty virtalähde ja irrotettavat kondensaattorit, C1, C2….

Kello on 4 MHz: n kristalli, joten TMR1 tikittää 1 käyttötunnin välein. Microchip suosittelee 22pF -kondensaattoreita C6, C7, mutta ne eivät näytä olevan välttämättömiä. ICSP-otsikkoa (piirisarjan ohjelmointi) käytetään aluksi ohjelmoimaan tyhjä PIC PICBIOS-ohjelmalla.

Sarjaportti (COM1)- huomautus TX ja RX vaihdetaan, ts. COM1-TX on kytketty porttiin C-RX ja COM1-RX on kytketty porttiin C-TX (yleisesti kutsutaan "nollamodeemiksi"). Myös RS232: lle vaadittujen signaalitasojen tulisi todella olla +12V (välilyönti) ja -12V (merkki). Kuitenkin jännitetasot 5V (tila) ja 0V (merkki) näyttävät riittäviltä kaikille käyttämilleni tietokoneille. Joten linjaohjain (Q3) ja linjavastaanotin (Q2) vain kääntävät RX- ja TX -signaalitasot.

LM032LN (2-rivinen 20 merkin) nestekidenäyttö käyttää vakiomallista HD44780-liitäntää. Ohjelmisto käyttää 4-bittistä nibble-tilaa ja vain kirjoittamista, joka käyttää 6 nastaista porttia D. Ohjelmisto voidaan konfiguroida nibble low (portti D-bitit 0-3) tai nibble high (portti D-bitit 4-7), kuten tässä käytetään.

Painonappikytkimissä on neljä tuloa valikon valintaa varten. Käytä painikkeita kytkimien tekemiseen, kun ohjelmisto havaitsee putoavan reunan. Pull-up-vastukset (= 25 k) ovat PORT B: n sisäisiä. Porttia RB6 ei voida käyttää kytkimiin 1nF-korkin vuoksi (jota suositellaan ICSP: lle). Palautuskytkintä ei tarvita?

painike 0

valikkovaihtoehdot vasemmalla [◄]

painike 1

valikkovaihtoehdot oikealle [►]

painike 2

lisäysalue/arvo/valitse [▲]

painike 3

vähennysalue/arvo/valitse [▼]

3.2 Analogiatulot ja komponenttien tarkistus - kortti 1

Kuva 2 esittää PICMETER1: n analogista piiriä. Analogiatuloja AN0 ja AN1 käytetään yleiskäyttöiseen jännitemittaukseen. Valitse vaimentimien vastusarvot antamaan 5V tuloihin AN0/AN1.

10 V: n tuloalueella m = 1 + R1/R2 = 1 + 10k/10k = 2

20 V: n tuloalueelle m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4

AN2: ta käytetään lämpötilan mittaamiseen käyttämällä transistoria Q1 "raakana" lämpöanturina. NPN -transistorin lämpötilakerroin 20 celsiusissa = -Vbe/(273+20) = -0,626/293 = -2,1 mV/K. (katso lämpötilan mittaus analogisesta osasta). LM431 (U1) tarjoaa 2,5 V: n jänniteohjeen AN3: lle. Lopuksi AN4: ää käytetään tai komponentitestaukseen analogisessa osassa.

Komponenttimittausta varten testikomponentti on kytketty RE2 (D_OUT) - ja AN4 -tuloon. Vastukset R14 - R18 tarjoavat viisi erilaista vastusarvoa, joita käytetään vastusmittauksessa (potentiometrimenetelmä) analogisessa osassa. Vastukset "kytketään piiriin" asettamalla portin C/portin E nastat joko tuloksi tai lähtöksi.

Mittari1 suorittaa komponenttimittauksen lataamalla erilaisia tunnetun/tuntemattoman kondensaattorin ja vastuksen yhdistelmiä. LM311 (U2) käytetään CCP1 -keskeytysten luomiseen, kun kondensaattori latautuu ylemmälle kynnykselle (75% VDD) ja purkautuu alemmalle kynnykselle (25% VDD). Nämä kynnysjännitteet ovat R8, R9, R11 ja potentiometri R10, säätö. Kondensaattoreita testattaessa kondensaattori C13 (= 47pF) ja levyn hajakapasitanssi tarjoavat 100pF -leikkauksen. Näin varmistetaan, että kun testikomponentti poistetaan, CCP1 -keskeytysten välinen aikaväli ylittää 100US ja ei ylikuormita PIC: tä. Tämä leikkausarvo (100pF) vähennetään ohjelmiston komponenttimittauksesta. D3 (1N4148) tarjoaa purkausreitin induktoreita testattaessa ja suojaa D_OUTia estäen jännitteen menemisen negatiiviseksi.

λΩπμ

Vaihe 4: Rakennusopas

Rakennusopas
Rakennusopas
Rakennusopas
Rakennusopas

Rakennusopas

Hyvä asia on, että tämä projekti rakennetaan ja testataan vaiheittain. Suunnittele projektisi. Näitä ohjeita varten oletan, että rakennat PICMETER1: tä, vaikka menettely on samanlainen PICMETER2: lle ja 3: lle.

4.1 Kehityslevyn piirilevy

Sinun on rakennettava peruskehityskortti (kuva 1), jonka pitäisi sopia 100 x 160 mm: n vakiokokoiselle piirilevylle, suunnittele asettelu pitämään mahdollisimman siisti. Puhdista piirilevy ja tina kaikki kuparia, käytä luotettavia komponentteja ja liittimiä, jotka on testattu mahdollisuuksien mukaan. Käytä 40 -nastaista pistorasiaa PIC: lle. Tarkista kaikkien juotettujen liitosten jatkuvuus. Voi olla hyödyllistä tarkastella yllä olevia taulukoiden asettelukuvia.

Sinulla on nyt tyhjä PIC ja sinun on ohjelmoitava PICBIOS flash -muistiin. Jos sinulla on jo ohjelmointimenetelmä - hyvä. Jos ei, suosittelen seuraavaa menetelmää, jota olen käyttänyt onnistuneesti.

4.2 AN589 Ohjelmoija

Tämä on pieni liitäntäpiiri, jonka avulla PIC voidaan ohjelmoida tietokoneelta tulostinportin (LPT1) kautta. Suunnittelun julkaisi alun perin Microchip sovellushuomautuksessa. (viite 3). Hanki tai tee AN589 -yhteensopiva ohjelmoija. Olen käyttänyt tässä kuvattua parannettua AN589 -mallia. Tämä on ICSP - eli lisäät PIC 40 -nastaiseen pistorasiaan ohjelmoidaksesi sen. Liitä sitten tulostinkaapeli AN539 -tuloon ja ICSP -kaapeli AN589: stä kehityskorttiin. Ohjelmointisuunnitteluni ottaa voimansa kehityskortilta ICSP -kaapelin kautta.

4.3 PICPGM -asetukset

Tarvitset nyt ohjelmointiohjelmiston PC: lle. PICPGM toimii eri ohjelmoijien kanssa, mukaan lukien AN589, ja se ladataan ilmaiseksi. (Katso viitteet).

Valitse Laitteisto -valikosta Ohjelmoija AN589, LPT1

Laite = PIC16F877 tai 877A tai tunnista automaattisesti.

Valitse heksatiedosto: PICBIOS1. HEX

Valitse Poista PIC, sitten Ohjelmoi PIC ja sitten Vahvista PIC. Onneksi saat onnistuneen valmistumisviestin.

Irrota ICSP -kaapeli, Käynnistä PIC uudelleen, toivottavasti näet PICBIOS -näytön nestekidenäytössä, muuten tarkista liitännät. Tarkista käynnistysvalikko painamalla vasenta ja oikeaa painiketta.

4.4 Sarjayhteys (Hyperterminal tai Putty)

Tarkista nyt sarjaliitäntä PIC: n ja tietokoneen välillä. Liitä PC COM1: n sarjakaapeli kehityskorttiin ja suorita viestintäohjelma, kuten vanha Win-XP Hyper-Terminal tai PUTTY.

Jos käytät Hyperterminalia, määritä se seuraavasti. Valitse päävalikosta Soita> Katkaise yhteys. Sitten Tiedosto> Ominaisuudet> Yhdistä välilehti. Valitse Com1 ja napsauta sitten Configure -painiketta. Valitse 9600 bps, ei pariteettia, 8 bittiä, 1 stop. Laitteiston virtauksen ohjaus”. Yhdistä sitten Soita> Soita.

Jos käytät PuTTY: tä, Connection> Serial> Connect to COM1, ja 9600 bps, ei pariteettia, 8 bittiä, 1 pysäkki. Valitse”RTS/CTS”. Sitten Istunto> Sarja> Avaa

Valitse PICBIOS Boot -valikosta”Command Mode” ja paina sitten [inc] tai [dec]. "PIC16F877>" -kehotteen pitäisi näkyä näytöllä (jos ei, tarkista sarjaliitäntä). Lehdistö ? nähdäksesi komentojen luettelon.

4.5 Ohjelmoi PICMETER

Kun sarjayhteys toimii, flash -muistin ohjelmointi on yhtä helppoa kuin heksatiedoston lähettäminen. Kirjoita komento "P", joka vastaa "Lähetä heksatiedosto …".

Hyper-päätelaitteen avulla Siirrä-valikosta> Lähetä tekstitiedosto> PICMETER1. HEX> Avaa.

Edistymistä ilmaisee “:”. koska jokainen heksakoodirivi on ohjelmoitu. Lopuksi lataa menestys.

Jos käytät PuTTY: tä, sinun on ehkä käytettävä Notepadia ja kopioitava/liitettävä PICMETER1. HEXin koko sisältö PuTTY: hen.

Vahvista samalla tavalla kirjoittamalla komento “V”. Hyper-terminaalissa Siirrä-valikosta> Lähetä tekstitiedosto> PICMETER1. HEX> OK.

Varoitus = xx… Jos ohjelmoit 16F877A -sirun, saat varoituksia. Tämä liittyy eroihin 877 ja 877A välillä, jotka ohjelmoidaan 4 sanalohkossa. Valitettavasti linkittäjä ei kohdista osioiden alkua neljän sanan rajoille. Yksinkertainen ratkaisu on, että kunkin osion alussa on 3 NOP -ohjetta, joten varoitukset jätetään huomiotta.

Käynnistä uudelleen ja valitse BIOS -käynnistysvalikosta”Suorita sovellus”. Sinun pitäisi nähdä PICMETER1 nestekidenäytössä.

4.6 Suorita PICMETER1

Aloita nyt kehityskortin osien rakentaminen (kuva 2) saadaksesi Voltmeter, Component Meter -toiminnot toimimaan tarpeen mukaan.

Mittari 1 tarvitsee kalibrointia. Säädä “Cal” -toiminnolla R10 niin, että lukemat ovat noin 80,00, 80,0 nF ja noin 10 000 uF. Lue sitten pieni 100pF Cx1 -toiminnosta. Jos lukema on poissa, vaihda trimmauskorkki C13 tai “trimc” arvo metrissä1.asm.

Suorita nyt PICBIOS Setup ja muuta muutamia kalibrointiasetuksia EEPROMissa. Kalibroi lämpötila säätämällä 16-bittistä siirtymää (korkea, matala muoto). Sinun on ehkä myös muutettava delayt -arvoa.

Jos tarkoituksesi on rakentaa projekti sellaisenaan - Onnittelut - olet valmis! Kerro menestyksestäsi Instructablesissa.

4,7 MPLAB

Mutta jos haluat tehdä muutoksia tai kehittää projektia edelleen, sinun on rakennettava ohjelmisto uudelleen MPLAB: n avulla. Lataa MPLAB Microchipistä. Tämä on "vanha", joka on yksinkertainen ja suoraviivainen käyttää. En ole kokeillut uutta labx -kehitystyökalua, joka näyttää paljon monimutkaisemmalta.

Tietoja uuden projektin luomisesta ja tiedostojen lisäämisestä projektiin täydellisessä dokumentaatiossa.

Vaihe 5: Valokuvat testauksesta

Kuvia testauksesta
Kuvia testauksesta
Kuvia testauksesta
Kuvia testauksesta
Kuvia testauksesta
Kuvia testauksesta

Kuva lämpömittarin yläpuolella, lukema 15 astetta

Testaustaajuus, lukema = 416k

Testausinduktori, merkitty 440uF, lukee 435u

Testaus 100k vastus, lukee 101k, se on helppo.

1000pF kondensaattorin testaus, lukema on 1,021 nF

Vaihe 6: Viitteet ja linkit

6.1 PIC16F87XA Data Sheet, Microchip Inc.

ww1.microchip.com/downloads/en/devicedoc/39582b.pdf

6.2 PIC16F87XA FLASH -muistiohjelmointitiedot, mikrosiru

ww1.microchip.com/downloads/en/devicedoc/39589b.pdf

6.3 Sovellushuomautus AN589, Microchip Inc.

ww1.microchip.com/downloads/en/appnotes/00589a.pdf

6.4 PICPGM -lataus

picpgm.picprojects.net/

6,5 MPLab IDE v8.92 ilmainen lataus, mikrosiru

pic-microcontroller.com/mplab-ide-v8-92-free-download/

6.6 Tietolomakkeet Hope RFM01-433 ja RFM02-433 moduuleille, RF Solutions

www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238

6.7 LT Spice, analogiset laitteet

www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html

6.8 Kuvaohjelmointipiiri, joka perustuu AN589: ään, Best-Microcontroller-Projects

www.best-microcontroller-projects.com/pic-programmer-circuit.html

6.9 Avoimen lähdekoodin tiedostot

avoin lähdekoodi

Suositeltava: