Šta je novo?

avr ... attiny ... kako gde sta .. ?

wrmwrmwrm

Slavan
Učlanjen(a)
14.10.2007
Poruke
289
Poena
319
hi svima,
slabo sam do sad kuckao po forumu, uglavnom citao pa nemogu da se snadjem
gde zapravo da pitam pitanje oko AVR, programiranje istih, interface-a za programeranje i slichno .. ako sam omashio sekciju i postoji neka samo za AVR ... prebacite 🙂

znachi ... budzetsko reshenje mi treba, sto manje kesha, prvo da reshimo nachin kako da shljem kod ka uredjaju .. da li da idem na neki paralelni kabl ili ima neko jeftino USB reshenje .. ima li neshto sto ja nooobchina mogu da sam sklepam ?

sledeci deo se odnosi na samo programiranje, programirao sam u svemu is svachemu ali nisam u C, nekako mi se ANSI C ogadio i zabatalio sam ...
znachi ima li negde neki sajt za nooobve koji pochinju sa C za AVR ili da li postoji kompajler za Pascal ( sta cu tu sam vishe radio ... lame lame .. znam ... )

avr mi treba za neke projekte da bi mogao neke sitne kontrole da uradim i jednog dana da kontrolishem neki lcd ... eto imam cime preko zime se bavim ...

:type:
 
Par stvari koje su svakako bitne:

1. GNU GCC Compiler (C)
Asembler ili Bascom stoje takodje na raspolaganju. Meni su samo C i recimo površno asembler poznati, Bascom nisam nikada koristio.

2. AVR Studio 4 (IDE) - besplatan, ali je registracija potrebna, ili ovde bez reg.
Iako je trenutno aktuelna verzija 5, u kojoj je kompajler već integrisan, meni je nekako 4-ka draža. Petica je uostalom zasnovana na VS2010, tako da je "tromost" zagarantovana. Mislim funkcionalnost je definitivno podignuta na viši nivo, ali nakon instalacije postaje sve jasno. Instaliraj, probaj, testiraj...

3. "Programator" primera radi ! (ili na eBay-u kucaj "ISP AVR USB")
Naravno za programator, da bi ga sam napravio, ne treba da budes inženjer. Na Internetu je moguće pronaći mnogo različititih izvedbi. Problem je što i kad ga sam napraviš (Hardware), moraš prvi put na neki način da ga flešuješ. Ako te ne mrzi tim putem da kreneš, ti probaj. Ja mislim da većina svoj put kreće, lomeći glavu kako hex da prebaci u kontroler 🙂. Definitivno je najjeftinija i možda za početak najbolja gore navedena varijanta (ISP Programator). U slučaju kad se malo dalje odmakne sa materijom, postoji mogućnost da se kupe gotovi ili po potrebi da se izrade sopstveni moduli, na kojima bi se željene aplikacije razvijale. Primera radi:

Pollin AVR Modul
Online Shop - pogledaj Boards/Kits

Za početak toliko. Moja preporuka bi bila da koristiš uvek Datasheet korištenog kontrolera, kako pri programiranju tako i pri dizajnu el. kola i naravno izvor kad negde ozbiljno zapne AVR Freaks 🙂

Pozdrav
 
. isp je beshe paralelni .. za to sam i nashao shemu ...
cak moje sokocalo ima i paralelni port 🙂

studio sam skinuo i 5 ... sjajno dobijesh primere i sve to .. ali problem je sto loshe stojim sa c .. paz ja sve kapiram
sta on radi .. petlje, if, push ... sve je meni jasno 🙂.. ali nisam radio u c ... neki tutorijal moram iskopam .

avr freaks ... oki doki malo cu se tamo obrazujem ... vidim da cu nekog iskusnijeg morati malo pridavim oko gluposti .. 🙂
 
