Denníček - november 2017: Rozdiel medzi revíziami

Zo stránky Robotický krúžok
Skočit na navigaci Skočit na vyhledávání
dBez shrnutí editace
dBez shrnutí editace
 
(24 medziľahlých úprav od 3 ďalších používateľov nie je zobrazených)
Riadok 9: Riadok 9:


</div>
</div>
<div style="background-color: #FFF8F8;">
<div style="background-color: #FFF8F8;">
''utorok, 7.11.2017''
''utorok, 7.11.2017''
Riadok 33: Riadok 31:


</div>
</div>
 
<div style="background-color: #F8FFF8;">
<div style="background-color: #FFF8F8;">
''štvrtok, 9.11.2017''
''štvrtok, 9.11.2017''


Dnes sa Marta naučila pracovať s premennými. Tu sú dva príklady na použitie premenných:
Dnes sa Marta naučila pracovať s premennými. Tu sú dva príklady na použitie premenných:
Prvý program používa jeden kufrík ''pocet''. Na začiatku do neho uloží číslo 1. Potom opakuje neustále toto:
* hodnotu, ktorá je uložená v kufríku vyberie a zobrazí ju na displeji
* počká, kým sa nestlačí dotykový senzor
* vyberie hodnotu uloženú v kufríku, zvýši ju o 1 a výsledok zasa schová do kufríka
[[Image:kufre.png|500px]]


kurfre: [[Media:kufre.zip|kufre.zip]]
kurfre: [[Media:kufre.zip|kufre.zip]]
Tento program sme ďalej upravili tak, aby program pri každom opakovaní cyklu - čiže po každom stlačení senzora - zahral nejaký zvuk, ale vždy iný - podľa hodnoty, ktorá je práve uložená v kufríku. Využijeme na to podmienku, ktorá sa nerozhoduje podľa hodnoty senzora, ako sme ju doteraz väčšinou používali, ale podľa hodnoty, ktorú do nej privedieme dátovým káblikom. Navyše, podmienku prepneme do kartičkového zobrazenia, ktoré nám dovoľuje pridať aj viac ako dve alternatívne cesty - môžeme si popridávať toľko kartičiek, koľko potrebujeme - pre každú hodnotu z kufra jednu:
[[Image:zvuky.png|500px]]


zvuky: [[Media:zvuky.zip|zvuky.zip]]
zvuky: [[Media:zvuky.zip|zvuky.zip]]
Riadok 52: Riadok 60:


</div>
</div>
<div style="background-color: #FFF8F8;">
<div style="background-color: #F8F8FF;">
''utorok, 14.11.2017''
''utorok, 14.11.2017''


Riadok 90: Riadok 98:


