Attiny85 a Arduino

Dneska se procesory objevují všude, pokud máte nějaký nápad, či udělát, tak se neváhejte pochlubit.
Zpráva
Autor
Uživatelský avatar
ddano007
Příspěvky: 2896
Registrován: čtv 18.03.2010 0:00
Bydliště: Zavar, SK
Kontaktovat uživatele:

Re: Attiny85 a Arduino

#16 Příspěvek od ddano007 »

To Drondys: ako som napisal par poznamok dopredu Attiny85 aj s doskou mam, zbytocne plakat nad rozliatym mliekom, co by bolo lepsie :D
Ked sa mi este podari rozbehat Servo8Bit.h, tak budem uplne spokojny :mrgreen:
X9D & T16Pro & TX16S & nejaké lietadlá, heli a koptéry www.rcmodelytt.sk
Uživatelský avatar
ross4435897
Příspěvky: 328
Registrován: ned 24.10.2010 0:00
Bydliště: Brno

Re: Attiny85 a Arduino

#17 Příspěvek od ross4435897 »

resil jsem totez asi pred rokem ... a nakonec jsem vysel z tohoto popisu: ATtiny 85 and servo library
Petr_C
Příspěvky: 46
Registrován: stř 11.12.2013 9:21

Re: Attiny85 a Arduino

#18 Příspěvek od Petr_C »

Pokud mas vice Tiny85 k dispozici (pro jistotu), tak to lze udelat tak, ze nejdrive zavedes hlavni program do Flash a pak nasledne prepnes FuseBits tak, aby se PB5 pouzival jako standardni In/Out PIN. Dulezite je si byt jist, ze v kodu nemas chybu a PIN obsluhujes spravne a mas ho i tak v uvodu kodu nakonfigurovany.

p.s. Je zajimave, ze mas PCB desku drive nez vlastni vyvoj firmware. Standardne se to dela opacne.
Uživatelský avatar
ddano007
Příspěvky: 2896
Registrován: čtv 18.03.2010 0:00
Bydliště: Zavar, SK
Kontaktovat uživatele:

Re: Attiny85 a Arduino

#19 Příspěvek od ddano007 »

Diky za tip, jak odblokovat ten PB5 este popatram, momentalne neviem rozbehat budenie serva :(
Ja by som tiez mozno robil plosak az potom, ale ked s SMDckami sa bez plosaku blbo robi :D
X9D & T16Pro & TX16S & nejaké lietadlá, heli a koptéry www.rcmodelytt.sk
Petr_C
Příspěvky: 46
Registrován: stř 11.12.2013 9:21

Re: Attiny85 a Arduino

#20 Příspěvek od Petr_C »

U 8mi vyvodoveho chipu neni SMD zadny problem. Delam to tak, ze vezmu klasickou DIL8 patici, vytahnu kratke CB dratky a na ty primo napajim SMD chip. Pak tento upraveny obvod lze pouzit primo v kontaktnim poli. Jinak jak se jiz nekdo zminoval, AtTiny2313 je na jednoduche aplikace pouzitelny, jeho nevyhodou je absence AD prevodniku.
Uživatelský avatar
ddano007
Příspěvky: 2896
Registrován: čtv 18.03.2010 0:00
Bydliště: Zavar, SK
Kontaktovat uživatele:

Re: Attiny85 a Arduino

#21 Příspěvek od ddano007 »

Diky za tip, ale ked ja kontaktne pole nepouzivam ani na vyvodove suciastky... pajka je pajka a vrabcie hniezdo je vrabcie hniezdo :D
Inak servo uz beha, Servo8Bit.h nechodilo, musel som pouzit SoftwareServo.h... uz len doriesit ten PB5 8)
X9D & T16Pro & TX16S & nejaké lietadlá, heli a koptéry www.rcmodelytt.sk
Uživatelský avatar
ross4435897
Příspěvky: 328
Registrován: ned 24.10.2010 0:00
Bydliště: Brno

Re: Attiny85 a Arduino

#22 Příspěvek od ross4435897 »

Jo to funguje celkem spolehlive ...
srabsrab
Příspěvky: 324
Registrován: ned 24.02.2013 1:41

Re: Attiny85 a Arduino

#23 Příspěvek od srabsrab »

Koukam konecne nekdo, kdo se nenechava odradit prvotnim neuspechem a nepredelava hnedka celej koncept podle "rad" lidi co pouzivaji radeji neco uplne jineho nez by neco resili.

Protoze slavne arduino nevlastnim .. mam jenom klasickej USB programator, tak ani zadne arduino kody neresim :d

S pinem 5 mam taky problem (mam na hrani atiiny13 coz je v podstate to same s mensi pameti a nakou tou drobnosti)- i pres zablokovani H fuses na FE, mi analog na pinu 5 bohuzel nefunguje ADC0, ostatni funguji.... Jenom jaksi nesel programovat vicero cip a musel jsem ho smaznout fusebitdoctorem .... Docela by se mi to ale hodilo, nebot bych rad udelal vystup pro simulator na zvukovku na vysilacce vrtulniku F45 ...ci jakekoliv jine ...a na to potrebuju 4x analog .. coz bez pinu 5 nepujde ...

