Mehhatroonika Kodulaboris moodulite ühendamine

Autor: Raivo Sell

Käesolev õpiobjekt tutvustab Robootika Kodulaborit ja selle arenduskeskkonna seadistamist.

Robootika Kodulabor on ATMega mikrokontrolleril põhinev omavahel seotud moodulite komplekt, mis on komplekteeritud kaasaskantavasse kohvrisse. Kodulaboriga saab teha erinevaid mehhatroonika- ja robootikaalaseid eksperimente ning harjutusi alates lihtsast tule vilgutamisest kuni keeruka seadme ehitamiseni.

Kodulabor on mõeldud eelkõige koolidele, sisaldades endas lisaks riistvarale ka metoodilist materjali ja harjutusülesandeid koos näidete ja lahendustega. Kodulabor on integreeritud oma veebikeskkonnaga, mis on suunatud õpilasele ja õpetajale, sisaldades näiteid, riist- ja tarkvara kirjeldusi ning harjutusülesandeid. Lühidalt öeldes on Kodulabor mobiilne töövahendite komplekt, mida kasutatakse õppe ja harjutamise eesmärgil kodus, koolis või töökohal.

Kodulabori moodulid on komplekteeritud baas ja lisakomplekti. Kodulabori baaskomplektiga on võimalik teostada lihtsamaid harjutusi digitaalsete sisend-väljunditega, näidikute ja LCD ekraaniga. Lisaks võimaldab baaskomplekt luua süsteeme, mis on juhitavad üle interneti ning teostada andmesalvestust SD kaardile. Andurite ja mootoritega eksperimenteerimiseks on vaja Andurite ja Mootorite lisakomplekti. Lisaks anduritele ja mootoritele sisaldab lisakomplekt ka Kommunikatsiooni moodulit, mis võimaldab praktiseerida nii juhtmega kui ka juhtmevaba sidet. Lisaks on Robootika Kodulaboriga ühilduvad Masinnägemise ja RFID moodulid, mis ei ole komplekteeritud kohvritesse vaid on saadaval eraldi.

ESF

Õpiobjekti nimi: Mehhatroonika Kodulaboris moodulite ühendamine

Õpiväljundid:

Pärast mooduli läbimist õpilane:

  • Kirjeldab mikrokontrollerite programmeerimiseks vajalike tark- ja riistvara komponente
  • Seadistab PC-s mikrokontrolleri arenduskeskkonna
  • Ühendab vajalikud moodulid õigesti

Kasutusjuhend:

  • Teoreetilise taustamaterjaliga tutvumine
  • Õppevideo vaatamine
  • Enesekontrolli küsimustele vastamine

Õpetatav osa: Lugeda teoreetilist ülevaadet enne riistvara reaalset ühendamist ja pingestamist. Vaadata õpivideosid korrektse riistvara käsitlemise tagamiseks. Õpitu kinnistamiseks tuleb praktilised näited reaalselt läbi teha.

Seoste loomine: Läbi õppevideo ja sõnalise selgituse järgimise.

Kinnistav osa: Iseseisev praktika reaalse riistvarakomplekti baasil.

 

TEOREETILINE OSA

Robootika Kodulabori riistvarakomplekti

Kontrollermoodul

Kodulabori keskseks mooduliks (kontrollermooduliks) on arendusplaadile paigaldatud mikrokontroller ATmega2561. Lisaks mikrokontrollerile on plaadil veel mitmesuguseid perifeeriaseadmeid, JTAG programmaator, Ethernet, SD kaart, pingealaldi ja ühenduspistikud.