</div>
</div>
<div style="background-color: #FFFFF8;">
''štvrtok, 16.11.2017''
Matej sa s veľkou radosťou pustil do skladania modelov misií FLL pre bratislavský turnaj, Marta s Oliverom mu pomáhali a už je to skoro celé hotovo!
[[Image:sada_fll.jpg|600px]]
Dnes nás prišiel navštíviť aj Patrik so svojím zaujímavým jánošíkovským účesom :-), prišiel si vziať odloženého drona z tábora a pomáhal Marisovi v programovaní riadenia jeho automobilu cez BT.
Oliver sa pustil do programovania simulovaného futbalu na kocke NXT a výsledok je celkom pekný! Matej mu k tomu zostrojil geniálny joystick, ktorý v pohode jazdí nielen kolmo ale aj do šikmých smerov:
[[Image:joystick1.jpg|350px]] [[Image:joystick2.jpg|350px]]
Oliver: Hra by me.
[[Image:futbal_program.png|600px]]
Download: [[Media:futbal.zip|futbal.zip]]
</div>
<div style="background-color: #F8FFF8;">
''utorok, 21.11.2017''
<youtube>hnj7iCl-93Q</youtube>
Dnes nás prišiel navštíviť mimoriadny hosť, ružový panter osobne! :-)
[[Image:Oliarobt.jpg|400px]]
a okrem toho, že nám popájkoval arduinko :-) pomohol Marte dostavať zvyšné modely pre bratislavský turnaj FLL.
Matej usilovne modeloval futbalistického robota v Lego Digital Designeri, tešíme sa na výsledok čoskoro!
Ľubo, Filip, Gregor, Martin a Šimon riešili úlohu zastavovania robota, ktorý jazdí po čiare na prekážkach.
Najlepšie na to išiel Šimon: najskôr na jednoduchých príkladoch vyskúšal, čo jednotlivé bloky,
ktoré pracujú s ultrazvukovým senzorom robia:
Príklad 1:
[[Image:meraj_ultrazvuk.png|300px]]
V tomto prípade sme použili ''žltý'' - merací blok, ktorý len prečíta hodnotu zo senzora a cez konverzný blok túto hodnotu neustále zobrazuje na displeji. Takýto blok nič nerobí - iba meria.
Download: [[Media:meraj.zip|meraj.zip]]
Príklad 2:
[[Image:ultrazvuk_pipac.png|300px]]
Tu je ultrazvukový senzor použitý ako súčasť podmienky - ktorá program rozvetvuje na dva prípady. Ak sa nejaká prekážka nachádza vo vzdialanosti do 30cm pred senzorom, program pokračuje hornou vetvou, inak beží dolnou vetvou. Celé sa to neustále opakuje.
Výsledok je, že NXT kocka píska, kým je pred ňou prekážka.
Download: [[Media:signal.zip|signal.zip]]
Tento druhý spôsob využitia senzora budeme potrebovať v programe, ktorý sleduje čiaru a ak sa pred ním vyskytne prekážka, tak zastane a bude trúbiť, kým prekážka nezmizne.
[[Image:ciara_simon.png|550px]]
Download: [[Media:ciara_simon.zip|ciara_simon.zip]]
<youtube>NYMO5lbq_l8</youtube>
</div>
<div style="background-color: #F8F8FF;">
''štvrtok, 23.11.2017''
Matej dokreslil model robota v LDD.
[[Image:futbalista_model.png|500px]]
Download: [[Media:futbalbot.zip|futbalbot.zip]]
Marta rozobrala svojho robota a začína stavať nového robota. Jeho úlohou má byť rozvážať po meste tovar rôznych druhov. Pri obchode na robota naložíme tovar - jednu zo štyroch rôznych kociek:
[[Image:kocky.jpg|600px]]
Kocky sú dvoch druhov: svetlé a tmavé, ale niektoré z nich sú ľahké a niektoré sú ťažké. Treba vymyslieť, ako kocku robot odváži a potom dovezie na správne miesto na pláne.
Zatiaľ Marta zistila, že vážiť by sa dali pomocou dotykového senzora. Ak je kocka ľahká, nemá dosť tiaže na to, aby senzor stlačila, ak je ťažká, tak áno. Ešte k tomu treba vymyslieť vážiacu priehradku s vyklápačkou.
[[Image: kocka_lahka.jpg|300px]]
[[Image: kocka_tazka.jpg|300px]]
S Oliverom sme sa venovali programovaniu Androida. Namiesto 2500-riadkového príkladu na fotenie a ukladanie obrázkov do súboru sme začali s prázdnou aplikáciou, ktorá vie vyvolať fotenie obrázka a zobrazovať informácie. Naučili sme sa ako do prázdneho layoutu aplikácie pridat dalsie widgety, ako ich pouzit z programu a ako sa vyvolava fotenie z aplikacie. Zatial sa nam to ale nepaci, lebo to foti stale dookola a vyzaduje si kliknutie na dotykovy displej. Musime to skusit asi nejak inak - tahat obrazky priamo z hardveru...  tie layouty sa s nami tiez este velmi nekamaratia, takze budeme pokracovat.
</div>
<div style="background-color: #F8FFF8;">
''utorok, 28.11.2017''
Aj dnes pokračoval v sérií neočakávaných návštev, prišiel za nami Krotiteľ hadov aj s principálom. Dúfame, že nám pomôže v programovaní, lebo RoboCup sa začína prudko blížiť. S Androidom sme bojovali ďalej, naučili sme sa zobraziť messagebox s tlačidlami, čo nám dobre poslúži pri ladení programov:
<syntaxhighlight lang="java">
    private void msgbox(String sprava) {
        AlertDialog.Builder builder;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            builder = new AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog_Alert);
        } else {
            builder = new AlertDialog.Builder(this);
        }
        builder.setTitle("Sprava")
                .setMessage(sprava)
                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // continue with delete
                    }
                })
                .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // do nothing
                    }
                })
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();
    }
