Quantcast
Channel: Tutoriály – Bastlírna HWKITCHEN
Viewing all articles
Browse latest Browse all 133

Náš první klon Arduina

$
0
0

V dnešním dílu si ukážeme, jak se dají pomocí Arduina programovat jiné čipy od Atmelu. Na začátek si předvedeme, jak pracovat s malými čipy z řady ATtiny, poté se dostaneme k větším čipům z řady ATmega a jak už název článku napovídá, vytvoříme vlastní klon Arduina.

 

Už v prvním dílu jsem se zmínil o neoficiálních deskách, tzv. klonech. Nejedná se jenom o sériově vyráběné desky. Takovýto klon si může každý udělat sám. Ještě než se pustíme do stavby vlastní desky, ukážeme si, jak se dají programovat menší čipy z řady ATtiny. A poté už se dostaneme ke tvorbě vlastní plnohodnotné desky.

 

Příprava Arduina

Než se pustíme do připojování a programování čipů, musíme z Arduina udělat ISP programátor. Ten slouží k nahrávání programů do připojených čipů. To provedeme velmi jednoduše – z Examples otevřeme program ArduinoISP a nahrajeme ho do našeho Arduina. V dalším kroku musíme „identifikovat“ důležité piny, které při programování použijeme. Jsou to: MISO, MOSI, SCK a SS. Jejich umístění se u různých desek může lišit. Příklad rozmístění pinů vidíte v tabulce.

Model MISO MOSI SCK SS
Mega 50 51 52 53
UNO 12 11 13 10

Poznámka: Informace o pinech jsou k nalezení v dokumentaci každé desky. Některé verze ale nemusejí mít tyto piny lehce dostupné. Například Leonardo je nemá vyvedeny standardně. O jeho použití jako ISP programátor pojednává tento článek.

Na vybraném čipu si podle dokumentace najdeme piny MISO, MOSI, SCK a Reset. Poté propojíme sobě odpovídající piny Arduina a čipu. Pin SS Arduina propojíme s pinem Reset čipu. Tímto se budeme podrobněji zabývat dále.

 

 

Čipy ATtiny

Jak už jsem zmínil dříve, v řadě ATtiny nalezneme menší a méně výkonnější čipy. To ale nevadí, protože nám v některých situacích budou plně dostačovat. Běžně se setkáme s použitím čipů ATtiny85, ATtiny45, ATtiny84, ATtiny44 a dalšími. Na internetu nalezneme i jiné čipy s této řady. Důležité však je, aby použitý čip měl k sobě odpovídající „popis“ – informaci v podobě textu, která programu říká informace o čipu, jako jsou rychlost, velikost paměti, rychlost komunikace a další. Soubor s informacemi o běžných deskách nalezneme ve složce s Arduino IDE pod hardware/arduino/boards.txt. Abychom si tento soubor nezahltili informacemi, umístíme data o čipech ATtiny do složky, kterou máme nastavenou pro ukládání programů Arduina. Tu většinou najdeme v Dokumentech ve složce Arduino. Stáhneme si tento archiv a rozbalíme jej do složky Arduino v Dokumentech. Pokud máme spuštěné Arduino IDE, restartujeme jej. V nabídce Board by se nám nyní mělo objevit několik nových možností.

Menu Boards v Arduino IDE s ATtiny čipy

Menu Boards

My si předvedeme, jak programovat čip ATtiny85. Ten má osm pinů – dva piny pro napájení, jeden pro restart a pět zbývá na libovolné použití. Popis funkcí pinů vidíme na obrázku 3. Orientaci čipu určíme buď podle půlkruhového symbolu na jedné ze stran (viz obr. 3), nebo podle označení pinu 1 kroužkem. Když budeme chtít v programu pracovat s pinem, dovoláme se ho podle číselného označení popsaného zvenku (čísla uvnitř čipu nás v tuto chvíli nezajímají).

Čip ATtiny 85

ATtiny 85

Piny ATtiny85 a jim odpovídající piny Arduina

ATTiny 85 pinout

Jelikož se jedná o malé čipy s menším výkonem, i škála použitelných funkcí je zde omezena. Většinu základních funkcí zde ale najdeme. Jsou to:

  • pinMode()
  • digitalWrite()
  • digitalRead()
  • analogRead()
  • analogWrite() – připomeňme si, že je tato funkce použitelná jen u pinů PWM
  • millis()
  • micros()
  • delay()
  • delayMicroseconds()

Také můžeme použít ještě neprobrané funkce shiftOut() a pulseIn().

Základ použití máme vysvětlený a můžeme se pustit do propojení Arduina s čipem. Propojení provedeme následovně:

Arduino Čip
MISO MISO
MOSI MOSI
SCK SCK
SS RESET
GND GND
5V 5V
Propojení Arduino Mega a ATtiny85

Zapojení

Po zapojení se ujistíme, že v Arduinu máme nahraný program ArduinoISP (viz výše). Čipy ATtiny85 jsou ve výchozím nastavení taktované na frekvenci 1MHz, proto z nabídky Board vybereme možnost ATtiny85 (internal 1 MHz clock). Pro otestování funkčnosti připojíme mezi Pin 0 (MOSI) a GND přes 330 Ohm resistor LED diodu. Z Examples otevřeme program Blink a proměnnou led nastavíme na hodnotu 0.

int led = 0;

void setup() {                
  pinMode(led, OUTPUT);     
}

void loop() {
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
  delay(1000);
}

Poznámka: Změnu taktovací frekvence na 8 MHz provedeme jednoduše – z nabídky vybereme možnost ATtiny85 (internal 8 MHz clock) a v menu Tools klikneme na Burn Bootloader. Stejným postupem čip nastavíme zpět na frekvenci 1 MHz.

 

 

Čipy ATmega

Pokud se chceme od malých čipů ATtiny přesunout k něčemu výkonnějšímu, nabízí se nám použití čipů ATmega. Ty jsou větší, výkonnější a mají více použitelných pinů. Stejně jako u ATtiny i zde platí, že můžeme použít všechny piny, ke kterým nalezneme patřičnou modifikaci souboru boards.txt. Jako nejjednodušší se jeví použití těch čipů, na kterých jsou založeny standartní desky Arduina, tedy ATmega168, ATmega328 a další. My si ukážeme použití čipu ATmega168. Stejně jako u ATtiny, i zde musíme najít potřebné piny.

Čip ATmega168

ATmega 168

Rozložení pinů ATmega168

ATmega 168 pinout

Abychom využili celý potenciál čipu, budeme potřebovat ještě 16 MHz oscilátor, 10 kOhm resistor, dva 22 pF kondenzátory a spínač (tlačítko). Také budeme potřebovat USB-serial převodník. Na výběr máme z více možností – FTDI Basic Breakout – 5V, USB 2 Serial Converter a další. Vše zapojíme podle schématu.

Zapojení Arduino on board

Arduino on board

V našem Arduinu máme nahraný program ArduinoISP. Poté z nabídky Board vybereme Arduino Diecimila or Duemilanove w/ ATmega168. V Tools/Programmer vybereme možnost Arduino as ISP a spustíme Burn Bootloader. Po chvilce se ve stavovém řádku zobrazí Done burning bootloader. Tímto jsme nastavili čip tak, aby byl programovatelný pomocí USB-serial převodníku. V dalším kroku připojíme čip s převodníkem. To provedeme tak, že GND čipu propojíme s GND převodníku a stejně tak 5V. Dále propojíme RX pin čipu s TXD převodníku a TX čipu s RXD převodníku. Tím máme čip připravený k programování. Od čipu odpojíme Arduino, kterým jsme jej programovali a připojíme převodník k PC přes USB. V menu Serial Port by se nám měla objevit nová možnost, kterou vybereme. Poté se můžeme pustit do programování našeho nového klonu Arduina tak, jak jsme zvyklí.

 

 

Zdroje obrázků

[Rozložení pinů ATtiny85]

[Rozložení pinů ATmega168]

 

V případě jakýchkoliv dotazů či nejasností se na mě neváhejte obrátit v komentářích.


Viewing all articles
Browse latest Browse all 133

Trending Articles


Re: Prosím o určení autora - google nepomáhá


Nelze se přihlásit na Facebook přes PC


Prodám Flexi pass - 3 200


Markéta Reinischová: Chceme s Filipem Jankovičem dítě!


Od: Martina


Podzemlje - epizoda 62


Defender


Plynový kotel DAKON DS 22G - 2 500


Gymnastické řemínky na hrazdu zn. Reisport, vel. č. 2: 590


P: NooK Soundelirium THE 12.6


Qube SP26 ( XTA DP226 ) signal processor - 12 000


Narovnání,vylisování bankovek


Javorina Holubyho chata


Tinylab: Tlačítka


Levasan Maxx není gel na klouby, nýbrž hnus


RNS315 couvací kamera


Kde najdu GameInput Service ve win 10?


Redmi Note 11 Pro+ 5G (PISSARO)


MV3 Vermona, Klingenthal, NDR


Hradcany 30h fialova razena 11 1/2 11 3/4



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>