====== Arduino ====== * Arduino je dá se říct destička pro mikroprocesor. Slouží jako vývojářská platforma. Celkově se snaží zpřístupnit možnosti mikroprocesorů obyčejným smrtelníkům. * Programuje se přes USB port, má vlastní arduino IDE, ale lze použít i AVR C * Pro arduino existují Shields - různá rozšíření funkcionality formou nových destiček, které lze přímo připojit k základní desce * Existují různé varianty základní desky * bootloader * není povinný a v mikroprocesoru vůbec být nemusí * nastavuje se pomocí FUSE bitů * sídlí ve flash paměti * paměť se rozdělí na část pro aplikaci a část pro bootloader * nastavuje se pomocí FUSE bitů * spouští se po přivedení napájení * většinou se používá pro přeprogramování aplikační části flash paměti * do zařízení se nahrává přes programátor (například ISP) * arduiono sériový bootloader * při startu koukne na sériovou linku (UART sběrnici) * (proto se všechny arduina hlásí po připojení k PC jako sériová linka) * pokud tam je speciální sekvence znaků, spustí programování * jinak předá řízení aplikaci * DFU bootloader * AVR USB chipy většinou obsahují DFU (Device Firmware Update) bootloader * je to speciální rozhraní. Ovladače jsou dostupné pro všechny platformy * režim se aktivuje myslím spojením učitých pinů ===== Modely ===== * Arduino **Nano 33 BLE** * builds on the nRF52840 microcontroller with 1MB CPU Flash Memory. * Featuring a 9 axis inertial measurement unit and the possibility for Bluetooth Low Energy (BLE) * [[https://www.arduino.cc/en/Products/Compare|Oficiální přehled]] * orientační tabulka z cz wiki ^ Označení modulu ^ Mikrokontrolér ^ Flash KiB ^ EEPROM KiB ^ SRAM KiB ^ Digitální I/O / PWM kanály ^ Analogové vstupy ^ Typ USB rozhraní ^ | Diecimila | ATmega168 | 16 | 0.5 | 1 | 14/6 | 6 | FTDI | | Duemilanove | ATmega168/328P | 16/32 | 0.5/1 | 1/2 | 14/6 | 6 | FTDI | | Uno | ATmega328P | 32 | 1 | 2 | 14/6 | 6 | ATmega8U2 | | Due | ATMEL SAM3U | 256 | | 50 | | | 16 | | | Mega | ATmega1280 | 128 | 4 | 8 | 54/14 | 16 | FTDI | | Mega2560 | ATmega2560 | 256 | 4 | 8 | 54/14 | 16 | ATmega8U2 | | Leonardo | ATmega32u4 | 32 | 1 | 2.5 | 20/7 | 12 | Atmega32u4 | | Micro | ATmega32u4 | 32 | 1 | 2.5 | 20/7 | 12 | Atmega32u4 | | Fio | ATmega328P | 32 | 1 | 2 | 14/6 | 8 | Žádné | | Nano | ATmega168 or ATmega328 | 16/32 | 0.5/1 | 1/2 | 14/6 | 8 | FTDI | | LilyPad | ATmega168V or ATmega328V | 16 | 0.5 | 1 | 14/6 | 6 | Žádné | | Yún | Atheros AR9331 – 400MHz (ATmega32u4) | 16 MiB (32KiB) | 1 | 64 MiB DDR2 (1KiB) | 20/7 (ATmega32u4) | 12 | ATmega32u4 | * všimni si, že desky s Atmega32u4 mají USB rozhraní tvořeno přímo kontrolérem * to umožňuje používat zařízení přímo jako USB HID zařízení * FTDI znamená, že na desce je speciální obvod převádějící sériový USB port na UART rozhraní * Arduino Uno a Mega2560 používá na USB rozhraní další Atmel AVR mikroprocesor (s USB rozhraním) * asi lze taky přeprogramovat na libovolné zařízení, viz [[https://github.com/NicoHood/HoodLoader2|HoodLoader2]] * Flash je paměť pro uložení programu * EEPROM je persistentní paměť pro ukládání hodnot * SRAM je operační paměť * analogové vstupy - ADC převodníky * digitální I/O piny - programovatelné in/out * PWM - jakoby analogový výstup. Napětí se ve skutečnosti nemění - na výstup se posílají pulzy 1/0. Délka pulzu a prodleva mezi nimi určuje jakoby napětí. Spoléhá se na setrvačnost. Například PWM řízení otáček nebo intenzita jasu LED ===== pro micro z ebay za kilo ===== {{::arduino_pro_micro.jpg|}} ====== Problémy ====== * **avrdude butterfly programmer uses avr_write_page() but does not provide a cmd()** * chtěl jsem nahrát nový sketch a vypsalo to hromadu failed a hlášku výše * arduino přestalo komunikovat (po připojení nezobrazilo sériové rozhraní) * musel jsem přes USBasp vypálit z Arduino IDE znovu zavaděč * musel jsem odinstalovat ''apt-get --purge remove modemmanage'' avrdude: Error: butterfly programmer uses avr_write_page() but does not provide a cmd() method. *** page 121 (addresses 0x6bfa - 0x6c79) failed to write avrdude: error: programmer did not respond to command: set addr avrdude: butterfly_recv(): programmer is not responding avrdude: verification error, first mismatch at byte 0x0160 0xff != 0x00 avrdude: verification error; content mismatch avrdude: verification error; content mismatch ====== Odkazy ====== * [[https://www.arduino.cc/en/Tutorial/DigitalPotControl|ukázka práce s SPI]] * [[http://docs.uart.cz/docs/uduino/|arduino na nepájivém poli]] - jak zapojit mikroprocesor, aby na něm běžel kód arduina * [[http://uart.cz/721/bootloader-v-avr/|mikroprocesor bootloader]] - co to je, jak napsat vlastní * http://www.arduinotech.cz/produkt/arduino-mega2560/ - levne arudiana... uno za 272, mega za 472 * [[http://www.shop.uart.cz/kategorie/arduino-a-shieldy/|shop pro arduino]] * http://www.santy.cz/arduino-usb-c15/arduino-mega-nano-shield-atmel-328-i4 .. klony * [[http://www.elecfreaks.com/7383.html|GPS Map Navigator na Arduino]] * [[https://www.arduino.cc/en/Tutorial/HomePage|Arduino oficiální návody]]