Hirdetés

2024. május 4., szombat

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

(#8201) Janos250 válasza Xpod (#8196) üzenetére


Janos250
őstag

Hoppla-hopp! Na, megvan a hiba. :)
A "No hardware SPI pins defined. All SPI access will default to bitbanged output"
hibajelzés, az nem a fordító hibajelzése, hanem a fastspi.h fileban van:
# if !defined(FASTLED_INTERNAL) && !defined(FASTLED_ALL_PINS_HARDWARE_SPI)
# ifdef FASTLED_HAS_PRAGMA_MESSAGE
# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
# else
# warning "No hardware SPI pins defined. All SPI access will default to bitbanged output"
# endif
# endif

El kéne távolítani azt a fastspi.h-t!

link

Hú, erre a fene se gondolt.

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

(#8202) Janos250 válasza Xpod (#8200) üzenetére


Janos250
őstag

fastspi.h törlendő!
A fastled verzió nem is fog menni ESP32-n.

[ Szerkesztve ]

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

(#8203) Xpod válasza Janos250 (#8201) üzenetére


Xpod
addikt

Ezt mégis, honnan vadásztad elő?

Egyébként érdekes, de most engedte feltölteni az általad linkelt kódot a kontrollerre.

Akkor ESP32 alatt az Adafruit_Neopixel könyvtárat lehet csak használni üzembiztosan.

[ Szerkesztve ]

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8204) Janos250 válasza Xpod (#8203) üzenetére


Janos250
őstag

"Ezt mégis, honnan vadásztad elő?"
Google
"Egyébként érdekes, de most engedte feltölteni az általad linkelt kódot a kontrollerre."
Akkor már megkérlek, hogy próbáld is ki futtatni azt a két fájlt, amit küldtem, hogy tudjam, más boldogul-e vele! Kösz!

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

(#8205) Xpod válasza Janos250 (#8204) üzenetére


Xpod
addikt

A sketch_mar09WS2812_ESP32_RMT_status_bit_check_CH0_GPIOx_24bitFe.ino egy szép villogós fényjátékot csinál.

A sketch_mar16aWS2812DigWrite-alProba01.ino szintén működik.
Az első led villog néhányat pirosan, majd kb 20 led elkezd világítani, az első zölden majd szépen megy át kékbe, 1 led sötéten marad és ismét lesz egy kb 20 ledes zöld-kék átmentes szakasz.

Egyik fájlban sem láttam külső library-t. Jól gondolom, hogy ami a libraryban benne van, azt te konkréten ezekbe a fájlokba kódoltad bele a setup részbe?

[ Szerkesztve ]

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8206) Janos250 válasza Xpod (#8205) üzenetére


Janos250
őstag

Kösz!
Nem szedtem ki a dolgokat librarybe, mert ezek demonstrációs céllal készültek. Tehát nem belevittem a libraryt, hanem "nem vittem ki". Azt akarnám bemutatni, hogy mennyire egyszerűen lehet kezelni ESP32-vel a WS2812-t is. Majd ha lesz annyi időm, leírom, a még néhány hasonló megoldással együtt. Igen, az a próba van beleírva a lightShowInCore0Code()-ba a case-eknél, amit leírtál. Ez egy próba, hogy lássam, úgy működnek-e a ledek, ahogy szeretném. Látom, Nálad is úgy működnek :) Ja, még annyit, hogy a két mag előnyét szándékoztam - többek között - bemutatni. Az egyik mag kezeli a ledeket, a másik meg kiszámítja, hogy mit kell kivinni. Így mehetnek párhuzamosan, nem zavarják egymást. Ha már van két magunk az ESP32-ben használjuk ki.

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

(#8207) Xpod válasza Janos250 (#8206) üzenetére


Xpod
addikt

Köszi a segítséget és a türelmet is.

Háhá, kicsit előrébb léptem. (Mondjuk azt nem teljesen értem mit csináltam, de működik. :) )

Az alábbi kóddal végre minden LED egyforma színnel világít. Már csak azt kell kitalálnom, hogy a kód végén, ha letelik a delay, akkor villan/pulzál egyet a szalag. Egyáltalán miért kell a delay? Minden LED vezérlős kód amit eddig láttam a neten egy delay-jel végződik. Kell ez nekem? Ez ezért kell, hogy amikor a delay fut, akkor kisebb az áramfelvétele az ESP-nek, kvázi energiatakarékos módba kapcsol erre az időre?

#include <Adafruit_NeoPixel.h>

#define LEDPIN 13 //vezérlés
#define LEDmennyiseg 56 //osszes led
#define szakasz1kezdet 0
int i;
Adafruit_NeoPixel LEDek = Adafruit_NeoPixel(LEDmennyiseg, LEDPIN, NEO_GRB + NEO_KHZ800);
// szín beallítas: zold,kek, piros GBR

void setup() {
LEDek.begin();
LEDek.show();
}

void loop() {
uint32_t kikapcsolt = LEDek.Color(0,0,0);
uint32_t csunyafeher= LEDek.Color(153,255,255);
for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,csunyafeher);
LEDek.show();
}
delay(1000);
}

