Autor |
Zpráva |
ellet
|
Napsal: úte 13.02.2018 12:52 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1975 Bydliště: Vysočina, ČR
|
BoŠ píše: ... že pro AtTiny platí..., Platí to pro avr, citát je z ATmegy.
|
|
Nahoru |
|
|
|
|
|
BoŠ
|
Napsal: úte 13.02.2018 13:09 |
|
Mazák
|
|
|
Registrován: 26.5.2013 Příspěvky: 1538 Bydliště: Brno
|
ellet píše: Platí to pro avr, citát je z ATmegy. Souhlas, já se díval pouze na Tiny, tak jsem nechtěl být zavádějící
_________________ MC-20HOTT,DS-16,X10S,14SG,S-trino MkII,SpeedFire, Extra 102",MiniCorado,LOGO550SE,Goblin570
|
|
Nahoru |
|
|
BoŠ
|
Napsal: stř 14.02.2018 17:10 |
|
Mazák
|
|
|
Registrován: 26.5.2013 Příspěvky: 1538 Bydliště: Brno
|
Jak se daří Jyrry?
_________________ MC-20HOTT,DS-16,X10S,14SG,S-trino MkII,SpeedFire, Extra 102",MiniCorado,LOGO550SE,Goblin570
|
|
Nahoru |
|
|
jyrry
|
Napsal: stř 14.02.2018 18:10 |
|
Moderátor serveru
|
|
|
Registrován: 28.2.2005 Příspěvky: 20822 Bydliště: Rakovník, CZ Obrázky: 0
|
viewtopic.php?f=39&t=83110 Akorát jsem si zadělal na pakárničku rozsahem PWM pro servo 500-2500us... kde jsem to vzal teda nevím Ale už to maká jak si představuju. Teď zkusím některé z mých projektů na PICech převést na Arduino, abych se pocvičil A na cestě je ATmega328 nano a adapter USB-TTL CP2102. Mám tam i ošetření když vynechají vstupní PWM pulzy 3x za sebou: Citace: // dve serva na jednom kanalu: int neutral_uS = 1500; int hystereze = 20; int puls_uS = 1500; int puls1_uS = 1500; int puls2_uS = 1500; int ramec_uS = 20000; byte pocet_imp = 0; const byte LED = 1; const byte PWM = 2; const byte servo1 = 3; const byte servo2 = 4; void setup() { pinMode(LED, OUTPUT); // LEDka pinMode(PWM, INPUT); // vstup PWM pinMode(servo1, OUTPUT); // servo 1 pinMode(servo2, OUTPUT); // servo 2 attachInterrupt(0, ctipuls, RISING); }
void loop() { pocet_imp++; if (pocet_imp > 3) puls_uS = neutral_uS; if (puls_uS > 1520){ puls1_uS = puls_uS * 2 - 2000; } else { puls1_uS = 1000; } if (puls_uS < 1480){ puls2_uS = puls_uS * 2 - 1000; } else { puls2_uS = 2000; } if (puls_uS > neutral_uS + hystereze) digitalWrite(LED, HIGH); if (puls_uS < neutral_uS - hystereze) digitalWrite(LED, LOW); noInterrupts(); pulz(puls1_uS, servo1); pulz(puls2_uS, servo2); interrupts(); delayMicroseconds(ramec_uS - puls_uS); } void pulz(int pulz_uS, byte servo) { digitalWrite(servo, HIGH); delayMicroseconds(pulz_uS); digitalWrite(servo, LOW); }
void ctipuls() { unsigned long aktual_uS = micros(); long newpuls_uS; while (digitalRead(2) == HIGH) { } newpuls_uS = micros() - aktual_uS; if (newpuls_uS < 900) newpuls_uS = puls_uS; // osetreni delky if (newpuls_uS > 2100) newpuls_uS = puls_uS; // osetreni delky puls_uS = newpuls_uS; pocet_imp = 0; }
_________________ jyrry.webnode.cz
|
|
Nahoru |
|
|
ellet
|
Napsal: stř 14.02.2018 20:32 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1975 Bydliště: Vysočina, ČR
|
jyrry píše: ...A na cestě je ATmega328 nano a adapter USB-TTL CP2102. Pro Nano ten převodník nepotřebuješ ale určitě se bude hodit pro Mini Pro, které brzo objednáš. (A snad jsi objednal převodník s 6-ti koiíky, je s ním pohodlnější práce)
|
|
Nahoru |
|
|
jyrry
|
Napsal: stř 14.02.2018 22:53 |
|
Moderátor serveru
|
|
|
Registrován: 28.2.2005 Příspěvky: 20822 Bydliště: Rakovník, CZ Obrázky: 0
|
_________________ jyrry.webnode.cz
|
|
Nahoru |
|
|
jyrry
|
Napsal: pát 16.02.2018 21:13 |
|
Moderátor serveru
|
|
|
Registrován: 28.2.2005 Příspěvky: 20822 Bydliště: Rakovník, CZ Obrázky: 0
|
Ještě lama-otázku Co budu potřebovat k téhle desce? Bootloader tam asi nebude, přes co se to nakrmí?
_________________ jyrry.webnode.cz
|
|
Nahoru |
|
|
ellet
|
Napsal: pát 16.02.2018 21:33 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1975 Bydliště: Vysočina, ČR
|
jyrry píše: Ještě lama-otázku Co budu potřebovat k téhle desce? Bootloader tam asi nebude, přes co se to nakrmí? Nic, je tam (mám tu samou z ebay).
|
|
Nahoru |
|
|
jyrry
|
Napsal: pát 16.02.2018 23:18 |
|
Moderátor serveru
|
|
|
Registrován: 28.2.2005 Příspěvky: 20822 Bydliště: Rakovník, CZ Obrázky: 0
|
Chlapi, máte mně na svědomí S PICama jsem polevil také proto že mi nechodí správně prostředí PICBasic-u na 64b woknousech v novém (no, repasovaném...) kompu. Tohle na tom chodí
_________________ jyrry.webnode.cz
|
|
Nahoru |
|
|
jyrry
|
Napsal: pon 05.03.2018 16:41 |
|
Moderátor serveru
|
|
|
Registrován: 28.2.2005 Příspěvky: 20822 Bydliště: Rakovník, CZ Obrázky: 0
|
Tak když už jste mně navnadili... Zatím z postupně objednaných destiček a hračiček dorazilo tohle: Příloha:
A_nano.jpg [ 134.23 KiB | Zobrazeno 7070 krát ]
Co k tomu ještě musí přibýt abych to mohl nakrmit prográmkem z Arduino IDE? Podle https://arduino-shop.cz/arduino/1164-ar ... deska.html jen instalovat driver?
_________________ jyrry.webnode.cz
|
|
Nahoru |
|
|
Kreyson
|
Napsal: pon 05.03.2018 16:45 |
|
Mazák
|
|
Registrován: 3.11.2011 Příspěvky: 592 Bydliště: Česká republika
|
Nemusí se většinou nic instalovat. Stačí připojit přes USB, zvolit správný typ desky a můžete nahrávat.
|
|
Nahoru |
|
|
ellet
|
Napsal: pon 05.03.2018 17:46 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1975 Bydliště: Vysočina, ČR
|
Jestli to nepojede. tak si to o driver řekne. Jestli ti nejde v PicBasicu ten tvůj druhý řádek (zavináč....), tak se to dá obejít.
|
|
Nahoru |
|
|
jyrry
|
Napsal: pon 05.03.2018 18:22 |
|
Moderátor serveru
|
|
|
Registrován: 28.2.2005 Příspěvky: 20822 Bydliště: Rakovník, CZ Obrázky: 0
|
Už si tu skrz to hýbu servem Bylo mi podezřelé že to je tak jednoduché. A je
_________________ jyrry.webnode.cz
|
|
Nahoru |
|
|
jyrry
|
Napsal: pon 05.03.2018 19:33 |
|
Moderátor serveru
|
|
|
Registrován: 28.2.2005 Příspěvky: 20822 Bydliště: Rakovník, CZ Obrázky: 0
|
Teda ta destička pod tím, ta je ale šikovná... dají se na to napíchnout rovnou serva, poťák, osciloskop, atd... pinů je dost a dost Proč jsem to neznal dřív? Příloha:
servotester.jpg [ 115.41 KiB | Zobrazeno 7048 krát ]
A je to; bez namáčení a bez přerušení Kód: // servo tester: unsigned int puls1_uS = 1500; unsigned int puls2_uS = 1500; unsigned int puls3_uS = 1500; unsigned int krok; unsigned long aktual_uS; unsigned long ramec_uS = 20000; const byte PWM = 2; const byte servo1 = 3; const byte servo2 = 4; const byte servo3 = 5; const byte POT = A0; void setup() { pinMode(servo1, OUTPUT); // servo 1 pinMode(servo2, OUTPUT); // servo 2 pinMode(servo3, OUTPUT); // servo 3 pinMode(POT, INPUT); // POTak }
void loop() { while (puls2_uS < 2000){ nacti(); puls2_uS = puls2_uS + krok; pulzy(); while (micros() - aktual_uS < ramec_uS){} } while (puls2_uS > 1000){ nacti(); puls2_uS = puls2_uS - krok; pulzy(); while (micros() - aktual_uS < ramec_uS){} } } void nacti() { aktual_uS = micros(); puls1_uS = analogRead(POT) + 1000; krok = analogRead(POT) / 10; }
void pulzy() { pulz(puls1_uS, servo1); pulz(puls2_uS, servo2); pulz(puls3_uS, servo3); }
void pulz(int pulz_uS, byte servo) { digitalWrite(servo, HIGH); delayMicroseconds(pulz_uS); digitalWrite(servo, LOW); } Servotester má 3 výstupy; na prvním se servo hýbe dle poťáku, na druhém cykluje s rychlostí dle poťáku (od "stojí" až cca 4 cykly/sec) a na třetím je "neutrál" - 1,500 ms. S tím cyklováním to je legrace - zvlášť u levných serv (jako HXT500, nějaké HK apod.) se při pomalém pohybu servo mění na krokový motor a kupodivu to ustály třeba letité (>15 roků) HS50 ...
_________________ jyrry.webnode.cz
|
|
Nahoru |
|
|
ellet
|
Napsal: pon 05.03.2018 21:43 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1975 Bydliště: Vysočina, ČR
|
Říkal jsem, že tě Arduino nemine ale ten notebook, z toho jak to napájíš, moc radost nemá.
|
|
Nahoru |
|
|
Kdo je online |
Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 12 návštevníků |
|
Nemůžete zakládat nová témata v tomto fóru Nemůžete odpovídat v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete přikládat soubory v tomto fóru
|
|
|