Kontrollermooduli plaat sisaldab endas järgmisi komponente:

  • ATmega2561-16AU mikrokontroller
    • 8-kanaliga analoog-digitaalmuundur (ADC)
    • 256 kB flash-mälu (programmi mälu)
    • 6 kanaliga programmeeritav PWM generaator
  • Integreeritud JTAG programmaator (FTDI2232 baasil)
  • 14,7456 MHz taktigeneraator
  • Ethernet moodul koos RJ45 pesaga
  • SD kaardi pesa
  • Programmeeritav oleku LED (PB7) ja toite indikaator LED
  • Programmeeritav nupp (PC2) ja taaskäivitus reset nupp
  • Grupeeritud AVR viigud (1: pordid D, B, E; 2: pordid G, C, A; 3: port F)
  • 2,1 mm toitepistiku pesa
  • Automaatne toite ümberlüliti, USB või väline toide
  • Pingeregulaator, 5 V ja 3,3 V väljund

Kontrollermooduli plaat on varustatud alaldiga ja pingestabilisaatoriga. Sisendpingeks sobib plaadile 6-15 V. Voolukadude minimeerimiseks on soovitatav kasutada 6-9V pingeallikat. Toite ühendamisel peab plaadil toite LED põlema hakkama. Kui see ei sütti, võib põhjus olla puudulikus toites või hoopis lühises Kontrollermooduli plaadil või temaga ühendatud seadmetes. Mikrokontrollerit saab programmeerida üle USB JTAG või ISP liidese kaudu. JTAG meetod toetab lisaks lihtsale programmi pealelaadimisele ka programmikoodi silumist.

Kontrollermooduli plaat on varustatud oleku LED-iga, mis on ühendatud mikrokontrolleri viiguga PB7. LED süttib, kui viik seada madalasse olekusse (loogiline 0). Seda on hea kasutada lihtsa indikaatorina. Plaadile on paigaldatud SD mälukaardi pesa kuhu on võimalik sisestada standardne mikro SD mälukaart. Mälukaart on ühendatud SPI liidese kaudu mikrokontrolleriga ja seda võib kasutada andmete salvestamiseks, juhul kui need peavad säilima ka pärast toite eemaldamist mikrokontrollerilt.

Kasutajaliidese moodul

Kasutajaliidese moodul on mõeldud lihtsamateks harjutusteks ja elementaarseks protsessi juhtimiseks. Moodulil on kolm nupp-lülitit ja kolm valgusdioodi (LED), mis on ühendatud AVR sisend-väljundviikudega. Lisaks lihtsatele valgusdioodidele on moodul varustatud ka LED numberindikaatoriga ja graafilise LCD ekraaniga ning alfabeetilise LCD ekraani väljundiga. Kasutajaliidese moodulit on mugav kasutada koos teiste moodulitega, võimaldades juhtida näiteks mootoreid ja kuvada andurite lugemeid. Moodul on kaetud pleksiklaasist kattega, kaitstes seda juhuslikult plaadile sattuvate metallesemete eest, mis võivad moodulil elektrilisi ühendusi lühistada.

Moodul on varustatud:

  • Rohelise, kollase ja punase valgusdioodiga (LED)
  • Kolme mikrolülitiga
  • 7-segmendilise numberindikaatoriga
  • Alfabeetilise LCD ekraani ühenduspistikuga (valikuline)
  • Graafilise LCD ekraaniga
  • Heligeneraatoriga

Ühendamine

Kontrollermooduli ühendamisel teiste moodulite ning seadmetega tuleb esmalt veenduda, et Kontrollermooduli toide ei ole ühendatud. Ajal kui plaat on pingestatud, on ohtlik seadmeid ühendada. Mooduleid ja seadmeid tuleb omavahel ühendada ettevaatlikult ja liigset jõudu kasutamata. Vale käsitlemise korral võivad piikriba piigid kergesti kõveraks painduda. Programmeerimiseks ja nõrkvoolu (alla 500 mA) toiteks võib Kontrollermooduli ühendada ainult arvutiga, kasutades mini USB kaablit. Kui kasutusel on moodulid, mis vajavad summaarselt rohkem voolu kui 500 mA tuleb seadmete toiteks kasutada eraldi toiteallikat. Kui Kontrollermooduliga on ühendatud välise toiteallika pistik, lülitub moodul automaatselt USB toitelt välisele toitele.

ARENDUSKESKKONNA SEADISTAMINE