[ Szerkesztve ]

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8208) Janos250 válasza Xpod (#8207) üzenetére


Janos250
őstag

Na, most megint csak a levegőbe dumálok:
Én a LEDek.show(); -t egy sorrál hátrébb tenném, tehát a kapcsos zárójel mögé.
Mert:
A for ciklus fusson végig, azaz töltsd fel a puffert teljesen, utána írja ki a dolgokat a LEDek.show();

Hogy jobban megértsd mit csinálsz, javasolnék egy próbát:
a LEDek.setPixelColor(i,csunyafeher); helyére próbára:
LEDek.setPixelColor(i,LEDek.Color((255-i*4)/4,i,0)); Lusta voltam másikat csinálni.

Tehát:
1. végigmegy a ciklus, azaz letárolja [LEDek.setPixelColor]
2. amikor a teljes show ki van számolva, le van tárolva, a LEDek.show(); kitölti a szalagra, és megjelennek a színek
3. vár 1000 msecet, azaz egy secet, és újra tölti.

A villanás (gyanúm szerint) megszűnik, ha a LEDek.show() a cikluson kívülre kerül.

Így, hogy ugyanaz a szín lesz mindig kiírva, nem látszik a lényeg, de kipróbálhatod pl ezt:
for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,csunyafeher);
} ;
LEDek.show();
delay(1000);

for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,kikapcsolt);
} ;
LEDek.show();
delay(1000);


for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,LEDek.Color((255-i*4)/4,i,0));
} ;
LEDek.show();
delay(1000);

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

