Arduino a vzdálená aktualizace programu

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
666mb
Příspěvky: 68
Registrován: 23 úno 2014, 01:00

Arduino a vzdálená aktualizace programu

#1 Příspěvek 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.

Uživatelský avatar
monterjirka
Příspěvky: 2761
Registrován: 14 čer 2003, 02:00
Bydliště: Blížejov

#2 Příspěvek 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?

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#3 Příspěvek 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. :)

Uživatelský avatar
666mb
Příspěvky: 68
Registrován: 23 úno 2014, 01:00

#4 Příspěvek 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?

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#5 Příspěvek 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:

Uživatelský avatar
Honza_dy
Příspěvky: 2172
Registrován: 20 srp 2004, 02:00
Bydliště: Brno-venkov

#6 Příspěvek od Honza_dy »

Co takhle prevodnik ethernet-RS232 a nahrávat program klasicky?

Uživatelský avatar
666mb
Příspěvky: 68
Registrován: 23 úno 2014, 01:00

#7 Příspěvek 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.

Uživatelský avatar
stanleyv
Příspěvky: 123
Registrován: 21 led 2007, 01:00
Bydliště: Trnava

#8 Příspěvek 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.....

Uživatelský avatar
sidbin
Příspěvky: 13
Registrován: 07 lis 2013, 01:00

#9 Příspěvek od sidbin »

kdysi jsem narazil na tenhle nápad požít Xbee:
http://www.faludi.com/itp_coursework/me ... eless.html

Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 01:00

#10 Příspěvek 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:

Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#11 Příspěvek 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
.....

Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#12 Příspěvek 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 .

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“