Arduino kezdő segítség

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Avatar
boczhunor
Bitmanipulátor
Hozzászólások: 110
Csatlakozott: 2009. augusztus 5. szerda, 6:00

Sziasztok.

Hozzászólás Szerző: boczhunor »

Helló!

Aha én elolvastam amit ott ír. De ez a link csak egy példa volt. Egyébként én mit értek a lassuság alatt? Pl. ma csináltam egy tiszta jó dolgot. Az I2C elég lassúnak tünt. Megjegyzem nem azonos mikrokontrollerek közt. Az egyik egy atmega644 a másik egy atmega8. Meg hát az egészre rávan kötve a PC és az Arduino kommunikál egy általam írt C programmal, majd bizonyos müveletek történnek. ...Aztán közbe a mikrokontroller számol, rávan kötve kettő darab RF mdul (egy RX és egy TX) és ott van egy Mátrix billentyű is amelynek vezélrési szerepe van.A mikrokontroller pedig pl. én nyomom a billentyűt 5 s -ig és öt s múlva 15 s késleleteés után elküldi ezt. És hát mivel a késleltetés kevesebb legyen ezért még kicsit feltúrbóztam,hogy Ha pl. 5 s-ig nyomom az előre billentyűt akkor csak 10 s-t késleltessen. Az egész egy robot vezérlője,ami a Magyarok a Marsonra készül. De akadnak nagyon súlyos hibák. Pl. a mikrokontroller annyira levan terhelve,hogy rendesen melegedett meg hát voltak 0.5 s-s késések... Ezért ma nagy ötlet támadt. Csak akor figyelem a portokat meg mindenre csak akkor koncentrál a mikrokontroller ha adat jön vagy adatot kell közvetíteni és nem folyamatos akkor a kommunikáció.Tehát nem kér adatot a port TX-éről mikor nem kell. Hiszitek nem egyszerűen csodálatos eredmény szülketett. Már nem meleg a mikrokontroller és hát szemmel láthatóan gyorsabb.



És ha már a téma neve Arduino kezdő segítség akkor van egy szuper segítségem: Egyik ismerősnek adok órákat és kérdezte,hogy nem ismerek az Arduino-hoz valami vizuális fejlesztő környezetet? Mondom én nem. Beírtam a neten és kaptam valami nagyon érdekeset. Tehát Visual Arduino programozás. A program neve Amici és itt lehet letölteni:
http://dimeb.informatik.uni-bremen.de/eduwear/?m=201002
Bár én biztos programozni fogom az Arduino programokat és minden más programomat, nem nagyon szeretem a Vizuális programozást. ha lehetne egyáltalán ezt programozásnak nevezni. Egyébként ha mégis valaki nem akar programot írni,hanem csak klikkelgetni és odahúzogatni a tömböket,akkor ez a program egy gyors megoldás, és ami jó,hogy a vizálisan megalkotott program egy kis mezőbe a progi lefordítja kóddá. Kimásoljuk, és beillesztjük az Arduinoprogramba és mehet az égetés Bár nem tudom,szerintem már az Aici-ből lehet ptogramozni.

Ha valaki nem szeretné az AVR-t,de mégis megragadja az Arduino nyelv,akkor ajánlom figyelmükbe:
http://en.wikipedia.org/wiki/Arduino#Non-ATmega_boards


Arduino hackok nagy darabszámban itt: http://hackaday.com/category/arduino-hacks/


Mára enyi. :lol: :lol: :D :D
Helló!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Ha melegszik a chip:
- rövidzár, 2 láb szembekötve
- túlfeszültség tápon vagy lábon át...

Az ATMega NEM PC, hogy HALT utasítással hűlne!


A megszakításkezelés a funkcionális felépítés segítségével _nem_ terheled a procit felesleges várakozásokkal (pl. delay, sorosportra várás stb). Érdekes módon nem lenne 5-15 sec reakcióidő! Ez igen erősen programozási hiba lesz valahol....

A RX nem _kér_ adatot. Ha megnézed, hogy _van-e_ adat a bufferban, vagy a Rx INT-en keresztül lehet, nem kell várakozni....


A Visual környezettel NEM tanulsz.
Valamit összerakosgatsz, ami jó esetben működik...
De az _nem_ programozás... (szerintem)
Avatar
prmpec
DrótVégénSzéndarab
Hozzászólások: 46
Csatlakozott: 2009. december 2. szerda, 7:00

Hozzászólás Szerző: prmpec »

