AplTVY3: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Bez shrnutí editace
 
(Není zobrazeno 94 mezilehlých verzí od stejného uživatele.)
Řádek 2: Řádek 2:


{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em"
{| 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 v2016'''''
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Tématický plán'''''
|-
|-
|
|
Řádek 21: Řádek 21:
  T14 - Opakování  
  T14 - Opakování  


[[Soubor:PovinnaPrace_NavrhMIT_aplikace.png|right|link=PP_-_Návrh_MIT_aplikace]]
[[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"
{| 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í v2016'''''
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Otázky k opakování'''''
|-
|-
|
|
Řádek 42: Řádek 44:


{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em"
{| 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:'''''
| 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.
     
 
|}
 
{| 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:'''''
|-
|-
|
|


1. Postupně v programu [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.
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]]
Pozn.: [[Domácí úkoly|Jak odevzdávat domácí úkoly]]
|}
{| 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:'''''
|-
|


Mikroprocesor lze použit: [[Arduino]], [[PICAXE]], [[8051]] apod.
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|right|link=https://1url.cz/kzWKG]]
[[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]]
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.
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)
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>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>


== Témata na cvičení (od 2016) ==
== Cvičení ==


=== PICAXE ===
{{#widget:YouTube|id=8yAOTUY9t10|height=270|width=360|Popis|right}}


---------------------------------------------------------------------------------------------------------------
<Gallery>
<Gallery>
Soubor:D10_HW_picaxe_01.jpg|[[PICAXE]] - vývojová deska
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V
Soubor:PICAXE-vyv-diagram_02.jpg|[[PICAXE]] - vývojový diagram
Soubor:PICAXE-vyv-diagram_01.jpg|[[PICAXE]] - Blik
Soubor:ProfiCAD_PICAXE.png|[[PICAXE]] - blokové schéma
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>
</Gallery>


=== Popis zapojení a funkce uni desky [[VYV50]] ===
<Gallery>
<Gallery>
Soubor:PICAXE-vyv-diagram_01.jpg|Blik
soubor:VYV-deska-AVR-ATmega16-07.jpg|UNI deska [[VYV50]]
Soubor:PICAXE-vyv-diagram_02.jpg|DICE
Soubor:proficad-RD2KIT-01.png|kreslení blokových schémat v [[ProfiCAD]]
Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT
</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>
|-
|}
 
=== [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>
</gallery>


Řádek 115: Řádek 425:
** [http://www.ges.cz/ GES Electronic] Společnost s prodejnami a zásilkovým prodejem.
** [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í]
** [http://www.farnell.com Farnell] [http://www.rothsware.cz/web/farnell/ zastoupení]
=== Popis zapojení a funkce uni desky [[VYV50]] ===
<Gallery>
soubor:VYV-deska-AVR-ATmega16-07.jpg|UNI deska [[VYV50]]
soubor:VYV-deska-AVR-ATmega16-15.png|Zapojení s [[8051]] a [https://goo.gl/LsEhHa LCD]
Soubor:proficad-RD2KIT-01.png|kreslení blokových schémat v [[ProfiCAD]]
</Gallery>
=== Ovládání 7segmentovky ===
<Gallery>
Soubor:PICAXE18_7segment.png|PICAXE18 + 7segment
Soubor:PICAXE20_2x7segment.png|PICAXE20 + 2x7segment
Soubor:PICAXE20_7segment.png|PICAXE20 + 7segment
Soubor:PIC_counter.jpg|[[PIC]]85 2 digit Up/Down Counter
</Gallery>
=== Ovládání motorů ===
<Gallery>
Soubor:Umik-popis.png|[[Umík]] - popis
Soubor:Umik-blok-schema.png|[[Umík]] - blokové schéma
</Gallery>


== Témata na cvičení do roku 2016 ==
== Témata na cvičení do roku 2016 ==
Řádek 170: Řádek 457:




== Literatura ==
---------------------------------------------------------------------------------------------------------------
 
<gallery>
Soubor:Arduino-itnetwork.png|[http://www.itnetwork.cz/mikrokontroler-arduino-tutorialy|Arduino tutorial]
Soubor:Robot-arduino_RCB_car.png|[http://www.josefnav.cz/RCB.html|Control Boards by josefnav.cz]
</gallery>
 
'''== Archiv =='''


=== Otázky k opakování do roku 2016 ===
=== Otázky k opakování do roku 2016 ===

Aktuální verze z 18. 3. 2024, 11:42

AplTVY
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í
  1. - Nakreslete vývojový diagram pro log. funkce NOT, AND, OR, XOR
  2. - Nakreslete vývojový diagram pro log. funkci n=3 y = 1 pro i = {1,3,6,7 (4)}
  3. - Nakreslete vývojový diagram pro log. funkci n=4 y = 1 pro i = {1,2,5,6,12,13 (4,11,15)}
  4. - Naprogramujte MCU pro blikání LED (blikačka)
  5. - Naprogramujte MCU pro ovládání akustického měniče (bzučák)
  6. - Modifikujte program pro MCU ovládající křižovatku
  7. - Vyberte vhodného dodavatel elektronických součástek (R,C,D,IO)
  8. - Analyzujte zapojení s MCU na UNi desce VYV50
  9. - Vyzkoušejte program pro ovládání 7segmentovky
  10. - Vyzkoušejte program pro ovládání ss motoru a krokového motoru
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í.


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.: 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í


TinkerCAD

Atmel Studio

IDE IDE

download

wokwi

Ovládání 7segmentovky s ATmega328 na desce Arduino

Popis zapojení a funkce uni desky VYV50

ATmega328 Pinout ATmega328 Pinout


Assembly via Arduino

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/


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

export z Arduino IDE


rjhcoding



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/

link:https://www.arxterra.com/9-atmega328p-timers/


IO interface of AVR


AVR Interrupts


www
































== Archiv ==

MCU: 8051:

Modifikace programu s 8051

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:

Témata na cvičení do roku 2016

ELE:

MIT:

Bonus:



Otázky k opakování do roku 2016

TP do roku 2016
  • T1 - BOZP – řády odborných učeben
  • 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

  1. Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace
  2. Otestuje AKO s časovačem 555
  3. Popište funkci operačního zesilovače
  4. Proveďte návrh schéma zapojení s blikající LED (klasické řešení versus mikroprocesorové)
  5. Navrhněte připojení 7segmentovky k MCU

SW

  1. Napište program pro blikání jedné (a více) LED
  2. Připojte a otestujte čidlo dotyku (vzdálenosti, světla) s MCU
  3. Napište program pro test funkčnosti čidla světla
  4. Navrhněte a otestujte aplikaci ovládající motor (stejnosměrný, krokový)
  5. Popište postup vývoje mikroprocesorové aplikace

White Board do roku 2016

Inspirace

projects.adamh.cz