Jak na sekvence prikazu z PC do Arduina

Odpovědět
Vladimir66
Příspěvky: 405
Registrován: 02 dub 2014, 15:30

Jak na sekvence prikazu z PC do Arduina

Příspěvek od Vladimir66 »

Ahoj vsem,

Potrebuji poslat sekvenci prikazu do Arduina (Nano) pres seriak.
Putty.exe -serial com8 otevre okno terminalu a Arduino vykonava kod podle kodu zmacknuteho tlacitka.
Pokud zkusim do Putty poslat vstup ze souboru, (.txt s prikazy) tak to nejde.
Mate tip na nejaky soft na PC, ktery by to umel ?
(V dalsim kroku budu potrebovat vyresit pauzu cca 3sekundy mezi jednotlivymi prikazy.)


-V66
HonzaD
Příspěvky: 39
Registrován: 17 bře 2020, 11:39

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od HonzaD »

Python umí snad všechno snadno se spoustou návodů na netu a knihovnami skoro na cokoliv.
Mě vyhovuje https://thonny.org/
Zpočátku to vypadá úchylně, jak se bloky oddělují bílými znaky, ale celkem rychle si na to člověk zvykne a je to fajn.
Uživatelský avatar
fulda
Příspěvky: 1484
Registrován: 04 led 2016, 16:18

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od fulda »

mno pokud by šlo jen o bezhlavé přehrání toho *.txt souboru na sériový port, tak na to ti stačí příkazová řádka: copy soubor.txt com8:
Parametry jaké to copy použije se definují příkazem MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s] [RETRY=r]

To ale většinou není to co chceš udělat, takže ti řeknu, že já si pro tyhle případy píšu kdejaké sendery ve free pascalu. Ale je to spíš otázka zvyku.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
gilhad
Příspěvky: 276
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od gilhad »

Já na Arduino používám picocom kde se po stisknutí Ctrl+a Ctrl+s dá zadat/vybrat soubor, který to tam pošle, jako by šel z klávesnice.

https://linux.die.net/man/8/picocom

A dá se tam i nastavit program na to posílání (defaultně cat ), který může například poslat další řádek až poté, co Arduino potvrdí přijetí předchozího (například vypíše prompt). Nebo když uplyne nějaká doba, třeba ty 3 sec. Ten program může být v čemkoli, klidně v Pythonu, nebo bashi, nebo C ....
Vladimir66
Příspěvky: 405
Registrován: 02 dub 2014, 15:30

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od Vladimir66 »

Diky za reakce,

-pouzivam Win, takze Picocom nespustim, zkouknu vyzkouset nejake alternativni terminaly
-ten prikaz copy soubor.txt com8: nefunguje, lze spustit copy soubor.txt >com8: nebo copy soubor.txt >com8
take type soubor.txt > com8 atd.

problem je, ze Arduino problikne (komunikuje) ale vzapeti se resetuje.
je to pry nastavenim "auto reset" , aby se automaticky spustilo nahravani programu do arduina a nemuselo se drzet tlacitko reset ve spravnou chvili.
vygooglil jsem spoustu stejnych dotazu ale zadne relevantni reseni.
ta komunikace pres terminal necha port otevreny ale kdyz to posila znak ze souboru, tak proste reset ...
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1604
Registrován: 16 úno 2013, 13:26

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od Dex »

Když jsem něco takového potřeboval, taky jsem použil python, který má na to balíček pyserial. Příkladů najdeš spoustu.

Výše zmíněný Thonny za tebe vyřeší instalaci pythonu (je k němu přibalený) a pyserial si doinstaluješ přímo z menu. Navíc je to opravdu univerzální řešení (nejen) posílání něčeho po sériáku.
"all your robots are belong to us"
robodoupe.cz
Uživatelský avatar
fulda
Příspěvky: 1484
Registrován: 04 led 2016, 16:18

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od fulda »

Vladimir66 píše: 14 črc 2024, 19:31 problem je, ze Arduino problikne (komunikuje) ale vzapeti se resetuje.
je to pry nastavenim "auto reset" , aby se automaticky spustilo nahravani programu do arduina a nemuselo se drzet tlacitko reset ve spravnou chvili.
vygooglil jsem spoustu stejnych dotazu ale zadne relevantni reseni.
ta komunikace pres terminal necha port otevreny ale kdyz to posila znak ze souboru, tak proste reset ...
Tak můžeme to rozebírat, abychom jako věděli co se nám kde děje.
Náhodně vybrané schéma Arduino Nano v3. Soustředíme se na pin Reset na procesoru. K němu je připojen výstup z kondenzátoru C4 (hledej na předovníku USB/serial). A ten kondenzátor je připojený na výstup DTR.
Takže když se mění stav signálu DTR, tak se nám resetuje procesor.
A když se podíváme na help mode (návod k příkazu mode), tak tam pro sériový port najdeme přepínač dtr={on | off | hs}.

Ale pořád platí, že použití copy nebo type prostě ten soubor přehraje na port v maximální dostupné rychlosti a bez zamyšlení. A to skoro nikdy není to, co by jsi čekal.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
HonzaD
Příspěvky: 39
Registrován: 17 bře 2020, 11:39

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od HonzaD »

Vladimir66 píše: 14 črc 2024, 19:31 je to pry nastavenim "auto reset" , aby se automaticky spustilo nahravani programu do arduina a nemuselo se drzet tlacitko reset ve spravnou chvili.
vygooglil jsem spoustu stejnych dotazu ale zadne relevantni reseni.
"Zrušit" autoreset na Arduinu lze v pohodě: stačí připojit reset na Vcc - buď "natvrdo" drátem, nebo lépe dostatečně velkým kondenzátorem. Při použití kondenzátoru zůstane zachována možnost resetu čudlíkem.
Vladimir66
Příspěvky: 405
Registrován: 02 dub 2014, 15:30

Re: Jak na sekvence prikazu z PC do Arduina

Příspěvek od Vladimir66 »

Tak uz jsem to pořešil pomoci https://www.serialtool.com/_en/index.php
je to kanon na vrabce ale funguje to, a muzu dat prodlevu mezi jednotlivymi pakety.
takze velikost paketu = 1, delay = 1000 a posila to znaky s 1sekundovym intervalem.
akorat ta free verze ma omezenou velikost souboru na 1Kb, coz je v pohode.
-V66
Odpovědět