Pl. a mikrokontroller annyira levan terhelve,hogy rendesen melegedett meg hát voltak 0.5 s-s késések
Amennyire én tudom az AVR nem tud pihenni. Mindig csinál valamit. (Kivéve a Suspend módokat.) Vagyis nem tudsz úgy optimalizálni, hogy kevésbé melegedjen. (Oké, lehet, hogy vannak melegedősebb műveletek, de azok inkább EPROM írás, vagy ilyesmi.)

A melegedés szerintem is valami amperos terhelés probléma lehet(ett). Nem mindegy, hogy hány (mili)amper folyik a mikrokontrolleren. Pl. mondják, hogy a LED-et is inverzben illik bekörni, ti. alacsonyba kapcsolva menjen a terhelés.
http://www.avrtutor.com/tutorial/thermo/ioports.php

A sebességre visszatérve: 16MHz. Tegyük fel, hogy az Arduino optimalizálatlanságán mondjuk bukjuk a lehetőségek 90%-át. Fél másodperced alatt még így is félmillió művelet hajt végre... A processzor olyan őrületesen gyors, hogy pihenő időben tudná sugározni a Kossuth rádiót középhullámon amplidudó modulációval. :)

Ha sok IO eszközöd van, talán érdekelhet a (New)SoftSerial:
http://arduiniana.org/libraries/NewSoftSerial/
A hozzászólást 2 alkalommal szerkesztették, utoljára prmpec 2010. március 5. péntek, 22:20-kor.
Avatar
boczhunor
Bitmanipulátor
Hozzászólások: 110
Csatlakozott: 2009. augusztus 5. szerda, 6:00

Helló.

Hozzászólás Szerző: boczhunor »

Egyébként kedves Róbert van néhány dolog amit nem tudtál. Minek van a 15 s várakozás? Mert a magyarok a Marson verseny előírja,hogy minden adatküldés és fogadás 15 s-t kell késsen. Bár ezt leírtam az előbbi hozzászólásomban .Lehet valamit rosszul értettél.:D

És én egy szóval sem mondtam,hogy én Visual-t használok. Ezentúl szépen kérem a hozzászólás figyelmes elolvasását(Ez nem Róberthez szól,hanem mindenkihez és mindenkinek illik elolvasni figyelesen a hozzászólását vagy bármit... :oops: ):
Idézek:
Bár én biztos programozni fogom az Arduino programokat és minden más programomat, nem nagyon szeretem a Vizuális programozást. ha lehetne egyáltalán ezt programozásnak nevezni.
2 pedig én életemben nem használtam ezt a programot a gépemen sem volt, csak a neten kaptam. És nagyon jól látszik a hozzászólásomban,hogy én nem ahasználom és nem is akarom. És én is írtam,hogy az nem programozás. Én Arduino-t kézi kóddal írom meg, és nem némi kockával. És hát az Arduino-val készítettem már nagyon fontos és érdekes programokat. Nem némi AI Chat meg ilyenek amiket a versenyre küldtem be,hanem olyan projektet,amivel rám figyelt az Imagine Cup és sok sikerrel sikerült beszélgetni Bill Gatessel is interneten. Mentem volna az Imagine Cupra-csak nem engedtek hisz nem vagyok 16 éves. Bár a projektért nagyon értékes nyereménnyel és pénzszöszeggel megdíjaztak. Az egész program arról szól,hogy a PC-t irányíthatjuk egy kesztyűvel amin van gyro. és accelerom. és úgy irányítom a teljes PC-t illetve mindent. És ami nekük nagyon tetszett,hogy az alkalmazást nekük bemutattam 3 D-s szemüveggel és akkor kijött egy kocka annak változtattam a kesztyűvel a színét,formáját illetve helyzetét és tetszett nekük,hogy az alkalmazást a google earth-ban is bemutattam,ahol a kezemmel vezéreltem mindent. És ami érdekes volt,hogy csináltam egy vagány programot,amely mindent Anaglyph-ban mutat ami a képernyon van. És az egész Google Earth 3D lett és az is kijött és mindent látthattam térhatásba. A másik projekt egy Digital Signal Processing volt,amely a szavaimra végzett el különböző feladatokat. Az egyik az,hogy azt mondtam,hogy start akkor megjelent a Start menü ha mondtam minden fájl megjelent a minden fájl és az ott szerplő program nevét ha mondtam az megnyílt. Elég egyszerű mégis egy jó példa arra,hogyan lehet szavainakl számítógépet vezérelni. Hiszitek nem, mindent Arduino-ban csináltam alig 10% volt C. Mivel mindig az ismert két nyelv közül azt a nyelvet választom amelyel könyebben meglehet oldani.Hát ilyen projektnél a mikrokontroller az egyszerűbb. Viszont a 3D-s modulhoz már a PC programozás könyebb.

