AplTVY3: Porovnání verzí
(Není zobrazeno 189 mezilehlých verzí od 2 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: | [[Soubor:D10_AplTVYII_s.jpg|thumb|left|AplTVY]] | ||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | ''''' | |||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Tématický plán''''' | |||
|- | |||
| | |||
T0 - BOZP – řády odborných učeben | |||
T1 – Popis vývoje mikropočítačové aplikace | |||
T2 – V/v brány, jejich vlastnosti a využití | |||
T3 – Tvorba programu pro výstupní moduly | |||
T4 – Vývoj mikroprocesorové aplikace – LED | |||
T5 – Časové zpoždění | |||
T6 – Vstupní moduly – tvorba programu pro vstupní moduly | |||
T7 – Vývoj mikroprocesorové aplikace – test vstupů | |||
T8 – Programování aplikace | |||
T9 – Naprogramování mikropočítače | |||
T10 – Vývoj mikroprocesorové aplikace – čidlo světla | |||
T11 – Vývoj mikroprocesorové aplikace – 7 segment | |||
T12 – Vývoj mikroprocesorové aplikace – motory | |||
T13 – Vývoj mikroprocesorové aplikace – čidlo teploty | |||
T14 - Opakování | |||
[[Soubor:PovinnaPrace_NavrhMIT_aplikace.png|150px|link=PP_-_Návrh_MIT_aplikace]] | |||
[[Soubor:PovinnaPrace_VyvojMIT_aplikace.png|50px|link=Vývoj MIT aplikace]] | |||
|} | |||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Otázky k opakování''''' | |||
|- | |||
| | |||
# - Nakreslete vývojový diagram pro log. funkce NOT, AND, OR, XOR | |||
# - Nakreslete vývojový diagram pro log. funkci n=3 y = 1 pro i = {1,3,6,7 (4)} | |||
# - Nakreslete vývojový diagram pro log. funkci n=4 y = 1 pro i = {1,2,5,6,12,13 (4,11,15)} | |||
# - Naprogramujte MCU pro blikání LED (blikačka) | |||
# - Naprogramujte MCU pro ovládání akustického měniče (bzučák) | |||
# - Modifikujte program pro MCU ovládající křižovatku | |||
# - Vyberte vhodného dodavatel elektronických součástek (R,C,D,IO) | |||
# - Analyzujte zapojení s MCU na UNi desce [[VYV50]] | |||
# - Vyzkoušejte program pro ovládání 7segmentovky | |||
# - Vyzkoušejte program pro ovládání ss motoru a krokového motoru | |||
|} | |||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Domácí úkoly 2021-22:''''' | |||
|- | |- | ||
| | | | ||
22.2 | |||
dle návodu na http://wiki.sps-pi.cz/index.php/IBM-IoT#postup si nainstalujte v cloudu nebo lokálně Node-RED. Odevzdejte výsledné PrtScr dle vzoru v příloze (samozřejmě s vašimi údaji "d:org:device_type:device_ID"; např.: "d:3yaaz5:wemos:metostanice"; | |||
1.3. V [[Tinkercad]]u vyzkoušejte postupně zapojení s LED, Button, LDR, 18B20, TMP35 ......tak, aby zjištěná hodnota výstupní proměnné nebo její stav byla vyposílána na seriový port (monitor). Lze otestovat i s [[ESP8266]] v [[Wokwi]]. [https://youtu.be/L1A_yhO9Fo4 YT: Arduino Online Simulator Free Arduino and ESP32 by Wokwi ] Odevzdejte všechny výsledné PrtScr. | |||
| | |} | ||
|- style=" | {| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | ||
|''' | | colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Domácí úkoly 2020-21:''''' | ||
| | |- | ||
| | |||
14.9. | |||
Dohledat SP z předmětů HW a PRAI, přinést sešit | |||
od pondělí 12.10.2020 zítra (a příští týden skupina PSP) se koná dle rozvrhu prezenční výuka předmětu "praktická cvičení" v PC učebně VYT5. Kdyby jste se (z nějakých důvodů) nemohli dostavit, budu rád, když se zúčastníte výuky alespoň distančně a budete mít na svých PC nainstalován program Deeds (testování seminární práce na návrh SLO) a IDE (vývojové prostředí) pro tvorbu programu v JSA (jazyk symbolických adres - assembler) procesoru 8051 (např. MCU 8051 IDE, EdSIM51, Ride..............) a pro skupinu PSP také IDE pro ATmega328 (je v Arduinu). Výuka poběží tedy paralelně a do třídní knihy zapíši absenci jen těm, kteří nebudu ani prezenčně (určitě upřednostňuji) a ani distančně na vyučování. | |||
7.12. | |||
V odpovědi odevzdejte PrtScr ukázky nepřímého adresování v libovolném IDE, t.j úkolem je uskutečnit zápis dat do místa v RAM, kde nelze použít přímé adresování. V případě použití MCU8051IDE je úkolem uložit číslo na adresu 80h. | |||
21.12. | |||
Nakreslit blok. schéma CPU s jádrem AVR včetně | |||
popisu funkce jednotlivých částí (obr. ve stylu jako v příloze). Pozor CPU ne MCU! | |||
pozn. DÚ jen pro ty, kteří nejsou spokojeni se známkou z dnešního testu. | |||
18.1. | |||
V odpovědi odevzdejte PrtScr ukázky práce s aritmetickou operací ADD. Příklady: -84 +60, -84+100, 84+100, -84-100 atd. Sledujte hlavně C a OV. | |||
22.2. | |||
odevzdejte minimálně jedno řešení z úkolů: | |||
1) vyzkoušení log. funkcí v asm (ANL, ORL, XRL, CPL) - natočit videoscreen testování programu (MT, OBS, Bandicam) | |||
2) bin čítač s omezením do 500us (videscreen) | |||
3) desítkový čítač 0->9 (videscreen) | |||
4) desítkový čítač 00 -> 99 (videscreen) | |||
5) modifikované *.ino pro DHT11 + json | |||
6) přidané zařízení (PrtScr) | |||
7) nastavení CloudFoundry apps/services (PrtScr) | |||
8) nastavení Node-Red pro DHT11 | |||
15.3.Test-PRA3rPSPv01 | |||
31.3.Odevzdejte řešení ukazující využití zpoždění s dvěma (alt. 3mi) registry v IDE pro MCU ATmeg328 | |||
7.6.2021: program v asm pro blikání LED o f = 5Hz. | |||
21.6.2021: program v asm, kde po zmáčknutí tlačítka připojené na pin 2. LED na pinu 13 3x zabliká a opět čeká na aktivaci od tlačítka | |||
SW: MS Teams, Deeds, MCU 8051 IDE, zdroj info: http://wiki.sps-pi.cz/AplTVY3 | |||
Pozn.: [[Domácí úkoly|Jak odevzdávat domácí úkoly]] | |||
|} | |||
|- style=" | {| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | ||
| ''' | | colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Domácí úkoly 2019-20:''''' | ||
|- | |||
| | | | ||
1. Postupně v aplikaci [https://www.tinkercad.com/learn/project-gallery;collectionId=OMOZACHJ9IR8LRE TinkerCad] vyzkoušejte úkoly tak, aby jste zvládli (např. u praktické maturity) zapojit na [[KNP]] a naprogramovat mikroprocesorovou aplikaci s LED, RGB, tlačítkem, potenciometrem, PIR, LDR, čidle teploty, PING, servem, krokovým motorem atd. Každý úspěšný experiment zpracujte v postupně rozšiřující dokumentaci. Mikroprocesor lze použit: [[Arduino]], [[PICAXE]], [[8051]] apod. | |||
[[Soubor:LearnArduino.png|link=https://1url.cz/kzWKG]] | |||
2. Podívejte se na výsledky letošního školního a krajského kola SOČ [[SOČ 2020]] | |||
3. Do odpovědi na tento úkol zkopírujte link na video prezentaci SOČ práce, která vás nejvíce zaujala. | |||
Pozn.: Soutěží se v 18ti vědních oborech. Letos museli soutěžící natočit video o své práci a umístit na YT. (vyhledávací slova: Středoškolská odborná činnost a číslo oboru (10, 18 ....)) . Např. pro obor Elektrotechnika: Středoškolská odborná činnost 10 (https://bit.ly/2yaQ9m7) nebo pro obor Informatika: Středoškolská odborná činnost 18 (https://bit.ly/2Sj8wME) | |||
4. Nakreslete blokové schéma mikroprocesorové aplikace, kterou dokážete sestavit na KNP a naprogramovat (MCU, vstupní čidla, výstupní moduly). Zde v odpovědi odevzdejte PrtScr. | |||
|} | |||
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | |||
== Cvičení == | |||
{{#widget:YouTube|id=8yAOTUY9t10|height=270|width=360|Popis|right}} | |||
--------------------------------------------------------------------------------------------------------------- | |||
<Gallery> | |||
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V | |||
Soubor:PICAXE-vyv-diagram_01.jpg|[[PICAXE]] - Blik | |||
Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT | |||
</gallery> | |||
=== [https://www.tinkercad.com TinkerCAD] === | |||
[[Soubor:LearnArduino.png|right|link=https://1url.cz/kzWKG]] | |||
<gallery> | |||
Soubor:tinkercad02.jpg|https://www.tinkercad.com | |||
Soubor:tinkercad03.jpg | |||
Soubor:tinkercad09.jpg | |||
Soubor:tinkercad10.jpg | |||
</gallery> | |||
|- | === [[Atmel Studio]] === | ||
| | |||
[[Soubor:Atmel-studio.png|IDE|100px]] [[Soubor:Atmel-studio_1.png|IDE|300px]] | |||
[https://www.microchip.com/en-us/tools-resources/develop/microchip-studio#Downloads download] | |||
=== [https://wokwi.com/ wokwi] === | |||
<gallery> | |||
Soubor:wokwi_AVR_01.jpg|[https://wokwi.com/projects/392695146694098945 7segment] | |||
</gallery> | |||
=== Ovládání 7segmentovky s [[ATmega328]] na desce [[Arduino]] === | |||
<Gallery> | |||
Soubor:ARD21-sch.png|[[ARD21]][[:Soubor:ARD21-pcb.png|PCB]] | |||
Soubor:Multifunctional Expansion Board.png|[[:Soubor:MFEB-schematic.png|schéma]] + [[:Soubor:MFEB-example.pdf|příklady]] | |||
</Gallery> | |||
=== Popis zapojení a funkce uni desky [[VYV50]] === | |||
<Gallery> | |||
soubor:VYV-deska-AVR-ATmega16-07.jpg|UNI deska [[VYV50]] | |||
Soubor:proficad-RD2KIT-01.png|kreslení blokových schémat v [[ProfiCAD]] | |||
</Gallery> | |||
[[Soubor:Arduino-ATmega328Pinout.png|400px|ATmega328 Pinout]] | |||
[[Soubor:ATmega328Pinout.png|400px|ATmega328 Pinout]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
==== Assembly via Arduino ==== | |||
[[Soubor:Anas_Kuzechie_Projects.png|300px|link=https://akuzechie.blogspot.com/|Anas Kuzechie Projects]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
====How to Flash or Program Arduino from Atmel Studio?==== | |||
https://www.arnabkumardas.com/platforms/atmel/how-to-flash-or-program-arduino-from-atmel-studio/ | |||
[[Soubor:HowtoFlash.png|link=https://www.arnabkumardas.com/platforms/atmel/how-to-flash-or-program-arduino-from-atmel-studio/]] | |||
[[Soubor:SetAtmmelStudio.png|400px|nastavení Atmmel Studia - Send to Arduino]] | |||
text k vyplnění: | |||
Send to Arduino UNO | |||
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe | |||
-C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM3 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i | |||
[[Soubor:SetAtmmelStudio-IDE.png|400px|export z Arduino IDE]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== [http://rjhcoding.com/ rjhcoding] === | |||
[[Soubor:rjhcoding.jpg|link=http://rjhcoding.com/]] | |||
* [http://rjhcoding.com/avr-asm-light-an-led.php Example Program #1: LED] | |||
* [http://rjhcoding.com/avr-asm-registers.php Working With Registers R0-R31] | |||
* [http://rjhcoding.com/avr-asm-led-blink.php Example Program #3: Blink] | |||
* [http://rjhcoding.com/avr-asm-sreg.php The Status Register] | |||
* [http://rjhcoding.com/avr-asm-program-flow.php Conditional Branching] | |||
* [http://rjhcoding.com/avr-asm-delay-subroutine.php Example Program #4: Delay Subroutine] | |||
* [http://rjhcoding.com/avr-asm-io.php Working With I/O Registers] | |||
* [http://rjhcoding.com/avr-asm-sram.php Working With Extended I/O And SRAM] | |||
* [http://rjhcoding.com/avr-asm-pm.php Loading Data from Program Memory] | |||
--------------------------------------------------------------------------------------------------------------- | |||
[[Soubor:AVRdelay.png|500px|link=http://darcy.rsgc.on.ca/ACES/TEI4M/AVRdelay.html]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== Blink in C === | |||
https://wokwi.com/projects/354469641572834305 | |||
[[Soubor:atmega328p-blink_C.png|200px|right]] | |||
<source lang="c"> | |||
//#include <avr/io.h> //iom328p.h | |||
#include <util/delay.h> | |||
int main(){ | |||
_SFR_IO8(0x0A) = 0xFF; // #define DDRD _SFR_IO8(0x0A) | |||
// DDRB = 0xFF; | |||
_SFR_IO8(0x0B) = 0x00; // PORTD= 0x00; | |||
while(1){ | |||
PORTD |= (1 << PD0); | |||
PORTD |= (1 << PD2) | (1 << PD1); | |||
PORTD ^= (1 << PD3); | |||
PORTD |= (1 << PD5) & ~(1 << PD4); | |||
_delay_ms(1000); | |||
PORTD &= ~(1 << PD0); | |||
PORTD &= ~(1 << PD2) & ~(1 << PD1); | |||
PORTD ^= (1 << PD5) ^ (1 << PD4); | |||
_delay_ms(1000); | |||
} | |||
return 0; | |||
} | |||
</source> | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== Blink with Timer === | |||
https://wokwi.com/projects/354046396997507073 https://wokwi.com/projects/354556802672660481 | |||
[[Soubor:atmega328p-timers1.gif|200px|right]] | |||
{| | |||
|- | |||
| | | | ||
<source lang="asm"> | |||
;https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327 | |||
;https://wokwi.com/projects/354046396997507073 | |||
;funkční ;sbi PORTB,5 zde nefunguje | |||
#define __SFR_OFFSET 0x20 | |||
#include "avr/io.h" | |||
.global main | |||
main: rcall setup // zavolání funkce setup | |||
loop: | |||
COM R17 ; Complement R17 register | |||
STS PORTD, R17 ; Toggle the LED output | |||
rcall delay | |||
rjmp loop | |||
delay: | |||
LDI R16, 0xC2 | |||
STS TCNT1H, R16 ; Writing 0xC2 into TCNT1H (8-bit) | |||
LDI R16, 0xF7 | |||
STS TCNT1L, R16 ; Writing 0xF7 into TCNT1H (8-bit) | |||
LDI R16, 0x05 | |||
STS TCCR1B, R16 ; Writing 0x05 into TCCR1B | |||
L:LDS R0, TIFR1 ; Load the value of TIFR1 into R0 | |||
SBRS R0, 0 ; Skip the next statement if overflow has occured. | |||
RJMP L ; Loop until overflow occurs. | |||
LDI R16, 0x00 | |||
STS TCCR1B, R16 ; Stop the Timer/Counter1 | |||
LDI R16, 0x01 | |||
STS TIFR1, R16 ; Clear the overflow flag by writing 1 to it | |||
ret | |||
setup: | |||
LDI R16, 0xFF ; Setting bits of PORTD as output | |||
STS DDRD, R16 | |||
LDI R17, 0x55 | |||
STS PORTD, R17 ; Writing 0 to PORTD | |||
ret | |||
</source> | |||
| | |||
<source lang="c"> | |||
//https://wokwi.com/projects/354556802672660481 | |||
#include <avr/io.h> //iom328p.h | |||
#include <util/delay.h> | |||
int main(){ | |||
DDRD = 0xFF; // #define DDRD _SFR_IO8(0x0A) | |||
PORTD= 0x55; | |||
while(1){ | |||
PORTB ^= (1 << PD5); | |||
PORTD = ~PORTD; | |||
delay(); | |||
} | |||
return 0; | |||
} | |||
int delay(){ | |||
TCNT1H = 0xC2; | |||
TCNT1L = 0xF7; | |||
TCCR1B = 0x05; //prescaler 1024 | |||
while (!(TIFR1 & (1<< TOV1))); | |||
TCCR1B = 0x00; | |||
TIFR1 = 0x01; | |||
} | |||
</source> | |||
|- | |||
|} | |} | ||
[[Soubor: | === [https://www.arxterra.com/9-atmega328p-timers/ Interrupts and 16-bit Timer/Counter 1: ATmega328P Timing Subsystems] === | ||
https://www.arxterra.com/9-atmega328p-timers/ | |||
[[Soubor:atmega328p-timers3.png|600px|link:https://www.arxterra.com/9-atmega328p-timers/]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
===[https://www.youtube.com/watch?v=B-BsqpgtQWI IO interface of AVR]=== | |||
[[Soubor:IO_interface.jpg|500px|link=https://www.youtube.com/watch?v=B-BsqpgtQWI]] | |||
{{#widget:YouTube|id=B-BsqpgtQWI|height=270|width=360|IO interface of AVR|right}} | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== AVR Interrupts === | |||
{{#widget:YouTube|id=zViw6mMzEoA|height=270|width=360|AVR Interrupts|right}} | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== www === | |||
* [https://www.spshronov.cz/eusoubory2/dum_atmega32.pdf SPS Hronov - Atmega32] | |||
* [https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327 Arduino Blink Example in Assembly using Timer/Counter1] | |||
* [https://www.hackster.io/yeshvanth_muniraj/accessing-i-o-in-atmega328p-arduino-using-assembly-and-c-10e063#toc-sts---store-direct-to-data-space-5 Accessing I/O in ATmega328P (Arduino) using Assembly and C] | |||
* [http://www.elektromys.eu/clanky/avr_timer1/clanek.html Čítač / časovač 1 nejen na Attiny] | |||
* [http://www.8bit-era.cz/arduino-timer-interrupts-calculator.html Arduino Timer Interrupts Calculator] | |||
* [https://www.arduinoslovakia.eu/application/timer-calculator AVR Timer Interrupts Calculator (slovakia)] | |||
* [http://www.avr-asm-tutorial.net/avr_en/micro_beginner/4_Led_Timer/4_Led_Timer.html Lecture 4: Blinking a LED with a timer] | |||
* [https://svetelektro.com/clanky/pokrocile-programovanie-mikropocitacov-v-jazyku-c-diel-c1-763/ Pokročilé programovanie mikropočítačov v jazyku C. Diel č.1] | |||
--------------------------------------------------------------------------------------------------------------- | |||
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | |||
=== | '''== Archiv ==''' | ||
== [[ | === [[MCU]]: [[8051]]: === | ||
<gallery> | |||
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]] pro vývoj aplikací v asm/C | |||
Soubor:juego de instrucciones MCS-51.jpg|[http://www.alciro.org/alciro/microcontroladores-8051_24/guia-referencia-microcontroladores-8051_232.htm Instrucciones] | |||
Soubor:EDSIM-screen.png|[https://www.edsim51.com/ EdSim51] | |||
Soubor:ATM13.png|HW: [[ATM13|UNI board s 89S52]] | |||
Soubor:D10_HW_presto.jpg|Programátor: [[PRESTO]] SW: [[UP]] | |||
Soubor:D10_HW_USBasp.jpg|Programátor: [http://goo.gl/Ioozyz USBasp] SW: [[ProgISP]] | |||
</gallery> | |||
== | === Modifikace programu s 8051 === | ||
<Gallery> | |||
Soubor:Traffic_Light_auc.png|Křižovatka AUC | |||
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]] pro vývoj aplikací v asm/C | |||
Soubor:VYV50_LED_Traffic_Light2.jpg | |||
</Gallery> | |||
= | <source lang="asm"> | ||
loop: | |||
mov P0,#01010011 ;modifikovat dle LED | |||
mov P2,#11001100 ;modifikovat dle LED | |||
acall delay | |||
. | |||
. | |||
. | |||
sjmp loop | |||
z | delay: mov R0,#255d ;podprogram zpoždění | ||
skok2: mov R1,#5d | |||
skok1: mov R2,#5d | |||
skok: djnz R2,skok | |||
djnz R1,skok1 | |||
djnz R0,skok2 | |||
ret ;návrat z podprogramu | |||
end | |||
</source> | |||
=== | === Objednávka součástek === | ||
[[soubor:prehled_soucastek.png|400px]] | |||
* Prodejci součástek: | |||
** [http://www.gme.cz/ GME] Doporučujeme tuto společnost s prodejnami v Praze, Brně, Ostravě, Plzni a zásilkovým prodejem. | |||
** [http://www.tme.cz/TME TME] zásilkový prodej. | |||
** [http://www.soselectronic.cz/ SOS Electronic] zásilkový prodej. | |||
** [http://www.ges.cz/ GES Electronic] Společnost s prodejnami a zásilkovým prodejem. | |||
** [http://www.farnell.com Farnell] [http://www.rothsware.cz/web/farnell/ zastoupení] | |||
== Témata na cvičení do roku 2016 == | |||
ELE: | |||
<Gallery> | |||
Soubor:logo-elektronika.jpg|[[ELT1]] | |||
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V | |||
Soubor:OPVK_ZS_Elektronika_Blikac_05.jpg|[[Blikačka|555]] | |||
</Gallery> | |||
MIT: | |||
<Gallery> | |||
Soubor:Vyvoj-mit-001.jpg|[[8051]] s [[RD2 kit]] | |||
Soubor:nxt-2.jpg|[[NXT]] | |||
Soubor:MAT-POZADAVKY-PRA-ROBOT-UMIK.jpg|[[PICAXE|Robot Umík s PICAXE]] | |||
Soubor:Arduino_01.jpg|[[Arduino]] | |||
</Gallery> | |||
Bonus: | |||
<Gallery> | |||
Soubor:Registrace_OP01.jpg|[[Registrace na odborné praxe]] | |||
Soubor:Logo.JPG|[[LOGO]] | |||
Soubor:boebot.jpg|[[BOB]] | |||
Soubor:MOB03_05.png|[[Mobilní robot]] | |||
Soubor:SOC_2011_002.jpg|[[Robot RC-DC]] | |||
Soubor:Robotika-nameta-3piv2.jpg|[[3PI Robot]] | |||
Soubor:Robot-arduino_2WD.png|Robot 2WD (arduino) | |||
Soubor:Robot-arduino_RC_car.png|Tank DO (arduino) | |||
Soubor:Robot-arduino_RC_car_02.png|Car DO (arduino) | |||
</Gallery> | |||
--------------------------------------------------------------------------------------------------------------- | |||
== | === Otázky k opakování do roku 2016 === | ||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''TP do roku 2016''''' | |||
|- | |||
| | |||
* T1 - BOZP – řády odborných učeben | |||
** 1. pomoc [http://goo.gl/wABr1c Instruktážní video resuscitace ] z odkazem ze stránek [http://www.resuscitace.cz/%20%20 http://www.resuscitace.cz/] | |||
** [[Soubor:Icon-youtube.gif]] [https://www.youtube.com/watch?v=LIOjlbZgyeg Resuscitace dospělých] | |||
** Náplň činnosti v školním roce (představa o jednotlivých odděleních ) | |||
** Povinné práce, klasifikace v předmětu | |||
** [[SOČ]] a jiné soutěže http://wiki.sps-pi.com/soc | |||
* Elektronika | |||
** T2 – Přehled součástek R, C, více info: [[ELT1]] | |||
** T3 - Měřicí přístroje univerzální - měření el. veličin U, R Ohmův zákon | |||
** T4 – Polovodičové součástky - diody, tranzistory, Zenerova dioda | |||
** T5 – Stabilizátory - integrované stabilizátory napětí | |||
** T6 – Integrované obvody analogové – časovač 555 | |||
** T7 – Integrované obvody analogové – operační zesilovač | |||
** T8 – Možnosti řízení výstupem PC dalších technických zařízení | |||
* [[Vývoj MIT aplikace]] | |||
** T9 – Popis robota [[NXT]], prezentace robota, ukázka aplikací | |||
** T10 – Vývoj aplikace s robotem [[NXT]], zadání úloh – bludiště | |||
** T11 – Realizace robotické sestavy | |||
** T12 – Vývoj aplikace s robotem [[NXT]] zadání úloh – sekačka | |||
** T13 – Aplikace s robotem pro plnění úkolů „rescue robot“ | |||
** T14 – Popis robota [[BOB]] prezentace robota Boe-Bot ukázka aplikací | |||
** T15 – Vývoj aplikace s robotem [[BOB]] zadání úloh – bludiště | |||
* T16 - Vývoj aplikace s robotickou rukou L601 prezentace | |||
* T17 - Opakování | |||
|} | |||
== Otázky k opakování do roku 2016== | |||
===HW=== | |||
# Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace | |||
# Otestuje AKO s časovačem 555 | |||
# Popište funkci operačního zesilovače | |||
# Proveďte návrh schéma zapojení s blikající LED (klasické řešení versus mikroprocesorové) | |||
# Navrhněte připojení 7segmentovky k MCU | |||
== | ===SW=== | ||
# Napište program pro blikání jedné (a více) LED | |||
# Připojte a otestujte čidlo dotyku (vzdálenosti, světla) s MCU | |||
# Napište program pro test funkčnosti čidla světla | |||
# Navrhněte a otestujte aplikaci ovládající motor (stejnosměrný, krokový) | |||
# Popište postup vývoje mikroprocesorové aplikace | |||
== White Board do roku 2016 == | |||
<gallery> | |||
Soubor:AplTVY3_Board_01.jpg | |||
Soubor:AplTVY3_Board_02.jpg | |||
Soubor:AplTVY3_Board_03.jpg | |||
Soubor:AplTVY3_Board_04.jpg | |||
Soubor:AplTVY3_Board_05.jpg | |||
Soubor:AplTVY3_Board_06.jpg | |||
Soubor:AplTVY3_Board_07.jpg | |||
Soubor:AplTVY3_Board_09.jpg | |||
</gallery> | |||
== Inspirace == | |||
[http://projects.adamh.cz/ projects.adamh.cz] | |||
Aktuální verze z 18. 3. 2024, 11:42
Tématický plán | |
T0 - BOZP – řády odborných učeben T1 – Popis vývoje mikropočítačové aplikace T2 – V/v brány, jejich vlastnosti a využití T3 – Tvorba programu pro výstupní moduly T4 – Vývoj mikroprocesorové aplikace – LED T5 – Časové zpoždění T6 – Vstupní moduly – tvorba programu pro vstupní moduly T7 – Vývoj mikroprocesorové aplikace – test vstupů T8 – Programování aplikace T9 – Naprogramování mikropočítače T10 – Vývoj mikroprocesorové aplikace – čidlo světla T11 – Vývoj mikroprocesorové aplikace – 7 segment T12 – Vývoj mikroprocesorové aplikace – motory T13 – Vývoj mikroprocesorové aplikace – čidlo teploty T14 - Opakování |
Otázky k opakování | |
|
Domácí úkoly 2021-22: | |
22.2 dle návodu na http://wiki.sps-pi.cz/index.php/IBM-IoT#postup si nainstalujte v cloudu nebo lokálně Node-RED. Odevzdejte výsledné PrtScr dle vzoru v příloze (samozřejmě s vašimi údaji "d:org:device_type:device_ID"; např.: "d:3yaaz5:wemos:metostanice"; 1.3. V Tinkercadu vyzkoušejte postupně zapojení s LED, Button, LDR, 18B20, TMP35 ......tak, aby zjištěná hodnota výstupní proměnné nebo její stav byla vyposílána na seriový port (monitor). Lze otestovat i s ESP8266 v Wokwi. YT: Arduino Online Simulator Free Arduino and ESP32 by Wokwi Odevzdejte všechny výsledné PrtScr.
|
Domácí úkoly 2020-21: | |
14.9. Dohledat SP z předmětů HW a PRAI, přinést sešit od pondělí 12.10.2020 zítra (a příští týden skupina PSP) se koná dle rozvrhu prezenční výuka předmětu "praktická cvičení" v PC učebně VYT5. Kdyby jste se (z nějakých důvodů) nemohli dostavit, budu rád, když se zúčastníte výuky alespoň distančně a budete mít na svých PC nainstalován program Deeds (testování seminární práce na návrh SLO) a IDE (vývojové prostředí) pro tvorbu programu v JSA (jazyk symbolických adres - assembler) procesoru 8051 (např. MCU 8051 IDE, EdSIM51, Ride..............) a pro skupinu PSP také IDE pro ATmega328 (je v Arduinu). Výuka poběží tedy paralelně a do třídní knihy zapíši absenci jen těm, kteří nebudu ani prezenčně (určitě upřednostňuji) a ani distančně na vyučování.
21.12. Nakreslit blok. schéma CPU s jádrem AVR včetně popisu funkce jednotlivých částí (obr. ve stylu jako v příloze). Pozor CPU ne MCU! pozn. DÚ jen pro ty, kteří nejsou spokojeni se známkou z dnešního testu. 18.1. V odpovědi odevzdejte PrtScr ukázky práce s aritmetickou operací ADD. Příklady: -84 +60, -84+100, 84+100, -84-100 atd. Sledujte hlavně C a OV. 22.2. odevzdejte minimálně jedno řešení z úkolů: 1) vyzkoušení log. funkcí v asm (ANL, ORL, XRL, CPL) - natočit videoscreen testování programu (MT, OBS, Bandicam) 2) bin čítač s omezením do 500us (videscreen) 3) desítkový čítač 0->9 (videscreen) 4) desítkový čítač 00 -> 99 (videscreen) 5) modifikované *.ino pro DHT11 + json 6) přidané zařízení (PrtScr) 7) nastavení CloudFoundry apps/services (PrtScr) 8) nastavení Node-Red pro DHT11 15.3.Test-PRA3rPSPv01 31.3.Odevzdejte řešení ukazující využití zpoždění s dvěma (alt. 3mi) registry v IDE pro MCU ATmeg328 7.6.2021: program v asm pro blikání LED o f = 5Hz. 21.6.2021: program v asm, kde po zmáčknutí tlačítka připojené na pin 2. LED na pinu 13 3x zabliká a opět čeká na aktivaci od tlačítka
Pozn.: Jak odevzdávat domácí úkoly |
Domácí úkoly 2019-20: | |
1. Postupně v aplikaci TinkerCad vyzkoušejte úkoly tak, aby jste zvládli (např. u praktické maturity) zapojit na KNP a naprogramovat mikroprocesorovou aplikaci s LED, RGB, tlačítkem, potenciometrem, PIR, LDR, čidle teploty, PING, servem, krokovým motorem atd. Každý úspěšný experiment zpracujte v postupně rozšiřující dokumentaci. Mikroprocesor lze použit: Arduino, PICAXE, 8051 apod. 2. Podívejte se na výsledky letošního školního a krajského kola SOČ SOČ 2020 3. Do odpovědi na tento úkol zkopírujte link na video prezentaci SOČ práce, která vás nejvíce zaujala. Pozn.: Soutěží se v 18ti vědních oborech. Letos museli soutěžící natočit video o své práci a umístit na YT. (vyhledávací slova: Středoškolská odborná činnost a číslo oboru (10, 18 ....)) . Např. pro obor Elektrotechnika: Středoškolská odborná činnost 10 (https://bit.ly/2yaQ9m7) nebo pro obor Informatika: Středoškolská odborná činnost 18 (https://bit.ly/2Sj8wME) 4. Nakreslete blokové schéma mikroprocesorové aplikace, kterou dokážete sestavit na KNP a naprogramovat (MCU, vstupní čidla, výstupní moduly). Zde v odpovědi odevzdejte PrtScr. |
Cvičení
-
Stabilizovaný zdroj +5V
-
PICAXE - Blik
-
2x IN, 2 x OUT
TinkerCAD
Atmel Studio
wokwi
Ovládání 7segmentovky s ATmega328 na desce Arduino
Popis zapojení a funkce uni desky VYV50
Assembly via Arduino
How to Flash or Program Arduino from Atmel Studio?
https://www.arnabkumardas.com/platforms/atmel/how-to-flash-or-program-arduino-from-atmel-studio/
text k vyplnění: Send to Arduino UNO C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe -C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM3 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
rjhcoding
- Example Program #1: LED
- Working With Registers R0-R31
- Example Program #3: Blink
- The Status Register
- Conditional Branching
- Example Program #4: Delay Subroutine
- Working With I/O Registers
- Working With Extended I/O And SRAM
- Loading Data from Program Memory
Blink in C
https://wokwi.com/projects/354469641572834305
//#include <avr/io.h> //iom328p.h
#include <util/delay.h>
int main(){
_SFR_IO8(0x0A) = 0xFF; // #define DDRD _SFR_IO8(0x0A)
// DDRB = 0xFF;
_SFR_IO8(0x0B) = 0x00; // PORTD= 0x00;
while(1){
PORTD |= (1 << PD0);
PORTD |= (1 << PD2) | (1 << PD1);
PORTD ^= (1 << PD3);
PORTD |= (1 << PD5) & ~(1 << PD4);
_delay_ms(1000);
PORTD &= ~(1 << PD0);
PORTD &= ~(1 << PD2) & ~(1 << PD1);
PORTD ^= (1 << PD5) ^ (1 << PD4);
_delay_ms(1000);
}
return 0;
}
Blink with Timer
https://wokwi.com/projects/354046396997507073 https://wokwi.com/projects/354556802672660481
;https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327
;https://wokwi.com/projects/354046396997507073
;funkční ;sbi PORTB,5 zde nefunguje
#define __SFR_OFFSET 0x20
#include "avr/io.h"
.global main
main: rcall setup // zavolání funkce setup
loop:
COM R17 ; Complement R17 register
STS PORTD, R17 ; Toggle the LED output
rcall delay
rjmp loop
delay:
LDI R16, 0xC2
STS TCNT1H, R16 ; Writing 0xC2 into TCNT1H (8-bit)
LDI R16, 0xF7
STS TCNT1L, R16 ; Writing 0xF7 into TCNT1H (8-bit)
LDI R16, 0x05
STS TCCR1B, R16 ; Writing 0x05 into TCCR1B
L:LDS R0, TIFR1 ; Load the value of TIFR1 into R0
SBRS R0, 0 ; Skip the next statement if overflow has occured.
RJMP L ; Loop until overflow occurs.
LDI R16, 0x00
STS TCCR1B, R16 ; Stop the Timer/Counter1
LDI R16, 0x01
STS TIFR1, R16 ; Clear the overflow flag by writing 1 to it
ret
setup:
LDI R16, 0xFF ; Setting bits of PORTD as output
STS DDRD, R16
LDI R17, 0x55
STS PORTD, R17 ; Writing 0 to PORTD
ret
|
//https://wokwi.com/projects/354556802672660481
#include <avr/io.h> //iom328p.h
#include <util/delay.h>
int main(){
DDRD = 0xFF; // #define DDRD _SFR_IO8(0x0A)
PORTD= 0x55;
while(1){
PORTB ^= (1 << PD5);
PORTD = ~PORTD;
delay();
}
return 0;
}
int delay(){
TCNT1H = 0xC2;
TCNT1L = 0xF7;
TCCR1B = 0x05; //prescaler 1024
while (!(TIFR1 & (1<< TOV1)));
TCCR1B = 0x00;
TIFR1 = 0x01;
}
|
Interrupts and 16-bit Timer/Counter 1: ATmega328P Timing Subsystems
https://www.arxterra.com/9-atmega328p-timers/
IO interface of AVR
AVR Interrupts
www
- SPS Hronov - Atmega32
- Arduino Blink Example in Assembly using Timer/Counter1
- Accessing I/O in ATmega328P (Arduino) using Assembly and C
- Čítač / časovač 1 nejen na Attiny
- Arduino Timer Interrupts Calculator
- AVR Timer Interrupts Calculator (slovakia)
- Lecture 4: Blinking a LED with a timer
- Pokročilé programovanie mikropočítačov v jazyku C. Diel č.1
== Archiv ==
MCU: 8051:
-
IDE: MCU 8051 IDE pro vývoj aplikací v asm/C
Modifikace programu s 8051
-
Křižovatka AUC
-
IDE: MCU 8051 IDE pro vývoj aplikací v asm/C
loop:
mov P0,#01010011 ;modifikovat dle LED
mov P2,#11001100 ;modifikovat dle LED
acall delay
.
.
.
sjmp loop
delay: mov R0,#255d ;podprogram zpoždění
skok2: mov R1,#5d
skok1: mov R2,#5d
skok: djnz R2,skok
djnz R1,skok1
djnz R0,skok2
ret ;návrat z podprogramu
end
Objednávka součástek
- Prodejci součástek:
- GME Doporučujeme tuto společnost s prodejnami v Praze, Brně, Ostravě, Plzni a zásilkovým prodejem.
- TME zásilkový prodej.
- SOS Electronic zásilkový prodej.
- GES Electronic Společnost s prodejnami a zásilkovým prodejem.
- Farnell zastoupení
Témata na cvičení do roku 2016
ELE:
-
Stabilizovaný zdroj +5V
MIT:
Bonus:
-
Robot 2WD (arduino)
-
Tank DO (arduino)
-
Car DO (arduino)
Otázky k opakování do roku 2016
TP do roku 2016 | |
|
Otázky k opakování do roku 2016
HW
- Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace
- Otestuje AKO s časovačem 555
- Popište funkci operačního zesilovače
- Proveďte návrh schéma zapojení s blikající LED (klasické řešení versus mikroprocesorové)
- Navrhněte připojení 7segmentovky k MCU
SW
- Napište program pro blikání jedné (a více) LED
- Připojte a otestujte čidlo dotyku (vzdálenosti, světla) s MCU
- Napište program pro test funkčnosti čidla světla
- Navrhněte a otestujte aplikaci ovládající motor (stejnosměrný, krokový)
- Popište postup vývoje mikroprocesorové aplikace