Stránka 1 z 1

Arduino a vzdálená aktualizace programu

Napsal: 02 říj 2014, 13:59
od 666mb
Ahoj,
už dlouhou dobu si hraju s myšlenkou postavit si systém na řízení ohřevu teplé vody za pomoci Arduina.

Problém je, že k arduinu bude poměrně špatný přístup a tak mě napadlo, zda je nějaká možnost jak aktualizovat firmware pomocí ethernet shieldu.

Jediný postup co mě zatím napadl, je ten, že v arduinu by byl nahrán program, který by četl nejnovější verzi programu z SD karty a když by byl požadavek na aktualizaci firmware, tak jenom přepsat obsah SD.

Ovšem nevím, jestli Arduino umí s textem z SD karty zacházet tak, aby četl text jako program a podle toho se chovat.

Děkuji všem za jakýkoliv nápad.

Napsal: 02 říj 2014, 18:51
od monterjirka
Nějak si to neumím představit.
Arduino je postaveno na procesoru jisté koncepce, kde je program v paměti procesoru. Ten procesor již s principu své koncepce nedokáže číst jednotlivé příkazy z externího paměťového média.
To je tak daleko, že by nešlo nechat tam viset USB kabel a při změně přijít s notebookem?

Napsal: 02 říj 2014, 19:55
od lesana87
AVR sice neumí spouštět kód z externí paměti, ale umí si přepsat FLASHku. Takže by do něj šel naprogramovat bootloader, který v případě potřeby natáhne novou verzi sw z SD karty a naprogramuje ji do FLASH. :)

Napsal: 02 říj 2014, 20:11
od 666mb
monterjirka píše:Nějak si to neumím představit.
Arduino je postaveno na procesoru jisté koncepce, kde je program v paměti procesoru. Ten procesor již s principu své koncepce nedokáže číst jednotlivé příkazy z externího paměťového média.
To je tak daleko, že by nešlo nechat tam viset USB kabel a při změně přijít s notebookem?
Problém je ten, že to máme trochu blbě udělaný. Do kotelny máme vstup přes sousedovu zahradu, a ten dědek je strašnej blbec. Hold, práce s lidma je strašně těžká...

lesana87 píše:AVR sice neumí spouštět kód z externí paměti, ale umí si přepsat FLASHku. Takže by do něj šel naprogramovat bootloader, který v případě potřeby natáhne novou verzi sw z SD karty a naprogramuje ji do FLASH. :)
A toto se dělá jak? Jde případně předělat bootloader od Arduina, nebo si musím naprogramovat nějakej sám?

Napsal: 02 říj 2014, 20:20
od lesana87
666mb píše:Problém je ten, že to máme trochu blbě udělaný. Do kotelny máme vstup přes sousedovu zahradu, a ten dědek je strašnej blbec. Hold, práce s lidma je strašně těžká...
A jak přepíšeš tu SD kartu, když je problém se tam dostat?
666mb píše:A toto se dělá jak? Jde případně předělat bootloader od Arduina, nebo si musím naprogramovat nějakej sám?
Tady už to někdo zjevně řešil: https://github.com/thseiler/embedded/tr ... avr/2boots :wink:

Napsal: 02 říj 2014, 20:24
od Honza_dy
Co takhle prevodnik ethernet-RS232 a nahrávat program klasicky?

Napsal: 02 říj 2014, 20:26
od 666mb
lesana87 píše:
666mb píše:Problém je ten, že to máme trochu blbě udělaný. Do kotelny máme vstup přes sousedovu zahradu, a ten dědek je strašnej blbec. Hold, práce s lidma je strašně těžká...
A jak přepíšeš tu SD kartu, když je problém se tam dostat?
666mb píše:A toto se dělá jak? Jde případně předělat bootloader od Arduina, nebo si musím naprogramovat nějakej sám?
Tady už to někdo zjevně řešil: https://github.com/thseiler/embedded/tr ... avr/2boots :wink:
Skvělý, moc děkuju, asi neumím hledat :-)

SD kartu byl chtěl zkusit nějako přepisovat přes ethernet shield. Teoreticky bych pomocí proto shieldu mohl připojit na arduino další procesor, který by se vyloženě staral jenom o aktualizaci SD karty.

Napsal: 03 říj 2014, 08:27
od stanleyv
Arduino má predsa usb bootloader (teda vieš do neho nahodiť program cez usb port, ktorý má na doske). A vravíš, že sieť tam bude. Nedalo by sa pomocou nejakého prevodníka (napr.: http://pc.itek.cz/lan-adaptery-usb/X998 ... ax-EU-4208) napojiť priamo na Arduino a aktualizovať software po sieti?

EDIT: myslel som priamo do procesora bez použitia nejakej karty a pod.....

Napsal: 07 říj 2014, 23:11
od sidbin
kdysi jsem narazil na tenhle nápad požít Xbee:
http://www.faludi.com/itp_coursework/me ... eless.html

Napsal: 08 říj 2014, 21:39
od frpr666
Standardní arduino bootloader se "aktivuje" při restartu Atmelu, buď tlačítkem, a/nebo pinem z převodníku rs232 nebo z převodníku usb. Záleží na druhu desky. Konkrétně u Arduino Mega 2560 mám vyzkoušené, že není třeba mačkat reset tlačítko na desce, o restart se postará převodník atmega8U2.
Jak se psalo výše převodník Ethernet/usb by to mohl zvládnout.
:roll:

Napsal: 09 říj 2014, 06:08
od franta22
Zdravím já to vidím řešit ve dvou krocích.
1. krok :Pomocí RS232 eventuelně RS432 řidit celej proces z PC
---napojení na kotelnu přes procesor zpracující povely z COMx a napojený na kotel přes HW procsoru .
2. Krok : pomocí odladěného programu v PC naprogramovat
procesor napevno . Bez potřeby posílati povely z PC. Autonomní provoz.
-----
pokud napojení z PC je již provedeno dle kroku 1.využit tuto skutečnost
a PC program doplniti o monitorovací proces v PC i diskrétní v čase
načtením dat z paměti procesoru apd.
......
Problém Arduina je zcela druhořadý ...toto lze řešit libovolným procesorem s UARTEM a se znalostmi programování
jak PC tak mikroprocesoru na nezačatečnické úrovni .
.....
dalši info třeba na SZ
.....

Napsal: 09 říj 2014, 08:54
od franta22
pokud by melo jednat o vzdalenou aktualizaci probramu v mikroprocesoru
jde to taky na desce procesoru se naprojektuje programovy zavaděč = driver ktery přes komunikacni port COM nahraje program do procesoru a spustí jej ....vše dálkově z PC .