AplTVY3: Porovnání verzí
Bez shrnutí editace |
|||
(Není zobrazeno 35 mezilehlých verzí od stejného uživatele.) | |||
Řádek 127: | Řádek 127: | ||
<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> | ||
== | == Cvičení == | ||
{{#widget:YouTube|id=8yAOTUY9t10|height=270|width=360|Popis|right}} | |||
--------------------------------------------------------------------------------------------------------------- | |||
<Gallery> | <Gallery> | ||
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V | Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V | ||
Soubor:PICAXE-vyv-diagram_01.jpg|[[PICAXE]] - Blik | |||
Soubor:PICAXE-vyv- | |||
Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT | Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT | ||
</gallery> | </gallery> | ||
=== TinkerCAD === | === [https://www.tinkercad.com TinkerCAD] === | ||
[[Soubor:LearnArduino.png|right|link=https://1url.cz/kzWKG]] | [[Soubor:LearnArduino.png|right|link=https://1url.cz/kzWKG]] | ||
<gallery> | <gallery> | ||
Soubor:tinkercad02.jpg | Soubor:tinkercad02.jpg|https://www.tinkercad.com | ||
Soubor:tinkercad03.jpg | Soubor:tinkercad03.jpg | ||
Soubor:tinkercad09.jpg | Soubor:tinkercad09.jpg | ||
Řádek 162: | Řádek 149: | ||
</gallery> | </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: | Soubor:wokwi_AVR_01.jpg|[https://wokwi.com/projects/392695146694098945 7segment] | ||
</gallery> | |||
</ | |||
=== Ovládání 7segmentovky s [[ATmega328]] na desce [[Arduino]] === | === Ovládání 7segmentovky s [[ATmega328]] na desce [[Arduino]] === | ||
Řádek 182: | Řádek 165: | ||
<Gallery> | <Gallery> | ||
Soubor:ARD21-sch.png|[[ARD21]][[:Soubor:ARD21-pcb.png|PCB]] | 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]] | 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> | </Gallery> | ||
[[Soubor:Arduino-ATmega328Pinout.png|400px|ATmega328 Pinout]] | [[Soubor:Arduino-ATmega328Pinout.png|400px|ATmega328 Pinout]] | ||
[[Soubor:ATmega328Pinout.png|400px|ATmega328 Pinout]] | [[Soubor:ATmega328Pinout.png|400px|ATmega328 Pinout]] | ||
--------------------------------------------------------------------------------------------------------------- | |||
==== Assembly via Arduino ==== | ==== Assembly via Arduino ==== | ||
[[Soubor:Anas_Kuzechie_Projects.png|300px|link=https://akuzechie.blogspot.com/|Anas Kuzechie Projects]] | [[Soubor:Anas_Kuzechie_Projects.png|300px|link=https://akuzechie.blogspot.com/|Anas Kuzechie Projects]] | ||
--------------------------------------------------------------------------------------------------------------- | |||
====How to Flash or Program Arduino from Atmel Studio?==== | ====How to Flash or Program Arduino from Atmel Studio?==== | ||
Řádek 201: | Řádek 194: | ||
[[Soubor:SetAtmmelStudio.png|400px|nastavení Atmmel Studia - Send to Arduino]] | [[Soubor:SetAtmmelStudio.png|400px|nastavení Atmmel Studia - Send to Arduino]] | ||
text k vyplnění: | |||
Send to Arduino UNO | Send to Arduino UNO | ||
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe | 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 | -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]] | [[Soubor:SetAtmmelStudio-IDE.png|400px|export z Arduino IDE]] | ||
--------------------------------------------------------------------------------------------------------------- | |||
=== [http://rjhcoding.com/ rjhcoding] === | === [http://rjhcoding.com/ rjhcoding] === | ||
Řádek 224: | Řádek 208: | ||
* [http://rjhcoding.com/avr-asm-light-an-led.php Example Program #1: LED] | * [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] | * [http://rjhcoding.com/avr-asm-pm.php Loading Data from Program Memory] | ||
--------------------------------------------------------------------------------------------------------------- | |||
[[Soubor:AVRdelay.png| | [[Soubor:AVRdelay.png|500px|link=http://darcy.rsgc.on.ca/ACES/TEI4M/AVRdelay.html]] | ||
--------------------------------------------------------------------------------------------------------------- | |||
=== Blink in C === | === Blink in C === | ||
Řádek 262: | Řádek 254: | ||
</source> | </source> | ||
--------------------------------------------------------------------------------------------------------------- | |||
=== Blink with Timer === | === Blink with Timer === | ||
Řádek 351: | Řádek 342: | ||
[[Soubor:atmega328p-timers3.png|600px|link: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]=== | ===[https://www.youtube.com/watch?v=B-BsqpgtQWI IO interface of AVR]=== | ||
Řádek 357: | Řádek 350: | ||
{{#widget:YouTube|id=B-BsqpgtQWI|height=270|width=360|IO interface of AVR|right}} | {{#widget:YouTube|id=B-BsqpgtQWI|height=270|width=360|IO interface of AVR|right}} | ||
--------------------------------------------------------------------------------------------------------------- | |||
=== AVR Interrupts === | === AVR Interrupts === | ||
{{#widget:YouTube|id=zViw6mMzEoA|height=270|width=360|AVR Interrupts|right}} | {{#widget:YouTube|id=zViw6mMzEoA|height=270|width=360|AVR Interrupts|right}} | ||
--------------------------------------------------------------------------------------------------------------- | |||
=== www === | === www === | ||
https://www.spshronov.cz/eusoubory2/dum_atmega32.pdf | * [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> | |||
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | |||
'''== Archiv ==''' | '''== Archiv ==''' | ||
Řádek 456: | Řádek 457: | ||
--------------------------------------------------------------------------------------------------------------- | |||
=== 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
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