Ako imas problema sa C-om, jedino sam sebi mozes pomoci. 🙂 Ovde na forumu ima teme gde mozes videti koje knjige o C-u preporucuju ljudi, tako da ti to moze biti polazna osnova. Po meni je bitno i kojim ces se projektima baviti, ja obicno ucim samo ono sto mi trenutno treba, jer ako nesto ne koristis cesto, ubrzo ces ga i zaboraviti. Bitno je da znas sta tacno zelis da uradis, za sve ostalo je uglavnom dovoljan google.

S obzirom da ja nisam neki elektronicar, ja kad sam se prvi put sretao sa AVR-om (I C-om istovremeno) sam kupio gotovo resenje (neki EasyAVR xxx kontroler) koje je u to vreme kostalo oko 100e. Kontroler je dosao i sa programatorom, LCD-om i RS232, sto je meni u tom trenutku bilo potrebno. Mozda bi ti mogao da prodjes i upola cene, ali bice to varijanta "uradi sam". Ja sam se nekako preracunao da ce me vreme koje budem izgubio dok dodjem do pravog resenja mnogo vise kostati od 50e, pa se nisam mnogo dvoumio.

Sto se tice IDE-a, bilo koji C IDE sa kompajlerom ce ti zavrsiti posao. Ja sam poceo sa AVR studiom, ali sam se iz nekog razloga, ne secam se tacno kog, presao na Dev C++. AVRFreaks je odlicno mesto gde mozes potraziti pomoc ako i kad negde zapnes.
 
Sto se tice USB programatora, najjeftinije resenje bi bio USBAsp sa OVE strane. Ja sam sklepao taj programator za nekih 1000 din (do duse sa izradom sam isao do kraja, projektovao sam i izradio PCB, smestio ga u prakticnu kutiju, USB tip B na jednoj strani, IDC10 konektor na drugoj srani i dve ledovke na poklopcu), jedina je caka sto moras naci nekog da ti ufleshuje frimware u Atmega8 mikrokontroler, oko kog je ceo programator baziran. Programator ima i nekoliko GUI aplikacija za AVR dude i radi odlicno pod XP-om ali pod Win 7 zeza, posto OS zahteva digitalno potpisane drajvere.

Sto se tice pisanja samog koda, tu je najbolji AVR Studio 4 + poslednji WinAVR. Skini osnovnu instalaciju AVR Studio 4, SP1 i SP2 i nakon toga instaliraj poslednji WinAVR (aktuelna verzija je 20100110) i mozes poceti sa pisanjem koda.

Sto se tice mikrokontrolera, moja preporuka bi bila Atmega8A u DIL pakovanju (moze i obicna Atmega8, ali ona je starija revizija i skuplja je), ima skoro sve perfierije, dovoljno flash memorije i pinova za pocetni rad.

Za detalje kako i sta pogledaj ovaj tutorijal na SparkFun-u. Ako budes imao pitanja, slobodno pisi ovde (nadam se da ce moderatori dozvoliti).


Kao sto joy rece u prethodnom postu, na AVR Freaks ces naci gomilu tutorijala i uvek ce se naci neko da ti odgovori na pitanje.

Vredi pogledati i ES forum - deo sekcije o elektronici posvecen mikrokontrolerima.
 
Poslednja izmena:
prvo da se moderatorima zahvalimo na fleksibilnosti i da izvnem sto nije u avr sekciji .. ali NEMA avr sekcije ( mozda je otvore ?🙂 )

zasto krecem sa ovim:
digitalna tabla za motor ... ( znam da ima gotovo reshenje sa veliki LCD i fensi itd... ali ne mi se svidja )
- uzmem tablu, bitno da je cela, ne polomljena i slichno, ishchupam sve iz nje, da ostane prazna kutija
a sa odgovarajucim konektorom na koji vec dolaze pokazivachi tipa levi i desni pokazivach pravca ( migavac ),
dugo i kratko svetlo i neutral 🙂 ...
e sad bitan momenat, struja za tablu vec dolazi, a sve te lampice zamenim led diodicama
i eto ... postojeca plocha unutra i elektrika i sve ide napolje ...