Arenduskeskkond Eclipse ATmega2561

Järgnev juhend kirjeldab Kodulabori versioon 5 (Kontroller v1 - ATmega2561) arenduskeskkonna paigaldamist ja esmast seadistamist.

Tarkvara paigaldamine

Paigaldamiseks laadige alla Robootika Kodulabori arenduskeskkond vastavalt oma operatsioonisüsteemile. Arenduskeskkond sisaldab endas Eclipse arenduskeskkonda, Eclipse AVR pluginat, Robootika Kodulabori teeki, Kodulabori programmeerimisvahendeid ja näidisprojekti.

MS Windows

Tarkvara allalaadimine → Eclipse HomeLab pakk

Linux Ubuntu

Tarkvara allalaadimine → Homelab-keyring

Linux/muud ja MacOS

Paigaldage repositooriumist järgmine tarkvara:

  • Eclipse
  • Eclipse AVR plugin
  • hlinit
  • hlflash
  • hlflash-gui
  • urjtag
  • avrdude mod.
  • Robootika Kodulabori teek

Projekti loomine

Kui arendustarkvara on paigaldatud saab alustada programmi kirjutamist, kuid eelnevalt on vaja teha siiski mõned seadistused ja luua projekt. Uus projekt, sisaldab endas tüüpiliselt palju erinevaid faile: programmikoodi(e), päisfaile, kompileeritud programmi jne. Selleks, et projektid oleks korrektselt eristatavad, tuleks iga projekti jaoks luua uus kataloog (seda võimalust pakub uue projekti loomise abimees).

Uue projekti loomiseks tuleb läbida järgmised sammud:

1. Avada Eclipse (Robotic HomeLab IDE) ja alustada uue projekt seadistamist. Kui Tarkvara on äsja paigaldatud, on esmalt vaja tekitade projektide repositoorium ehk Workspace. Selleks näidake avanenud aknas Workbench asukoht, kuhu soovite projektide repositooriumi luua.

Uue projekti loomiseks tuleb valida menüüst File - New - C project. Lisada projekti nimi ning vajutada nupule Next.

2. Järgmises aknas tuleks projekti konfiguratsiooniks valida ainult Release

3. Järgnevalt avaneb aken, kus tuleb märkida mikrokontrolleri tüüp ja taktsagedus. Kodulabori (v5) mikrokontrolleriks on ATmega2561 ja taktsageduseks 14745600 Hz. Projekti lõplikuks loomiseks vajutada nupule Finish.

4. Nüüd avaneb juba programmeerimise kasutajaliides, kuid enne, kui saab hakata programmi kirjutama, on vaja tekitada algkoodi fail. Selleks valige äsjaloodud projektil hiire parema klahviga New - Source File ja sisestage soovitud faili nimi, mis peab kindlasti lõppema laiendiga “.c“. Soovitav on peafaili nimeks valida „main.c“. Peale Finish nupu vajutamist luuakse vastav fail ja avatakse see arenduskeskkonda.

5. Enne lähtekoodi kirjutamist on mõistlik teha mõned seadistused, mis peaks hõlbustama arenduskeskkonna kasutamist. Valige menüüst Window - Preferences ja avage vasakul olevast puust General - Workspace ning märkiga ära valik Save automatically before build

6. Edasi võib hakatuseks kopeerida alloleva testprogrammi lähtekoodi ja üritada seda kompileerida. Kompileerimiseks võib kasutada klahvikombinatsiooni CTRL+B.


Koodi tekstiversioon

Kompileerumise õnnestumiseks peab olema tarvarakood ilma vigadeta ja kompilaator peab leidma kõik vajalikud päisfailid. Eduka kompileerumise tunnuseks on Problem aknas tühjus (äärmisel juhul mõni hoiatus Warning) ja Console aknas kompilaatori väljund mis antud projekti puhul on midagi sellist:


Koodi tekstiversioon

 

