- Samsung Galaxy A54 - türelemjáték
- A Xiaomié lehet a Snapdragon 8 Gen 4-es elsőség
- Milyen okostelefont vegyek?
- Huawei P30 Pro - teletalálat
- iPhone topik
- Xiaomi 14 - párátlanul jó lehetne
- Motorola Edge 30 Neo - wake up, Jr...
- Honor 90 - modellalkat
- Honor Magic5 Pro - kamerák bűvöletében
- Motorola Edge 40 - jó bőr
Hirdetés
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
Már nem az Apple a kínai mobilpiac kedvence
it Az IDC szerint az Apple 6,6 százalékkal kevesebb mobilt tudott leszállítani Kínában az első negyedév során – a Counterpoint 19 százalékos visszaesést említ.
-
Megérkezett a Razer új csúcsegere, a Viper V3 Pro
ph A némileg könnyebbé varázsolt termék a Viper V3 HyperSpeed formáját örökölte, ergo hosszabb, keskenyebb és picit magasabb, mint a V2 Pro.
-
Mobilarena
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.
Új hozzászólás Aktív témák
-
Vladi
nagyúr
Okés, de ahogy nézem, long helyett nyugodtan használhatok int-et, mert 1000-nél sose lesz egyik értékem se nagyobb.
Amúgy köszi srácok, hogy átmasszírozzátok a kódomat, mindjárt jövök a véglegesnek szánt verzióval.
mod:
Meg szerintem unsigned is felesleges.
(#9901) aryes:
Nahát, ejnye.
[ Szerkesztve ]
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
Vladi
nagyúr
Nokéremszépen, ez a javított:
/*
Ez a vágási ciklus. Az enkóder gyári értéke 100/fordulat, 200-ra lett gyorsítva áttéttel, 8 rpm-ről 16 rpm-re.
Egy lap kb 16 secundum, azaz 26-27 impulzus/sec. 1600 imp/min. 420-430 impulzus között lesz a szabvány 390 mm
0.91 mm/imp ezzel lehet számolni. 420 mm-es lap így kb: 460 imp.
*/
volatile const int enko = 3; //2-as pinbe van enkóder érzékelője, OPTÓN A JOBB OLDALI!!!, vezetékelésnél összekevertem, ezért a kódban cseréltem fel, ezért van itt keveredés!
volatile const int piros = 2; //3-es pinbe dugva az azonnali vágó kapcsoló
volatile const int rele = 5; // a kapcsoló relé.
volatile const int alapled = 13;
const int pulzus = 425; // EZ A LENYEG!
const int releido = 300; // a relé nyitás-zárás ideje, mechanikusnál adatlap írja le, minimum 400 milisec, de inkább jóval több, 0.8-1 vagy mégtöbb sec!
volatile int currentpulse;
volatile bool voros;
void setup() {
pinMode(piros, INPUT); // a 2-es a piros az bemenet lett
pinMode(enko, INPUT); // a kettes hurkázó is bemenet
pinMode(rele, OUTPUT); // relé a 6-on kimenet
pinMode(alapled, OUTPUT);
//Serial.begin(9600); //debug céllal került bele
attachInterrupt(1, szamlalo, CHANGE); //3-as az enkóder, megszakítást állítottam rá
attachInterrupt(0, nyissz, FALLING);//2-es a piros, azon is megszíktás van
//digitalWrite(alapled, LOW); // franc tudja miért, de HIGH-on tartja a ledet végig. Ártani nem árt, de inkább lekapcsolom.
}
void loop(){
if(currentpulse >= pulzus || voros) {
digitalWrite(rele, HIGH);
delay(releido);
digitalWrite(rele, LOW);
//Serial.println("Vágtam, kövi.");
voros = false;
currentpulse = 0;
}
}
void szamlalo(){
currentpulse++;
}
void nyissz(){
voros = true;
}Vázlat használ 1314 bájt (4%) -ot a program tárhelyből. A maximum 32256 bájt.
A globális változók 24 bájt (1%)-ot használnak a dinamikus memóriából, 2024 bájtot hagyva a helyi változóknak. A maximum 2048 bájt.[ Szerkesztve ]
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
Vladi
nagyúr
Uraim! Ez így se működik.
Visszatettem a korábbi - idő alapú kódot. Arra ha ráengedem az encodert, semmit se csinál, csak a megszakításokat dobálja be - 25-öt másodpercenként - akkor azzal a kóddal is megbénul a rendszer, egyszerűen a sok megszakítástól nem fut le a loop többi része.
Délután nekiállok és leprogramozom úgy, hogy megszakításon kívül számláljon. Valami while számlál a megvan akkor do vágás, ilyen elven.
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
Gergosz2
veterán
Nem tudom mi az applikáció de a négyszögjeles enkódert álatában így szokás feldolgozni:
Kis fordulaton a felfutó élek közötti időt szoktuk mérni, abból lehet megsaccolni a fordulatszámot. Gondolom egy Atmega328p-t használsz, ami ugyan nem cél hadrver, de megoldható vele a dolog. Ha nem fontos a forgásirány megállípátsa, akkor érdemes össze XOR-olni a két csatornát, így négyszeres freqis jelet kapsz.
Utána az interruptban a millis vagy micros aktuális értékét is lemented. Ha ez megvan akkor tudod két felfutó él között mennyi idő is telt el, amiből visszatudod számolni a szögsebességet.Nagyobb fordulaton meg a számolod a felfutó éleket és deltaT időkööznként megnézed a változást. Itt 1-2 ms-es kiolvasás, feldolgozás bőven jó lesz.
[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
-
Vladi
nagyúr
-
Gergosz2
veterán
Nálam 10-20 rpm a tartomány nagyságrendileg.
Ezen a fordulaton üzemelsz? Milyen motort használsz?
Amúgy egy 1 uF kerámia kondenzátornak mennyi a feltöltődés és kisülés ideje nagyságrendileg?
Attól függ mekkor ellenállást lát. Ha ez megvan, legyen R, akkor az időállandó R*C-lesz. Nagyjából 5 időállandó alatt beáll a stacioner állapot, így ebben az esetben ez 5RC lesz.
[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
-
vargalex
félisten
Szia!
Ha a piros gombot megnyomod, utána sem megy az enkóder alapú vágás? Amiért kérdezem:
- nincs inicializálva a currentpulse változó (és a voros sem egyébkén), így akár az is lehet, hogy annak értéke a kezdéskor (bár nem olvastam utána, hogy arduinoban van-e automatikus változó inicializálás, így csak a C-ből indulok ki) valami kicsi negatív szám, így jó későn fogja elérni a pulzus értékét.
- én a currentpulse változó értékét a loop if-jének legelején nulláznám, ugyanis így elvesztesz 300 ms-nyi interrupt-ot (ugye addig az interrupt tovább növelgeti az értéket, de utána nullázod - persze lehet, hogy az a cél, hogy a vágás vége és a következő vágás eleje közötti idő legyen állandó).Egyébként nézted a volatile leírásában az "int or long volatiles" bekezdést? Ugye a 8 bites olvasás pont okozhat gondokat.
Alex
-
Vladi
nagyúr
Köszi srácok a számításokat.
Vaggy mostmár ott tartok, hogy veszek egy impulzus számlálót. 30-40K-ból kijön és pont ezt csinálja.
Nem jellemző rám ez, de most inkább feladom.De legalább az alkatrészek 90%-át meg a megszerzett tudást is fel tudom használni később.
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
ecaddsell
aktív tag
Ne viccelj ilyen könnyen feladod?
Pl. megnézted, hogy kompatibilis a jeladód szintje a kontrollerével? Az, hogy a jeladón villog a LED semmit sem mond arra vonatkozólag, hogy tényleg megtörténik-e az interrupt.
Pl. a loop-ból kiírathatnád a számlálót ha az változik. stb.Emlékszem rád a Fedorás topikból, olyan dolgokban tudtál segíteni nekem (meg kb. mindenki másnak) amit már rég feladtam(unk), itt meg hozzá sem kezdtél a debughoz... Ki kell íratni dolgokat a soros porton.
ESP32-vel még az interruptból is kiírattam, pedig elvileg azt nem szabad (lehet itt nem is menne) mert mi történhet alapon, max újra fel kell töltenem a módosított kódot.
Ha nincs soros portra lehetőség akkor rá teszel valamelyik pinre egy ellenálláson keresztül 1 LED-et amit ki be kapcsol az interrupt stb.Kevesebből mint az általad írt összeg tervezek 10digit/s-es frekvenciamérőt csinálni, Arduino környezetben ebből a pénzből már egy egész hobbi labort lehet építeni. Persze, ha eléggé motivált vagy...
-
Vladi
nagyúr
válasz ecaddsell #9912 üzenetére
Köszi a biztatást.
Sajna hardveres gondjaim is akadtak közben, egyszerűen nem lesz időm már megcsinálni.
Úgyhogy ráfordulok egy másik projetkre, ez meg kap egy kész megoldást.Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
XP NINJA
őstag
Sziasztok!
Nincs tapasztalatom még Arduinoval, de szerencsére programozni tudok, és alacsony szintű nyelvekkel is találkoztam már. Kitaláltam egy projetket, amihez szeretném segítségeteket kérni, hogy mikre lesz szükségem hardver részről.
A rendszer egy autóban lenne, 4 dolgot kell mérjen, és megjelenítsen egy kijelzőn.
- Turbónyomás -1 és 2 bar között
- Olajnyomás 0-10 bar között
- Olajhő kb -40 és 150 között
- Kipufogó hő -40 és 1200 közöttLinkeket szivesen fogadnék, alap Arduinom sincsen, és kijelzőből is gondolom valami beváltat lenne érdemes Méretben kb 4-5"-ra gondoltam. Hőmérőket még találtam alin, de a nyomásmérőkkel már gondban vagyok. pl MPXH6400AP
[ Szerkesztve ]
-
Janos250
őstag
válasz XP NINJA #9914 üzenetére
Én nyomásmérőt ebből a szériából használok. Van többféle nyomásra.
https://www.ebay.com/itm/G1-4-DC5V-0-1-2-MPa-Pressure-Transducer-Sensor-Oil-Fuel-Diesel-Gas-Water-Air-xi/192587592681?epid=21012861556&hash=item2cd71d73e9:g:yQEAAOSwhfdaVtkf:rk:10:pf:0Kijelzőnek meg mobiltelefont (WEB lap).
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz XP NINJA #9914 üzenetére
Arduino választás:
A korszerűbbek 3.3 voltosak (STM32, ESP), de sok szenzor meg 5 voltos. A régi lapok 5 voltosak, de SOKKAL kevésbé hatékonyak. Én korábban mindenkinek az STM32-t ajánlottam, az ESP32 megjelenése, és a támogatás felfutása óta meg ESP32-t. De lehet régit is használni. Pap/papné.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
XP NINJA
őstag
válasz Janos250 #9916 üzenetére
Amit linkeltél 5Voltos, nem is találtam 3.3-ast. Ahogy olvasgatok akkor ahoz hogy egy ESP32-vel használhassam, kell egy Logic Level Converter?
-
Janos250
őstag
-
fpeter84
senior tag
válasz XP NINJA #9914 üzenetére
LCD ügyben első körben én is a mobilra/tabletre alapozást ajánlom több oknál fogva:
- az ilyen arduino shield, meg arduinoval meghajtható LCD-k gyakran elég silány képet adnak... szürkén világító fekete, gyenge betekintési szög, sápadt színek... Most éppen sikerült vennem egy olyan 3.2 colosat aminek kifejezetten jó a képe, de zsákbamacska. Persze a kínai eladók hirdetésében még a 320x240 is UltraHD mega-giga minőség, de csak akkor tudod meg hogy mit vettél amikor bekapcsolod...
- az ilyen natív framebuffer nélküli mikrokontrollerrel LCD meghajtás elég lassú - még a leggyorsabb eljárások is - így elég nehézkes / lehetetlen gyorsan változó tartalmat, látványosabb grafikát kialakítani... Attól függően hogy mi az elképzelésed, érdemes lehet akár egy Pi Zero-n is elgondolkodni - azzal nem probléma a grafika...
Én egy fedkomp/pár adat megjelenítését végző kütyün dolgozgatok mostanában - elsősorban a VAG családos motorvezérlőből nyerem az adatokat KW1281 protokollon keresztül, de úgy tűnik kénytelen leszek pár adatot közvezlenül mérni én is, mert a lekérdezés sebessége nagyon korlátozott és van ahol kritikus a sebesség...
-
adatfalo
senior tag
Sziasztok!
MCP23S17-vel van problémám
Írtam/összeollóztam egy programot, ahol az IC A és B oldal lábaira gombot kötöttem, az A oldal működik is, viszont a B oldalon folyamatosan az 11111111 értéket kapom (így az A oldalon megnyomott gomb értékét is elég nehéz kihalászni a rengeteg adatból). Vajon mit kéne átírnom a programba, hogy jól működjön?
Bekötésre ezt használtam: képA kód pedig itt található: LINK
Ezer hála és köszönet, ha valaki tud segíteni!
www.adatfalodesign.hu
-
Vladi
nagyúr
Nah csak nekiláttam a debugolásnak. Ott tartok, hogy az opto-izolátor kártyámon átjön a jel, megszakításból tudom növelni a számlálót, ezt ki is írja sorosra arduino.
Viszont nagyon sok a jel és nagyon hullámzik a mennyisége. Ilyen 150 és 1500 között ugrál a jelsűrűség másodpercenként.
Ez prell lenne?
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
Vladi
nagyúr
link. Hm... még viszonylag jókor szólnak.
Vagyis tutira iktassam ki az 1uF-es prellmentesítő kondit és álljak át szoftveres prell mentesítésre. 1 sec alatt számításaim szerint 50 change jel lesz, az 20 ms. Ez alá kell a delay. Vagy valami bütykölés interrupt alatt, de akkor már tényleg kihozom loopba a számolást.
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
ecaddsell
aktív tag
Na akkor rotary encoder prell mentesítés még egyszer.
Az alapötlet innen:
https://www.best-microcontroller-projects.com/rotary-encoder.html
Én KY-040-el használom (sokat), hibázni még nem láttam. A logika megszakításban megy, a lekérdezés poll.
A speed control arról szól, hogy ha gyorsabban tekered akkor nagy ugrásokkal megy. Frekvencia beállításnál igen hasznos, máshol ahol fontos, hogy az elmozdulással legyen arányos az érték meg nem kell (ki kell kapcsolni).
Mivel ez is olyan téma, hogy jó megoldást még nem láttam (ezért voltam kénytelen egyet írni), hibásat annál többet, érdemes eltenni a linket.
Kommentelni akkor szoktam kódot, ha nagyon kell. Sorry./*
This code is free software; you can redistribute it and/or
modify it under the terms of the CC BY-NC-SA 3.0 license.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND...
*/
#define ROTE_CLK GPIO_NUM_xx
#define ROTE_DT GPIO_NUM_xx
#define ROTE_SPCTM 50000 // speed control time limit, not defined no speedctrl
volatile int32_t rotval = 0;
void IRAM_ATTR isrrot() {
volatile static uint8_t pinsta = 0x3, cwi = 0, ccwi = 0;
volatile static uint8_t cwexp[] = {0xD, 0x4, 0x2, 0xB};
volatile static uint8_t ccwexp[] = {0xE, 0x8, 0x1, 0x7};
int32_t rvchg;
#ifdef ROTE_SPCTM
volatile static uint32_t tc = 0, tm = 0;
uint32_t ctm, td;
#endif
pinsta = (pinsta << 2) & 0xf;
if (digitalRead(ROTE_DT)) pinsta |= 0x2;
if (digitalRead(ROTE_CLK)) pinsta |= 0x1;
if (pinsta == cwexp[cwi]) cwi++;
else if (pinsta == ccwexp[ccwi]) ccwi++;
if (cwi == 0x4 || ccwi == 0x4)
{
if (cwi == 4) rvchg = 1;
else rvchg = -1;
pinsta = 0x3; cwi = 0; ccwi = 0;
#ifdef ROTE_SPCTM
ctm = micros();
td = ctm - tm;
tm = ctm;
if (td < ROTE_SPCTM / 2) rvchg *= 7;
else if (td < (ROTE_SPCTM * 2) / 3) rvchg *= 4;
else if (td < ROTE_SPCTM) rvchg *= 2;
#endif
rotval += rvchg;
}
} // isrrot
int16_t getrotv() {
static int32_t lval = 0;
int32_t cval = rotval;
int16_t rotc = 0;
if (lval != cval) {
rotc = cval - lval;
lval = cval;
}
return (rotc);
} // getrotv
void inirotein(gpio_num_t clk, gpio_num_t dt) {
pinMode(clk, INPUT);
pinMode(dt, INPUT);
attachInterrupt(digitalPinToInterrupt(clk), isrrot, CHANGE);
attachInterrupt(digitalPinToInterrupt(dt), isrrot, CHANGE);
} // inirotein
...
inirotein(ROTE_CLK, ROTE_DT);
... -
Vladi
nagyúr
válasz ecaddsell #9926 üzenetére
Köszi újra a segítő szándékot, mint láthatod én maga vagyok a "nagyon kell." Sorry.
Az én cuccom nem rotary encoder, hanem incremental encoder. link Egy nagyságrenddel több jelet ad ki magából, mint egy sima forgó kapcsoló. (rotary encoder)
Nagyságrendileg 50 jelet másodpercenként. Ez 20 ms hosszú jelet jelent. Ebbe még prellnek és prell mentesítésnek is bele kell férnie.
Nade basszus! A kódodból alig értek valamit...
Most az lesz, hogy kiveszem a hardveres prell mentesítést (csípőfogó ) aztán alkalmazok szoftverest.
Ha loopban számlálok, akkor simán delay és kész, interruptban kicsit macerásabb, de találtam arra is példát.Csak azt kell kikísérletezni, hogy kb hány milisec legyen. Majd próbálgatom 1-20 között, ahhol stabil az érték, ott a nyerő.
Egyébként tipikusan mennyi lehet ennek a konkrét cuccnak a prellegéi ideje? 1-2 ms?
másik: delay helyett ezt rakhatom az interrupt voidomba:
if((long)(micros() - previousMicros) >= dbenk * 1000){
currentpulse++;
Interrupt();
previousMicros = micros();Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
nagyúr
Ebben ezek szerint van elektronika? Akkor elvileg megoldja magának odabent a pergésmentesítést. Mondjuk az árából ítélve akár még kávét is főzhetne...
-
Vladi
nagyúr
Azt hittem, hogy kell, mert nagyon durva értékeket olvasott ki az arduino. 1500 jel/másodperc. Ehhez 70-80 rpm kéne, de van 16.
(#9929) aryes
Ez kb a lebolcsóbb volt, ami alkalmas a feladatra.
Megnéztem az adatlapját, pont prellről nem írnak.
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
ecaddsell
aktív tag
Ja bocs, akkor amit írtam nem lesz jó (de mintha valami rotary encoder leírást linkeltél).
Ha valami pulzusos jeladó az sem nehezebb.Ugyanúgy minden élre kell interrupt és mérni kell a legutóbbi interrupt óta eltelt időt.
Két összegző kell (static volatile) ami minkét állapotban eltöltött időt összegi. Ha pulzus ideje meghaladja az elvárt időhossz mondjuk kétharmadát (vagy 3/4-ét ez jelalakból vagy próbával) akkor elfogadjuk, léptetjük a számlálót és mindkét idő összegző nullázva.Szóval amit lent írtál még így nem elég.
-
ecaddsell
aktív tag
válasz ecaddsell #9932 üzenetére
Szóval ha fix szélességű impulzusokat ad akkor valami ilyesmi kellene (tudni kellene, hogy HIGH, vagy LOW a pulzus értéke):
#define MINPLENGTH 15000
void szamlalo(){
volatile static uint32_t thi = 0, tlo=0, tm = 0;
uint32_t td, ctm = micros();
td = ctm - tm;
tm = ctm;
if (digitalRead(PULSE_ENC)) tlo += td;
else thi += td;
if(thi > MINPLENGTH){
thi = tlo = 0;
currentpulse++;
}
else if (tlo > MINPLENGTH) thi = tlo = 0;
}Ha nem, akkor a túl gyors változásokat figyelmen kívül kellene hagyni (olyan kód kellene).
Szóval látszik jó lenne tudni milyen annak a jeladónak a jele, kisebb meg nagyobb forgási sebességnél.
De innen már vsz. te is meg tudod oldani.
Arra figyelni kell a kódolásnál, hogy ha LOW értéket olvasunk a megszakításban akkor az előző időszak HIGH volt... -
Janos250
őstag
Ezért nehéz az élet enélkül:
https://www.ebay.com/itm/24MHz-8CH-USB-Logic-Analyzer-24MHz-8-Channel-Compatible-to-Saleae-ARM-FPGA-M100/272828061041?hash=item3f85d1d571:g:9rgAAOSwFjlZqCfv:rk:5:pf:0Egy ilyen 1800 forintos analizátort kötsz a kimenetre, és máris nagy felbontásban, nagy pontossággal, vissza tudod nézni PC-n hogy mit adott ki a szerkentyű. Én már többször javasoltam, hogy ne sajnáljátok rá azt az 1800 forintot. Nekem van ez is, meg a 100 megás is, de az esetek 99 százalékában elég ez a kisebb.
Persze még könnyebb lenne az élet egy jobb digitális tárolós szkóppal, de az százezer fölött kezdődik, aki nem mindennap használja, annak nem éri meg. Pedig pergés (prell) ügyben az az igazi.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nagyúr
"Ez a vágási ciklus. Az enkóder gyári értéke 100/fordulat, 200-ra lett gyorsítva áttéttel, 8 rpm-ről 16 rpm-re.
Egy lap kb 16 secundum, azaz 26-27 impulzus/sec. 1600 imp/min. 420-430 impulzus között lesz a szabvány 390 mm
0.91 mm/imp ezzel lehet számolni. 420 mm-es lap így kb: 460 imp."Ezt miért bonyolítottad ennyire el? Időből, sebességből saccolva számolod a távolságot. Miért nem a gép menetsűrűségét szorzod fel az encoder felbontásával? Akkor a "420-430 között lesz a szabvány" helyett tizedmm-re pontos adattal tudnál dolgozni.
-
Vladi
nagyúr
3 csatornája van összesen, 2 rövid és 1 hosszú eltolásba. Nem tom jobban elmagyarázni, az adatlapjában benne van. EGészen komplex módon is tudod mérni a dolgokat.
100 osztású, tehát ilyen 3.6 fokonkélnt egy érzékelő. Most ebből hogy jön ki mondjuk 1/2 fordulaton 1500 jel?
Azért kell az egész bonyolítás mer a nyüves gépen nincs 1 db állandó fordulatú tengely.
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
Johnny_vT
senior tag
Sziasztok!
Hobbiból építettem magamnak egy FPV drónt és közben többször felmerült bennem a gondolat, hogy a vadiúj barkács és programozás ismereteimet más projektekben is felhasználnám. Főleg mivel az Arduino-k aprópénzért megvásárolhatók.
Ötletem viszont nincs. Van olyan weboldal vagy YouTube csatorna, ahonnan ihletet meríthetnék? Nektek mi volt az első projektetek?
- És te hogy neveznél egy baromi gyors, apró, kék izét...?
-
ecaddsell
aktív tag
válasz Johnny_vT #9942 üzenetére
Nekem CO2 szenzor (MH-Z14A), ami a mai napig megy és napi szinten használjuk. Nem mellékesen az egyetlen amit rendesen bedobozoltam (mini OLED kijelzőre írogatja az aktuális értéket meg a trendet).
Viszont mivel elsődleges, hogy ne veszítsd el a motiváltságot, lehet maradnod kellene a drón témában, amihez talán kevesebbeknek van itt ötlete (viszont a súly miatt kezdésnek húzós lehet mert paneleket építeni 0603-as meg 100 lábú CPLD alkatrészekből mint pl. a XC2C128 teljesen más mint evaluation bord-okból valamit összehuzalozni). Szóval nem árt a realitások talaján maradni, hogy ne legyen kudarc.
-
nagyúr
válasz Johnny_vT #9942 üzenetére
Nekem smart car, mega board, néhány mikrokapcsoló, IR reflektív- és résopto encoder tárcsával a motorokra, UH szenzor, Bluetooth a vezérléshez.
Második projekt egy rfid kártyaolvasó Monopoly és Gazdálkodj okosan társasjátékokhoz.
Utoljára egy eredeti C64 billentyűzethez csináltam custom usb illesztőt pro micro-ból egy Raspberry Pi-hez (Retropie emulátort építettem egy eredeti C64 breadbox házból).[ Szerkesztve ]
-
fpeter84
senior tag
válasz Johnny_vT #9942 üzenetére
arduino projects, top 10 arduino project és hasonló kifejezésekre keresgélve rengeteg ötlettel találkozhatsz, valamint unalmas óráimban van hogy olyan oldalak arduino kiegészítő listáit nézegetem mint a banggood, dx, gearbest - utána persze nem feltétlenül ott veszem meg ha valami felkelti az érdeklődésemet, de ötlet gyűjtésre jó...
-
JozsBiker
aktív tag
válasz Johnny_vT #9942 üzenetére
Nekem az Instructables az egyik kedvencem. Gondolom egyértelmű de azért leírom: a keresőjébe beírod az arduino -t, aztán már csak győzd idővel :-) Egyébként gratula a drónhoz, és külön le a kalappal a leírás miatt!
[ Szerkesztve ]
-
kbhuinfo
tag
Tud valaki segíteni ESP32 SPIFFS használatában?
Van egy szint, ami felett nem mész egy bizonyos szint alá...
-
ecaddsell
aktív tag
Ugyan nem mikrokontroller, de nem találtam jobb topikot, és talán itt van a legjobb esélyem, hogy választ kapjak.
Szóval van egy VHDL kód amit nem teljesen értek aminek az oka (azon felül, hogy ebben a témában nem vagyok jó) az, hogy ugyanahhoz a jelhez több értékadás történik a processen (folyamaton) belül.Egyszerűsítve:
process(sck,index)
begin
if RISING_EDGE(sck) then
index <= index + 1;
end if;
if clear='1' then
index <= "1111";
end if;
end process;Az első if az ugye triviális, az órajel felfutó élére növeli az indexet (ami egyébként a teljes kódban sehol máshol nincs módosítva). Viszont a másik if-ben ugyanahhoz a jelhez van még 1 értékadás. Nem mellékesen a process érzékenységi listáján is ott van az index.
A kérdés az, hogy mi lesz az index értéke, ha a clear input be van állítva?Tippem szerint "1111". A miértre is fel tudok állítani valami teóriát (a folyamat újra indul az index változása miatt ahol már csak a második if fut), de szívesen olvasnám valakinek a véleményét aki jobban ott van ebben a témában.
Bónusz kérdés: Jól értem-e, hogy ha van egy másik folyamat aminek az érzékenységi listáján csak az index van akkor ha a clear értéke be van állítva akkor az nem fog elindulni?