Hirdetés

2024. április 23., kedd

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.

Összefoglaló kinyitása ▼

Hozzászólások

(#3001) Janos250 válasza tvamos (#3000) üzenetére


Janos250
őstag

Szerintem a Leaflabs Leaf Maple - amit írtál - nagyon jó. Párszáz forinttal drágább, mint amit én linkeltem, de előnye, hogy USB-n keresztül programozható. Ehhez nem kell se az az USB-soros illesztő (első link) se a másik. Ez utóbbi akkor kellene, ha a benne lévő bootloader programot akarnád módosítani, de azt inkább ne babráld!
Arduinoval símán megy. Mivel aktív emberek megcsinálták rá az Arduinohoz illesztést, az eredeti gyártó már be is fejezte a fejlesztést, mert mindenki úgyis Arduinoval használja. És persze az utángyártottat.
Én ilyen beállítással programoztam USB-n:
Board: Maple Mini
Bootloader version: Original (17k RAM, 108k Flash)

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3002) Janos250 válasza Teasüti (#2997) üzenetére


Janos250
őstag

"32 bites vonalon hol van a legnagyobb közösség? Úgy mint az Arduino esetében"
Pl. az Arduino közösségben :-)

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3003) seatibiza válasza mArZsi (#2966) üzenetére


seatibiza
csendes tag

Koszonom szepen :)