e sad... tamo gde su bili oni pokazicachi analogni ...
u prvi smestim RPM i eventualno voltazu ... e sad da li ce rpm biti u obliku 4 x sedmosegmentni led display ili ce biti
led diode koje idu u krug ... nije toliko bitno ... cek i voltmetar nije o glavu ali bi mali pokazivach bio skroz cool a
jako je korisno na motoru ...🙂
do postojeceg RPM koji je u tabli vec dolazi signal neki, mozda se on iskoristi ili nekako ocitavati sa bobine, znachi tu
ce mi trebati saveti saveti kako da to nejkulturnije izvedemo ako nemoze postojeci signal, a cu probam saznam kakav
signal ide ka rpm u tabli 🙂

u drugi mestim BRZINU i predjeni put ...
posto na tochki ima pinjon ako se dobro secam, ide sajla do table i ... ko na kolima matorim .. e sad.. ja bi da izvedem
kao sto ove gotove digitalne table imaju opciju da ocitavaju prkeo nekog senzora/magneta valjda tochak viljaska kombinacija
pa kapiram da bi bilo dovoljno posle taj signal dovesti do nekog pina ... zatim on, program, radi neki prorachun tipa
nek je jedinica vremena 200ms ( 5 puta u sekundi izmena brzine na LED display-u je ok .. ako moze toliko ) 0.2 sec
predjeniput = ((broj_impulsa_U_jedinici_vremena * obim_tocka_u_m) / 1000)) ; ( u km )
ukupanpredjeniput = ukupanpredjeniput + predjeniput ; ( u km, na postojecu vrednost smo dodali sta smo presli upravo )
brzina= ((predjeniput * 5) * 3600)) ... brzina u km/h ... *5 je mnozenje da bi dobili u sekundi a posle 3600 da bi dobili po sati .. 1 sat = 60 * 60 = 3600 ...
naravno radi optimizacije odmah mnozimo sa 18000 ( 5*3600 ) ...
i ovo bi izeo sedmosegmentnim led displejima ... e sad.. velicina .. naravno brzina bilo bi dobro da je XXX.X a moze i samo XXX ...znachi 4 segmenta
a predjeni put bi trebalo imam XXX.XXX.Y ... i du budu manji, moze i 2x manji od brzine ...

sledeci pokazivach treba da je nivo goriva ...
na rezervoaru isto vec postoji davach, mislim da menja otpor u odnosu na stanje u rezervoaru 🙂
znachi led diode ono ... 10 komada tipa ... 7 zelenih 2 zute i crvena 🙂
e sad posto bi tu bilo mesta a i ako origianalno ne postoji bilo bi skroz dobro da ima merenje
temp u motoru, jedino mesto koje mi pada na pamet je cep za dolivanje ulja ... postoje neka reshenja
ono analogna ... tipa zavrnesh malo termometar umesto cepa i vidish itd .. ali ako ima neka opcija
neke sonde koja moze se umochi u to ulje to bi bilo skroz mega cool 🙂 ... posto motor ima vazdushno
hladjenje ne postoji hladnjak u koji bi mogao u vodu da umochim neshto ... ali moze i bez
ovog pokazivacha ...

e sad... verovatno neko ko ume, zna itd... moze sve ovo da spakuje u jednu plochicu i jedan cip i poveci program
ali ja posto sam noobchina i pravi bio jedno po jedno ( zanimacija preko zime ... ) meni lakshe svaka od ovih stavki
da je za sebe ....

to je to 🙂
 
Poslednja izmena:
Koriscenje 7-seg displeja i LEDovki pojede dosta pinova na mikrokontroleru, cak i ako koristis integralce poput 4511 i 74HC595. Da li si razmisljao o koriscenju velikog character LCD-a? Brzinu bi predstavljao kao brojeve, preostalo gorivo u procentima... potrebno je da nadjes optimalno resenje. Mozes ti uzeti Atmega1280 koja ima 100 pinova, ali za ovakvu aplikaciju to je teski overkill (cenu da ne pominjem). Takodje uzmi da radis jednu po jednu stavku na istom mikrokontroleru, pa kad svaku stavku nateras da radi, integracija sve u 1 ce biti daleko laksa.
 
