Uživatelské nástroje

Nástroje pro tento web


cs:labduino

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


Předchozí verze
cs:labduino [2017/07/04 18:04] – [LABduino UNO] kakl
Řádek 1: Řádek 1:
-====== Klon Arduina postavený z MLABu - LABduino ====== 
  
-Protože Arduino není nic jiného, než mikrokontroler AVR případně ARM s nahraným specifickým bootloaderem, který umožňuje komunikaci s programátorským IDE rozhraním. Tak lze tuto konstrukci stejně jako mnoho jiných postavit ze stavebnice MLAB.  
- 
-{{:labduino_isl2920.jpg?direct&300|Ukázka složeného LABduina}} 
- 
-Můžeme tak vytvořit s Arduinem plně elektricky a pragramově kompatibilní zařízení postavené z modulů MLAB. Lze jej programovat v prostředích určených pro Arduino a využívajících jazyk [[http://processing.org/|Processing]]. Další moduly a rozšíření pak mohou být používány stejně, jako je ve stavebnici MLAB zvykem. 
- 
-===== Programovací nástroje ===== 
- 
-Programy pro Arduino jsou obvykle psané v jednoduchém jazyku [[https://processing.org/|Processing]] k kterému existují dva hlavní programovací nástroje pro mikrokontroléry.  
- 
-==== Arduino IDE ==== 
- 
-Konstrukci s LABduinem, lze programovat klasickym nastrojem [[http://arduino.cc/en/Main/Software|Volne dostupnym ke stazeni]]. Arduino IDE je však nástroj vytvořený přímo pro Arduino a neliberálně nepodporuje některé další vlastnosti Arduino klonů. Je proto vhodnější používat vývojové prostředí Wiring, které obsahuje přímo nastavení pro MLAB konstrukci.  
- 
-==== Wiring ==== 
- 
-Wiring je otevřenější nástroj pro práci s Arduinem/LABduinem, který obsahuje více základních knihoven a podporuje méně obvyklé konfigurace hardwaru a volby rychlostí krystalů. 
-Je taktéž [[http://wiring.org.co/download/|volně ke stažení]] i [[https://github.com/WiringProject/Wiring|včetně zdrojových kódů]].  K nahrávání přeloženého programu do procesoru používá identický bootloader, který komunikuje s počítačem přes [[cs:usb232r|sériové rozhraní]] jako Arduino.  
- 
-Od listopadu 2012 je v poslední vývojové verzi Wiringu na githubu LABduino přímo podporováno.   
- 
-=== Instalace Wiringu v Ubuntu === 
- 
-Pod Ubuntu 14.04 a ve vyšších verzích lze Wiring snadno přeložit ze zdrojového kódu přímo v příkazové řádce. Nejprve nainstalujeme potřebné nástroje: 
- 
-  sudo apt-get install ant git default-jdk librxtx-java 
- 
-V nových verzích processingu není plně podporována OpenJAVA.  Proto je v případě požadavku na bezproblémovou funčnost nainstalovat Oracle JAVA. Což uděláme následovně:  
- 
-  sudo add-apt-repository ppa:webupd8team/java 
-  sudo apt-get update 
-  sudo apt-get install oracle-java7-installer 
-   
-Následně stáhneme nejnovější verzi Wiringu přímo z GitHubu. 
-   
-  git clone git://github.com/WiringProject/Wiring.git 
-   
-Přepneme se do složky se staženými soubory 
-   
-  cd Wiring 
- 
-Spustíme vývojové prostředí. 
- 
-  ant 
-   
-A spustíme Wiring IDE 
- 
-  ant run  
- 
-===== LABduino UNO ===== 
- 
-Tato realizace arduina je stejná jako Arduino UNO, které využívá mikrokontrolér ATmega328P.  
- 
-Klasicky se LABduino skládá ze dvou modulů [[cs:usb232r|USB232R01B]] a [[cs:atmegatq32|ATmegaTQ3201A]] osazený mikroprocesorem ATmega328 tak že signály TXD a RXD se přivedou kablíky na RX a TX (křížené spojení) a řídící signál RTS# od modulu USB232R01B se přivede na jumper označený jako boot (aktivuje bootloader).  
-Napájení modulu ATmegaTQ3201A je obvykle řešeno přímo z USB (připojením napájecího kablíku).   
- 
-{{:cs:labduino_sdcard.jpg?direct&200|LABduino a SDcard modul}} 
- 
-V této konfiguraci tedy hardwarově odpovídá Arduinu Duemilanove s ATmega328. Na rozdíl od nových verzí Arduina však pro komunikaci s USB nepoužívá ATmega s firmwarem emulujícím sériovou linku, ale převodník [[http://www.ftdichip.com/Products/ICs/FT232R.htm|FT232]] v modulu [[cs:usb232r|USB232R01B]] je tak odolnější proti závadě vzniklé poškozením firmwaru v MCU, který umožňuje komunikaci přes USB. 
- 
- 
-==== Nahrani bootloaderu ==== 
- 
-Vybraný firmware lze nahrát do mikroprocesoru programátorem  [[cs:atprogispusb|ATprogISPUSB02A]] v [[http://www.mlab.cz/Web/Downloads.cs.html|SVN repositáři]] MLABu je k dispozici nahrávací skript (svnMLAB/Designs/LABduino/SW/bootloader/flash.sh) a firmware kompatibilní s Arduino Duemilanove.  Je doporučeno jej použít k nahrání firmware místo nástroje přímo v Arduinu IDE nebo Wiringu.   
- 
-=== Linux === 
- 
-Nahrávací skript spustíme například následovně:  
-  sudo ./flash.sh /dev/ttyUSB0 
- 
- 
-Správný výstup po zapsání firmware do MCU vypadá takto:  
- 
-  avrdude: erasing chip 
-  avrdude: reading input file "ATmegaBOOT_168_atmega328.hex" 
-  avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex 
-  avrdude: writing flash (32670 bytes): 
-   
-  Writing | ################################################## | 100% 20.50s 
-   
-  avrdude: 32670 bytes of flash written 
-  avrdude: verifying flash memory against ATmegaBOOT_168_atmega328.hex: 
-  avrdude: load data flash data from input file ATmegaBOOT_168_atmega328.hex: 
-  avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex 
-  avrdude: input file ATmegaBOOT_168_atmega328.hex contains 32670 bytes 
-  avrdude: reading on-chip flash data: 
-   
-  Reading | ################################################## | 100% 334.94s 
-   
-  avrdude: verifying ... 
-  avrdude: 32670 bytes of flash verified 
-   
-  avrdude: safemode: Fuses OK 
-   
-  avrdude done.  Thank you. 
-   
-K fungování skriptu je potřeba mít nainstalovanou správnou verzi programu avrdude. Podrobnosti viz [[cs:avr_programming]]. 
- 
-=== Windows === 
- 
-Příklad pro modul ATmegaTQ3201A s procesorem ATmega328P a 16MHz krystalem 
-  - Bootloader je umístěn v MLAB svn: http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=%2FDesigns%2FLABduino%2FSW%2Fbootloader%2F#_Designs_LABduino_SW_bootloader_ 
-  - K nahrání do procesoru je možné využít program AVRdude, který je ke stažení na: http://sourceforge.net/projects/winavr/ 
-  - Návod na instalaci: http://www.ladyada.net/learn/avr/setup-win.html http://www.ladyada.net/learn/avr/avrdude.html 
-  - Nahrání bootloaderu se provede v operačním systému Windows programem AVRdude přes příkazový řádek. 
-  - Nejprve je dobré zjistit, že se AVRdude nainstaloval dobře. Stačí v příkazové řádce napsat avrdude a stisknout enter. Na obrazovce se zobrazí options. 
-  - K nahrání je potřeba modul ATprogISPUSB02A propojit s modulem ATmegTQ3201A (napájení a ISP kabel). 
-  - Nejprve se musí nastavit pojistky procesoru. V příkazové je potřeba zadat tento příkaz: 
-  - **avrdude -F -p atmega328P -P COM17 -c stk500v2 -B 50 -v -U efuse:w:0x05:m -U lfuse:w:0xff:m -U hfuse:w:0xda:m** 
-  - Na místo COM17 je potřeba doplnit aktuální port v daném počítači. Možno dohledat ve správci zařízení ve WIN. 
-  - Druhým příkazem je potřeba nahrát ATmegaBOOT_168_atmega328.hex 
-  - **avrdude -F -p atmega328P -P COM17 -c stk500v2 -B 50 -U flash:w:ATmegaBOOT_168_atmega328.hex:a** 
-  - Příkaz je potřeba zadávat v příkazové řádce ve složce, kde je ATmegaBOOT_168_atmega328.hex uložen. Ukázka zápisu příkazu pro uložení souboru přímo na diskové jednotce E. 
-  - Následně by se měl bootloader nahrát do procesoru a proběhne kontrola zápisu. 
-  - Nyní stačí modul ATmegaTQ3201A propojit s modulem USB232R01B a je LABduino připraveno. 
- 
- 
-===== Arduino porty na LABduinu ===== 
- 
-^Aruino ^ATmega8DIL01A ^Note ^ 
-|D0 |RXD |PD0, if you disconnect USB232R01B| 
-|D1 |TXD |PD1, if you disconnect USB232R01B| 
-|D2 |PD2| Digital I/Os.| 
-|D3/PWM |PD3|:::| 
-|D4 |PD4|:::| 
-|D5/PWM |PD5|:::| 
-|D6/PWM |PD6|:::| 
-|D7 |PD7|:::| 
-|D8 |PB0|:::| 
-|D9/PWM |PB1|:::| 
-|D10/PWM |PB2|:::| 
-|D11/PWM |PB3|:::| 
-|D12 |PB4|:::| 
-|D13 |PB5|:::| 
-|A0 |PC0 |Analog inputs.| 
-|A1 |PC1 |:::| 
-|A2 |PC2 |:::| 
-|A3 |PC3 |:::| 
-|A4 |PC4 |:::| 
-|A5 |PC5 |:::| 
-  
- 
-====== Příklad zapojení LABduino a LCD ====== 
- 
-Jednoduchý příklad zapojení modulů [[cs:lcd2l4p|LCD2L4P02A]], ATmegaTQ3201A a USB232R01B. 
- 
-=== Propojení modulů === 
- 
-== Napájení == 
- 
-''USB232R01B/POWER OUT => ATmegaTQ3201A/POWER'' 
- 
-''ATmegaTQ3201A/POWER => LCD2L4P02A/POWER'' 
- 
-== LCD display == 
- 
-''LCD2L4P02A/RS => ATmegaTQ3201A/PB4'' 
- 
-''LCD2L4P02A/RW => ATmegaTQ3201A/J4'' 
- 
-''LCD2L4P02A/E => ATmegaTQ3201A/PB3'' 
- 
-''LCD2L4P02A/D0 => ATmegaTQ3201A/PD5'' 
- 
-''LCD2L4P02A/D1 => ATmegaTQ3201A/PD4'' 
- 
-''LCD2L4P02A/D2 => ATmegaTQ3201A/PD3'' 
- 
-''LCD2L4P02A/D3 => ATmegaTQ3201A/PD2'' 
- 
-== Pípák == 
- 
-''LCD2L4P02A/BEEP => ATmegaTQ3201A/PB0'' 
- 
-== Tlačítka == 
- 
-''LCD2L4P02A/S1 => ATmegaTQ3201A/PB1'' 
- 
-''LCD2L4P02A/S2 => ATmegaTQ3201A/PB2'' 
- 
-''LCD2L4P02A/S3 => ATmegaTQ3201A/PD6'' 
- 
-''LCD2L4P02A/S4 => ATmegaTQ3201A/PD7'' 
- 
-''LCD2L4P02A/J9 => osadit všechny jumpery'' 
- 
-''LCD2L4P02A/CONTRAST SELECT => jumper smerem k trimru'' 
- 
-== Interface to PC == 
- 
-''USB232R01B/RX => ATmegaTQ3201A/PD1'' 
- 
-''USB232R01B/TX => ATmegaTQ3201A/PD0'' 
- 
-''USB232R01B/RTS# => ATmegaTQ3201A/boot'' 
- 
-''USB232R01B/VCCIO SEL => 5V'' 
- 
-=== Program === 
- 
-[[http://www.mlab.cz/WebSVN/filedetails.php?repname=MLAB&path=%2FDesigns%2FLABduino%2FSW%2Fdemos%2FHelloMLAB%2FHelloMLAB.ino|Code Example]] 
- 
-===== Dalsi příklady použití ===== 
- 
-  * [[cs:spectrograph|Spektrograf]] - elektronika pro spektrograf využívající LABduino. 
-  * [[cs:luxmetrsd|Luxmetr]] - Přístroj pro měření intenzity osvětlení za znamenající údaje na SD kartu. 
-  * [[cs:aws]] - Vyčítání meteorologických čidel s binárními nebo analogovými výstupy. 
- 
-===== Labduino - Mega 2560 ===== 
- 
-Tato varianta Arduina využívá mikrokontroler [[http://www.atmel.com/devices/atmega2560.aspx|ATMEGA2560-16AU]], který má ve stavebnici MLAB modul [[cs:atmegatq100|ATmegaTQ10001A]] a Arduino MEGA 2560 proto může být ze stavebnice sestaveno obdobným způsobem.  
- 
-==== Příklady použití ==== 
- 
-  * [[cs:designs:3dprint]] -  řízení krokových motorů varianty klasické RepRap tiskárny. 
- 
- 
-===== Reference ===== 
- 
-  * [[http://www.i2cdevlib.com/|Knihovny ovladačů I2C pro Arduino.]] 
cs/labduino.txt · Poslední úprava: 2023/12/21 16:43 autor: kaklik