Odpovedi

Jak jsem si postavil Arduino / Habr

Dnes jsou k dispozici desítky variant desek Arduino. Jejich popularita je podle mého názoru způsobena frameworkem Wiring pro mikrokontroléry, rozšířením „shieldů“ (není třeba pájet součástky) a, co je nejpohodlnější, stahováním programů přes USB. V tomto článku vám povím, jak jsem vytvořil malou zkušební desku pro mikrokontrolér a přidal do ní bootovací záznam.

V podstatě je většina „arduin“ (vyhodnocovacích desek) plošných spojů s minimem potřebných součástek pro mikroobvod. Takové prototypy usnadňují, zjednodušují a zpříjemňují práci s čipy. Stává se však, že pro řadič buď taková řešení neexistují, nebo jsou univerzální a mají nějaké nepřesnosti. S tím se dá vypořádat, ale objevují se různé berličky, a tak jsem se rozhodl vyvinout vyhodnocovací desku pro domácí čip. Samotnému čipu je věnován samostatný článek na Habru, používám ho v několika domácích projektech. Pojďme se pustit do vývoje!

Pokud si nechcete přečíst celý text, použijte navigaci:

Odkazy a počáteční možnosti

LUT můžete použít k sestavení vlastní jednostranné desky Arduino s rozhraním DB9. Podrobnosti jsou popsány v oficiální dokumentaci.

Existují již dvě domácí verze Arduina: Elbear Ace-Uno a Vostok UNO-VN035. Pojďme si implementovat vlastní?

Základní razítko

Jednou z prvních desek pro sestavování a prototypování byl Basic Stamp. Dozvěděl jsem se o nich ze staré, ale dobré knihy “Radio Electronics for Dummies”. Tato deska má obvod napájení, převodník rozhraní USB-UART (dříve to byl jen konektor DB9), patici pro mikroobvod nebo připájený regulátor, a také malé nepájivé pole a PLC konektory. Existuje podobná zajímavá deska založená na ESP8266 od firmy PINLAB.

Klasické Arduino

Desky Arduino se rozšířily. Jedním z důvodů jsou tzv. „shieldy“. Jedná se o rozšiřující desky montované na konektory shora. Samotné desky často implementují jednu nebo dvě funkce a zabírají hodně místa. Používají se však pro vzdělávací účely a také mají praktické desky pro testování obvodů, hypotéz a zobrazování informací. Jednou z prvních desek byl Arduino Uno.

Zajímavost: první Arduino bylo vyrobeno jako konkurent Basic Stamp a k PC se připojovalo přes COM port DB25. Dnes se COM port stal virtuálním, ale software se přes něj stále načítá.

Nano, ESP

Později byla vydána, podle mého názoru, pohodlnější deska – Aarduino Nano. Líbí se mi její tvar – perfektně sedí na nepájivém poli, což umožňuje vytvořit krásné a vizuální rozvržení. Podobným způsobem lze namontovat i pozdější ESP8266 nebo ESP32.

Další.module

Rád bych zmínil projekt Ruslana Nadyrshina založený na esp32, který popsal ve svém článku na Habru. Docela zajímavý design v podobě malých čtvercových desek, který umožňuje sestavit několik potřebných jednotek v racku. Moduly jsou spojeny pomocí BLD konektorů s dlouhými piny.

V tomto videu autor projektu popisuje nápady a prototypy desek next.module:

STEMTera

Další skvělou a pohodlnou volbou pro ladění a učení je deska STEMTera. Jedná se o nepájivé pole s vestavěným mikrokontrolérem ATmega32 a vyvedenými porty. Piny mikrokontroléru odpovídají umístění a funkci na ladicí desce Uno a jsou navíc duplikovány.

Recenze a příklad práce s tabulí STEMTera:

Rozhodl jsem se pro variantu Nano, kterou jsem trochu upravil tak, aby vyhovovala ovladači, který jsem používal. Stanovil jsem si následující technické požadavky:

  • pomocí ovladače K1946 nebo kompatibilního AVR,
  • přítomnost převodníku rozhraní USB-UART s resetovacím signálem (DTR);
  • tvarový faktor – deska plošných spojů o šířce až 30 mm a délce až 50 mm;
  • dvě řady konektorů s roztečí 2,54 pinů, micro-USB pro aktualizace.

Jako hlavní mikrokontrolér zvažuji K1946. Proč? Domácí regulátory jsou vynikajícím řešením pro experimenty, pokud máte možnost je rychle sehnat. Ve skutečnosti se jedná o blízké analogy existujících vzorků na trhu, pro které již existují vyvinutá prostředí, knihovny kódu, společné metody a přístupy k aplikaci.

systém

Žádná velká tajemství zde nejsou. Zdrojové kódy, schémata a desky jsou volně dostupné jak v dokumentaci od dodavatelů, tak v článcích od amatérů. Číňané obecně zavedli vytváření klonů jakékoli barvy a jejich prodej na tržištích.