</syntaxhighlight>
Zistili sme, že kamerová aplikácia po odfotení a potvrdení obrázka zatvorí celú aplikáciu, zatiaľ nevieme prečo. Hcoi aj tak potrebujeme snímať obraz z kamery priamo, mohli by sme na to aj tak prísť.
Filip, Šimon a Martin dostali úlohu upraviť roboty tak, aby sa na ihrisku vyhli, keď idú oproti sebe. Tu je výsledok:
[[Image:stretnutie_robotov.png|600px]]
Download: [[Media:stretnutie_robotov.zip|stretnutie_robotov.zip]]
Na videu vidieť rozličné verzie, ktoré nie všetky ešte fungovali správne. Na začiatku je výsledná verzia, ktorá funguje pomerne spoľahlivo, nasleduje verzia, kde sa ultrazvukový senzor "díva" priďaleko, potom v ďalšej naopak iba príliš blízko, v ďalších dvoch
ukážkach sa roboty zoradili namiesto toho, aby sa obišli, a posledné dve ukážky sú už v poriadku, aj keď vyhýbanie je trochu pritesné.
<youtube>2WDm4mJBvN4</youtube>
</div>
<div style="background-color: #F0FFFF;">
''Štvrtok, 30.11.2017''
Samo dnes spravil program pre trezor:
Download: [[Media:Trezor.zip|Trezor.zip]]
ktorý stavia Matej:
[[Image:trezor_verzia1.jpg|400px]]
Marta pokračovala v stavaní váhy, len nám trochu v tom snehu navlhla. :)
Dnes prišiel aj Peter, ktorý naprogramoval niekoľko programov s ultrazvukovým senzorom.
Oliver priniesol zapojenie s vlhkomerom a teplomerom DHT11, tak sme zapojenie opravili a vyskúšali:
[[Image:meranie_dht11.png|400px]]
[[Image:zapojenie_dht11.jpg|400px]]
použili sme túto knižnicu: [https://brainy-bits.com/blogs/tutorials/dht11-tutorial DHT Arduino Library]
<syntaxhighlight lang="c">
#include <dht.h>
#define dht_apin A0 // Analog Pin sensor is connected to
dht DHT;
void setup(){
  Serial.begin(9600);
  delay(500);//Delay to let system boot
  Serial.println("DHT11 Humidity & temperature Sensor\n\n");
  delay(1000);//Wait before accessing Sensor
}//end "setup()"
void loop(){
  //Start of Program
    DHT.read11(dht_apin);
   
    Serial.print("Current humidity = ");
    Serial.print(DHT.humidity);
    Serial.print("%  ");
    Serial.print("temperature = ");
    Serial.print(DHT.temperature);
    Serial.println("C  ");
   
    delay(5000);//Wait 5 seconds before accessing sensor again.
  //Fastest should be once every two seconds.
}// end loop()
</syntaxhighlight>
<div>

Aktuálna revízia z 17:00, 5. december 2017

štvrtok, 2.11.2017

Matej s Oliverom pracovali na veľkej robotickej ruke.

Oliver priniesol svoju arduinovú stavebnicu so zapojeným displejom a teplomerom a spolu sme naprogramovali zobrazovanie teploty na displeji.

Marta vylepšovala svoje autonómne vozidlo.

utorok, 7.11.2017

Marta doladila svoj program, pre robota ktorý vozí pasažierov, aby fungoval spoľahlivo a zastavoval na zastávkach a na zmenie.

Hotovy program marta.png

autonomne_vozidlo.zip

Po ceste.jpg

Chlapi programovali robota, aby jazdil po ceste. Zatiaľ sa pri fabrike len otočil a išiel do lunaparku. :)

Program po ceste.png

po_ceste.zip

štvrtok, 9.11.2017

Dnes sa Marta naučila pracovať s premennými. Tu sú dva príklady na použitie premenných:

Prvý program používa jeden kufrík pocet. Na začiatku do neho uloží číslo 1. Potom opakuje neustále toto:

  • hodnotu, ktorá je uložená v kufríku vyberie a zobrazí ju na displeji
  • počká, kým sa nestlačí dotykový senzor
  • vyberie hodnotu uloženú v kufríku, zvýši ju o 1 a výsledok zasa schová do kufríka

Kufre.png

kurfre: kufre.zip

Tento program sme ďalej upravili tak, aby program pri každom opakovaní cyklu - čiže po každom stlačení senzora - zahral nejaký zvuk, ale vždy iný - podľa hodnoty, ktorá je práve uložená v kufríku. Využijeme na to podmienku, ktorá sa nerozhoduje podľa hodnoty senzora, ako sme ju doteraz väčšinou používali, ale podľa hodnoty, ktorú do nej privedieme dátovým káblikom. Navyše, podmienku prepneme do kartičkového zobrazenia, ktoré nám dovoľuje pridať aj viac ako dve alternatívne cesty - môžeme si popridávať toľko kartičiek, koľko potrebujeme - pre každú hodnotu z kufra jednu:

Zvuky.png

zvuky: zvuky.zip

Premenné vo svojom robotovi využila tak, že na každej zastávke vydá vozidlo iný zvuk.

