AplTVY3: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Řádek 416: Řádek 416:
https://www.arxterra.com/9-atmega328p-timers/
https://www.arxterra.com/9-atmega328p-timers/


[[Soubor:atmega328p-timers3.png|400px|link:https://www.arxterra.com/9-atmega328p-timers/]]
Delay 250 ms (neověřeno):
[[Soubor:atmega328p-timers.png|150px|right]]
[[Soubor:atmega328p-timers.png|150px|right]]
[[Soubor:atmega328p-timers3.png|link:https://www.arxterra.com/9-atmega328p-timers/]]
Delay 250 ms (neověřeno)
{|
{|
|-
|-

Verze z 22. 1. 2023, 13:38

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.




















Témata na cvičení

ELE:

MCU: 8051:

PICAXE

TinkerCAD

https://www.tinkercad.com

Fritzing

https://fritzing.org/home/

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:

Popis zapojení a funkce uni desky VYV50

Ovládání 7segmentovky s PICAXE

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

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

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

Ovládání motorů


rjhcoding


AVR Delay Loop Calculator

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://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327
;https://wokwi.com/projects/354046396997507073
;funkční
#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
    ;sbi PORTB,5      zde nefunguje
    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, 0x01     ; Setting 1st bit of PORTB as output
      STS DDRD, R16
      LDI R17, 0x55
      STS PORTD, R17    ; Writing 0 to PORTB
      LDI R16, 0x00
      STS TCCR1A, R16   ; Setting all bits of TCCR1A as 0
        ret
//https://wokwi.com/projects/354556802672660481
//nedokončená transformace

#include <avr/io.h>  //iom328p.h 
#include <util/delay.h> 
    
int main(){    
        DDRB = 0xFF; // #define DDRD _SFR_IO8(0x0A) 
        PORTD= 0x00;

while(1){  
          PORTD ^= (1 << PD3);
          delay();
        }  
    return 0;
          }

int delay(){
_delay_ms(1000); //toto poté odstavit
  TCNT1H =  0xC2; 
  TCNT1L =  0xF7; 
  TCCR1B =  0x05; 
   /* následující je řeba nahradit
  L:LDS R0, TIFR1  
  SBRS R0, 0        
  RJMP L            
  */
    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/

Delay 250 ms (neověřeno):

Delay:
  push r15
  in   r15, SREG
  push r16
wait:
  sbis TIFR1, TOV1
  rjmp wait
  sbi TIFR1, TOV1 // clear flag bit by writing a one (1)
  ldi r16,0x0B    // load value high byte 0x0B
  sts TCNT1H,r16
  ldi r16,0xDC    // load value low byte 0xDC
  sts TCNT1L,r16
  pop r16
  out SREG, r15
  pop r15
  ret
void T1Delay()
{
  while (!(TIFR & (1<  TIFR = 1<
  TCNT1H = 0x0B;
  TCNT1L = 0xDC;
}

















== Archiv ==

Témata na cvičení do roku 2016

ELE:

MIT:

Bonus:


Literatura


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