Takze servo lze rozjet uplne "suse" (nenasel jsem zadny funkcni servotester v hexakodech na netu, tak sem si udelal vlastni kod v atmelstudiu pomoci spousty a spousty stranek plnych nepresnych az spatnych casti kodu...nektere funkcni :D ) opakovanim po cca 20ms delkou pulsu od cca 1 do 2 ms ....

#define F_CPU 9600000UL // Define software reference clock for delay duration Must be write before call delay.h
#include <avr/io.h> //Vlož knihovnu vstupů a výstupů (PORT, DDR, PIN)
#include <util/delay.h> //Knihovna čekacích funkcí (delay=čekej [ms])
#include <avr/interrupt.h>
#include <stdbool.h>

int preruseni = 0;
bool sekunda = false;
int _20ms = 0;
int maxpreruseni = 15;
int analogPB4 = 0;

int ReadADC_PB4() //read analog from PB4
{
ADMUX |= (0 << REFS0); // VCC as Reference
ADMUX |= (1 << MUX1) | (0 << MUX0); // ADC2 PB.4
ADCSRA |= (1 << ADEN); // Enable ADC

ADMUX |= (0 << REFS0); // VCC as Reference Tento radek je zbytecny
ADMUX = 2;// ADC2 PB.4 Tento radek je zbytecny
ADCSRA |= (1 << ADSC); // Start Converstion

while((ADCSRA & 0x40) !=0){}; //wait for conv complete

return ADC;
}

ISR(TIM0_OVF_vect) {
//overflow occurs at 1024or8or1/9600000*256=XXXms/XXXHz
_20ms++;
preruseni++;

if (preruseni >= 29512) // prescale timer 1s / 27ms = pri 1024 je to 37, pri 8 je to 3689, pri 1 je to 29512
{
preruseni = 0;
sekunda = true; // set flag sekunda
}

if (_20ms >= 592) // Zhruba 592x preruseni = 20ms
{
_20ms = 0;
PORTB = 0b000000;
}

analogPB4 = ReadADC_PB4();

maxpreruseni = (analogPB4/16) + 20; // tady potreba doladit jeste cisla 16 a 20 pro plny rozsah potenciometru

if (_20ms < maxpreruseni) {
PORTB = 0b000111; // All PB0, PB1, PB2 same output - for eperiments... need only 1 for servo..
} else {
PORTB = 0b000000;
}

sekunda = false; // reset flag
}

int main(void) {

cli();

DDRB = 0b000111; //set port B pins 0,1,2 as output

PORTB = 0;

TCCR0B |= (1<<CS00); //prescale timer to 1

TIMSK0 |= (1<<TOIE0); //enable timer overflow interrupt
sei();
while(1);
}

Pojistky Low 7A High FF ... zapojeni, hexa,... dodam na prani

Uz to funguje - chyba byla prave v te funkci cteni ADC kterou jsem spatne pochopil a tim padem spatne upravil pro PB5 (nahodou to totiz vychazi na PB3 pri pouziti ADMUX = PINB3; onech binarnich 1 1 coz je presne ten prepinac MUX 1 a 0 ktery potrebujeme :D )
Bez http://pe0fko.nl/Fuse-restore/ tohoto, nebo jineho fusebit restorera, ale rozhodne zablokovat reset nedoporucuju. Jinak postup nahrat program a pote pojistky s tim ze blokovani resetu udelame na konec funguje spolehlive...
Ten fusebit doctor z odkazu mi fungoval na prvni zapojeni ... stavba bezproblemu (bohuzel delane na uni DPS ...)
Uživatelský avatar
ddano007
Příspěvky: 2896
Registrován: čtv 18.03.2010 0:00
Bydliště: Zavar, SK
Kontaktovat uživatele:

Re: Attiny85 a Arduino

#24 Příspěvek od ddano007 »