jazda so zvukmi: jazda_so_zvukmi.zip

Matej poskladal konštrukciu futbalistického robota:

Matejov futbalista.jpg

utorok, 14.11.2017

Maris pracoval na svojom diaľkovo-ovládanom vozidle, ktoré vzniklo zjednodušením pôvodného ťažkopádnejšieho autobusu.

Matej s Oliverom otestovali dribler s oranžovou futbalovou loptou, ktorú sme si požičali z Fablabu a spevňovali konštrukciu robota. Asi ho bude treba upraviť, lebo do 22cm válca vôjde len veľmi tesne, alebo skôr nevôjde.

Marta pridala na svoj autonómny automobil ukrajinskú vlajku, ktorou neustále máva.

Auto s vlajkou.png

Pri tej príležitosti sa naučila pracovať s paralelnými procesmi na NXT:

Priklad paralelne procesy.png

V tomto príklade sa na displeji zobrazujú dve rôzne ikonky smajlíkov a súčasne s tým, v paralelnom procese v inom rytme NXT vydáva dva rôzne zvuky.

Download: priklad_paralelne_procesy.zip

Výsledný program pre autonómne vozidlo, ktoré máva vlajočkou:

Download: auto_s_vlajkou.zip

Martin upravil robota, ktorý jazdí po ceste tak, aby využíval senzor na kraji a jazdil po pravom okraji cesty. Tým pádom sa mu nestáva, že by na okraj najachal pod ťažko zvládnutelným natočením.

Cesta po okraji.png

Download: cesta_po_okraji.zip

Po posunutí senzora už auto spoľahlivo jazdilo opakovane dookola a zastavuje na zastávkach.

štvrtok, 16.11.2017

Matej sa s veľkou radosťou pustil do skladania modelov misií FLL pre bratislavský turnaj, Marta s Oliverom mu pomáhali a už je to skoro celé hotovo!

Sada fll.jpg

Dnes nás prišiel navštíviť aj Patrik so svojím zaujímavým jánošíkovským účesom :-), prišiel si vziať odloženého drona z tábora a pomáhal Marisovi v programovaní riadenia jeho automobilu cez BT.

Oliver sa pustil do programovania simulovaného futbalu na kocke NXT a výsledok je celkom pekný! Matej mu k tomu zostrojil geniálny joystick, ktorý v pohode jazdí nielen kolmo ale aj do šikmých smerov:

Joystick1.jpg Joystick2.jpg

Oliver: Hra by me.

Futbal program.png

Download: futbal.zip

utorok, 21.11.2017

Dnes nás prišiel navštíviť mimoriadny hosť, ružový panter osobne! :-)

Oliarobt.jpg

a okrem toho, že nám popájkoval arduinko :-) pomohol Marte dostavať zvyšné modely pre bratislavský turnaj FLL.

Matej usilovne modeloval futbalistického robota v Lego Digital Designeri, tešíme sa na výsledok čoskoro!

Ľubo, Filip, Gregor, Martin a Šimon riešili úlohu zastavovania robota, ktorý jazdí po čiare na prekážkach.

Najlepšie na to išiel Šimon: najskôr na jednoduchých príkladoch vyskúšal, čo jednotlivé bloky, ktoré pracujú s ultrazvukovým senzorom robia:

Príklad 1:

Meraj ultrazvuk.png

V tomto prípade sme použili žltý - merací blok, ktorý len prečíta hodnotu zo senzora a cez konverzný blok túto hodnotu neustále zobrazuje na displeji. Takýto blok nič nerobí - iba meria.

Download: meraj.zip

Príklad 2:

Ultrazvuk pipac.png

Tu je ultrazvukový senzor použitý ako súčasť podmienky - ktorá program rozvetvuje na dva prípady. Ak sa nejaká prekážka nachádza vo vzdialanosti do 30cm pred senzorom, program pokračuje hornou vetvou, inak beží dolnou vetvou. Celé sa to neustále opakuje. Výsledok je, že NXT kocka píska, kým je pred ňou prekážka.

Download: signal.zip

Tento druhý spôsob využitia senzora budeme potrebovať v programe, ktorý sleduje čiaru a ak sa pred ním vyskytne prekážka, tak zastane a bude trúbiť, kým prekážka nezmizne.

Ciara simon.png

Download: ciara_simon.zip

štvrtok, 23.11.2017

Matej dokreslil model robota v LDD.

Futbalista model.png

Download: futbalbot.zip

Marta rozobrala svojho robota a začína stavať nového robota. Jeho úlohou má byť rozvážať po meste tovar rôznych druhov. Pri obchode na robota naložíme tovar - jednu zo štyroch rôznych kociek:

Kocky.jpg

Kocky sú dvoch druhov: svetlé a tmavé, ale niektoré z nich sú ľahké a niektoré sú ťažké. Treba vymyslieť, ako kocku robot odváži a potom dovezie na správne miesto na pláne.

Zatiaľ Marta zistila, že vážiť by sa dali pomocou dotykového senzora. Ak je kocka ľahká, nemá dosť tiaže na to, aby senzor stlačila, ak je ťažká, tak áno. Ešte k tomu treba vymyslieť vážiacu priehradku s vyklápačkou.

Kocka lahka.jpg Kocka tazka.jpg

S Oliverom sme sa venovali programovaniu Androida. Namiesto 2500-riadkového príkladu na fotenie a ukladanie obrázkov do súboru sme začali s prázdnou aplikáciou, ktorá vie vyvolať fotenie obrázka a zobrazovať informácie. Naučili sme sa ako do prázdneho layoutu aplikácie pridat dalsie widgety, ako ich pouzit z programu a ako sa vyvolava fotenie z aplikacie. Zatial sa nam to ale nepaci, lebo to foti stale dookola a vyzaduje si kliknutie na dotykovy displej. Musime to skusit asi nejak inak - tahat obrazky priamo z hardveru... tie layouty sa s nami tiez este velmi nekamaratia, takze budeme pokracovat.

utorok, 28.11.2017

Aj dnes pokračoval v sérií neočakávaných návštev, prišiel za nami Krotiteľ hadov aj s principálom. Dúfame, že nám pomôže v programovaní, lebo RoboCup sa začína prudko blížiť. S Androidom sme bojovali ďalej, naučili sme sa zobraziť messagebox s tlačidlami, čo nám dobre poslúži pri ladení programov:

    private void msgbox(String sprava) {
        AlertDialog.Builder builder;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            builder = new AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog_Alert);
        } else {
            builder = new AlertDialog.Builder(this);
        }
        builder.setTitle("Sprava")
                .setMessage(sprava)
                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // continue with delete
                    }
                })
                .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // do nothing
                    }
                })
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();
    }

Zistili sme, že kamerová aplikácia po odfotení a potvrdení obrázka zatvorí celú aplikáciu, zatiaľ nevieme prečo. Hcoi aj tak potrebujeme snímať obraz z kamery priamo, mohli by sme na to aj tak prísť.

Filip, Šimon a Martin dostali úlohu upraviť roboty tak, aby sa na ihrisku vyhli, keď idú oproti sebe. Tu je výsledok:

Stretnutie robotov.png

Download: stretnutie_robotov.zip

Na videu vidieť rozličné verzie, ktoré nie všetky ešte fungovali správne. Na začiatku je výsledná verzia, ktorá funguje pomerne spoľahlivo, nasleduje verzia, kde sa ultrazvukový senzor "díva" priďaleko, potom v ďalšej naopak iba príliš blízko, v ďalších dvoch ukážkach sa roboty zoradili namiesto toho, aby sa obišli, a posledné dve ukážky sú už v poriadku, aj keď vyhýbanie je trochu pritesné.

Štvrtok, 30.11.2017

Samo dnes spravil program pre trezor:

Download: Trezor.zip

ktorý stavia Matej:

Trezor verzia1.jpg

Marta pokračovala v stavaní váhy, len nám trochu v tom snehu navlhla. :)

Dnes prišiel aj Peter, ktorý naprogramoval niekoľko programov s ultrazvukovým senzorom.

Oliver priniesol zapojenie s vlhkomerom a teplomerom DHT11, tak sme zapojenie opravili a vyskúšali:

Meranie dht11.png

Zapojenie dht11.jpg

použili sme túto knižnicu: DHT Arduino Library

#include <dht.h>

#define dht_apin A0 // Analog Pin sensor is connected to
 
dht DHT;
 
void setup(){
 
  Serial.begin(9600);
  delay(500);//Delay to let system boot
  Serial.println("DHT11 Humidity & temperature Sensor\n\n");
  delay(1000);//Wait before accessing Sensor
 
}//end "setup()"
 
void loop(){
  //Start of Program 
 
    DHT.read11(dht_apin);
    
    Serial.print("Current humidity = ");
    Serial.print(DHT.humidity);
    Serial.print("%  ");
    Serial.print("temperature = ");
    Serial.print(DHT.temperature); 
    Serial.println("C  ");
    
    delay(5000);//Wait 5 seconds before accessing sensor again.
 
  //Fastest should be once every two seconds.
 
}// end loop()