Ienirstiet iegulto sistēmu un mikrokontrolleru programmēšanas pasaulē. Apgūstiet pamatkonceptus, programmēšanas valodas, arhitektūras un praktiskus pielietojumus globālai auditorijai.
Iegultās sistēmas: visaptverošs ceļvedis mikrokontrolleru programmēšanā
Iegultās sistēmas ir visur – sākot no viedtālruņiem mūsu kabatās līdz sarežģītai tehnikai rūpnīcās. Šis ceļvedis sniedz visaptverošu pārskatu par iegultajām sistēmām, īpašu uzmanību pievēršot mikrokontrolleru programmēšanai, kas piemērota globālai auditorijai ar atšķirīgu tehniskās pieredzes līmeni. Mēs izpētīsim pamatkonceptus, programmēšanas valodas, aparatūras apsvērumus un reālās pasaules lietojumus. Šī rokasgrāmata ir paredzēta, lai sniegtu jums zināšanas, kā izprast, izstrādāt un sniegt ieguldījumu strauji augošajā iegulto sistēmu pasaulē.
Kas ir iegultās sistēmas?
Iegultā sistēma ir specializēta datoru sistēma, kas paredzēta noteikta uzdevuma vai uzdevumu kopuma veikšanai. Atšķirībā no vispārēja mērķa datoriem (piemēram, jūsu klēpjdators), iegultās sistēmas parasti ir daļa no lielākas ierīces vai sistēmas, un tām bieži vien ir reāllaika ierobežojumi, ierobežoti resursi un specifiskas funkcionalitātes. Tās parasti ir paredzētas konkrētam lietojumam un optimizētas efektivitātei, veiktspējai un enerģijas patēriņam.
Apsveriet šādus piemērus:
- Automobiļu rūpniecība: Pretblokēšanas bremžu sistēmas (ABS), dzinēja vadības bloki (ECU), informācijas un izklaides sistēmas.
- Patērētāj elektronika: Viedtālruņi, viedpulksteņi, digitālās kameras un mājsaimniecības ierīces.
- Rūpnieciskā automatizācija: Programmējamie loģiskie kontrolleri (PLC), robotika un procesa vadības sistēmas.
- Medicīnas ierīces: Sirds elektrokardiostimulatori, MRI iekārtas un pacientu uzraudzības sistēmas.
- Kosmiskā aviācija: Lidojumu vadības sistēmas, navigācijas sistēmas un dzinēja vadības sistēmas.
Iegulto sistēmu definējošās īpašības ietver:
- Reāllaika darbība: Bieži nepieciešams reaģēt uz notikumiem noteiktā laika posmā.
- Resursu ierobežojumi: Ierobežota atmiņa, apstrādes jauda un akumulatora darbības laiks.
- Īpaša funkcionalitāte: Paredzēts konkrētam mērķim.
- Saskarsme ar fizisko pasauli: Bieži vien ietver sensorus, izpildmehānismus un saskarnes, lai mijiedarbotos ar savu vidi.
Mikrokontrolleri: iegulto sistēmu sirds
Mikrokontrolleri (MCU) ir daudzu iegulto sistēmu smadzenes. Tie ir mazi, autonomi datori vienā integrētā shēmā (IC). Tie parasti ietver procesora kodolu, atmiņu (RAM un Flash), ievades/izvades (I/O) perifērijas ierīces (taimeri, seriālās sakaru saskarnes, analogo-ciparu pārveidotāji) un citus komponentus, kas nepieciešami konkrētas ierīces vai procesa vadībai. Tie atšķiras no mikroprocesoriem, kuriem parasti ir nepieciešami ārējie komponenti, piemēram, atmiņa un I/O kontrolleri. Mikrokontrolleri ir rentabli un energoefektīvi, padarot tos ideāli piemērotus iegultajiem lietojumiem.
Mikrokontrolera galvenie komponenti:
- CPU (centrālais procesors): Izpilda instrukcijas.
- Atmiņa: Ietver RAM (Random Access Memory) pagaidu datu glabāšanai un Flash atmiņu (vai EEPROM) programmas kodam un pastāvīgai datu glabāšanai.
- I/O porti: Nodrošina saziņu ar ārpasauli (piemēram, digitālās ievades/izvades tapas, seriālās sakaru saskarnes).
- Taimeri/skaitītāji: Izmanto laika notikumiem un precīzu aizkavējumu ģenerēšanai.
- Analogo-ciparu pārveidotāji (ADCs): Pārveido analogos signālus ciparu vērtībās.
- Ciparu-analogo pārveidotāji (DACs): Pārveido ciparu vērtības analogos signālos.
- Sakaru saskarnes: UART, SPI, I2C, USB, Ethernet un citas.
Pareiza mikrokontrolera izvēle
Pareiza mikrokontrolera izvēle ir izšķirošs solis jebkurā iegulto sistēmu projektā. Šo lēmumu ietekmē vairāki faktori:
- Veiktspējas prasības: Cik ātri sistēmai jāapstrādā dati? Apsveriet pulksteņa ātrumu, kodolu skaitu un instrukciju komplekta arhitektūru.
- Atmiņas prasības: Cik daudz RAM un Flash atmiņas ir nepieciešams programmas koda un datu glabāšanai?
- I/O prasības: Kādas saskarnes un perifērijas ierīces ir nepieciešamas, lai mijiedarbotos ar ārējo vidi (piemēram, digitālā I/O, seriālā komunikācija, analogās ieejas)?
- Enerģijas patēriņš: Vai sistēma darbojas ar akumulatoru? Apsveriet zemās enerģijas režīmus un darba spriegumus.
- Izmaksas: Kāds ir projekta budžets? Mikrokontroleru cenas var ievērojami atšķirties.
- Attīstības ekosistēma: Vai mikrokontrolerim ir laba attīstības vide, bibliotēkas un kopienas atbalsts? Tas var ievērojami ietekmēt izstrādes laiku un lietošanas vienkāršību.
- Vides apsvērumi: Darba temperatūras diapazons, triecienizturība un citi vides apstākļi, kuriem mikrokontrolerim jāiztur.
Populārākās mikrokontroleru arhitektūras:
- ARM Cortex-M: Plaši izmantots, piedāvājot labu veiktspējas, energoefektivitātes un izmaksu līdzsvaru. Atrodams daudzās ierīcēs, tostarp no STMicroelectronics, NXP un Texas Instruments. Populāra izvēle IoT projektiem, pateicoties tā zemā enerģijas patēriņa iespējām.
- AVR: Populārs, īpaši hobijiem un mazākiem projektiem. Atrodams Arduino platformā. Pazīstams ar lietošanas vienkāršību un plašu kopienu.
- PIC: Ražo Microchip Technology. Nodrošina daudzveidīgu iespēju klāstu, ko bieži izmanto rūpnieciskos lietojumos.
- ESP32/ESP8266: Populārs IoT lietojumiem, pateicoties integrētai Wi-Fi un Bluetooth savienojamībai. Tās ir sistēmas-uz-čipa (SoC) ierīces.
Mikrokontroleru programmēšanas valodas
Mikrokontroleru programmēšanai tiek izmantotas vairākas programmēšanas valodas. Izvēle bieži vien ir atkarīga no mikrokontrolera arhitektūras, projekta prasībām un izstrādātāja vēlmēm.
- C: Jaudīga un efektīva valoda, ko bieži izmanto iegulto sistēmu izstrādei, pateicoties tās zema līmeņa kontrolei un ciešām attiecībām ar aparatūru. Tas ļauj efektīvi pārvaldīt atmiņu un tieši piekļūt aparatūras reģistriem.
- C++: C objekorientēts paplašinājums, nodrošina tādas funkcijas kā klases, mantojums un polimorfisms, padarot to piemērotu lielākiem un sarežģītākiem projektiem. Ļauj atkārtoti izmantot kodu un labāk organizēt.
- Montāžas valoda: Nodrošina vistiešāko kontroli pār aparatūru. Ļauj izveidot ļoti optimizētu kodu, bet ir sarežģīts un laikietilpīgs, lai rakstītu un uzturētu. Izmanto, ja nepieciešama vislielākā veiktspēja.
- Python: Arvien vairāk izmanto iegultajām sistēmām, īpaši ar tādām platformām kā MicroPython. Vieglāk iemācīties un lietot, salīdzinot ar C/C++, ar lielu bibliotēku ekosistēmu. Iespējams, nav tik efektīvs kā C/C++ veiktspējas kritiskajos lietojumos. Populārs prototipēšanas un izglītības kontekstā.
- Citas valodas: Dažas platformas atbalsta tādas valodas kā Java (izmantojot JVM) vai specializētas valodas, kas pielāgotas konkrētai aparatūrai.
Piemērs: Hello, World! valodā C priekš Arduino:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello, World!");
delay(1000);
}
Iegulto sistēmu izstrādes rīki
Iegulto sistēmu izstrādes process ietver dažādus rīkus:
- Integrētā attīstības vide (IDE): Nodrošina vienotu vidi koda rakstīšanai, kompilēšanai un atkļūdošanai. Piemēri ir Arduino IDE, Atmel Studio, Eclipse un IAR Embedded Workbench.
- Kompilators: Pārveido pirmkodu (piemēram, C vai C++) mašīnas kodā, ko mikrokontroleris var izpildīt. Parasti kompilatori ir GCC (GNU kompilatoru kolekcija) un patentēti kompilatori no mikrokontroleru pārdevējiem.
- Atkļūdotājs: Ļauj izstrādātājiem iziet cauri kodam, pārbaudīt mainīgos un identificēt kļūdas. Parastie atkļūdotāji ir JTAG un SWD atkļūdotāji.
- Programmatūras/mirgošanas rīki: Izmanto, lai augšupielādētu kompilēto kodu mikrokontrolera zibatmiņā.
- Simulātori: Ļauj testēt kodu, nevajadzot fizisko aparatūru.
Iegulto sistēmu izstrādes process
Izstrādes process parasti ietver vairākus posmus:
- Prasību apkopošana: Definējiet sistēmas funkcionalitāti, veiktspēju un citas prasības.
- Sistēmas projektēšana: Izstrādājiet aparatūras un programmatūras arhitektūru. Tas ietver mikrokontrolera izvēli, shēmas projektēšanu un programmatūras moduļu definēšanu.
- Aparatūras izstrāde: Projektējiet un izveidojiet aparatūras shēmu, ieskaitot mikrokontroleri, sensorus, izpildmehānismus un citus komponentus. Tas var ietvert PCB (drukātās shēmas plates) projektēšanu, izmantojot programmatūru, piemēram, KiCad vai Eagle.
- Programmatūras izstrāde: Rakstiet pirmkodu, kompilējiet to un pārbaudiet to.
- Testēšana un atkļūdošana: Rūpīgi pārbaudiet sistēmu, ieskaitot aparatūras un programmatūras testēšanu. Identificējiet un novērsiet visas kļūdas. Tas var ietvert vienības testēšanu, integrācijas testēšanu un sistēmas testēšanu.
- Izvietošana: Augšupielādējiet programmatūru mikrokontrolerī un izvietojiet sistēmu paredzētajā vidē.
- Uzturēšana: Uzraugiet sistēmu, novērsiet kļūdas un nodrošiniet atjauninājumus pēc nepieciešamības.
Mikrokontroleru programmēšanas reālās pasaules lietojumi
Mikrokontrolleri tiek izmantoti plašā lietojumu klāstā visā pasaulē:
- Lietu internets (IoT): Viedās mājas ierīces (termostati, gaismas, durvju slēdzenes), valkājamas ierīces un rūpnieciskie sensori. Piemēram, Indijā IoT izmantošana strauji paplašinās lauksaimniecībā precīzai lauksaimniecībai.
- Automatizācija un robotika: Roboti ražošanā, automatizētie vadāmie transportlīdzekļi (AGV) un dronu vadības sistēmas.
- Automobiļu elektronika: Dzinēja vadības bloki, pretslīdes bremžu sistēmas (ABS) un vadītāju palīgsistēmas.
- Medicīnas ierīces: Pacientu uzraudzības sistēmas, medicīniskās attēlveidošanas iekārtas un implantējamās ierīces, piemēram, elektrokardiostimulatori.
- Patērētāju elektronika: Viedtālruņi, viedpulksteņi, digitālās kameras un mājsaimniecības ierīces.
- Kosmiskā aviācija: Lidojumu vadības sistēmas, navigācijas sistēmas un dzinēja vadības sistēmas.
- Rūpnieciskās vadības sistēmas: PLC (programmējamie loģiskie kontrolleri), kas kontrolē rūpnieciskos procesus, ko plaši izmanto ražošanā dažādās valstīs.
Piemērs: Viedās mājas automatizācija:
Viedās mājas sistēma izmanto mikrokontroleri (bieži vien ESP32 vai līdzīgu), lai kontrolētu apgaismojumu, temperatūru un citas ierīces. Sensori nosaka vidi un aktivizē darbības, pamatojoties uz ieprogrammētu loģiku. Piemēram, temperatūras sensors var aktivizēt apkures vai dzesēšanas sistēmu, pamatojoties uz iepriekš definētiem temperatūras sliekšņiem. Sistēma pieslēdzas internetam (parasti, izmantojot Wi-Fi), lai nodrošinātu attālo vadību un uzraudzību, izmantojot mobilo lietotni.
Darbs ar Arduino: praktisks ievads
Arduino ir atvērtā koda elektronikas platforma, kuras pamatā ir viegli lietojama aparatūra un programmatūra. Tā ir plaši populāra iesācēju vidū, pateicoties tās vienkāršībai un visaptverošam kopienas atbalstam. Arduino platforma parasti izmanto AVR mikrokontrollerus (piemēram, ATmega328P) un nodrošina lietotājam draudzīgu IDE un vienkāršotu programmēšanas valodu, kuras pamatā ir C/C++.
Arduino platformas galvenie komponenti:
- Arduino plates: Mikrokontroleru plates ar dažādām funkcijām, piemēram, digitālajām un analogajām tapām, seriālo komunikāciju un barošanas avotu. Piemēri ir Arduino Uno, Arduino Nano, Arduino Mega un Arduino Due.
- Arduino IDE: Integrētā attīstības vide koda rakstīšanai, kompilēšanai un augšupielādei Arduino platēs. Ietver koda redaktoru, kompilatoru un seriālo monitoru.
- Arduino programmēšanas valoda: C/C++ vienkāršota versija, kas koncentrējas uz lietošanas vienkāršību un salasāmību.
- Bibliotēkas: Iepriekš rakstītas koda bibliotēkas, kas vienkāršo kopīgus uzdevumus, piemēram, sensoru vadību, saziņu ar displejiem un savienošanu ar internetu.
Sākam darbu ar Arduino:
- Lejupielādējiet un instalējiet Arduino IDE: No oficiālās Arduino vietnes (arduino.cc).
- Pievienojiet savu Arduino plati savam datoram: Izmantojiet USB kabeli.
- Atlasiet savu plati un portu: Arduino IDE (Rīki > Plate un Rīki > Ports).
- Uzrakstiet savu pirmo programmu (piemēram, Blink): Klasiskais "Hello, World!" ekvivalents iegultajām sistēmām, kur LED mirgo iekšā un ārā.
- Augšupielādējiet kodu savā Arduino platē: Noklikšķiniet uz pogas "Augšupielādēt" Arduino IDE.
Piemērs: LED mirgošana:
// Definējiet LED tapu
const int ledPin = 13;
void setup() {
// Iestatiet LED tapu kā izvadi
pinMode(ledPin, OUTPUT);
}
void loop() {
// Ieslēdziet LED
digitalWrite(ledPin, HIGH);
// Pagaidiet vienu sekundi
delay(1000);
// Izslēdziet LED
digitalWrite(ledPin, LOW);
// Pagaidiet vienu sekundi
delay(1000);
}
Arduino platforma ir lielisks sākumpunkts iesācējiem, kuri interesējas par mikrokontroleru programmēšanu. Ir viegli pieejami daudzi tiešsaistes apmācības, kursi un kopienas resursi, kas palīdzēs jums šajā procesā. Tas padara to pieejamu skolēniem visā pasaulē, neatkarīgi no viņu pieredzes.
Darbs ar Raspberry Pi Pico: atšķirīga pieeja
Raspberry Pi Pico ir zemu izmaksu, augstas veiktspējas mikrokontroleru plate, ko izstrādājis Raspberry Pi fonds. Tajā ir RP2040 mikrokontroleris, divkodolu ARM Cortex-M0+ procesors. Tas piedāvā atšķirīgu pieeju iegulto sistēmu apguvei un ir laba alternatīva Arduino konkrētiem lietojumiem.
Raspberry Pi Pico galvenās iezīmes:
- RP2040 mikrokontroleris: Divkodolu ARM Cortex-M0+ procesors, pulkstenis līdz 133 MHz.
- Atmiņa: 264 KB SRAM.
- Zibatmiņa: 2 MB iebūvētā zibatmiņa.
- I/O: 26 daudzfunkcionālas GPIO tapas.
- Saskarnes: UART, SPI, I2C un citi sakaru protokoli.
- Rentabla: Ļoti pieejama cena, padarot to piemērotu visu izmēru projektiem.
- Programmēšanas valodas: Atbalsts C/C++ un MicroPython.
Raspberry Pi Pico izmantošanas priekšrocības:
- Divkodolu procesors: Iespējo paralēlo apstrādi, lai uzlabotu veiktspēju.
- Augsta veiktspēja: Salīdzinot ar citām zemākas klases MCU, tā nodrošina lielāku skaitļošanas jaudu.
- Elastīgas programmēšanas iespējas: Piedāvā gan C/C++, gan MicroPython.
- Zemas izmaksas: Padara to piemērotu plašākam projektu klāstam.
Sākam darbu ar Raspberry Pi Pico (izmantojot MicroPython):
- Lejupielādējiet un instalējiet Thonny IDE: Python IDE, kas ir iepriekš konfigurēts MicroPython.
- Pievienojiet savu Raspberry Pi Pico datoram: Izmantojot USB kabeli.
- Instalējiet MicroPython programmaparatūru uz Pico: Izpildiet norādījumus Thonny IDE.
- Uzrakstiet savu pirmo programmu (piemēram, Blink): Līdzīgi Arduino piemēram, šī programma liks iebūvētajai LED mirgot.
- Augšupielādējiet un palaidiet kodu: Saglabājiet kodu uz Raspberry Pi Pico un palaidiet kodu, izmantojot Thonny IDE.
Piemērs: LED mirgošana ar MicroPython uz Raspberry Pi Pico:
import machine
import time
led = machine.Pin(25, machine.Pin.OUT) # GPIO 25 ir iebūvētais LED
while True:
led.value(1) # Ieslēdziet LED
time.sleep(0.5)
led.value(0) # Izslēdziet LED
time.sleep(0.5)
Padziļināti koncepti mikrokontroleru programmēšanā
Progresējot iegulto sistēmu izstrādē, jūs sastapsieties ar padziļinātiem konceptiem:
- Reāllaika operētājsistēmas (RTOS): Operētājsistēmas, kas paredzētas reāllaika lietojumprogrammām. Tie nodrošina tādas funkcijas kā uzdevumu plānošana, starpprocesu komunikācija un resursu pārvaldība. Parastie RTOS ietver FreeRTOS, RT-Thread un Zephyr.
- Pārtraukumu apstrāde: Mehānisms, lai reaģētu uz ārējiem notikumiem vai signāliem. Pārtraukumi ļauj mikrokontrolerim ātri reaģēt uz notikumiem, nepārtraukti tos apjautājot.
- Digitālā signālu apstrāde (DSP): Tehnikas digitālo signālu apstrādei. Tas ietver tādas darbības kā filtrēšana, trokšņu samazināšana un datu kompresija.
- Sakaru protokoli: Sakaru protokolu, piemēram, UART, SPI, I2C, CAN un Ethernet, izpratne un ieviešana ir būtiska, lai savienotu mikrokontrollerus ar citām ierīcēm un tīkliem.
- Enerģijas pārvaldība: Tehnikas enerģijas patēriņa optimizēšanai iegultajās sistēmās, ieskaitot zemas enerģijas režīmus, pulksteņa vārtus un efektīvu perifērijas ierīču izmantošanu.
- Atkļūdošanas metodes: Iemācīšanās efektīvi izmantot atkļūdotājus, tostarp iestatīt pārtraukumpunktus, pārbaudīt atmiņu un analizēt programmas izpildi.
- Iegultā drošība: Iegulto sistēmu aizsardzība pret kiberuzbrukumiem, ieskaitot drošas sāknēšanas, šifrēšanas un autentifikācijas ieviešanu.
Resursi mācībām un turpmākai izpētei
Ir pieejams daudz resursu, lai uzzinātu vairāk par iegultajām sistēmām un mikrokontroleru programmēšanu:
- Tiešsaistes kursi: Coursera, edX, Udemy un citas tiešsaistes platformas piedāvā kursus par iegultajām sistēmām, mikrokontroleru programmēšanu un saistītām tēmām. Meklējiet kursus no cienījamām universitātēm un iestādēm visā pasaulē.
- Grāmatas: Daudzas izcilas grāmatas atspoguļo iegulto sistēmu projektēšanu, mikrokontroleru programmēšanu un konkrētas mikrokontroleru arhitektūras.
- Apmācības un dokumentācija: Mikrokontroleru ražotāji (piemēram, STMicroelectronics, Microchip) nodrošina plašu dokumentāciju, datu lapas un pielietojuma piezīmes.
- Forumi un kopienas: Sazinieties ar tiešsaistes kopienām (piemēram, Stack Overflow, Arduino forumi, Raspberry Pi forumi), lai uzdotu jautājumus, dalītos pieredzē un mācītos no citiem. Aktīvas kopienas ir klātesošas visā pasaulē un piedāvā arī reģionālus padomus.
- Attīstības plates: Eksperimentējiet ar dažādām mikrokontroleru attīstības platēm (Arduino, Raspberry Pi Pico, STM32 Nucleo utt.), lai iegūtu praktisku pieredzi.
- Projekti: Strādājiet pie personīgiem projektiem, lai pielietotu savas zināšanas un iegūtu praktisku pieredzi. Sāciet ar vienkāršiem projektiem un pakāpeniski palieliniet sarežģītību. Izveidojiet IoT ierīces, mazus robotus vai pielāgotu elektroniku.
- Aparatūras atsauces: Datu lapas par konkrētiem komponentiem ir būtiskas.
Iegulto sistēmu nākotne
Iegultās sistēmas pastāvīgi attīstās, un aizraujošas tendences veido to nākotni:
- Lietu internets (IoT): IoT turpmākā izaugsme veicinās pieprasījumu pēc vairāk savienotām ierīcēm, kas prasa sarežģītākas iegultās sistēmas.
- Mākslīgais intelekts (AI) un mašīnmācīšanās (ML): AI un ML iespēju integrēšana iegultajās sistēmās nodrošinās inteliģentas ierīces, kas var mācīties un pielāgoties.
- Mala (Edge) datu apstrāde: Datu apstrāde tīkla malā (piemēram, ierīcē) samazinās latentumu un uzlabos efektivitāti.
- Drošība: Palielināts uzsvars uz iegulto sistēmu aizsardzību pret kiberuzbrukumiem, ar jauniem drošības protokoliem un aparatūras drošības funkcijām.
- Zema enerģijas patēriņa projektēšana: Pieprasījums pēc energoefektīvām iegultajām sistēmām turpinās pieaugt, īpaši ierīcēm, kas darbojas ar akumulatoru.
- Miniatūrizācija: Turpmāka ierīču miniatūrizācija, kas novedīs pie kompaktākām un jaudīgākām iegultajām sistēmām.
- Integrācija ar mākoņpakalpojumiem: Bezšuvju integrācija ar mākoņa platformām, lai nodrošinātu datu analīzi, attālo pārvaldību un atjauninājumus pa gaisu.
Iegulto sistēmu joma piedāvā daudzas karjeras iespējas inženieriem, izstrādātājiem un citiem profesionāļiem. Paredzams, ka kvalificētu profesionāļu pieprasījums šajā jomā paliks augsts, padarot to par izcilu karjeras ceļu tiem, kas interesējas par tehnoloģijām.
Secinājums
Mikrokontroleru programmēšana ir fundamentāla prasme iegulto sistēmu pasaulē. Šis ceļvedis ir sniedzis visaptverošu pārskatu, aptverot galvenos konceptus, programmēšanas valodas, aparatūras apsvērumus un praktiskus piemērus. Ar apņemšanos un piekļuvi pareizajiem resursiem ikviens var iegūt zināšanas un prasmes, kas nepieciešamas iegulto sistēmu projektēšanai, izveidei un programmēšanai. Sākot no vienkāršas LED mirgošanas līdz sarežģītām IoT lietojumprogrammām, iespējas ir bezgalīgas. Turpiniet izpētīt, eksperimentēt un veidot. Iegulto sistēmu nākotne ir spoža, un jums ir iespēja būt daļai no tās. Sāciet savu ceļojumu jau šodien!