To srabsrab: Diky moc za kod, ale SoftwareServo.h chodi celkom spolahlivo. Ked sa s tym budem zase hrat oprobujem, uvidime, ci to pojde skompilovat aj v Arduino IDE.
Inak ten PB5 rozchodit nebol zase taky problem, kedze mam Aduino Nano, tak SW pre ISP programator je priamo v IDE, no a HV fuse reset je tiez pohoda:
http://www.rickety.us/2010/03/arduino-a ... rogrammer/
To ross4435897: vdaka za ten fuse calc.
Inak to, co pacham je 5-kanalovy spinac osvetlenia a ovladac gyra. Dovod je, ze so 4-kanalovym prijimacom potrebujem ovladat Su27 ( delta), toz tri kanaly potrebujem na ovladanie modelu a jeden mi zostava na ostatne srandicky. Tak tym ovladam gyro ( 3 polohovy servo vystup 1-1.5 - 2 ms), pristavacie reflektory, pozicne svetla+blikacku a jas trysiek proporcionalne k polohe plynoveho knipla.
Este treba trochu doladit tie trysky, ale syn mi uz napisal nejaku kniznicu, tak uvidme.
Vyzera to nejako takto:
[youtube]http://www.youtube.com/watch?v=owEthUEGdO8[/youtube]
okolo 2:10 je trocha vidiet vsetko v akcii. Sorry za kvalitu, ale je to tocene vecer klucenkou na capici...
Naposledy upravil(a) ddano007 dne stř 05.02.2014 23:09, celkem upraveno 1 x.
X9D & T16Pro & TX16S & nejaké lietadlá, heli a koptéry www.rcmodelytt.sk
Uživatelský avatar
ross4435897
Příspěvky: 328
Registrován: ned 24.10.2010 0:00
Bydliště: Brno

Re: Attiny85 a Arduino

#25 Příspěvek od ross4435897 »

Vypada to fakt dobre! Celkem dobry projekt za par kacek ...
Jinak co je dobre vedet ... je ze se tu seslo pomerne dost inteligentnich odpovedi na i ponekud odlisne tema ... a forum ma stale svoji uroven, coz je parada.
srabsrab
Příspěvky: 324
Registrován: ned 24.02.2013 1:41

Re: Attiny85 a Arduino

#26 Příspěvek od srabsrab »

Tak jeste udelat test s namontovanou zneti dratu primo s pripojenim k potenciometrum vysilacky a zda PPjoy rozpozna spravne signal (zda to neovlivni normalni provoz vysilacky a milion dalsich veci...) a uvidime :D

jinak jeste pokud to nekoho zajima, funkce ktera vraci libovolnou hodnotu ADC ... lze vyuzit vsechny 4 ADCcka


int ReadADCx(int x)
{
int result = 0;
ADMUX |= (0 << REFS0); // VCC as Reference

switch(x) { // nejspis se da cely switch nahradit ADMUX = x;
case 0:
ADMUX |= (0 << MUX1) | (0 << MUX0); // ADC0 PB5
break;
case 1:
ADMUX |= (0 << MUX1) | (1 << MUX0); // ADC1 PB2
break;
case 2:
ADMUX |= (1 << MUX1) | (0 << MUX0); // ADC2 PB4
break;
case 3:
ADMUX |= (1 << MUX1) | (1 << MUX0); // ADC3 PB3
break;
}

ADCSRA |= (1 << ADEN); // Enable ADC

ADCSRA |= (1 << ADSC); // Start Conversion

while((ADCSRA & 0x40) !=0){}; //wait for conv complete

result = ADC;

// Without only 1 of 4 ADCx usable!
ADMUX = 0; // asi to nejni nutne nutno vyzkouset
ADCSRA &= ~(1 << ADEN); // Disable ADC
ADCSRA &= ~(1 << ADSC); // Stop Conversion
//

return result;
}
Uživatelský avatar
ddano007
Příspěvky: 2896
Registrován: čtv 18.03.2010 0:00
Bydliště: Zavar, SK
Kontaktovat uživatele:

Re: Attiny85 a Arduino

#27 Příspěvek od ddano007 »

Takze viac-menej hotovo, drobny jitter pri dekodovani PPM ( PulseIn asi ma iste rezervy), ale inak pouzitelne. Keby... keby nebolo drobnej teplotnej zavislosti. Toz, neriesili ste niekto teplotnu zavislost jednocipakov? Ked to vonku zapnem ( ked je okolo nuly), tak musim dotrimovavat mixy oproti nastaveniu v kuchyni :D
Ono to uhyba - per brucho - nejakych 1 - 2%, ale vzhladom na to, ze LSB kanal ( proporcionalne ovladanie jasu trysiek) vyuziva 4% rozsahu, tak to trochu vadi...
Co som pozeral do datasheetu, tak Attniny85 ma jeden kanal ( ADC4) s teplotnym cidlom. Dajte nejaku radu, ak s tym softwarovo pohnut ( krystal tam prirabat nebudem).
Diky.

P.S. Ono som uz aj uvazoval spachat to cele s Arduino Mini Pro
http://www.ebay.com/itm/New-Pro-Mini-at ... 1e76aae237
stoji to par korun, staci dobastlit tranzistory, neporovnatelne vyssi komfort oproti Attiny85, ale ked som jukol do schemy, tak to tusim ma len keramicky rezonator a nie krystal :(

P.S.2: Nejako takto to vyzera vo finale ( treba preskocit aspon 1.5 minuty, fotaku dlhsie trvalo, kym sa naucil zaostrovat :D ):
[youtube]http://www.youtube.com/watch?v=mPIa2tmQyP4[/youtube]
X9D & T16Pro & TX16S & nejaké lietadlá, heli a koptéry www.rcmodelytt.sk
Odpovědět

Zpět na „Procesory a jiné vychytávky“