Na helló. :x :? :D
A hozzászólást 2 alkalommal szerkesztették, utoljára boczhunor 2010. március 7. vasárnap, 14:55-kor.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

"kesztyűvel amin van gyro. és accelerom"
Ilyenen anno én is agyaltam, de az újjak állapotát is aktív elem érzékeli?
Van olyan vékony rugalmas fonalam, ami a nyúlással arányosan változtatja az ellenállását. Én azzal képzeltem érzékelni az újjak kinyújtott/becsukott állapotát. Bírkaság, most már látom :) Mondjuk ez régen vóóót...
JAni
Avatar
boczhunor
Bitmanipulátor
Hozzászólások: 110
Csatlakozott: 2009. augusztus 5. szerda, 6:00

Helló.

Hozzászólás Szerző: boczhunor »

Helló.
"az újjak állapotát is aktív elem érzékeli? "
Az újjaim mozgását egy erőmérő kis lapka végzi,amely az újak hajlatainál van,és ha az újjunkat behajlítjuk erővel hatunk rá,és változik az ellenállása. És azt beolvassa a mikrokontroller.
Kép

"Ha sok IO eszközöd van, talán érdekelhet a (New)SoftSerial"
Egyébként ha megnézitek a versenyre beküldött egyik GPS,magasságmérő és gyorsulásmérő projektemet látjátok,hogy ott is használom a NewSoftSerial-t. Elég sokszor szoktam használni. Bár ,hogy a programok legyenek változatosak jön néha a Wire.h...

De úgylátszik,megbűvan a hiba oka. Bár mondtam,hogy ha nem figyelem mindi a kommunikációt, és persze nem eepromolok nem melegedik. De ami érdekes,hogy kicseréltem az AVR-t egy vadonat új chippre és betettem ma reggel az összes funkciót. Tehát folyamatos olvasás ,eeprom használat... és semmi gond sem volt. Bár igaz a Chip ami volt eredetileg egy használt chip volt. És hát nem volt rajta bootloader,hisz pasi akitől vettem 100 ft-s áron per darab ami nagyon jó ár ,igaz használtan ő AVRStudio-ban programozott. Lehet megterhelte,hogy sok rátettem a bootloadert. Bár én ezt a tényezőt kizárom. Amit mégis elfogadni kívánok,hogy a Chip megöregedése következett be. Mivel apasi szerint éjjel nappal üzemmódban voltak heteken keresztül. És szerintem ez okozta a problémát. És lehet,hogy a belső I/O perfériával is gond van. Nem tudom. Az a fő,hogy új chiipet tettem bele és minden rendben.
Ja, és még valami. Normál tápról megy minen stabilizálva... de csak ennél a projektnél volt ez a gond. Atöbbinél semmi. És proóbáltam NewSoftSeriallal és az eredmény semmivel se változott...

Kössz mindenkinek az irogatást. :D :D

Na sziasztok!
Avatar
meszarosk
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2008. július 31. csütörtök, 6:00

Hozzászólás Szerző: meszarosk »

Sziasztok !

Egy kis segítséget kérnék valakitől, aki jobban ért hozzá mint én.
Van egy AVR-Duino miniboard-om (r9)-es. Ezt próbálnám meg Arduino-ból programozni. (BASCOM-ból ment a programozás STK200-as programozóval).
Az USB-s illesztő telepítése megtörtént (COM2-re raktam, 18200-ra állítottam).
Elindítottam az Arduino programot (0021-es verzió), kiválasztottam a panelt (Arduino NG or older w/AT Mega168), majd betöltöttem a példák közül a Blink-et.
Az Upload gombra kattintva (némi várakozás után) a következő hibaüzenetet kapom:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

Mit csinálok rosszul, hi lehet a probléma ?
Köszönettel vennék bármilyen segítséget.

Sziasztok
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A bootloadert kiszetted belőle.
A hardware/atmega/bootloader8_168(?).hex-t tedd bele.
A chipnek megfelelo es az orajelnek megfelelo.


