Új hozzászólás Aktív témák
-
KGellért
Műholdas
Puff... Nem akarják ideadni a CanSat-et.
Elég érdekes, hgy én felelek a prgramért mégse hagyják hogy csináljam. Úgy néz ki, hogy be kell érjem az itthoni teszt egységgel és ki kell hoznom belőle mindent amit tudok... Legalábbis amíg a dobozt meg nem csinálják a többiek.
Amúgy tegnap felszereltem a proszenzort, holnap írok róla a blogunkra.
-
Semmi előrelépés a rádióval?
-
Tigerclaw
nagyúr
Szerintem sem kell betenni azt a két időzítést. Az a két szenzor gondolom passzív jellegű és folyamatosan rajta van a kimenetükön a mért értékkel arányos feszültség. A két analóg bemenet talán szintén kiolvasható egymástól függetlenül. A kommunikáció miatt úgyis várni kell valamennyit és oda betetted az 1000ms-os várakozást, vagyis két mérés kiolvasása között lesz 1 sec.
-
Megnéztem a MPX4115A adatlapját. Erre a mondatra utaltál: "Warm-up Time is defined as the time required for the product to meet the specified output voltage after the Pressure has been stabilized". Nálatok a nyomás soha nem fog stabilizálódni(legfeljebb a földön), mert egyfolytában változik, ahogy süllyed a doboz, szóval ezért kár várni, főleg 2 egymástól független mérés közt. Meg aztán ennek a késleltetésnek csak akkor lenne értelme, ha 20 milliszekundumonként ki tudnád olvasni, de egy kiolvasás után több, mint 1s is eltelik a következőig. A hőm. szenzor pedig másik egység, egy sima termisztor. Az én értelmezésemben mindkét szenzor kimenetén folyamatosan jelen van a mért értéknek megfelelő feszültség érték.
A porszenzor kezelése bonyolultabbnak tűnik. Viszont, a miatt inkább indokolt lehet a mérés késleltetése. Mikroszekundum pontossággal kell időzíteni a LED kapcsolását és a kiolvasást.
Ha magadtól szeretnéd kitalálni, akkor ne nézd meg a linket. Az szenzor nevére rákeresve találtam egy érthetőbb leírást, képpel a beépítésről és példakóddal.Az én ötletem annyi lenne, hogy ha van még szabad digitalin a lapon, akkor arra egy kapcsolót kéne kötni, ami érzékeli az ernyő nyílást vagy azt amikor eléri a holtpontot a doboz. Ha nekem kéne ezt megcsinálni, akkor az elküldött üzenetekbe beraknék egy timestampet, ami a program indulásától eltelt ms érétéke lenne. A holtpont érzékelő változására elküldeném a hozzátartozó timestampet és azt használnám 0 időpillanatnak. Onnantól kezdve ms pontossággal lehetne tudni a mérés idejét. És másodpercenként legalább 3-at mérnék.
Hát igen, amíg a nem megy a rádió, addig ezek nem sokat érnek.
Leszögezném, hogy se az elektronika, se a programozás nem szakmám, de valamennyit tanultam róluk, tehát, amit mondok az lehet teljesen rossz is, Kezeld fenntartással és győződjetek meg róla magatok is. Nem akarom elrontani a játékotokat, viszont nagyon tetszenek az ilyen versenyek.
-
KGellért
Műholdas
válasz
Tigerclaw #37 üzenetére
A LED bal oldalába van vezetve 5V, ha a jobb oldalát HIGH-ra állítod, akkor nem világít, mert jobbról is öt volt fog jönni, ha viszont LOW-on van, akkor az áram átfolyik a LED-en, tehát világít. Ilyen egyszerű és épp ezért használtam a definet, hogy ne keverjem össze, hogy mikor világít és mikor nem.
-
Tigerclaw
nagyúr
A #define használatának van valami direkt oka?
Ahogy látom közvetlenül használhatnád a HIGH és LOW paramétereket.
Ugyanott mintha fel lenne cserélve a megjegyzés és a off - high és on - low párosítás is kicsit ellentmond logikailag. Persze ezek nem okoznak hibát, csak fura. -
Vladi
nagyúr
Respekt és sok sikert.
Azért nem sok ilyen idős fiatal ilyen elszánt és érdeklődő a tudományok iránt.
-
KGellért
Műholdas
A szenzoroknak időre van szükségük, ahhoz, hogy a mérést rendesen el tudják végezni, ami kb. 20 milisec, az adatlapjuk alapján. Ha nem várok az analogRead() parancsok után,a kkor hibás értéket küldenek. (pl. az adott nyomsás szenzornak kell 1 milisec, hogy elkezdjen mérni a parancs kiadása(válaszidő) után és utána még kell 20 milisec hogy "bemelegedjen" és elvégezze a mérést pontosan). <<<< Ezt lehet, hogy rosszul értettem az adatlapok alapján, ha hülyeséget írok szóljatok...
Persze lehetne minimalizálni a program futási időt, de amíg nem sikerül működésre bírni, addig úgy gondoltam, hogy ezzel nem foglalkozom.
Minden ötlet érdekel és szívesen fogadom.
-
Arduinomra feltöltöttem a programod soros portos részét. A mérési értékek helyett növekvő számokat küldtem csak. Ilyen formában érkeztek a dolgok: "S123 456 789<CR>"
A két analogRead() közé miért kell késleltetés? Ez valami ajánlás?
Az másodpercenkénti mintavétel elég kevésnek tűnik, ha az alatt az idő alatt 8-10m-t is megtehet. Ha több adat lenne az esetleges kiugró értékeket ki lehetne szűrni.
Van kb +2 ötletem a CanSathoz, ha érdekel elmondom, de nem akarok nagyon beledumálni.
Amúgy nagyon klassz maga az arduino project, én egy RGB LED-es hangulat fény vackot akarok vele csinálni, csak nem szántam még rá az időt.
-
Tigerclaw
nagyúr
Hát igen, így már értem, hogy miért írtad, hogy elméletileg nem működik. Szerintem is várd meg, hogy te is tesztelhesd. Mindenképp te próbáld meg megírni a programot, hiszen ez egy nagyon érdekes projekt és fontos, hogy a saját munkád benne legyen.
Érdemes tesztelni a mérő és kommunikációs algoritmusokat külön. Pl. küldeni valami egyszerű szöveget a rádión keresztül, aztán valami konstanst vagy változót, aztán összetett dolgokat a pufferen keresztül.
Persze lehet hogy nincs is baja a programnak. Majd ha nálad lesz, kiderül.
-
KGellért
Műholdas
válasz
Tigerclaw #31 üzenetére
Az a bajom, hogy nincs nálam az egység, tehát anélkül írtam a programot és elküldtem az elektronikával foglalkozó emberünknek és annyit válaszolt, hogy nem működik. Azt hiszem nincs más választásom, mint rávenni, hogy fejezze ár be végre a por szenzorhoz szükséges átalakítót és itthon addig tesztelgetni, amíg el nem kezd működni...
Mellesleg az említett ember már megírta a teljes programot, de én is meg akarom tanulni, úgy hogy azt csak végső esetben akarom megnézni, amit ő írt.
-
buherton
őstag
Húha. Így elég meredek lesz megcsinálni, de az biztos, hogy ha sikerül, akkor borzasztó sokat fogsz tanulni!!
Mi is csináltunk a National Instruments pályázatára eszközt, amivel nem mellesleg 8.-ok lettünk a több mint százból. Jah és úgy hogy nem is működött, akkor még amikor leadtuk. Lényeg, hogy az általuk fejlesztett LabVIEW-ot nagyon megtanultam, és a kezdeti problémák legyőzése után simán tudtam programozni benne
.
-
KGellért
Műholdas
Azok az Analog1 és 2nek a rövidítései, és szerintem nem ott van a baj, mert külön külön működik a szenzor adatok beolvasása ilyen módon viszont gyakran egyben a program mégsem küldi rádión az adatokat. Valahol a radios részben kell lennie a hibának, de nem bírom felfogni, hogy mi az...
Mindenesetre kipróbálom amit mondtál, Köszönöm a javaslatot. :-)
-
Szerintem ez a hibás:
homerseklet = analogRead(__A2__);
delay(50);
nyomas = analogRead(__A1__);
delay(50);Nem vagyok valami Arduino pro, de a leírása alapján az analogRead() függvénynek int értéket kell átadni. A kódodban nem látom, hogy az A1, A2 definiálva lenne. Annak a portnak a számát kell megadni, amelyikre az érzékelő van kötve, pl.: 1.
-
agent_k
őstag
válasz
Tigerclaw #22 üzenetére
Egy fél évig esetleg. Aztán tanulhatja újra a C++.
Használható tudást kell adni a diákoknak, amivel pl ilyen feladatot is meg tudnak oldani amit a fentebb olvashatunk. Tudom, hogy miről beszélek, mert 3 évig tanultam valami olyasmit, amit a mai napig sem tudok mire használni. És ez csak 1 a sok közül.
-
Honkydoo
őstag
Szerintem jobb lett volna, ha egyből C-vel meg C++-al kezdjük. Most könnyebb lenne az életem.
Nem feltétlenül... Nem csak az számít egy nyelvben hogy milyen a szintaktika.
Pascalban is vannak objektumok, függvények ebben hasonlít a c++-ra.
Az hogy most egy parancsot másképp kell írni nem olyan nagy dolog. Ha programozással akarsz foglalkozni úgyis több különböző nyelvvel is fogsz találkozni. -
agent_k
őstag
Ne te szégyelld magad, hanem az iskola!
Pascalban programozni a 21században? Nee... Egy középiskola sem ad használható tudást... azonkívül a fősulikon is óriási a felesleges tevékenység, majd rájössz később. Tele töltelék tantárgyakkal, amiket soha nem fogsz használni. Ha magadtól rájössz, vagy megtanulsz valamit az lesz az igazi tudás.Ehhez a projecthez pedig sok sikert!
-
Tigerclaw
nagyúr
A gyorsulással kapcsolatban a felszállás okozta nagy G-n gondolkodtam, nem a lefelé úton. Ha a doboz zárt lesz, és a kilógó antennák, szenzorok bírják a vizet, akkor elég lesz valamilyen szilikonos ragasztóval tömíteni az átmenő furatokat. A szenzorokhoz csatlakozó forrasztásokat is hasonlóanlehet impregnálni. Ha várható a rövid úton páralecsapódás, biztos lehet kapni ellene valami lakkot az áramköri panel impreglálására. 1 km magasságig a külső nyomáscsökkenés talán nem okoz problémát ha légmentesen szigetelve lesz. Ha vízbe érkezhet, akkor gondolkozni kell, hogy lesz-e elég felhajtóerő a lebegêshez. Ha sós a víz, az persze segít ebben.
Az ernyő nyitást gondolom fogjátok tesztelni. Hogy kell összehajtogatni, és hasonlóak.
-
KGellért
Műholdas
Ez jó öltletnek hangzik, lehet, hogy megpróbálkozunk vele.
A csapatunkban senki nincs aki elektronikával/programozással foglalkozik, de az egyik csapattag édesapja viszont igen, úgyhogy az ilyesmit ő intézi nálunk. Neki köszönhetjük a cikkben látható tesztelő egységet is, valamint a rádióvevőnket.
Ilyenkor szégyenlem is magam, hogy ennyire tudatlanul belevágtam egy ilyesmibe. És idegesít is, hogy sok mindent nem értek(sajnos az említett édesapa szívesen megcsinálja az ilyesmit, de elmagyarázni már nem hajlandó...)
Erről jut eszembe, van egy programkódom, ami elméletileg nem működik. Aki ért az Arduinohoz, megkérem, hogy vessen rá egy pillantást, és mondja meg, hogy mi a baj? (A rádió konfigurálásának leírása az előbbi hsz-omban található CanSat bookban van leírva, annak alapján csináltam). Köszönöm előre is! (Persza a másodpercenkénti futással itt is baj van...)
#define off HIGH
#define on LOW
const char oszlopvalaszto = ' '; //Excelbe importalaskor oszlopvalaszto karakter
const int led = 8;
int sorsz = 1; // meres sorszama
int nyomas = 0;
int homerseklet = 0;
void setup()
{
Serial.begin(38400);
pinMode(led, OUTPUT);
// radio konfiguralas
delay(1000);
Serial.println("F8D535"); // 434.150 MHz
delay(500);
Serial.println("CBOLYAI"); // callsign
delay(200);
}
void loop()
{
homerseklet = analogRead(A2);
delay(50);
nyomas = analogRead(A1);
delay(50);
Serial.print("S"); // adatok bufferelesenek elkezdese
Serial.print(sorsz, DEC);
Serial.print(oszlopvalaszto);
Serial.print(homerseklet, DEC);
Serial.print(oszlopvalaszto);
Serial.println(nyomas, DEC); //adatok kuldese
digitalWrite(led, off); // set the LED off
delay(1000);
digitalWrite(led, on); // set the LED on
sorsz++;
} -
KGellért
Műholdas
válasz
Tigerclaw #14 üzenetére
Mivel én csak a programozás részért felelek igazából, ezért a az ejtőernyővel kapcsolatban nem sokat tudok. Végeztem pár számítást, melynek eredménye ez lett:
A számításokat egy magadott képlet alapján végeztem, melyek ebben a könyvben találhatóak
18-21 oldal) SkyDrive - The CanSat Book
Úgy számoltam, hogy a lehető legkisebb sebességgel essen, thát 8 m/s, majd a a kapott eredményt kerekítve visszaszámoltam és így kijött egy nagyjából 8,32 m/s-os sebsség.
A gyorsulásról sajnos semmit nem tudok, de minél egyenletesebb esést szeretnénk, tehát kevés gyorsulással, ezért az ejtőernyő húzó erejét egynelőnek vettem a CanSat súlyával.
A védelmemn mi is gondolkozunk, ám a legnagyobb bajt az jelenti, hogy a fellövő létesítmény egy szigeten van és ha nem vagyunk szerencsések, akkor a CanSat akár vízben is landolhat. Ez ellen mit lehet tenni? Sajnos a porszenzornak, hőm. szenzornak és antennának mindenképp ki kell állnia, ebből adódóan "lyukra van szükségük."
-
KGellért
Műholdas
Igazad van, köszönöm az észrevételt. Azt a programot tényleg csak szemléltetésképpen írtam, nem törekedtem pontosságra. A valódi programunk amúgy is csak pár számot fog elküldeni oszlopokba rendezve, semmi más szöveget. És ott már 38400 baud/s sebességgel fog működni az egység.
Sajnos abszolút kezdő vagyok az Arduinoban való programozás terén(és máshol is, mivel a suliban csak Pascalt tanulunk, abból is csak nagyon egyszerű dolgokat pl. egy dimenziós tömb rendezése stb.). Ebből adódóan fogalmam sincs, hogy hogyan kell timer-t beépíteni a programba(esetleg kell hozzá külön időmérő eszköz?), viszont értem, hogy mire is jó ez.
Valószínűleg azt fogjuk csinálni, hogy kiszámítunk egy közepes programlefutási időt és a végső delay-nek berakjuk a megmaradt milisec számot, így persze nem lesz biztosítva, hogy pontosan egy másodperc alatt fusson le, de máris pontosabb lesz, mint 1000 miliszekundum delay-el
-
datatomm
tag
Hajrá!
Egy emberként szurkolok. Remélem sikerül megoldani a problémát.
-
Shad0w
senior tag
Van a blogotok főoldalán egy kódrészlet a hőmérséklet mérésre. Elkezdtem számolgatni, kicsit hanyagul, figyelmen kívül hagytam a 16 MHz-es órajelet, azt, hogy az analóg mérést 16-szor kell elvégezni és átlagot vonni, valamint az if ágak számítását, csupán a soros portos írást számoltam végig (lévén az a leglassabb része a kódnak).
Namármost, legjobb esetben, amikor nincs változás kiírjátok a " nem valtozott." stringet, ami 15 karakter. Ez 9600 baud/s sebességgel ~0,016 másodpercig tart. Legrosszabb esetben ha a különbség legalább 10000 (5 karakter) akkor 26 karaktert írtok ki (" csokkent 10000 egyseggel."), ami ~0,027 másodperc. Ezzel még nem is lenne baj, de a kód végén vártok kerek egy másodpercet a következő mérésig és ezért ezek a számok összeadódnak, tehát két mérés között nem 1 másodperc fog eltelni. Ez két percre levetítve a legjobb esetben ~1,9, legrosszabb esetben ~3,3 másodperc, azaz 2-3 mérés kimarad. De ugye van még két másik fizikai mennyiség is amit mértek, feltételezve, hogy ugyanennyit írtok azokról is a kimaradt mérések száma elérheti a 10-et is ami már 10/120*100=8,3%-a a tervezett mérési darabszámnak.
A megoldás az lenne, ha timer-t használnátok a másodpercek mérésére, és ez a timer triggerelné a mérés sorozatot. Egyedül ezzel lehet biztosítani, hogy két mérés között 1 másodperc teljen el (feltéve, hogy egy mérés sorozat nem tart tovább 1 másodpercnél, de sztm nem fog
).
-
Tigerclaw
nagyúr
A rakétának várhatóan milyen lesz a gyorsulási görbéje? Az áramköröknek és a szenzoroknak, az elem(ek)-nek lesz valami rugalmas felfüggesztése a hirtelen sebesség-változás negatív hatásainak kiküszöbölésére? Kell szigetelni páralecsapódás ellen?
-
looser
addikt
Hú, vég :-) Azt hittem, újra jön a CatScan* :-))
(*sok évvel ezelőtti internet mém)
-
Galdius
csendes tag
jók ezek az Amegák én 128 at szoktam programozni mert ez már kicsi lett
aztpróbálom megtanulni hogy kell memoriába dolgozni (SD kártya)
-
buherton
őstag
Nem egyszerű a helyzet az biztos. Bármi is lesz azt mindenképp meg kellene játszani, hogy a hőmérőt olyan helyre tegyétek, ahol a legnagyobb huzat éri. Akár egy keresztül menő csőbe, vagy a doboz falán kívülre, ahol a legnagyobb szél éri, mert így sokkal hamarabb fog beállni.
Pt-100 ezzel azt is meg lehet játszani, hogy a doboz oldalára teszitek valamilyen fémes kötéssel, mert doboz aluja secc perc alatt felveszi a hőmérsékletet, és így a hő könnyebben átadódik. Viszont ehhez is meg a thermoelemhez is mérő híd kell, amit meg jól kell meghajtani, és a feszültséget is pontosan kell tudni rajta mérni. Mondjuk az utóbbihoz már adott egy 10 bites AD.
Pontosság: az adott műszer értékmutatása és a valós érték közötti eltérés.
Pl.: adott egy feszrefünk amelynek a valódi értéke 5,00 V. Adott egy teszem azt +-1%-os pontossági osztályú műszerem, amivel mérni szeretnék. Amikor a feszrefnek az értékét mérem akkor 4,95 V-tól 5,05 V-ig bármilyen értéket kaphatok, mivel a műszernek ekkora a pontossága. Vagyis jelen esetben kint van -10°C de a műszerem -11°C-t mutat, akkor +10%-os a pontosságom azaz a bizonytalanságom.
Csapatban van valakinek elektronikai tapasztalata/tanulmányi háttere, és programozói?
(#7) Blindmouse Fúú ki is ment a fejemből, hogy ott kell egy kád hideg víz az offsetek kigyepálásra. Viszont ha emellett döntötök, akkor sincs baj, mert már erre is kitaláltak egy egyszerűbb megoldást, hogy az offsetek kioltsák egymást.
-
KGellért
Műholdas
válasz
Blindmouse #7 üzenetére
A feladathoz az is hozzátartozik, hogy a lehető legkevesebb pénzt költsük.
-
KGellért
Műholdas
Sajnos ezzel tényleg bajunk van. Mivel az ereszkedés ideje 120 mp-re van korlátozva, valami olyasmire van szükségünk ami gyorsabban áll be a hőmérsékletnek megfelelő helyes feszültségre. Ami a képen látható (az alap csomag része) mindenképp szeretnénk lecserélni, de sajnos ehhez én nem értek. Ha van valami javaslatod, nagyon szívesen fogadnánk.
Előfordulhat, hogy Norvégiában fagy lesz a mérés ideje alatt (a versenyt Andenes-ben rendezik, amely a 70. északi szélességen található...) viszont az alap hőm. szenzor csak +5 Celsiusig mér pontosan. Ez is egy ok a cserére.
A pontosság alatt mit értessz?
-
buherton
őstag
-
Szép feladat, grat, szok sikert!
-
TomPh
csendes tag
Remélem ti nyertek!!! marha érdekes nekem nagyon tetszik a dolog...
-
F_Gergely
őstag
Minden elismerésem, és nagyon sok sikert kívánok!
-
KGellért
Műholdas
Ha kérdésetek van, nyugodtan tegyétek fel. Megpróbálok válaszolni mindenre, amire a tudásom kiterjed.
Új hozzászólás Aktív témák
- Sony MILC fényképezőgépcsalád
- Kerékpárosok, bringások ide!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- E-roller topik
- Teljes verziós játékok letöltése ingyen
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Melyik tápegységet vegyem?
- Xbox tulajok OFF topicja
- Battlefield 6
- Izmos, RTX-es NUC géppel jelentkezett az ASUS
- További aktív témák...
- Samsung Galaxy A34 5G 128GB Kártyafüggetlen 1 év Garanciával
- ÚJ Lenovo LOQ 15IRX9 - QHD 165Hz - i7-13650HX - 16GB - 1TB - RTX 4060 - Win11 - 3 év garancia - HUN
- Samsung Galaxy A50 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3093, 91% Akkumulátor
- Samsung 990Pro SSD 4TB
Állásajánlatok
Cég: FOTC
Város: Budapest