LCD je fensi lepo reshenje .. ali ja ne zelim LCD ...
mozda u nekoj verziji ali ne sad .. 🙂
jeste da jede pinove ..al evo za brzinu i predjeni put ...
3 za brzinu x 7 = 21
6 x 7 = 42 ... 63 sani za LED ... znachi nisam siguran josh koliko pinova treba za ulazne parametre itd...
e sad iskren da budem ne znam ni sta koristiti ... velika je to kolichina pinova.. ne znam da li ima u onim
tipu kucista sa nozicama ... ATMEGA128-16AU sam nashao u radio klubu ... al po netu kaze 53 i/o .. ...
mozda da brzina bude jedan kontroler a ovo za ukupan put drugi pa da oni nekako komuniciraju ...
SVAKI savet dobro doshao ...
ideja LCD mi se ne svidja iz razloga sto ne znam kako ce isti da se vidi i da li mogu da ga spakujem u mesto
gde je bio brojchanik ...mada po netu vidjam da su iz nokai vadili displeje pa od njih pravili lcd ekranchice ...
i da ... ne znam kako ce da se LCD vidi po danu ... mada video sam da ima fino osvetljenih ...
 
7 segmentne displeje mozes pokretati multipleksiranjem, za to ce ti biti potrebno 8 pinova za svaki segment na displeju + 1 za svaki ceo displej. To u praksi znaci da sa 9 pinova teras jedan displej, sa 10 dva, sa 11 tri... sa 16 pinova mozes multipleksirati 8 punih 7 seg displeja. Ako budes koristio CD4511, ovaj broj mozes spustiti jos nize, sa 8 pinova mozes terati 4 displeja.

Ledovke terati sa shift registrom 74HC595. Stim da se kod njih moras potruditi posto su oni serial in, parallel out integrisana kola, ali svakako bi dobro dosla ako imas LED bar graphove.
 
češ češ češ ...
ok ... aj sad da uprostimo ... u teoriji .. brizina može da bude jedan kontroler
a predjeni put da bude drugi .. da brzina i predjeni put nekako komuniciraju ?
moze li brzina da šalje neke podatke predjenom putu ? ono da mu pošalje koliko
je pređeno metara od zadnjeg slanja ? ... ako može onda kapiram bi to bilo jednostavnije
al vidim ovo postaje mnogo komplikovane od onog kako sam ja mislio ...
 
Sa tim uproscavanjem ti u stvari komplikujes ceo sistem. Brzina je predjeni put tokom jedinice vremena. Ako koristis sajlu koja ulazi u km/h sat kao input, predjeni put ce biti broj obrtaja sajle x obim tocka. Ako je obim tocka npr. 1m, kad odbrojis 1000 obrtaja tocka to ce ti biti predjeni km. Sa druge strane brzina ce ti biti broj obrtaja x obim tocka u jednoj sekundi. Znaci ako za jednu sekundu izbrojis 20 obrtaja tocka, to ce biti 20 m/s odnosno 72 km/h. Ovo se moze uraditi koristeci jedan brojac. Merices vreme izmedju dva impulsa, ako koristis samo jedan impuls po celom okretu tocka to ce ti biti 1m za predejeni put, a vreme koje izmeris (tj. broj otkucaja brojaca izmedju dva impulsa) ces iskoristiti da bi dobio brzinu.
 
zaobisho bi sajlu, ima sistem magneta i senzora, kao vecina ``custom`` tabli ... 🙂 ...
znachi nema sajle, pokretnih delova itd 🙂 ..
 
Uopsteno sam govorio, ako vec imas neki elektricni signal koji mozes lako prilagoditi, jos bolje. Manje zezanja oko mehanike.
 
Poslednja izmena:
hvala .. uz izvinjenje sto nisam ranije video odgovor .. 🙂 ...
 
Nazad
Vrh Dno