(#3004) Teasüti válasza Janos250 (#3002) üzenetére


Teasüti
nagyúr

Oké, csak a technikailag fejlettebb arm családban, mint amilyen az STM32 is.
Azt olvastam ez a terület túl fragmentált ahhoz, hogy olyan széleskörű rajongói tábora legyen mint az Arduinonak.

Arduino-nak nincs Nano méretű 32 bites vasa, csak a Zero és a Due úgy tudom.

Ez a Maple ez nem discountinued? Tovább is lapoztam, mikor először kidobta a kereső.

[ Szerkesztve ]

(#3005) Teasüti válasza tvamos (#2978) üzenetére


Teasüti
nagyúr

A Teensy-ben nincs FPU. És drága is. :(

(#3006) tvamos válasza Janos250 (#3001) üzenetére


tvamos
nagyúr

Megszoktam, hogy IAR-ral megyek ra, ugyhogy az Arduino framework, meg a bootloader engem nem annyira hozott lazba. (Amikor ezt vettem ez volt a legolcsobb.) Van tobb programozom, es nemsokara lesz egy I-jet is. Sajnos nem sikerul kiimadkoznom az I-jet trace-t, pedig az sokkal jobb lenne hw teszteleshez. Otthonra, hobbizni ezek dragak... De amit linkeltem, az jol mukodik, (vagyis ahoz hasonlomm van,) es azzal megy a valtozok online figyelese, ami az arduinoban nincs, es szerintem sokkal tobbet er, mint a latszatkenyelem az Arduinoban.

(#3005) Teasüti válasza tvamos (#2978) üzenetére
A Teensy-ben nincs FPU. És drága is. Tenyleg? Hat jo... de minthe te 5V-osat akartal volna, nem?
Szeintem akkor nezd meg az NXP/Freescale Freedom boardokat. En eddig nem kerestem az FPU-sokat, de tuti talasz kedvedre valo 5V-osat. (Bocs, most nincs idom kiturni, melyikben van FPU. es melyikben nincs. Kinetis K, vagy V series lehet...)

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3007) Janos250 válasza tvamos (#3006) üzenetére


Janos250
őstag

IAR, KEIL, stb. jók, sőt jobbak, mint az Arduino. Viszont ha kezdő azzal kezdi, akkor pókhálónak tűnik és abbahagyják, elmegy tőle a kedvük. Viszont az Arduinoval gyakorlatilag bárki tud indulni. Gyakorlatból tudom, hogy 5-6 db. 2 órás foglalkozás során olyanok is eljutnak egy saját telefonon WiFin keresztül történő FET-es lámpa, vagy más vezérléséhez, akik semmit nem konyítanak se az elektronikához, se a C++-hoz :-) A FET-ről csak annyit mondtam hogy "villanykapcsoló", amitől persze a haja égnek állt volna, ha hozzáértő hallja! :-) Na, ez nem menne más keretrendszerrel! Mások a szempontjaink. Te gyakorlatban használod, ahhoz természetesen jobb egy kényelmesebb rendszer. Én embereket próbálok rávenni arra, hogy kezdjenek el ezzel foglalkozni, akkor is, ha nincs előismeretük. A szükségeseket majd közben megtanulják. Például itt a fórumon is azok, akik most kezdik, meg tudják csinálni a dolgokat. Később majd rátanulnak, ha szükségük lesz rá.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3008) Janos250


Janos250
őstag

Elég hosszú lett, de amikor majd a moderátorok törlik, felteszem elérhető helyre.
Na, akkor egy kis áttekintés kizárólag a kezdők kedvéért. Az itt leírtak mind a saját tapasztalataimat tartalmazzák, tehát erősen szubjektívek, lehetnek benne tévedések is. Nem saját tapasztalat a PIC és a Core-M7 esetén leírtak, mert azokat még nem próbáltam.
Egy kis történelem:
A mikrokontrolleres világban a két nagy öreg az Atmel és Microchip. Mindkettő saját utasításkészletet használt.
Idővel megjelent kínálatukban a 32-bites vonal is: az Atmel az ARM, a Microchip a MIPS irányba ment.
Az ARM chipeket licensz alapján gyártják a különböző gyártók, akik a licenszelt mag köré még saját periféria kezelő készletet is tesznek.
Lapok gyártásával több cég is próbálkozott. A FriendlyARM vonal jelenleg is él, de amatőr számára nagyon drága. ARM9, ARM11, Cortex-A8, Cortex-A9 processzorokat használ.
A Raspberry nagy siker, de az is magasabb kategória árban is, tudásban is.
A LeafLabs is elkezdett nyitott rendszerű lapok gyártásába. Mivel az Arduino közösség beillesztette ezeket a lapokat is az Arduino vonalba, leálltak a fejlesztésével, mert szinte mindenki az utángyártott olcsó kínai lapokat használja, Arduino rendszerben.
Az olaszok is elkezdték az Arduino rendszerüket, teljesen nyitottan, Atmel processzorokra alapozva. Mivel teljesen nyitott rendszer, tömegesen jöttek a kínai utángyártók a filléres utángyártott lapokkal. Ez biztosította elsősorban a hatalmas sikert.
A kialakult Arduino közösség más processzorokat is beillesztett a rendszerbe, elsősorban az STM32 ARM procikat. Pár nappal ezelőtt - az internetes közösségnek utána menve - a hivatalos gyártó is bejelentette, hogy ők is elkezdik az STM32 lapok gyártását és hivatalos támogatását, de jelenleg ez még a bejelentés szintjén tart. Tehát jelenleg sokféle procit tartalmazó lap használható.
Nézzük processzorok szerint:
Atmel
Atmega168 (16K flash,0.5K EEPROM, 1K RAM): Pro Mini atmega168 és BTE13-010 néven a kínaiak gyártják. Gond nélkül használható, de nem érdemes vele foglalkozni, mert ugyanezen az áron jobb is kapható.
Atmega328 (32K flash, 1K EEPROM, 2K RAM): nagyon elterjedt, legfontosabb képviselője az UNO (Duino verzió 950 Ft) UNO LC, UNO lite átállítható 3.3V és 5V között ezért én inkább ezt javasolom (1400 Ft). Tartalmazza még pl. a Pro Mini atmega328 (420 Ft, soros vonalon programozható, nincs USB), Leonardo (1600Ft) a Nano (620 Ft, van USB),
ATmega2560 (256K flash, 4K EEPROM, 8K RAM): Mega2560 néven ismert (2100 Ft).
SAM3X8E ( ez már ARM proci, 2x256K flash, 64+32K RAM, ) : DUE néven ismert(4100 Ft). Nem érdemes vele foglalkozni, mert az STM32 sorozatú procikkal gyártott alaplapok SOKKAL olcsóbbak.

STM32 procik (mind ARM, ezek a korábbiakhoz képest már erőművek. Nem sorolom az adatait, internetről kikereshető) Érdemes ellátogatni a http://stm32duino.com/ oldalra is.
Cortex-M0 maggal: STM32F0 széria. Pl. STM32F030F4P6 lap (1100 Ft). Ugyanilyen árom Cortex M3 szériáju lap is van.
Cortex-M3 maggal: STM32F1, STM32F2 széria. STM32F103C8T6 processzorral többféle kapható. Leaflabs Leaf Maple Mini Module (1200 Ft, javasolom, USB). STM32F103C8T6 ARM STM32 Minimum System (870 Ft, USB csak táp, soroson kell programozni, javasolom "2 sárga jumperes"). Az STM32F103ZET6 proci pedig már elég sok mindent tud, de ezek a lapok már 3-5000 köröl vannak.
Cortex-M4 maggal: STM32F3, STM32F4 széria. Erősebb, de ez már drágább. A Nucleo lapok 5000 körül kezdődnek, a Discoveryk (STM32F4DISCOVERY - STMicroelectronics) még drágábbak.
Cortex-M7 maggal: STM32F7 széria. Ez már atomerőmű, de jóval drágább. 10000 Ft körül kezdődnek és - tudtommal - még nem kezeli az Arduino rendszer.

ESP8266 alapúak
WiFit tartalmaz. Eredetileg modemként, AT parancsokkal való kezelésre szánták, de az Arduino közösség beillesztette a rendszerbe, így már teljes értékű Arduino processzorként használják. Számos verziója van az ezt taartalmazó lapoknak. Messzemenően javasolom a használatát. Előnye a beépített WiFi, hátránya a kevés GPIO láb. 4M flasht tartalmaz, amiből 1-3 megát file tárolásra használunk. Ha ezt összehasonlítjuk az Atmel procikkal, láthatjuk a különbséget. 80 Mhz-en jár, 32 bites processzor
ESP12E: 700 Ft,"fehér" panellel együtt 930 Ft. Ha a kis panelt külön vesszük meg darabja 100 Ft körüli öszegbe kerül 10-es tételnél.
Picike, szigorúan csak 3.3V-al működik, nincs rajta fesz. szabályozó. Programozása soros portról. Én szeretem.
Vannak "UNO szerű" lapok is, amik ezt tartalmazzák. Pl. a "D1" lapok. Wemos D1 1900 Ft. Van rajta feszültség szabályozó, USB, és az UNOhoz hasonló elrendezésű csatik. Persze hiába a csatik, akkor is csak annyi GPIO lába van, amennyi az ESP12E-nek. Javasolom, főként kezdőknek.

Microchip Pic32 alapúakból is van, amit lelkes emberek beillesztettek az Arduino rendszerbe, de drágák. Én még nem próbáltam.

Programok feltöltése:
A programok betöltésére minden rendszer alkalmaz valamilyen módszert. Pl. PC-n a BIOS némileg hasonló, vagy Samsung processzorokn a "stepping stone". Viszont valahogy ezt a kezdő programot is be kell vinni. (lásd tyúk/tojás dilemma). Tesztelésre, illetve az első felvitelre manapság elterjedten használják a JTAG szisztémát, ami nagyon leegyszerűsítve aazt jelenti, hogy egy "lánccal" körbefogjuk az IC-t, hogy minden láb csatlakozzon egy láncszemhez. A láncszemek ki tudják olvasni az IC lábán lévő értéket, vagy be tudják oda írni a lánszemen lévőket. A láncot soros olvasással "ki lehet húzni", vagy a beállított értékekkel "be lehet húzni". Így ezzel a módszerrel az IC kezelhető. STM procikhoz a programozási célt szolgálja ST-LINK, Atmelekhez az AVR ISP programmer, de ezekre földönfutó usernek Arduino esetén általában nincs szüksége de ezt a célt szolgálja a tools menü "alja".
Az egyszerű felhasználó életének segítése érekében a lapok gyártói fel szoktak vinni egy pici "loader" programot, ami a tényleges program bevitelét végzi. Így van ez Arduino esetében is. Az előre feltöltött nyúlfarknyi program reset után megnéz egy megadott (dokumentációban leírt) lábat, hogy az alacsony szinten van-e. Ha igen, akkor elkezdi soros vonalon keresztül a programunk betöltését a flash memóriába, ha magas szinten van, akkor pedig a korábban feltöltött programunkat futtatja. Ezért soros programozásnál mindig biztosítani kell az adott láb alacsonyra húzását, ha a soros vonalnak csak az Rx,Tx,GND lábait használjuk. Ha a többit is, akkor azok általában ezt elvégzik.
Mindig soros vonalon keresztül programozunk, de a lapok egy részére rá van építve az USB/soros konverter, ezért látszólag USB-n megy a programozás. Amin nincs USB átalakító, azt külső USB/soros átalakítóval kell programozni. Ha ilyet akarunk venni, akkor messzemenően az FTDI FT232RL darabot javasolom (530 Ft) Lényeges a végén az L, mert akkor átállítható mind 5V-ra, mind 3.3V-ra. Szükséges hozzá driver. Windowshoz a Microsofttól letöltöttel még nem tapasztaltam problémát, máshonnan letöltökkel igen.
Sok szerencsét!

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3009) Janos250 válasza Teasüti (#3004) üzenetére


Janos250
őstag

Az ARM vonal az STM32 sorozatú lapokkal RÉSZE az Arduino rendszernek is! Programozás szempontjából gyakorlatilag megegyeznek más egyéb lapokkal, némi túlzással azt mondhatnám, hogy mindenki ugyanazt a szabad C++ fordítót használja.
Lásd a 3008-asban leírtakat.

"Arduino-nak nincs Nano méretű 32 bites vasa, csak a Zero és a Due úgy tudom"
De, van! Az STM32 vagy az ESP sorozat.

"Ez a Maple ez nem discountinued? Tovább is lapoztam, mikor először kidobta a kereső."
Igen, a Maple saját fejlesztésű rendszerét abbahagyták, mert mindenki áttért EZEN a lapon is az Arduinora. A lapot viszont változtatás nélkül tömegével, olcsón gyártják a kínaiak! Én szeretem Arduino alatt használni.

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3010) tvamos válasza Janos250 (#3007) üzenetére


tvamos
nagyúr

En erre csak annyit tudok mondani, hogy ne feljetsd el a free-wheeling diodat sosem!

Nem tudom... amikor en kezdtem, nem volt ilyesmi. Most meg... IAR-ban megnyitom a Discovery kit-nek a programjat, es atirom annyira, hogy tudjam, mi-hogy. Nekem ez csak addig kell, (a munkahelyen,) amig a hardware-t tesztelem. Persze, hw teszthez nagyon jol jon a folyamatos (online) valtozo monitorozas. Ha kiprobalod, sosem akarsz tobbet hozzapiszkalni a frameworkhoz. (Persze, ez tulzas!)

Azt hiszem, becsulendoek a celjaid, szoval...

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3011) Janos250 válasza tvamos (#3010) üzenetére


Janos250
őstag

Lámpa, ahhoz nem kell szabadonfutó dióda :-)
Ha meg mi is motort akarnánk PWM-el szimulált analóg jellel vezérelni, akkor mi is elgondolkodnánk a megoldáson. Mármint amennyire egy vegyésztől kitelik. :-(
Helyette maradunk a szervo motornál, léptető motornál.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3012) tvamos válasza Janos250 (#3011) üzenetére


tvamos
nagyúr

Mindenhez kell, hogy biztos legyen. Jobb a békesség. Amúgy meg, ha izzó, akkor abban spirál az izzószál, a bekötő vezetékeknek is van parazita induktivitása... Esetleg később meggondolja magát a juzer, 10m drótra kötve tesz egy driveres power LED modult, mi tudja, mi van abban.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3013) skul0 válasza Janos250 (#2996) üzenetére


skul0
aktív tag

Akkor nekem ahhoz, hogy alacsonyabb feszültségen is elinduljon a szivattyú az kell, hogy ne magas frekvencián hajtsam? Mert az alacsonyabb számhoz alacsonyabb PWM érték kellene. Vagy mit használjak ennek a kapacitásnak a feltöltésére, kondenzátort kössek be valahová?

@Teasüti
Ezt jó tudni, erre nem figyeltem.

(#3014) Teasüti válasza tvamos (#3006) üzenetére


Teasüti
nagyúr

Csak azt néztem, hogy a Teensy áráért Maple mini-ből is többet lehet kapni.
Ezt a felárat nem tudom hova tenni, nem azért mert nem tehetem meg. :B
De hisz ez 3.3 volton működik. :F Vagy az 5V toleranciát érted ez alatt?
Igazából nincs különösebb érvem a 3.3 ellen se, csak gondoltam könnyebb beilleszteni Uno mellé egy 5 voltosat.
Ami azt illeti képtelen vagyok dönteni a Nucleo, Maple, Teensy és egyéb STM32 deszkák között.
Melyiket lehet ajánlani egy laikusnak kezdésnek? FPU nem annyira létkérdés, csak úgy gondolom £22-ért már nem kéne kispórolni belőle azt sem.

(#3015) Teasüti válasza skul0 (#3013) üzenetére


Teasüti
nagyúr

Az impulzus hosszúsága a kitöltési tényező lesz szerintem a PWM jelben (0-100%).
A frekvenciát nem tudod változtatni, az a PWM vezérlő hardveres jellemzője.

A kondi szerintem nem fog segíteni, ha visszaemlékszek egy korábbi bejegyzésre, ahol a többiek a lehúzó ellenállást magyarázták nekem az Arduino bemenetének lebegése kapcsán, ahol a FET maga is rendelkezik egy kapacitással és ha jól értem, akkor nyit, ha az telítődik.
Nem az volt a megoldás erre, hogy másfajta FET-et kell alkalmazni?

(#3016) Janos250 válasza skul0 (#3013) üzenetére


Janos250
őstag

Okos tanácsot adni nem tudok, hátha valaki tud okast mondani, aki jobban ért hozzá.

Elvileg neked is menni kellene probléma nélkül.
Pl. : [link]

Én az alábbiakat próbálnám ki:

1. Jóval alacsonyabb frekin hajtanám.
[link]

2. Nekem továbbra is mániám az alacsony gate feszültség.
[link]
Ebben persze lehet, hogy tévedek, mert az IRF540 VGS-ID diagramja szerint már elég nagy áramnak kellene lenni 5V-on is.

3. A multiméteres mérés adata sem kápráztat el igazán. Multiméterrel egy PWM átlagfeszültséget nem tudom, mennyire jól lehet mérni. Erről itt olvashatsz:
[link]
Megnézném szkóppal - ha van rá lehetőséged - a motoron a feszültséget és a rajta átfolyó áramot.

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3017) Teasüti válasza Janos250 (#3016) üzenetére


Teasüti
nagyúr

Érdekes oldal ez a secrets of arduino. :K
A 3 timer ha mondjuk a PWM-mel van "elfoglalva" mind a 6 csatornán, akkor mellette befogható mondjuk input capture-re is?

Amúgy elektronikailag van vmi különbség a fast pwm és phase correct pwm között?
Mert hogy most 0..255 között csak felfelé számol, vagy oda-vissza a számláló, abból nekem csak annyi jön le, hogy az egyiknek gyorsabb a frekvenciája.

[ Szerkesztve ]

(#3018) skul0 válasza Janos250 (#3016) üzenetére


skul0
aktív tag

Köszi, a hétvégén át fogom magam rágni azokon, amiket linkeltél.

A multimétéres mérés biztos nem ad teljes képet, mert amilyen értéket mutat PWM-es meghajtás esetén, annál a feszültségértéknél feszültségosztón keresztül hajtva vígan pörög a motor még alacsonyabb fordulatszámon is, míg előbbinél csak hallani hogy erőlködik, de meg sem moccan. Szkóppal sajnos nincs módom rámérni.

(#3019) Teasüti


Teasüti
nagyúr

Mi ez a digitalRead() ^ 1 egy kimenetre állított porton? :Y
Értem, hogy toggle, de... Ilyet is lehet?? Mi az a power 1? Ez vmi olyasmi, mint változó esetén pl a ledstate = !ledstate?

/* Arduino 101: timer and interrupts
1: Timer1 compare match interrupt example
more infos: http://www.letmakerobots.com/node/28278
created by RobotFreak
*/

#define ledPin 13

void setup()
{
pinMode(ledPin, OUTPUT);

// initialize timer1
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;

OCR1A = 31250; // compare match register 16MHz/256/2Hz
TCCR1B |= (1 << WGM12); // CTC mode
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt
interrupts(); // enable all interrupts
}

ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine
{
digitalWrite(ledPin, digitalRead(ledPin) ^ 1); // toggle LED pin
}

void loop()
{
// your program here...
}

(#3020) tvamos válasza Teasüti (#3014) üzenetére


tvamos
nagyúr

Oke, igaz, beneztem, ez a proci is 3.3V-os, es csak a pinek 5V toleransak.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3021) tvamos válasza Teasüti (#3015) üzenetére


tvamos
nagyúr

Az Arduinon? Dehogynem tudod allitani a frekvenciat. Fast PWM.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3022) Teasüti válasza tvamos (#3021) üzenetére


Teasüti
nagyúr

Két PWM mód, oké. De tetszőlegesen? Mint mondjuk a tone() esetén.
Hmmm, órajel váltással talán? ;]

(#3023) Janos250
Jah hogy az nem hatványozás! :B
Így értem. :R

[ Szerkesztve ]

(#3023) Janos250 válasza Teasüti (#3019) üzenetére


Janos250
őstag

^ (bitwise xor)
[link]
Vagyis valóban kioltja a ledet, ha világít és fordítva.
Igen, lehet olvasni az outputra állított lábat.
Azt olvassa be, amire állítottad.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3024) fpeter84 válasza Teasüti (#3022) üzenetére


fpeter84
senior tag

Szerintem AVR-en is szabadon lehet játszani bizonyos keretek között a PWM frekvenciájával, de ha nincsen hozzá kész lib akkor el kell mélyülni a doksi vonatkozó rovataiban - timer, pwm modul - ezeknek a regisztereivel kell ismerkedni és áthangolni...

(#3025) tvamos válasza Teasüti (#3022) üzenetére


tvamos
nagyúr

Az AVR SFR-eket allitva szinte tetszoleges. (Termeszetesen az adatlap leirja, milyen keretek kozott.)
Vagy pl. ez: [link]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3026) Teasüti


Teasüti
nagyúr

Üdv!
Kérhetnék egy kis segítséget a led strip vezérléshez?
Eljutottam odáig, hogy összeraktam egy offset vezérlésű grafikus motort, ami fps-től és timer-től függetlenül dolgozik (delay nélkül ugye), egy előre meghatározott animációs sebességet tartva két képkocka közötti eltolás számolásával a futási idővel korrigálva. Vagyis az fps-re fordítottan arányos az offset. (Hasonlóan, mint a pc játékok, vagyis kicsi fps-nél szaggat, nagy fps-nél megy mint állat, de ugye a játékidő tempója változatlan.)
Pl. két képkocka között ha +10-et küldök 60 fps-en a renderelő függvény bemenetére - ami a pixeleket számolja -, akkor 600 fps-en +1-et. Így viszonylag állandó animációs sebességet kapok (mondjuk +-10% az offset kerekítésétől függően kicsi értékeknél).

A gond ott kezdődik, hogy csökkentve a kívánt animációs sebességet az offset nem mehet +1 alá, mert akkor az animáció egyszerűen leáll. Viszont magas fps-nél ez elkerülhetetlen, mivel egy adott aránynál elkezd nullára kerekíteni az offset.

Nos a kérdésem az, hogy miként lehetne megkerülni ezt a jelenséget úgy, hogy ilyen esetben csak minden második vagy harmadik (és így tovább...) loop() ciklusban legyen +1 az offset, amúgy meg nulla?
Vagyis a példánál maradva 600 fps felett minden második/harmadik képkockát ismétel.

Esetleg vmi hasonló technikával jól jönne egy fps limit is. Ha a led szalag pwm frekvenciája 400 hz, akkor teljesen fölösleges 400 fps fölé szaladni.
(delay? :P )

(#3024) fpeter84
(#3025) tvamos

Igaz, mire való a prescale... :R

[ Szerkesztve ]

(#3027) Teasüti válasza Teasüti (#3026) üzenetére


Teasüti
nagyúr

Ha a led szalag pwm frekvenciája 400 hz, akkor teljesen fölösleges 400 fps fölé szaladni.
Vagy a 800 Khz-es átviteli sebesség fölé.
Amúgy WS2812-nél az adatbusz-on 1 hz alatt egy bit közlekedik? Vagyis 800khz úgy 33.333 db 24 bites pixel frissítésére elég? Vagy 400 fps-en 83 pixel.

(#3028) Teasüti


Teasüti
nagyúr

Hogy tudok összefűzni több Serial.print-et?
Most komolyan minden egyes változóhoz külön parancs kell?

(#3029) Teasüti


Teasüti
nagyúr

Uhm, az normális ha lefagy a proci, ha lebegő analóg bemenetről próbálok olvasni?
Pár másodpercig fut tovább anomáliákat okozva, aztán annyi. Soros kommunikáció is megszűnik.
Leesett a próbapanelről a poti...

(#3030) fmx


fmx
tag

üdv kollegák, eljött a pillanat, hogy belevessem magam az Arduino világába.E-bayről nyugodtan rendelhetek egy starter packet?Vagy mit ajánlatok kezdésnek?

(#3031) tvamos válasza Teasüti (#3029) üzenetére


tvamos
nagyúr

Nem, az nem normalis. Inkabb software gond lehet.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3032) Teasüti válasza fmx (#3030) üzenetére


Teasüti
nagyúr

Én megvettem az eredeti Starter Kit-et.
Hát nem volt egy nagy élmény a könyv, néhányszor elővettem az első lépésekhez, meg első olvasásra érdekes volt. De azt hiszem nem venném meg újra. Tényleg gyerek szinten van, ami jó egy technikai analfabétának. De villámgyorsan túl lehet lépni rajta, hisz a benne lévő tudásanyag vajmi kevés és alaposan fel van hígítva bő magyarázatokkal.

MÁS
Megjött a posta, szóval ma karácsonyi hangulatban bontogattam a kis I2C bizbaszokat, BT HC-06 vevőt, stb. Jupííí!
Viszont most először próbálok adatok küldeni a deszkára, és több mint egy órája azt kutatom, hogy miként lehet visszanyerni azt az egy szerencsétlen bájtot uint8_t formájában a kurva ASCII kódból. :W
Szóval ti mit használtok erre?
Hogy tudom konvertálni az uint8_t-t ASCII-be és vissza?

(#3031) tvamos
Hát passz. Gondolom a port lebegése közben még a mérési határokon belül olvas értéket.
Na meg mi van akkor, ha nem? A változók max túlcsordulnak, nem kéne lefagynia.
Ennél érdekesebb volt, mikor megnéztem mit alkot az USB bekötött BT vevővel az UART-ra.
Na az úgy kiakasztotta, hogy még a PC se ismerte fel az eszközt utána, csak áramtalanítás után. ;]

[ Szerkesztve ]

(#3033) tvamos válasza Teasüti (#3032) üzenetére


tvamos
nagyúr

Regen, amikor meg nemmvolt Arduino framework, igy csinaltam veletlenszam generatort,,es jol mukodott. (Antennat kotottem a bemenetre.) Nem tudom, nalad mi lehet a gond!

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3034) fpeter84 válasza Teasüti (#3032) üzenetére


fpeter84
senior tag

Ilyen analóg lebegés-fagyás dolgot én sem tapasztaltam, nem tudom hogy nálad milyen együttállás vagy külső ok hozhatta össze...

Kékfog: ezt emlegettem, hogy az uno-nak csak 1 sorosportja van amit foglal a programozó felület. Nekem ugyan lehalni nem szokott hasonló mutatványnál az USB>soros illesztés - úgylátszik az eredeti 16U2 virtuális kapcsolás érzékenyebb mint a célcsippes kínai CH340g... Mindenesetre le kell csatlakozni a sorosról, de lehet még a tápot se lehet USB felől adni neki amíg másra akarod használni az RX/TX lábakat, így nagyban macerásabbá teszi a dolgot :(

Viszont azzal megpróbálkozhatsz, hogy külső táp, kékfog felprogramozva az Rx/Tx lábakon és az utóbbin keresztül programozni - a resetet ugyan neked kell a megfelelő pillanatban megnyomnod hozzá, de akár működhet is, csak azt kell kitalálni hogy milyen baud-ot kér a bootloader és arra állítani a kékfog adaptert
(erről jut eszembe, külön USB>soros TTL adaptered van? nem tudom hogy ezt ajánlottuk e már beszerzésre)

Soros olvasás: erre millió példaprogramot lehet találni, van sima polling-os is ami a fő loop-ban mindig ellenőrzi hogy van e olvasnivaló a bufferben és ha van akkor olvassa ki, illetve lehet interruptos is amivel meg egy saját hosszabb szoftveres buffert illik tölteni amit a fő loop meg kiolvas...

(#3035) Teasüti válasza fpeter84 (#3034) üzenetére


Teasüti
nagyúr

String message;
int integer;
while (Serial.available() > 0) {
message += char(Serial.read());
}
if (message.length() > 0) {
integer = message.toInt();
Serial.println(integer);
message = "";
}

Lett a megoldás végül.
Fogalmam sincs ezek mennyi erőforrást vesznek el, de legalább nem akasztja meg a programot, mint a parseInt(). :F

Úgy olvastam BT-n programot feltölteni kifejezetten nem lehet. Mintha Arduino nyomatékosan nem ajánlaná emlékeim szerint. Talán nem túl biztonságos a 3.3 TTL feszültség az Uno RX lábán?
Természetesen nem ért váratlanul, mikor összeakadt az usb-vel, a hotplug viszont úgy tűnik működik. :)
Sima HC-06, soros kivezetéssel.

(#3036) tvamos válasza Teasüti (#3035) üzenetére


tvamos
nagyúr

Siman megy a programozas 3.3V-on, allitolag BT-on is.(BT-on nekem meg nem sikerult. De nem is probaltam.)

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3037) Teasüti válasza tvamos (#3036) üzenetére


Teasüti
nagyúr

Épp most olvastam utána. Elvileg nem nagy was ist das.
A 32-es lábát lehet használni a HC-05/06 vevőnek az Uno reset-elésére.
(Arra nem tért ki milyen varázslattal.)
Az új IDE-ben már dll fájlokkal se kell babrálni hozzá állítólag.
Aztán reset-en kívül csak az átviteli sebességet kell belőni 19200-ra a bootloader-nek és elvileg megy.

Viszont ránézve erre a kis vacakra esélytelen számomra, hogy bármit is ráforrasztok arra a mütyür lábra. :))
Kézi reset-tel meg neki se állok, akkor már inkább kábelezek továbbra is. :K

Egyébként meglepően ügyes ez a SoftwareSerial, azt hittem meg fogja akasztani a led frissítését.
Vajon hogy működik a puffere? Interupt-tal kapja el a bejövő adatot?

[ Szerkesztve ]

(#3038) fpeter84 válasza Teasüti (#3035) üzenetére


fpeter84
senior tag

Ez a programrészlet a polling - végtelen loop-ban kérdezgeti a regisztereket hogy van adat? van adat? van adat? és csak akkor kéri le a buffer tartalmát ha van is mit kiolvasni, ezért nem blokkol. Ezzel csak akkor lehet gond, ha a programod hosszú időre lefoglalja a procit, és ezalatt túl sok karakter érkezhet adott baudrate-en a hardveres bufferbe és az túlcsordul/elveszik egy része. Ilyenkor kell megszakításosdira váltani. De ha csak néha 1-2 vezérlő byte-ot küldesz neki akkor első körben jó lesz ez a megoldás is...

USB soros alatt az ilyeneket értettem: [link] [link] - az utóbbin a létező összes láb ki van vezetve ahogy nézem, a flow control és egyéb GPIO célra használhatóak is, csak ahhoz még mindenképpen kell kábel is, bár az lehet akad nálad is... Az USB serial TTL kifejezésekre keress rá, van sokféle, de lényegében mind ugyanaz kisebb nagyobb különbségekkel. Az RS232 DSUB9 csatisok erre a célra nem jók, mert ott teljesen más a jelszint, a mikrokontrollereknél a TTL/LVTTL kell...

Az ilyenek pl arra jók, hogy a kékfog modult rákösd a gépre és az AT parancsokkal felprogramozd - név, pin, baud, stb... De természetesen millió más célra jók fejlesztgetés közben, szóval érdemes beszerezni. Hosszútávon érdemes még olcsóbban egy kisebb csomagot rendelni kínából, mert előbb utóbb beépülnek/elvesznek, legyen újabb és újabb a doboz mélyén :)

BT: elméletben lehet vele programozni és sztem a 3.3V se lehet probléma. Legrosszabb esetben sérül a feltöltés, eldobja a checksum ellenőrzés a végén, de a bootloader ugyanúgy megmarad tehát ismét neki lehet futni. A probléma ott van, hogy a kékfog chipseteken (vagy magában a BT SPP protokolban?) nem igazán implementálták a flow control lábakat, az arduino pedig ezeket használja az automatikus resetelésre (kivéve a Due, ott más trükkhöz folyamodtak), így manuálisan kell a feltöltés megfelelő pillanatában resetelni a procit hogy rátaláljon az IDE...

(#3039) Teasüti válasza fpeter84 (#3038) üzenetére


Teasüti
nagyúr

Polling, jó tudni... Köszi! :R
Csak néha egy-egy vezérlő bájthoz kell.
A 4D Systems LCD kijelzőivel szemezek még, az elvileg UART-on kommunikál, ahhoz lehet már több fog kelleni ennél. Bár funkciójában is ugyanaz, mint a BT. Egy kevés vezérlő bájt, és inkább Serial.print sorozatok állapotjelzéshez.

BT vevőből ilyet vettem:
[link]

FTDI-re nem tudom mi szükségem volna egyelőre. Az majd a barebone Uno-k építéséhez fog kelleni. :)

(#3040) Teasüti válasza Teasüti (#3039) üzenetére


Teasüti
nagyúr

Amúgy melyik a jobb választás embedded használatra? Barebone Uno, vagy egy Nano? Ebay-en kb egy árban vannak, sőt az Essential Kit egy hangyányit még drágább is a Nano-nál. Egyelőre még nem kacérkodok prototípus készítésével, de ha eljutok egy szintre, akkor már megfontolnám saját nyák készíttetését.
Mondjuk egy Nano-t se vészes beágyazni. Dilemma...

Az STM32-esek közt se tudok dönteni. :B

(#3041) Janos250 válasza Teasüti (#3040) üzenetére


Janos250
őstag

"Barebone Uno" ?
Ilyen is van?
Egyébként ízlések és pofonok.
Az UNO gyakorolni szerintem kényelmesebb. Én mindenképpen olyan példány mellett döntenék ha UNO, ami átkapcsolható 3.3 és 5 V-ra egyaránt. Beépítésre meg inkább a nano. De neked kell döntened. Én egyébként pártolom az STM32-ket! Ugyanúgy Arduino ma már, de sokkal nagyobb teljesítményű minden szempontból. Dönteni csak Te dönthetsz!

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3042) tvamos válasza Janos250 (#3041) üzenetére


tvamos
nagyúr

Sikerult elinditanom STM32 nucleon a monster motor shieldet. Nagyon jo. Csakmradugod, mint az Uno-ra.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3043) fpeter84 válasza Teasüti (#3039) üzenetére


fpeter84
senior tag

Mint írtam, az USB soros többek között pl a kékfog modul átprogramozásához jöhet jól... Ugyan ha nagyon akarod akár az UNO-n keresztül is meg lehet oldani valahogyan, de nem túl praktikus és nem kapsz visszajelzést se hogy tényleg sikerült e...

Az ilyen soros LCD-nek nem különösebben látom értelmét - illetve nyilván egyes esetekben jól jöhet, ha pl nagyon messze kerül a mikrokontrollertől a megjelenítő - de elég magas az ára is, nem hiszem hogy egy átlag projektbe érdemes lenne belevenni... Viszont millió kisebb nagyobb monokróm karakteres, pontmátrix és színes LCD panelt lehet kapni mindenféle méretekben amelyekhez van kész library - max a nagyobbakhoz az UNO lábszáma és RAM/ROM-ja lehet a kevés, úgyhogy a ló túloldalára sem szabad átesni...

(#3044) Janos250 válasza fpeter84 (#3038) üzenetére


Janos250
őstag

FT232RL FTDI Serial Adapterre előbb-utóbb mindenképpen szükséged lesz, ha ilyen témával foglalkozol.
Azzal a legegyszerűbb a felprogramozás, ha nincs USB. Más konverterekkel volt problémám, de az FT232RL-el nem. A többi a fiókba került.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#3045) fpeter84 válasza Janos250 (#3044) üzenetére


fpeter84
senior tag

Van itthon jópár mindenféléből, és többnyire nem volt velük gondom: FT232, PL2303, CP2102, CH340g, valami ASIX/Moschip is van aminek nem rémlik a pontos típusa - kivéve pont az FT232-vel, jobban mondva a kínai klónjával ami ránézésre és regisztereit tekintve is 100% ugynanaz, viszont időnként - talán instabil tápra? - hajlamos elfelejteni az USB ID-jét, full 0000 lesz mindkét azonosítója és nem tud vele mit kezdeni a driver. Javítható, az FTDI-től valami EEPROM programozó eszközzel helyre lehet tenni. Továbbá a PL2303-nak van olyan szépséhibája - feltehetően abból is van kínai klónom is - hogy az új driver kiköpi őket, amivel a win10 élesztené. Le kell tölteni hozzá valami sok sok éves őskövület drivert és azzal atomstabilan teszi a dolgát...

(#3046) norbert1998


norbert1998
veterán

Üdv!

Egy CNC gépet szeretnék alkotni az Arduino segítségével, viszont az Arduino CNC Shield V3 egy kicsit magas nekem.
Most amit kitaláltam, az egy olcsóbb Ardunio copy, egy olcsóbb Shield 3 és 3 db a4988 driver. Egy 24v-os tápról menne. Viszont nem értem a Shield vezérlésének működését, therefore a táp minimális erejét sem tudom kiszámítani, hogy mekkora kellene legyen.

Vagy lehet hülyeséget beszélek, és nem is 24 voltot ad a motornak, hanem pl egy 17hs4401 esetében 2.5V körül?

Valaki igazítson ki, legyen szíves :D

Előre is köszi :R

(#3047) tvamos válasza norbert1998 (#3046) üzenetére


tvamos
nagyúr

A drivernek eleg 8V, es nem vesz fel 12mA-nel tobbet.
Az a kerdes, milyen motort kotnel ra. Max 2A lehet, ha jol latom.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#3048) norbert1998 válasza tvamos (#3047) üzenetére


norbert1998
veterán

Ilyesmi motort tennék rá, hármat.

(#3049) Teasüti válasza fpeter84 (#3043) üzenetére


Teasüti
nagyúr

Hogyne lehetne beállítani a kékfogat, a SoftwareSerial gyönyörűen teszi a dolgát, azután csak pár sor hidat képezni a gép és a BT között.

LCD-kkel az a bajom, hogy túl sok láb kell hozzájuk. Ha nem ilyen kész megoldást használok, akkor kell neki egy dedikált mikrokontroller, hacsak nem vmi bitang nagy számú porttal rendelkező deszkát veszek. De a Nano méretű cuccok meg nem erről híresek, h 50 I/O van rajta. És akkor még nem tudom hogy raknék össze egy grafikus interfészt érintőkijelzővel és az se lenne baj, ha animálva lenne. Ehhez meg van minden, beleértve a szoftvert is.

(#3050) fpeter84 válasza Teasüti (#3049) üzenetére


fpeter84
senior tag

A SoftSerial-t tényleg jól elfelejtettem :) De csak egyszerűbb ha van a kéznél USB soros és nem kell alakítgatni semmit...

Vagy egy mega/due/nagyobb stm32 board lehet a megoldás jó sok lábbal, vagy egy SPI/I2C-n is vezérelhető típus... Mi lenne az igény? Ha érintős, akkor gondolom színes LCD, nem monokróm karakteres/pixeles vagy kicsi OLED. De mekkora kb?

[ Szerkesztve ]

Copyright © 2000-2024 PROHARDVER Informatikai Kft.