Fórum témák
» Több friss téma |
Ebben a topicban volt egy hozzászólás, ami ötletadónak jó lehet. Megkerestem: Bővebben: Link
Ebben a hozzászólásomban mutattam egy lehetőséget. Én nem használtam ki, de az alkalmazott OpenWRT wireless router vezeték nélküli elérést is lehetővé tesz.
Egy egyszerű bluetooth modullal megoldható a probléma, pl. HC-05. Processing-ben lehet egyszerű Androidos progit írni hozzá, pl: Bővebben: Link
Igaz, hogy Arduino, de nem sok különbség van és részletes a leírás. A bluetooth-nál viszont korlátozott a távolság! A hozzászólás módosítva: Jan 24, 2015
MSP 430-at szeretnék programozni fényképező vezérléséhez.
A záridőt szeretném vele vezérelni és ezt egy hagyományos távirányítóval vezérelni. Ha tudna valaki segíteni ebben hogy hogy tudnám Pythonban vagy C-ben ezt megoldani azt megköszönném
Köszönöm!
Úgy tűnik, hogy sms-ben fogom elküldeni az adatot.
Sziasztok! A menü problémát megoldottam (nem vérprofi, de működik és ez perpillanat elég).
Viszont maradt még gondom. Négy darab float változót kellene valamiképp menthetővé tennem. A környezet Energia. Az MspFlash-t néztem, de nem világos, hogy ezzel, hogy is tudnék változókat menteni-tölteni, hogy ki-be kapcsoláskor a beállított értékekkel "éledjen" a program. Keresgéltem, de erre nem találtam se példaprogramot, se valamiféle helpet. A hozzászólás módosítva: Feb 13, 2015
A példaprogram nem segít?
f0, f1, f2 és f3 a négy float változód.
(Nem próbáltam ki) Nyomatékosan javaslom, hogy az info segmentet mentsd el, mielőtt nekiállsz a flashbe írogatással játszani (mspdebug, help save_raw).
Köszönöm.
Sajnos nem teljes mértékben segített a példaprogram. (fogalmazhatok nyugodtan úgy, hogy kezdő vagyok MSP430 - Energia fronton.) A flash törlést értettem. Az írás szintaktikájából valamennyit, de az olvasás? Sajnos nem igazán találtam valamiféle helpet az MspFlash pontos szintaktikájából, és sajna az angolom is csak alapfokú. Remélem a te példáddal már okosabb leszek. Tudom, hogy nem várhatom el, hogy más oldja meg a problémáimat, de egy kis segítség mindig jól jön. A jövő héten délutános vagyok, megpróbálom értelmezni, majd kipróbálni az általad ajánlottat.
Igazából az a helyzet, hogy hiába magas szintű izé az Energia, a C-vel való intim ismeretséget egy idő után úgysem lehet megúszni (mint azt már te is tapasztalod ). A pointerek és a pointeraritmetika csak a kezdet... Az Energia esetén mondjuk nagy előny, hogy ott a forrása, kilesheted belőle, mit csinál a háttérben. Tényleg nagy előny.
Kitartás .
Bár csúsztam a silabizálással és értelmezéssel, de végre megtörtént. Programocskámba felhasználva tökéletesen működött. Köszönöm szépen a segítségedet!
Újabb Launchpad kártya jelent meg: MSP-EXP432P401R, melynek legfőbb érdekessége az új MSP432P401R mikrovezérlő. Az MSP432 család első tagja már 32 bites, 48 MHz-es ARM Cortex-M4F mikrovezérlő, 256 kB Flash, 64 kB RAM memóriával.
A hozzászólás módosítva: Márc 21, 2015
Sziasztok. Ismét itt vagyok. (piruló szmájli) Megint lenne egy problémám. MSP430G2553-at használva, Energia környezetben lehetséges-e az "analóg kimenetek" PWM frekvenciáját változtatni?
Arduinon találtam valamit regiszterek átírásával való megoldásról, de ugye ez nem megy ugyanúgy az MSP-n (ezt még én is értem). P2.6-os kimeneten lenne szükségem egy igen kis frekvenciájú (cca 1Hz-es)PWM jelre. Ha nem megy ezúton könnyen, akkor összedobok valamit szoftveresen a "millis" "változóval" valamiképp ahogy demó programok között láttam, de jó lenne, ha menne egyszerűbben is, mert úggy már szinte kész vagyok a program ezen részével. Idézet: „MSP430G2553-at használva, Energia környezetben lehetséges-e az "analóg kimenetek" PWM frekvenciáját változtatni?” Igen, lehet. A wiring_analog.c könyvtári állományban van is erre egy függvény:
De 1 Hz-es frekvenciáról ne ábrándozz, amíg az SCLK jel MHz-es nagyságrendű!
Köszönöm, sejtettem én is, hogy megoldható. Meg sajnos azt is, hogy nem lehet lemenni a frekvenciával a nekem szükséges értékre.
Akkor marad a másik út....
Ubuntu Linux 14.04 LTS alatt sikerült végre megoldani a cdc_acm kernel problémát (ez kellett az MSP430G2553 Launchpad kártya teljes értékű használatához).
A megoldás receptje Oren Kishon leírásában található: Bővebben: Link Lényegében néhány sort ki kell venni a kernel forrásban található cdc-acm.c forrásállományból és újra kell fordítani. Mivel a forrásfájlok folyton változnak, nem lehet betűhíven követni a leírást (hogy mely sorokat kell kikommentálni). mellékelem a 3.13.0-46-generic kernel általam módosított cdc-acm.c állományát. Ez így nálam bevált. A cdc-acm.h állományt nem kellett módosítani. A kernel modul módosítása és újrafordítása mellett az /etc/udev/rules.d mappában biztosítani kell egy olyan szabályt, amely a felhasználók számára hozzáférhetővé teszi a /dev/ttyACM[0-9] eszközt. A CCS 6 telepítéskor nekem ezt tette fel: #TI MSP430 Launchpad (eZ430 Development Tool) ATTRS{idVendor}=="0451",ATTRS{idProduct}=="f432",MODE="0666" Ez így egy kicsit durva megoldás, mert válogatás nélkül mindenkinek hozzáférési jogot ad. Ehelyett az Energia telepítési útmutatója ezt ajánlja: # MSP-EXP430G2 and MSP-EXP430FR5739 LaunchPad ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0660", GROUP="dialout" # MSP-EXP430F5529LP and MSP-EXP430FR5969 LaunchPad ATTRS{idVendor}=="1cbe", ATTR{idProduct}=="00fd", MODE="0660", GROUP="dialout" Ez egyrészt csak a dialout csoportnak ad hozzáférést, másrészt az MSP430F5529 Launchpad kártyát is használhatóvá teszi. A felhasználókat az alábbi paranccsal vehetjük fel a dialout csoportba: sudo addgroup user_neve dialout Az udev szabályok módosítása után az udev szolgáltatást újra kell indítani! sudo service udev restart vagy sudo /etc/init.d/sudo restart A /dev/ttyACM0 virtuális soros port sebességének beállítása: stty -F /dev/ttyACM0 raw speed 9600
Sziasztok! Szeretném kérni a segítségeteket. Terveztem egy MSP430G2553-ra alapuló hőmérséklet szabályzót. Ennek a programjának a megírásában szeretném segítségeteket kérni. A kapcsolási rajza: Bővebben: Link Erről lenne szó. a két nyomógomb 1.0 és 1.1-en ezzel lehetne beállítani a hőmérsékletet + és - gomb. Az R1es poti az a kijelző kontrasztjához tartozik. A kijelző 4 biten üzemel, és a DHT22-es szenzor által érzékelt hőmérsékletet és párát írja ki. A kimeneten 2db szilárdtest relé lesz ami a ventilátort és a fűtőszálat vezérli. Abba kérném a segítségeteket, hogy hogyan is lehetne ezt megvalósítani programozás szinten? Odáig megvan, hogy kiolvassa a szenzort, kiírja lcd-re és elküldi soroson. A további feladatom az lenne, hogy ez működne termosztát szinten. Előre is köszönöm a segítséget.
A hozzászólás módosítva: Máj 25, 2015
Elmentettem a programot. Eddig jutottam, a továbbiakban kérném a segítségeteket. Előre is köszönöm.
Mivel a programban a hardveres támogatású soros kapcsolatot is használod (Serial) ezért a P1.1 és P1.2 láb foglalt, oda nem lehet mást kötni. A P1.1-ről ezért át kellene tenni a nyomógombot egy nem használt lábra (pl. P1.3).
Mivel a nyomógomboknál nincs felhúzóellenállás, ügyelni kell rá, hogy a bemenetek belső felhúzással legyenek konfigurálva ( például pinMode(P1_0,INPUT_PULLUP); ). A termosztát szabályozásának és a kívánt hőfok beállításának logikáját szerintem neked kellene kitalálni. Számomra az sem világos, hogy mi a ventilátor szerepe. A hozzászólás módosítva: Máj 25, 2015
Köszönöm a válaszodat. A ventilátor keringteti a levegőt.
Én a felhúzást kicsit átértelmeztem: int pushButton = 2; pinMode(pushButton, INPUT_PULLUP); De azt sem tudom, hogy hogy álljak neki mármint a termosztát résznek. Addig oké. hogy kiveszem beteszem az adatokat. De hogy jutok el odáig, hogy a +-gombbal beállítok pl 35 fokot, és addig fűt amíg el nem éri a 35 fokot. A hozzászólás módosítva: Máj 25, 2015
Idézet: „int pushButton = 2;” Ebben két kifogásolható dolog van: 1. Fölöslegesen lefoglal 2 bájtot az amúgy is szűkre szabott RAM területből, miközben semmi szükség rá, hogy azt az információt a RAM-ban tároljuk. 2. A 2 helyett szerintem (bár ez nyilván erősen szubjektív) értelmesebb a megfelelő portbitre hivatkozni P1_0-lal. Javaslat:
Kérdések: - "A ventilátor keringteti a levegőt." Mindjárt gondoltam, de mikor és miért kell, hogy keringessen? - Mi lesz a másik gombbal, melyik lábra teszed? - Ugye, valami pergésmentesítést is beépítesz a nyomógomb kezelésbe? Idézet: Hát pont ez az kellene neked kitalálni! „De hogy jutok el odáig, hogy a +-gombbal beállítok pl 35 fokot” 1. Ha a kijelzőn állandóan látható a beállított hőmérséklet, akkor annak az értékét kell léptetni fel vagy le minden gombnyomásra. 2. Ha a kijelzőn nem akarod állandóan mutatni a beállított értéket, akkor viszont két kijelzési mód között kell váltogatni. Minden gombnyomáskor az a mód lép életbe, amelyikben mutatjuk a beállított értéket, s ha "hosszabb idő" óta (pl. 2-3 másodperc) nem történt gombnyomás, akkor visszaállunk a normál. "alapértelmezett" kijelzési módba.
Teljesen igazad van a nyomógomb felhúzással kapcsolatban. Máris javítom a forráskódban. Adott egy 120cm^2-es doboz, amit 35fokra kellene fűteni. Én úgy gondoltam, hogyha elkezd fűteni akkor elinduljon a ventilátor és folyamatosan forgassa a levegőt. Igen A 2db nyomógombot terveztem úgy, hogy + és - állásba lehessen vele beállítani a hőmérsékletet. Erre viszont nem is gondoltam, hogy kellene mutatni a kívánt értéket, a páratartalmat és a doboz aktuális hőmérsékletét. Viszont arra is gondoltam hogyha a fűtés elindul akkor kiírja az LCD-n hogy "warm". Bár így a béta programot beleégetve inkább rajzolok a kapcsolási rajzba egy visszajelzőt ami ha fűt akkor világít. Ez egyszerűbb lesz és az LCD-n is marad hely a 2 hőmérsékletnek. Bár az normális, hogyha a DHT nincs rákötve és a páratartalom része az 63553.12%-os páratartalmat ír ki?
Nálam az isnsn(t) || isnan(h) feltétel vizsgálata szűri ki a hülyeségeket és a hibás DHT22 kiolvasásokat.
A hozzászólás módosítva: Máj 25, 2015
Szia! Ez benne van a forráskódban. De ugyan úgy írja a zöldséget
A hozzászólás módosítva: Máj 26, 2015
Na, nagynehezen megszultem a programnak egy reszet, viszont a nyomogombnak nem igazan kell pergesmentesites mert eleg sok kesleltetes van a szenzor kiolvasasa miatt. Mar csak a ventillator pwmje van vissza.
Sziasztok.
Mély alvásból (LPM_4) kellene felkeltenem egy g2xxx MCU-t, de nincs ötletem, hogy tudnék külső megszakítást előidézni. Röviden: egy kis napelem tölt pár (3) NiMH akkut, mely táplálja az áramkört. A mikrovezérlő figyeli a napelem feszültség szintjét (analog méréssel) és ha X alá esik elmegy aludni LPM_4-es módba. Tehát, ha beesteledik kikapcsol az áramkör, illetve minimális áramfelvétel üzembe megy. Ha a napelem ismét normál feszültséget produkál a mikrovezérlőnek fel kéne ébrednie és ismét tenni a dolgát. Ha esetleg eme problémára van valakinek ötlete, szívesen fogadom.
Szia!
Nem használom az általad említett vezérlőt, csak ötletelek ! Úgy veszem ki a leírásodból, hogy ha nincs megfelelő fény, akkor sleep és nem csinál semmit, majd ha van megint elég energia, akkor újraindul... Miért nem csinálsz egy komparátort, ami fel-le kapcsolja a kontroller tápellátását vagy a RESET lábat birizgálja ?
Nem indul újra, hanem folytatja a programot. Energia lenne, mert a napelem akkukat tölt, de éjjel nem kell csináljon semmit, ezért kapcsolom be az energia takarékos módot.
|
Bejelentkezés
Hirdetés |