Kui koodis oli viga või ei leitud päisfaile, siis on Console aknas viimasel real veateade koos leitud vigade arvuga, millele eelneb leitud võimaliku vea kirjeldus.


Koodi tekstiversioon

Samuti on Problems aknas erinevad veateated ja vastav koht koodis märgitakse vea ikooniga.

7. Kodulabori teegi kasutamine eeldab, et see on tarkvara paigaldamise juhendi kohaselt süsteemi paigaldatud. Iga projekti korral tuleb teek projekti seadetest lisada lingitavate objektide nimekirja. Selleks avada esmalt: Project → Properties ja seejärel vasakust puust C/C++ Build → Settings, edasi Tool Settings → AVR C linker → Libraries. Paremal avanenud aknas valida Libraries (-l) osas ikoon Add… ja sisestada avanenud aknasse homelab2561. Seejärel OK ja veelkord OK.

8. Edasi võib teegi testimiseks kopeerida alloleva testprogrammi lähtekoodi eelmise asemele ja üritada seda kompileerida. Kompileerimiseks võib kasutada klahvikombinatsiooni CTRL+B.


Koodi tekstiversioon

Kui ka selle koodi kompileerimine õnnestub, siis on kõik eelnevad seadistused tehtud õigesti.

 

Kontrollerile koodi laadimine

1. Ühendada kontrollerplaat USB kaabliga arvutiga. Peale kontrollerplaadi ühendamist peaks (esmasel ühendamisel teatud aja pärast) süttima väike roheline toite LED - PWR.

2. Määrata programmi laaduri (AVRDude) seaded. Selleks avada uuesti projekti seaded Project → Properties ja seejärel vasakust puust AVR → AVRDude, edasi Programmer configuration → New. Avanenud aknas midagi eriti seadistada pole vaja ja võib kohe OK vajutada. Veenduge, et see oleks valitud ja vajutage Apply ning OK.

Oluline on kontrollida, et nüüd oleks Programmer configuration valikus midagi valida ja juhul kui eelnevalt midagi ei muudetud on selleks: New Configuration.

3. Kui Kodulabori Kontrollermoodul on arvutiga ühendatud, võib kompileeritud programmi nüüd üritada laadida kontrollerisse. Selleks vajutage lihtsalt AVR ikoonile või klahvikombinatsioon CTRL + Alt + U.

Programmi mõjul peaks kontrolleri plaadil olev oleku-LED PB7 perioodiliselt süttima ja kustuma. Kui programm töötab, on tarkvara paigaldatud edukalt ja esimene projekt tehtud. Palju õnne!

ENESEKONTROLL

Vastates alljärgnevatele küsimustele, saad testida oma teadmisi antud teema kohta

Millised tarkvarakomponendid on soovitav paigaldada Robootika Kodulabori programmeerimiseks?
Vali õiged vastused

Arenduskeskkond (nt. AVR Studio, Eclipse)
C keele kompilaator
Kodulabori teek

Milliseid eeliseid annab tarkvarateegi kasutamine?
Vali õiged vastused

Programm on kiirem
Programmi kood on lihtsamalt loetav
Arendaja saab keskenduda süsteemi loogikale, mitte koodi keerukusele
Ilma teegita ei olegi võimalik kontrollerit programmeerida
Teek võimaldab programmeerida suvalises programmeerimiskeeles

Millist funktsionaalsust omab Robootika Kodulabori baaskomplekt?
Vali õiged vastused

Digitaalsed sisend-väljundid
LCD ekraan
Ultraheli andur
Servo mootor
Blutooth andmeside
Ethernet andmeside
Välismälu seade
Numbernäidik

LISAMATERJAL

  1. Robootika Kodulabor - Tarkvarateek
  2. Robootika Kodulabor - Tarkvara seadistamine
  3. Robootika Kodulabor - Tarkvara allalaadimine
  4. Robootika Kodulabor - Kontrollermooduli andmeleht
  5. Robootika Kodulabor - Kasutajaliidese mooduli andmeleht

 

Teoreetilise osa algtekstide autor: Raivo Sell