A fusebitek:
Ext quartz, bootsite:1024
Reset->bootloader
BOD: 4.3V
BOD enable (ha van)
LOCK bit: LPM, SPM disable at boot section.
Avatar
raubgraf
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2008. szeptember 17. szerda, 6:00

Volna egy kis problémám.

Hozzászólás Szerző: raubgraf »

Üdvözlet és Boldog Új Évet mindenkinek.
Arduino-t szeretnék programozni Bascom alatt. A Batch-file be lett másolva a főkönyvtárba. A programot lefordította a Bascom. A Chip-be töltéskor a következő látható:Kép Mit ronthattam el?
Köszönettel:raubgraf. [/img]
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hosszabb elérési utat nem tudtál megadni? :P
A paraméterekkel egyuut max 254 karakteres lehet a FULL AVR-DUDE, konfig, parameter es egyebek....
Avatar
raubgraf
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2008. szeptember 17. szerda, 6:00

Hozzászólás Szerző: raubgraf »

Üdvözlet.
Köszönöm a segítséget. Orvosoltam a problémát. Az Arduino Alpha főkönyvtárba át rakva. A probléma sajnos még mindig fen áll.
A hiba üzenet szerint nem tudja megnyitni a config file-t, és azt írja ki hogy. Permission denied.:-( Üdvözlettel raubgraf.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Oprendszer W7?
Adminként kell futtatni és/vagy file saját tulajdonba vétel...
Avatar
raubgraf
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2008. szeptember 17. szerda, 6:00

Hozzászólás Szerző: raubgraf »

Oprendszer WindowsXP.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A könyvtár elérését kijavítottad a bat file elején?
A két set sor...
A hivatkozott helyen nincs a keresett file....

Nálam ez a bat van, a bat a d:\ alatt, az arduino a c:\program files\arduino-0022 alatt.

Kód: Egész kijelölése

@echo off 
title TavIR-Duino
echo. 
echo AVR-Duino/Arduino uploader for Bascom by AVRDuDe 
echo Version: 0.7 alpha for Arduino-NG / Arduino-Diecimila / Arduino UNO / Wiring-Mega128 / Arduino-Mega1280.2560
echo Contact: csehrobert(at)tavir(dot)hu 
echo http://avr.tavir.hu 
echo (c) 2011-01-03
echo. 
 
set avrdudefile=C:\Program files\arduino-0022\hardware\tools\avr\bin 
set avrdudeconf=C:\Program files\arduino-0022\hardware\tools\avr\etc\avrdude.conf 
set comport=COM6
set chip=168
set debug=0
 
if %debug% == 0 goto next 
echo Param1:%1 
echo Param2:%2 
echo Param3:%3 
echo Param4:%4 
echo Param5:%5 
echo Param6:%6 
echo Param7:%7 
echo Param8:%8 
echo Param9:%9 
echo. 
:next 

if "%1" == "" echo Usage:   duino.bat "flash.hex" "eeprom.hex" ("comx" "chip")
if "%1" == "" echo.  
if "%1" == "" echo Where   flash.hex  - flash file to write to AVR (hex format)
if "%1" == "" echo         eeprom.hex - eeprom file to write to AVR (hex format)
if "%1" == "" echo         comx       - serial, where connected the AVR-Duino (optional)
if "%1" == "" echo         chip       - chip name which in AVR-Duino (optional)
if "%1" == "" echo.  
if "%1" == "" echo there are some optional/default parameter (Com:%comport% and chip:%chip%)
echo.
echo.
echo Flash   : %1 
echo EEPROM  : %2 
if "%3" == "" echo COM     : %comport% (default) 
if NOT "%3" == "" echo COM     : %3 
if NOT "%3" == "" set comport=%3 
 
if "%4" == "" echo Chip    : %chip% (default) 
if NOT "%4" == "" echo Chip    : %4 
if NOT "%4" == "" set chip=%4 

echo. 

rem cd "%avrdudefile%" 
rem avrdude.exe -C "%avrdudeconf%" -p m168 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a 

if %chip% == 8 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m8 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a 
if %chip% == 168 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m168 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a 
if %chip% == 328 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m328p -c stk500 -P %comport% -b 57600 -U flash:w:%1:a 
if %chip% == 328UNO "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p auto -c stk500 -P %comport% -b 115200 -U flash:w:%1:a 
if %chip% == 128 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m128 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a 
if %chip% == 1280 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m1280 -c stk500 -P %comport% -b 57600 -U flash:w:%1:a 
if %chip% == 2560 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m2560 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a 

pause 
  
Válasz küldése