Hlavní rozdíl oproti jiným podobným obvodům spočívá v tom, že na každém vstupu mikrokontroléru jsou instalovány kondenzátory. Když jsem pracoval s čínskou ladicí deskou, opravdu jsem litoval jejich absence během ladění programu.

Dalším charakteristickým rysem je použití regulátoru LP2985 místo klasického 78L05. Má vyšší zatěžovací proud a nižší úbytek napětí. Další výhodou je přítomnost vypínacího pinu, který odpojí zdroj. Tuto funkci jsem využil k současnému připojení desky k USB bez nutnosti odpojení externího zdroje.

Platit

Původním plánem bylo vyrobit desku plošných spojů, která by byla co nejvíce kompatibilní s Arduinem Nano. Schéma mělo tři konektory pro port C-mikrokontroléru, aby se využily všechny piny čipu. Těchto osm pinů bylo vyvedeno na samostatnou „odlomitelnou“ část desky. Perforace v této verzi umožňovala jednoduše odlomit další port, pokud nebylo nutné instalovat desku do „štítů“ pro Nano. Myšlenka takových desek není nová a byla převzata z STM8-Discovery od STMicroelectronics.

Jedna z možností. Bylo tam mnoho průchodů. Polovina obvodu je na druhé straně desky, včetně všech filtrů.

Experimentováním s tvarovými faktory jsem se odklonil od opakování rozměrů Nano. Místo dlouhé desky se ukázalo být lepší ji rozšířit: v této verzi se ladicí zařízení pohodlně vejde na velké nepájivé pole. Rozhodl jsem se ponechat myšlenku s portem na jednom z konců a obohatil tento konektor o dva analogové linky a rozhraní UART.

Po veškerém výzkumu a experimentech jsem si objednal várku zelených desek.

Výsledné produkty se vejdou na velké nepájivé podložky, což ponechává dostatek prostoru pro připojení komponent. Já preferuji použití úhlového micro-USB kabelu: v tomto uspořádání je to docela pohodlné a nepřekáží.

Spouštěcí záznam

Proč potřebujete bootovací záznam na čipu, když máte programátor? Ano, jsou snadno použitelné (vše se volá jedním příkazem), levné a poměrně spolehlivé. Pro ladění je však vhodné vyvádět informace do sériového rozhraní. Můžete ho také použít k nastavení komunikace s nadřazeným softwarem na PC. A aktualizaci softwaru můžete nahrát přes USB do hotového projektu (již ve formě zařízení, nikoli zkušební desky) bez dalších nástrojů nebo otevírání pouzdra zařízení. To nevyžaduje vůbec žádné speciální znalosti.

Zajímavost: ovladač lze naprogramovat pouze dvěma tlačítky. Na toto téma je na Habru skvělý článek.

Jako bootovací záznam jsem zvolil optiboot. Má dostatečnou funkcionalitu, je aktivně podporován komunitou v oficiálním repozitáři na GitHubu a váží málo. Na základě tohoto projektu byly původně vytvořeny i bootloadery pro další zkušební desky. Mimochodem, na optibootu funguje efektivnější jádro GyverCore.

Takže nejdříve je potřeba připravit operační systém pro sestavování souborů. Budete potřebovat avr-gcc, nejlépe nejnovější verzi.

Instalace na Ubuntu je nejjednodušší a je popsána v tutoriálu.

Pro macOS budete potřebovat balíček brew a nainstalovat ho (lze jej nalézt na GitHubu).

Instalace ve Windows je trochu složitější než v Linuxu, ale podrobný návod vám pomůže.

Alternativní možností pro Windows je avr-gcc jako součást vývojového prostředí Arduino.

Pro sestavení si jednoduše stáhněte repozitář a podle pokynů z wiki projektu na GitHubu zkompilujte zdrojové soubory a stáhněte si binární kód. Ke stažení budete potřebovat git na vašem PC. Nebo si můžete stáhnout archiv:

git clone https://github.com/Optiboot/optiboot.git cd optiboot/optiboot/bootloaders/optiboot 

Dále provedeme assembly. Je nutné specifikovat použitý OS, aby skript mohl doladit některé proměnné a také opravit symboly cesty (ve Windows).

make OS=macos UART=0 BAUD_RATE=115200 LED=B7 LED_DATA_FLASH=1 AVR_FREQ=16000000L atmega8535 

Dále můžete zadat možnost BOOT_ON_POR=1. V tomto případě bude bootloader po zapnutí čekat na signál z počítače po dobu jedné sekundy (konfigurováno možností TIMEOUT), než začne načítat. To je užitečné v situacích, kdy se potřebujete připojit přes USB bez restartu řídicí jednotky. S touto možností můžete také načítat software přes RS-485, bezdrátově přes standardní Bluetooth, Wi-Fi moduly nebo dokonce přes rádio (pokud opravdu chcete).

Během sestavení bude program make vypisovat varovné řádky:

Chyba 2 % není velký problém, ale byli jste varováni. Abyste se jí vyhnuli, můžete změnit frekvenci rezonátoru nebo rychlost rozhraní.

Poslední příkaz načte vygenerovaný bootloader do desky. K tomu používám avrdude:

avrdude -P usb -c usbasp -p ATmega8535 -s -B 16kHz -U flash:w:optiboot_atmega8535_UART0_115200_16000000L.hex 

Pro další použití vezmeme tento řádek z konzole a nahradíme pole vlastními:

avrdude -p m8535 -c arduino -P /dev/tty.usbserial-0001 -b 115200 -U flash:w:build/k1946vm014.hex 

Do makefilu popsaného dříve na Habru jsem přidal pár řádků:

pusb: $(TARGET).hex avrdude -p $(DUDE_MCU) -c arduino -P $(PORT) -B $(PORTSPEED) -U flash:w:$(BUILD_DIR)/$(TARGET).hex 

V tomto bodě je hlavní úkol dokončen. Deska je detekována a aktualizována přes USB z VSCode:

Závěr

Desky, které jsem získal, se úspěšně používají k ladění některých řešení. Zkušeností jsem si uvědomil, že některé prvky, které práci usnadňují, chybí. Například stálo za to je doplnit:

  • Stabilizátor 3,3 V – některé mikroobvody nebo indikátory pracují na tomto napětí;
  • zdroj referenčního napětí (stejný tl431);
  • odpojení signálu “reset” ovladače od ch340 (tento problém jsem dočasně vyřešil změnou bootloaderu a přerušením stopy).
  • selectel
  • mikrokontroléry
  • mikrokontroléry avr
  • neet
  • domácí elektronika
  • domácí řešení
  • arduino
  • Vyberte blog
  • Gadgets
  • Počítačový hardware
  • Life hacky pro geeky
  • Arduino

Asi nejhloupější otázka, ale nikde na ni nejsou odpovědi. Jak připojit několik modulů k Arduinu bez Brad desky, pokud je tam jen jedna zem?

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 03:04

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 03:10
Registrováno: 10.02.2020

No, pokud je Pitt zaneprázdněný a musíte si ho zapojit sami, můžete použít dráty. Ne moc silné, s průřezem asi 0.1-0.14. Měděnou sběrnici je lepší nepoužívat – drahá, těžká, objemná 🙂

A tak si nejdříve musíte nakreslit schéma (elektrické schéma). Bude to přehlednější. Dráty můžete jednoduše vést podle schématu.

A možná i přímočará otázka: nevadí vám, že jídlo je téměř jistě stejné? Nebo to bude až na druhou otázku?

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 06:19
Registrováno: 23.11.2016

Něco takového, předpokládám

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 13:56
Registrováno: 26.05.2017
Jak připojit několik modulů k Arduinu bez Bradboardu, pokud je k dispozici pouze jedno uzemnění?

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 14:09

Abyste měli vždy dostatek zemních/napájecích kontaktů, můžete si koupit něco jako: https://aliexpress.ru/item/32725131063.html

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 17:08
Registrováno: 26.05.2017
Jak připojit několik modulů k Arduinu bez Bradboardu, pokud je k dispozici pouze jedno uzemnění?

Metoda bez páječky a dalších desek:

Vezměte si standardní svetr od DuPontu.

Rozstřihněte ho zhruba uprostřed. Zastřihněte ustřižené konce.

Nyní vezměte další svetr a udělejte s ním totéž.

Zkrouťte čtyři odizolované konce drátu k sobě a omotejte je izolační páskou. Jeden z konektorů připojte k pinu GND na Arduinu. Na druhé straně nyní máte tři GND konektory pro připojení tří modulů.

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 18:13
Registrováno: 21.08.2022

Je jasné, že se dá použít páječka, ale jak? Nemůžeš přece připájet 2-3 dráty k jedné zemi? Zkratuje to všechno, že?

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 18:47

Pájka, páječka, nepájivé pole (pro experimenty a/nebo ladění), deska plošných spojů pro hotové zařízení.
Všechno ostatní (zvraty atd.) je úplný nesmysl.

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 18:49

Je jasné, že se dá použít páječka, ale jak? Nemůžeš přece připájet 2-3 dráty k jedné zemi? Zkratuje to všechno, že?

Už mi ukaž ten diagram, protože píšeš nesmysly.

  • Chcete-li odeslat komentáře, přihlaste se

Ne, 21. 08. 2022 — 19:07
Registrováno: 08.05.2022

Je jasné, že se dá použít páječka, ale jak? Nemůžeš přece připájet 2-3 dráty k jedné zemi? Zkratuje to všechno, že?

„Zem“ je v tomto případě společný vodič, kterým je modulům dodáváno napájení a vzhledem k němuž se signály mění. Například, pokud potřebujete připojit tucet třípinových teplotních senzorů ds18b20, pak se jejich napájecí piny všech 10 kusů připojí k +5V a zemnící piny k „zemi“. A signální piny se také sloučí do jednoho vodiče. Totéž platí pro různé moduly. Jejich „zemnící“ a napájecí piny se sloučí do dvou vodičů a signální piny se v Arduinu zapojí, jak je popsáno v datovém listu.

Podívejte se na jednoduchý příklad:

  • Chcete-li odeslat komentáře, přihlaste se

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button