(#8209) Xpod válasza Janos250 (#8208) üzenetére


Xpod
addikt

Tyű, köszi. Így, hogy ezt elmagyaráztad értem mit csinál a kódom. :)
Javítom és megnézem mi lesz belőle.
Azt hittem egyesével kell kiíratni a pixelek-et, ezért kell a for ciklusba betenni.

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8210) tibi-d válasza Teasüti (#8186) üzenetére


tibi-d
tag

Szervusz!
Én egy századmásodperces stoppert készítettem két fénysorompóval. Az érzékelők tükörreflexiós lézerrel működtek. Ha az egyik érzékelő lézerét megszakították, akkor elindult a stopper, ha a másik lézert szakították meg, akkor megállt. Mivel strapabíró, megbizható érzékelés kellett, a lézerek ipari kivitelüek voltak. Ebből következik, hogy a projekt legdrágább komponensei voltak.

(#8211) Teasüti válasza tibi-d (#8210) üzenetére


Teasüti
nagyúr

Aha, pár dollárért kéne inkább vmi. :D

(#8212) tibi-d válasza Teasüti (#8211) üzenetére


tibi-d
tag

A PIR-ek működési elvüknél fogva lassúak. Ezek hőtömeget érzékelnek. Ha egy ember elhalad előtte, az néhány másodpercig tart. Ezt folyamatosan érzi. Ha már nincs előtte a hőtömeg, kikapcsol. Lehet kapni "Függöny" lencsét az érzékelők elé, ez kb. 20-50cm-re szűkíti az érzékelési tartományt. Egy próbát megér.

[ Szerkesztve ]

(#8213) Aryes válasza Teasüti (#8211) üzenetére


Aryes
nagyúr

Szedj szét egy olcsó mozgásérzékelőt, szedd le róla a jelfeldolgozó elektronikát, dolgozd fel az analóg jelet közvetlenül az mcu-val.

[ Szerkesztve ]

(#8214) Janos250 válasza Xpod (#8207) üzenetére


Janos250
őstag

Hogy működik Neked ez a program?
Kíváncsiságból feltettem ezt a libraryt, és az itt leírt programot, de nem stimmelhetnek az időzítések, mert változik a szín. Nem nagyon, de változik. Ennek stabilan kellene tartani a színt.

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

(#8215) Janos250 válasza Janos250 (#8214) üzenetére


Janos250
őstag

Tovább próbálkoztam, de nekem nagyon összevissza működik ez a könyvtár.
Csinálja a dolgokat, de eléggé rendszertelenül.

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

(#8216) Xpod válasza Janos250 (#8215) üzenetére


Xpod
addikt

Szia!

Ezzel a megoldással, sikerült elérnem, hogy csak az 1. és a 25. led világít csak sötét kéken, a többi világoskék. Tegnap kb 4 órát üzemelt és nem vettem észre sem villogást, sem színváltozást. (Egyébként tegnap írtam a hobby elektronikás topicba és lehet tápot kell cserélnem, mert lehetséges, hogy van egy kis gerjedés az áramkörben.)
#include <Adafruit_NeoPixel.h>

#define LEDPIN 13 //vezérlés
#define LEDmennyiseg 56 //osszes led

int i;
Adafruit_NeoPixel LEDek = Adafruit_NeoPixel(LEDmennyiseg, LEDPIN, NEO_RGB + NEO_KHZ800);

void setup() {
LEDek.begin();
LEDek.show();
}

void loop() {
uint32_t szin= LEDek.Color(0,128,128);
for (i=0; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,szin);

}
LEDek.show();
delay(1000);
}

[ Szerkesztve ]

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8217) Tankblock válasza Xpod (#8216) üzenetére


Tankblock
aktív tag

Hello,

a codeban van egy elírás a for ciklusban. A +1 et szedd ki. 0 és 55 között pont 56 szám van. Szerintem túlcímzed és pont az lehet az a villogás tárgya is ha újraindul.

Próbáld meg ha valami futófényt teszel rá.

Release the Beast....

(#8218) Xpod válasza Tankblock (#8217) üzenetére


Xpod
addikt

Üdv,

A +1 azért került bele, mert ha nem így írom, akkor az 1. led kéken, a 25. led pedig zölden világít.

Az eredeti kód, ami alapján elkezdtem ismerkedni ezzel az egésszel itt van: [link]

[ Szerkesztve ]

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8219) Teasüti válasza Xpod (#8218) üzenetére


Teasüti
nagyúr

A kódod átnyálazása nélkül csupán tapasztalatból írom, hogy ha nem azt látod a szalagon amit szeretnél és a szalag nem pixelhibás, akkor az esetek 100%-ában a kódban van a hiba.
Ha az első és utolsó ledek színe nem oké, akkor az én tippem az volna, hogy a 3 színkomponens tömbbe rendezésénél lesz a gond.
A táp nem okoz semmilyen zavart a jelben, amíg nem brownout-ol a szalag vagy az mcu.
Inkább a szalag pwm vezérlése okozhat zavarokat a tápban, ha nincs pufferelve egy szép nagy kondival.

[ Szerkesztve ]

(#8220) Xpod


Xpod
addikt

Köszi a segítséget, de egyelőre feladom. Szinte biztos, hogy az egész problémám hardveres, konkrétan a tápegységre gyanakszok.

Ugyanaz a kód a 10 db-os teszt ledszalagon ami USB-ről kapja a tápot, tök másképp viselkedik, mint az 56db-os szalag, amihez külön csináltam a tápegységet. Szerzek egy másik tápot amit javasoltak az elektorniká topicba. A 10 db-os szalag jól, működik, az 56-os még akkor sem működik őgy ahogy kellene, ha csak 20 db ledet címzek vele.

#Teasüti, nincs puffer kondi. Konkrétan ezt csináltam: [link]

[ Szerkesztve ]

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8221) Teasüti válasza Xpod (#8220) üzenetére


Teasüti
nagyúr

(#8222) Janos250 válasza Tankblock (#8217) üzenetére


Janos250
őstag

A WS2812 - tapasztalatom szerint - nyugodtan túlcímezhető. A felesleg megy a levegőbe, nem tudja az utolsó pixel, hogy ő az utolsó, hanem küldi tovább az adatot.

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

(#8223) Tankblock válasza Janos250 (#8222) üzenetére


Tankblock
aktív tag

A szalag igen, a memória nem, nézd meg a definícióban 56 adott meg utána meg beleír az 57 be.... Ha védett lenne a memória instant rebootot okozna... Még lehet hogy így is....

Release the Beast....

(#8224) Janos250 válasza Tankblock (#8223) üzenetére


Janos250
őstag

Igen, leesett. :)

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

(#8225) Teasüti válasza Xpod (#8218) üzenetére


Teasüti
nagyúr

Amit javasolnék, hogy meg kell nézni milyen utasításokkal lehet tömböt átadni az Adafruit könyvtárának.
Aztán te magad ellenőrzöd utána milyen adatok kerülnek ki a szalagra. Ergó te állítod össze egy byte tömbben az 56*3 elemet, GRB vagy RGB sorba rendezve szalagtól függően és így egyben adod át a könyvtárnak.
Mert így, hogy a könyvtár pufferét írod a setPixelColor-ral, így nem látható mi is történik egy absztrakciós réteggel lejjebb.

Nekem számtalanszor ez adott lehetőséget érdemi debug-ra, ezért se használok ilyen 5 perc alatt beüzemelhető, demókkal tarkított könyvtárakat. Csak a minimalista show() funkció legyen benne, semmi más.
Annak tudjak átadni egy tömböt, amiben benne vannak a színkomponensek és ennyi.
Az animációt meg megírod magadnak.

[ Szerkesztve ]

(#8226) Janos250


Janos250
őstag

Belenéztem ebbe az Adafruit könyvtárba, és elvi problémám van vele:
deklarálja a szokásos módon:

static inline uint32_t _getCycleCount(void) {
uint32_t ccount;
__asm__ __volatile__("rsr %0,ccount":"=a" (ccount));
return ccount;
}

Ez rendben.
A bitek kezdeténél vár annyit, amennyit kell:

while(((c = _getCycleCount()) - startTime) < period); // Wait for bit start

Ugyanígy várakozással időzít a magas szintnél is. Ez így jó (lenne), erre írtam egyszer korábban, hogy a "gyalog" módszer.
Nincs RMT, ciklusban vár, de OK, mert közben úgyse csinál semmit a proci.
Csakhogy:
a uint32_t _getCycleCount(void) mint láthatjuk 32 bites, tehát nagyjából 17 másodpercenként átfordul, és olyankor borul az időzítés!
Persze van elég nagy valószínűsége, hogy nem akkor írja a szalagot, de ha igen, akkor csúszik az egész. Nem csak egy pixel, mert "pixel végjel" nincs.
Ezért kell 64 bites verziót használni (szoftveresen megoldva)

[ Szerkesztve ]

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

(#8227) JozsBiker válasza Xpod (#8216) üzenetére


JozsBiker
aktív tag

Adafruit_NeoPixel LEDek = Adafruit_NeoPixel(LEDmennyiseg, LEDPIN, NEO_RGB + NEO_KHZ800);

Esetleg próbáltad 400 kHz -en is ?

(#8228) Teasüti válasza Janos250 (#8226) üzenetére


Teasüti
nagyúr

Tényleg, ha már szóba került, akkor ezt hogy lehet kezelni?
Még Uno-nál volt téma, hogy a millis() hány nap után fordul át és mindig említésre került, hogy 24/7-es projekteknél erre figyelni kell.
Na de mit kéne csinálni vele?

(#8229) Janos250 válasza Teasüti (#8228) üzenetére


Janos250
őstag

UNO-nál nem tudom.
ESP32-n én így oldottam meg:
A union nem tartozik a lényegéhez, de nem volt most kedvem átberhelni, csak bekopiztam.

typedef union konv {

uint64_t v64bit = 0 ;

struct {
uint32_t low32bit ;
uint32_t hi32bit ;
} s32bit;

struct {
uint16_t low32bit_low16bit ;
uint16_t low32bit_hi16bit ;
uint16_t hi32bit_low16bit ;
uint16_t hi32bit_hi16bit ;
} s16bit;

uint8_t v8bit[8];
};


uint64_t getCycleCount64() {
static uint32_t CycleCount32 = 0 ;
static konv CycleCount64 ;

static uint32_t ccount;
__asm__ __volatile__("esync; rsr %0,ccount":"=a" (ccount));
CycleCount32 = ccount ;

if (CycleCount64.s32bit.low32bit > CycleCount32 ) {
CycleCount64.s32bit.hi32bit++ ;
};
CycleCount64.s32bit.low32bit = CycleCount32 ;
return CycleCount64.v64bit ;
} ;

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

(#8230) Janos250 válasza Janos250 (#8229) üzenetére


Janos250
őstag

Egy mondat magyarázat hozzá:
minden használat során kiolvassuk a 32 bites számlálót, de csinálunk egy "felső", magasabb helyiértékű 32 bitet is, ami induláskor 0 lesz. Ha a kiolvasott számláló értéke kisebb, mint az előző kiolvasásnál, akkor növeljük eggyel a magasabb helyiértékű 32 bitest is, mert akkor a számláló átfordult.
Ez jól működik mindaddig, amíg legalább 17 másodpercenként használjuk.

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

(#8231) Teasüti válasza Janos250 (#8230) üzenetére


Teasüti
nagyúr

Ügyes! Nem gondoltam volna erre.
Ha hozzáadsz egy feltételt, mikor lejár a számláló, akkor meg se kell hívni külön annak átfordulása előtt.
A fenébe is, még mindig nem értem ilyen mélységeiben a nyelvet.

[ Szerkesztve ]

(#8232) Xpod válasza Teasüti (#8225) üzenetére


Xpod
addikt

Láttam ezt a cikket, de azt hittem ez csak Arduinora vonatkozik. ESP32-nél nem láttam ilyen megoldásokat.
De egy nagyobb kondit (asszem 1500-as van itthon) akkor még bekötök. Tegnap este én is erre jutottam, csak még a kivitelezést nem tudtam megcsinálni.

JozsBiker: igen, próbáltam 400kHz-en is, de nincs változás.

Kb 13 éve (még a fősulin) programoztam utoljára C-ben (Akkor egész jól ment, addig amíg be nem kavartak az objetumokkal). Ismerős környezet amibe kódolni kell, de soha nem tanultam kontrollert programozni. Ezt most kb 1 hónapja találtam ki, így nekem egyelőre bőven megfelel a gyári csili-vili könyvtárak használata. Majd ha már legalább a saját kódom parancsait érteni fogom, akkor hanyagolom a gyári könyvtárakat, de egyelőre azon küzdök a hardver és a szoftver úgy működjön ahogy azt szeretném, és egy 10 soros kódot nem 2 heti guglizással kelljen összeraknom.

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8233) Teasüti válasza Xpod (#8232) üzenetére


Teasüti
nagyúr

Nem, ez a bekötés minden digitális szalagra vonatkozik.

Akkor egész jól ment, addig amíg be nem kavartak az objetumokkal
Eeegen, ezzel én is így vagyok. :D
Mai napig nem jöttem még rá a könyvtár felépítésének logikájára. Amikor azt hiszem a szintaktikát sikerült megértenem a legalapvetőbb 3 soros tutorial-lal az Arduino oldalán, akkor rájövök, hogy fogalmam sincs hogy kéne szétdarabolni a már megírt függvényeimet könyvtárakká.

[ Szerkesztve ]

(#8234) Janos250 válasza Xpod (#8232) üzenetére


Janos250
őstag

Én nagyon szkeptikus vagyok az Adafruit könyvtár használatát illetően.
Az a kisebbik gond, amit már leírtam, hogy a számláló átfordul, van egy sokkal nagyobb:
Az 1 msec-enkénti megszakítás nincs kivédve.
Próbálgattam ezt a könyvtárat, de sehol nem akart működni, aztán megnéztem miért. Itt a képek.
Az 1 msec-enkénti megszakítás 7-8 microsec, ami pont a határon van. Elméletileg 50 microsecet írnak a határra, de én még olyan szalaggal nem találkoztam. Lehet, persze, hogy az eredeti Adafruit szalagok tudják, de ezek között a kínaiak között én még nem találtam olyat, aminél ne 7-8 microsec lenne a határ, tehát pont a kritikus "billegő" tartomány.

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

(#8235) Janos250


Janos250
őstag

Megvan a megoldás:

taskDISABLE_INTERRUPTS() ;
LEDek.show();
taskENABLE_INTERRUPTS() ;

Így használd! Minden egyes LEDek.show(); előtt letiltjuk az interruptot. utána engedélyezzük.
Így már stabil!
Nem árt persze, egy erős táp, de mielőtt atomerőművet kapcsolsz a szalagra, javasolom, hogy ezt azért próbáld ki. Nem azért jó rövid szalagnál, mert kevesebb az áramfelvétel, hanem mert kisebb valószínűséggel szalad bele az 1 milliseces megszakításba.

[ Szerkesztve ]

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

(#8236) Teasüti válasza Janos250 (#8235) üzenetére


Teasüti
nagyúr

Ezt a könyvtár nem intézi magának? Cöhh...
Elég silány minőségű portolás ez az Adafruit-tól.

[ Szerkesztve ]

(#8237) Janos250 válasza Teasüti (#8236) üzenetére


Janos250
őstag

Bele lehet persze utólag tenni a könyvtárba is. Az is lehet, hogy a neten már kering olyan verzió, sőt, valószínű.

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

(#8238) Tankblock válasza Teasüti (#8236) üzenetére


Tankblock
aktív tag

Open source ....

Pont ez a szituáció minden ilyenteljesen megírt könyvtárral.Általános megoldás, és nem használja ki feltétlen a microcontroller képességeit, figyelmen kívül hagyja HW részeket. Az ESP32 ebből a szempontból kilóg a sorból, máshol nem nagyon van több mint 1 mag és HW megoldások egy csomó mindenbe beépítve. Nem AVR ahol örülsz h van 3 timer meg HWes PWM aztán nagyából minden kötött a pinekhez.....

Inkább a magam által írt / nevezzük a nevén: kotyvasztott kódot szeretem. Olvasni kell a példákat/ HW leírásokat és a ide leírását, esetenként a GitHubon nézelődni és tanulni a kész kódokból - Youtube is ide tartozhat..... Sokkal több mindent ki lehet így hozni az eszközeinkből.....

Release the Beast....

(#8239) Xpod válasza Teasüti (#8221) üzenetére


Xpod
addikt

Kipróbáltam a kapcsolást.
Bekötöttem egy 2200mikrós kondit,és annyi változott, hogy ha hozzáérek az LM1084 hűtőbordájához, akkor nem változik meg a ledek színe.

Ha az ellenállást is bekötöm, akkor nem kapcsolnak be a ledek.

Ha a forráskódban 10 db a ledek mennyisége, akkor az első és a tizenegyedik zölden világít a többi narancssárga.

Az segít, ha linekelek egy fényképet a ledszalagról?

Janos250 : megcsináltam, beletettem a kódba az interuptos rész is, de nincs változás. 10 db címzek, 11 világít, első és utolsó zöld.

[ Szerkesztve ]

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8240) Xpod válasza Xpod (#8239) üzenetére


Xpod
addikt

99% hogy a hiba nem szoftveres, hanem hardveres, konkrétan a tápegység nem megfelelő valamiért.
Az 56db-os szalagból csak 10 db-ot vezéreltem és rákötöttem egy USB-s töltőre. (5V, 1 A). A ledszalag, hirtelen megjavult, ugyanúgy működött, mint a 10db-os teszt szalag.

A megoldás, hogy veszek egy stepdown konvertert, ami 12V-ból csinál nekem 5V-ot.

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8241) Janos250 válasza Tankblock (#8238) üzenetére


Janos250
őstag

:-)
Én is pontosan így látom, én is ezt szoktam tenni, de a kezdőknek is el kell indulni valahogy.

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

(#8242) Teasüti válasza Xpod (#8239) üzenetére


Teasüti
nagyúr

3.3V-hoz az R330 szolgálna 10 mA-es korlátként. 12 mA a max, amit egy GPIO le tud adni.
Ez csak kiegészítő védelem, akár el is hagyható. Én sem használom éles körülmények között és hónapok óta megbízhatóan működik a rendszer.

Esetleg azt próbáld még ki, hogy beraksz egy 3V3-5V szintillesztőt az adatbuszra, vagy trükközöl egy kicsit.
A hivatalos specifikáció szerint Vcc*0,7 felett van a logikai 1, ami 3,5V minimum. Ez lehet gyártási minőségtől is függhet, az én szalagom vígan megy közvetlenül a GPIO-ról is.

szerk: ez kihagyható, azt hiszem be se kapcsolna a szalag egyáltalán, ha az első pixel nem értelmezi a logikai 1 szintet.

Ha megváltoztatod a deklarált pixelek számát és a jelenség követi e változást (10 pixelnél a 11. zöld, 20 pixelnél a 21., stb.), akkor ez 100% szemantikai hiba. Vagyis a szoftver szar. :)
Ha nem te balfaszkodod el (for ciklusban a pixelek számáig számolunk, nem "LEDmennyiseg+1"-ig), akkor próbálj ki egy másik könyvtárat! Vhol megcsúszik a puffer, ezért szar az első és utolsó pixel színe. Vagy rossz színsorrend szerint definiáltad a szalagot (GRB, RGB, stb.). Mondjuk ezt kétlem, ettől még nem csúszna el a puffer a következő pixelre, szóval még mindig tartom, h cserélj könyvtárat!

A táp - mint írtam volt - nem szól bele a vezérlésbe. Ha bekapcsol a szalag és max fényerőn se brownout-ol, akkor a táp elégséges. Ellenben erre a feladatra vagy 220/5V-os dugasztápokat használunk (a kínai tápokból kerüljük ezeket), vagy DC-DC konvertereket.
Ezek jó hatásfokkal rendelkeznek és nem kell megerőszakolni őket 28W elfűtésével úgy mint egy fesz. stab. IC-t.

[ Szerkesztve ]

(#8243) Janos250 válasza Xpod (#8240) üzenetére


Janos250
őstag

Megnéztem egy 60 pixeles szalag áramfelvételét 5V-os, és 3.3V-os táp esetén, maximális (255,255,255) fényerőnél

Nincs egy Li akkud pl. 18650 amivel ki tudod próbálni? Vagy egy laposelemed? Kisebb feszültséggel is stabilan működnek, csak kisebb a fényerejük. Szintillesztőt én sem használok, közvetlenül a led bemenetet kötöm az ESP32 lábára. Vagy próbáld ki, hogy ugyanarról az USB tápról hajtod meg a szalagot is, és az ESP-t is. Azaz feltöltöd a gépről, majd utána lecsatlakoztatod a gépről. Az az érintéses probléma nekem nagyon valamiféle "kóbor" delejre utal.

[ Szerkesztve ]

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

(#8244) Janos250 válasza Teasüti (#8242) üzenetére


Janos250
őstag

Ha beteszem az interrupt tiltást, akkor nekem tökéletesen működik 60 ledes szalagról is. ha (0,0,64)-re állítom, akkor 200 mA az áramfelvétel 5V esetén, 130 mA 3.3V esetén.
Semmiféle hiba nem jelentkezik, stabil.

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

(#8245) Xpod


Xpod
addikt

Nincs akkum. Van egy usb töltőm amit tudok erre használni és van egy 12v tápom, amihez csináltam egy stab IC-vel egy átakítót. Elvileg van egy nem használt atx-es tápom, azt még előkereshetem.

Értem, hogy mindenki a kódra gyanakszik. De ha ugyanaz a kód, ugyanazon a ledszalagon, ugyanazon a bekötésen, az usb táppal jó, az általam készített táppal meg nem, akkor ezt mivel magyarázzátok?

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

(#8246) Teasüti válasza Xpod (#8245) üzenetére


Teasüti
nagyúr

Meg kéne mérned a feszültséget terhelés közben mindkét táppal.

(#8247) Teasüti


Teasüti
nagyúr

Ismer vki arra módot, hogy Android-ról töltsünk fel ESP32-re programot?

(#8248) Aryes válasza Teasüti (#8247) üzenetére


Aryes
nagyúr

Esp8266-nál is volt már lehetőség OTA firmware frissítésre. Gondolom akkor esp32-nél is lehet rá mód. Hogy ehhez kell-e Android, azt pontosan nem tudom.

[ Szerkesztve ]

(#8249) Teasüti válasza Aryes (#8248) üzenetére


Teasüti
nagyúr

Egy gond van, nem használok wifi-t, csak BT-t.
Mennyi rom-ot foglal a wifi és OTA így együtt?
Illetve tud működni ugyanarról az antennáról a két kapcsolat?

(#8250) asuspc96


asuspc96
senior tag

Helló,

Valaki foglalkozik/foglalkozott már robotkarok vezérlésével ?
A dolog lényegi része röviden:
Nem nagyon nehéz cuccot kb 500 gramm, kellene mozgatni A-ból B-be, és ezt reggeltől estig.

Nézegetem már egy ideje ezt a területet, de nem tudtam még elhatározni magam még egyik robotkar mellett sem.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.