- Pl. a 1 1 1 1 X 0 0 kombináció
- az LM jel észlelését jelenti.
- ___| |
- |___ |
- | |
Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nagyon érdekes téma! Kicsit irígylem azt a részét az életednek, amiben most részed van!
A leírásod természetesen érthető, de lenne kérdésem ezzel kapcsolatban. Idézet: „Szóval a porgimank azt kellene csinálnia, hogy a 7 senor adataiból eldönti hogy egyenesen, jobbra, vagy balra kell-e kanyarodni, illetve jön-e robot jobbról, és ezt küldi egy másik PIC nek ami pedig a robot sebességét és fordulási szögét irányitja.” 1. Az érzékelők milyen jelet adnak a PIC-nek? 2. Ez a PIC hogy küldi el az infót a másik PIC-nek? Idézet: „Azért kapkodok igy, mert egy robotot kell felprogramoznom, még jó, hogy azért válalltam ezt az erasmust, mert arról volt szó hogy szélerőműveket kell méregetni meg egy progit irni, ami lementi az adatait. Szóval nem igazán voltam felkészülve PIC-ből . És dec 10ig be kell fejezenm a robotomat.” Az egyik dolog akkor amit elsokent el kell sajatitanod az a project management! Persze ez eleg bonyas tema, de talan egy kis alapot magadtol is el tudsz sajatitani pusztan a feladat atgondolasaval. Pl. Irj ossze par dolgot, fogalmazd meg a vegcelt, utana irdd ossze ennel eleresehez mi szukseges, pl. PIC megtanulasa, szoftver megirasa stb. Addig addig bontogasd le kisebb reszfeladatokra, amig mindegyiknel lehet latni kb mennyi idore van szukseged ra es hogy milyen konkret lepesek szuksegesek a reszfeladat megvalositasahoz. Ezt szepen tedd ossze ugy, hogy ha lehet ferj bele a hataridobe - ha nem, gondold at min lehetne gyorsitani. Ha ez megvan akkor a reszfeladatok hataridejei is megvannak, es igy folyamatosan ellenorizni tudod magad a helyes uton jarsz-e, e hogy csuszol-e az idovel - ha igen meg idejekoran bele tudsz avatkozni hogy megfelelo korrekciokat elvegezd hogy a teljes project ne legyen kudarc. Ezt megcsinalhatod akar Excel tablaban is, nem kell bonyolult dologra gondolni. Ha megvan akkor akar a tanarodnak is megmutathatod, hogy mi a terved, es hogy hol tartasz eppen a projectben.
1. Az érzékelők milyen jelet adnak a PIC-nek?
- Az érzékelők CNY70-es optikai tranzisztorok, ezek egyesével két HEF4011B schmitt trigger bemeneteire mennek, majd a schmitt trigger kimenetie vannak visszajelző ledeken keresztül a PIC RD portjára kötve, a táanárom szerint megközelitőleg 5 voltos küld a schmitt trigerre (hozzáteszem minden momentumot fogóval kell kihúznom belőlle,mert folyamatosan fél információkat kapok)Ami pedig a jobbról érkező robotot figyeli az egy sharp GP2Y0D02YK. 2. Ez a PIC hogy küldi el az infót a másik PIC-nek? - Az infó az B port RB0-RB3 bitjein távozok vsszajelző ledeken keresztül, ha jobbra kell menni, akkor az RB0 van logikai 1, ha balra az RB3 van logikai 1, ha pedig egyenesen akkor az RB1 és-n van logikai egy. A mésik PIC már meg van irva és műűködik is, eddig a logikai áramkörtől vette az infókat ami, GAL16V8D-ből illetve schmitt triggerekből állt. Ezt a panelt váltom most ki PIC-re. Adolgo nekem is tetszik és érdekel is, csak idegesit egy kicsit, hogy egész nyáron a szélerőművek lelki világát bujtam, aztán mikor deérek, kiderül, hogy PIC-el kel robotoznom
Köszi a tippet, ezeket alkalmazni fogom a jövőben is
[OFF]
Idézet: „Adolgo nekem is tetszik és érdekel is, csak idegesit egy kicsit, hogy egész nyáron a szélerőművek lelki világát bujtam, aztán mikor deérek, kiderül, hogy PIC-el kel robotoznom” Ne keseredj el, a hugom 1 evet volt Nancy-ban az Erasmus-szal, ugyan ott nem tulsokmindent tanult, de ennek (es a BME-nek) koszonheti, hogy ma Luxembourg-ban dolgozik az EU-ban joval magasabb fizetessel mint en raadasul diplomaciai kedvezmenyekkel megspekelve a dolgot! Szoval kitartas!
Ez akkor elég egyszerűnek tűnik, és tényleg csak bemenetektől függő kimeneti állapotokat kell leprogramozni.
Próbáld meg a programod elején, megjegyzés formában leírni az egész igazság táblázatát. Vedd fel az összes bemenetet, nevezd el, majd a kimeneteket is és rendeld hozzá valós lábakoz. Deffiniáld a programban nevekkel ezeket a lábakat példa:
Ha ez megvan, akkor csatold a programot, hogy lássuk a kiinduló alapot. Megoldható?
Köszi a tippet, igy fogom csinálni. Most voltam bent a sulban a tanárnál, hogy konkretizáljam vele a programot, de csak szerdán lesz bent állítólag. Kaptam tőle egy üzenetet hogy valamit módositani akar a szenzorok darab számán. Szóval, igy most az igazságtáblát sem tudom megcsinálni. Mindjárt irok neki egy emalit, hogy rebegje el mit akar. Ha megvan már töltöm is fel
Kaptam választ, szóval megcsináltam ahogyan mondtad!
Igen, tudom, hogy az önéletrajzban sokat jelent az erasmus szó, azért is vállaltam
Alakul! A táblát nem teljesen értem. Én valahogy több variációt tudok elképzelni a 7 érzékelő esetében. Nem látom a bemenetek kombinációit. Valamit nem jól értelmezek a táblázaton? Esetleg egyszerre csak egy érzékelő adhat elméletileg jelet?
Nem kell túlkombinálni! Szerintem 7 érzékelő van egy sorban elhelyezve, a korábban említett "mintákat" erre a 7 pixelre leképezve képzeld el!
Jó, de mi van, ha ezek az érzkelők más állapotot is fel tudnak venni?
A PIC-nek meg kell mondanod, hogy mely kombinációkra milyen kimeneti állapotokat adjon. Vagy más variációkat ne is vegyen figyelembe, azaz ne történjen változás a legutóbbi beállt kimeneteken? Biztosított, hogy a három jelzett állapot kialakul az érzkelőkön, miközben a vonal fölött mozognak?
Icserny-nek igaza van. Ugy kell elképzelni ahogyan mondja. Nem kaphat más értéket, mert mielőtt a PIC-emhez jön az adat az érzékelőről, van egy logikai áramkör, ami vagy 0-t vagy 1 et küld a PICem felé attól függően, hogy zöldet vagy fehéret "lát" maga előtt.
És ez a három végeredmény lehet, vagy Bal jelzést kap és balra fog fodulni , vagy jobb előjelzést kap és akkor jobbra fog fordulni, vagy az összes logikai egy és az azt jelenti, hogy elágazó következik.Holnap lefényképezem a pályát, ugy lehet érthetőbb lesz.
Rendben, ha ez a helyzet, akkor nincs semmi gond.
Következő kérdés, hogy milyen sebességgel gondoltátok lekérdezni az állapotokat? (másodpercenként 50 pl.?)
Nha tökéleteset kérdeztél! Ez az ami felől már érdeklődtem a kedves tanáromnál, és mindig azt a választ kapom, hogy majd megbeszéljük. Viszont sikerült ellopnom a másik PIC programját, és gondolom ugyan olyan időzités kellene az én PICemben is. Be is rakom azt a progit, sokat nem értek belőle, mert ugye még igencsak kezdő vagyok, másrészt a kommentek franciául vannak.
Találtam képet a telómon a pálya egy részéről.
Ha már itt tartunk: mi van a külső (fény) zavarokkal? Azok ki vannak-e szűrve, ha igen hogyan (pl. vivőfrekis gerjesztés/érzékelés)? Gyanítom, hogy nincs ilyen benne, de akkor mit is kell tenni ezekkel?
Azt gondolom, hogy a megoldás nem egy statikus kombinációs hálózat, hanem egy sorrendi, amit a PIC-ben egy állapotgéppel lehet leginkább megvalósítani. Lehet, érdemes lenne a jelenleg a működést biztosító GAL programját elkérni és kielemezni. Valamikor régen foglalkoztam ilyenekkel, abban is lehet sorrendi hálózatot megvalósítani, de a programjából ez kiderülne.
Üdv mindenkinek!
Reggel átalakítottam a progit, ahogy az oldalon írtátok. Sajnos avval a módosítással sem lett jó. (a trükközéses) Továbbra is szimulátorban müködik, de áramkörben nem. Délután vettem 12F509-t, és beleégettem az asm-ből generált HEX-et. (persze az eredeti asm-et) Avval elsőre ment. Abból vettem 2db-ot, így nem foglalkozom tovább vele, marad benne ez. De legalább az F84-et kiváltottam 628A-ra. Az jó lett. Köszi az eddigi segítséget.
Pontosan ilyen aggályaim vannak nekem is.
Első fő kérdés, minek annyi érzékelő, ha három is elég lenne? A három kimenet 8 logikai állapotot tudna felvenni, így akár átmeneteket is el lehetne küldeni, hogy a robot mennyire tért le a pályáról. Itt csak azt látod, ha már annyira letért, hogy kialakul a fenntebb leírt 3 variáció egyike. De ha ez a kért feladat, akkor ezt kell teljesíteni. A "tervezővel" nem lenne szerencsés vitatkozni(a). A fény zavarok szerintem nem okoznak bajt, ha egy TTL hálózattal jelenleg működik és szintén nem biztos, hogy neki kell ezt megoldania, ha majd még is gondot okoz.
Még lenne kérdés.
A GP2Y0D02YK a központi PIC-re van kötve ugye? Csak a 7 irány érzékelővel kell foglalkozni? Ha csak az a három kimeneti állapot van amit felrajzoltál, akkor honnan tudja a központi PIC, hogy a pályára merőleges fehér vonal elágazáshoz ért a droid? Nincs meg a TTL hálózat rajza? A programot nézegetem...
Üdv!
Eddig a 7 érzékelőből csak három volt bekötve, most már mind a 7 be lesz, én ezt kaptam, hogy ezekre az állapotokra irjak progti, sok baromság van ezen a roboton, amin tudnék vitatkozni. Eleinte próbáltam, sikertelenül. Nekem egyelőre csak ilyen alap progit kell felvázolnom, aztán ezen majd még a franciák dolgoznak juniusig, akkor lesz valami verseny. A GP2Y02YK is az én panelomra van kötve, de egyelőre nem kell vele foglalkoznom. Onnan tudja, hogy mikor ér oda, hogy elágazás és kanyar előtt vannak elhelyzeve ezek az jelzők, amik a kanyar illetve elágazás előtt x cm-re vannak. Szóval mikor a robot azt látja, hogy 'bal', elküldi a másik PIC nek és az tudja, hogy még x cm-ert mehet aztán pl balra kell kanyarodnia. Aztán hogy azt honnan tudja, hogy a kanyarnak mien ive van,azt nem tudom, kérdeztem, válasz az volt, hogy ne foglalkozzak vele. Ebből arra következtetek, hogy egyelőre csak egy ilyen alap progit akarnak, aztán majd ők meg tovább dolgoznak rajta. Nekem a hosszu munka a NYÁK tervezése és kivitelezése volt
Néztem a programot, és a következő kombinációkat figyeli az RB0,1,2 lábakon:
Nos ez több mint három. Bevallom nem látom át hogy fog ez működni, de elfogadom, hogy az általad vázolt logika a feladat. Felteszem a kérdést, hogy van e elképzelésed a feladat programba öntéséről nagyvonalakban?
[OFF]
Sajnos azt hiszem Nyugat-Europa egeszere igaz, hogy szeretik a "katonakat" akik fej nelkul parancsokat hajtanak vegre... Dolgoztam Angliaban 2.5 evet, most epp Irorszagban vagyok mar 3.5 eve, amerikai cegnek dolgozom ugyhogy amcsi fonokok is vannak, es azt kell mondjam mindenutt eddig ez volt a helyzet, nem szerettek ha ujitasokkal vagy otletekkel rukkoltam elo. Ha barmit is el akartam erni ket megoldas volt: 1. Megcsinaltam amit akartam anelkul elmondtam volna nekik. Nos, ezzel megkockaztattam sokszor, hogy megharagudnak es kitesznek a cegtol! De ha a munkat el akartam vegezni akkor meg kellett kockaztatnom... 2. Eloadtam az otletem, mintha az o otlete lett volna... Pl "tanacsot kerek" a fonoktol, ahol a valaszt szinte a szajaba ragom es akkor boldogan elmagyarazza nekem hogy kell csinalni - amit en mondtam el neki kicsit maskepp, de o ettol boldog, hogy megis o mondja meg nekem a frankot. Hat ez van, meg annyit, hogy nagyon szivos munkaval, allando publikaciokkal stb el lehet erni elismerest es tovabb lehet lepni es akkor mar Te is fonok vagy es igy lehetnek otleteid De addig Te vagy a katona - csinald amit ok mondanak meg ha nagy baromsag is!
Igen, a mostani programban több variáció van, mert most olyat is tud hogy 360fokos fordulatot tesz, erre is külön jel van a pályán, meg azt hiszem gyorstó jelzés is van és azt is figyeli. Ha jól értettem, akkor ezeket az extrákat most altatják egy darabig!
Rendben.
És a kérdésemre a válaszod? Jó lenne, ha te kezdenéd el a fonalat, és mi majd szólunk, ha netán teljesen hibás a megközelítés. Ne konkrét programot képzelj el most, csak a program logikáját kéne megbeszélni, lefektetni, hogy abból forrás születhessen. Szóval akkor erről milyen elképzelésed van?
Teljesen igazad van. Ezek igy működnek. Én két nyarat dolgoztam amerikában, persze nem elektronikai pályán, hanem konhyásként a kalnad kedvéért, de amit leirtál az ott is igy volt, ha nekem volt ötletem hogy gyorsitsunk a tempón, akkor az baromság volt stb.
Itt most egyetlen ötletemet vették be a robotba, mégpedig, hogy rakjunk egy programozó áramkört is bele, és így csak rá kell dugni az ICD-t és lehet programozni a PIC-et nem kell kivenni, visszatenni. Ezt igy ugy valósitotam meg, mint ahogyan mondtad, terveztem a nyákot, és mikor kész volt, megmutattam Idézet: „Itt most egyetlen ötletemet vették be a robotba, mégpedig, hogy rakjunk egy programozó áramkört is bele, és így csak rá kell dugni az ICD-t és lehet programozni a PIC-et nem kell kivenni, visszatenni. Ezt igy ugy valósitotam meg, mint ahogyan mondtad, terveztem a nyákot, és mikor kész volt, megmutattam” Nem akarom errefelé elterelni a témád, de erre való az ICSP csatlakozó. Én sem szoktam soha kivenni a PIC-et, főleg hogy mostanában csak SMD-t használok és természetesen nincs programozó áramkör minden panelre odatervezve!
Ja igen, bocsi. Igazából még nagyon csak körvonalaim vannak, olvasom azokat a könyveket amiket adtatok.
Valami olyasmi megodlásra gondotam (amit még nem tudok, hogy megoldható-e), hogy mivel a bementek egy porton vannak, annak a bitjeit akarom valahogy figyelni egy ciklusban. Mikor összeáll egy olyan bit csoport, ami nekem jelent valmit, akkor azt kiküldöm a kimeneten, és figyelek tovább. Valami hátultesztelős ciklus vagy ilyesmi.
Ez így jó is lehet.
Kitérőként, de nem feledve az alap irányt, megjegyzem a hátrányait. Ha ciklusban intézzük egy bemenet pollingolását, akkor bonyolultá tesszük a program későbbi továbbfejlesztését, mert ha sikerül kialakítani egy megfelelő tempót, akkor azt bármilyen más programigény, legyen az megszakítás, vagy más feladat hozzáfűzése, elrontja. Kérdés, hogy ez gondot okoz-e, valamint, hogy erre kell-e számítani. Én azt gondolom, hogy ennél a feladatnál, még ekkor sem lesz gond a fő ciklusban való lekezeléssel, ha később a többi lehetőséget is fel kell venni. Tehát akkor legyen a program főciklusban lekezelve. Az is jó lehet, hogy a portot figyeled egyszerre. Ragadjunk is itt meg. Milyen utasítással hasonlítanád össze a porton lévő értéket, és melyikkel ellenőriznéd és ágaztatnád el a programszálat, amikor az eredmény kedvező, vagy sem? Segítségül kérdezem, hogy a STATUS regisztert ismered-e(ha nem nézz utána és kérdezz!) Idézet: „Milyen utasítással hasonlítanád össze a porton lévő értéket, és melyikkel ellenőriznéd és ágaztatnád el a programszálat, amikor az eredmény kedvező, vagy sem?” A kérdésedre, még nem tudok válaszolni, de folyamatosan olvasok, és jegyzetelek. Szóval a következő a STATUS regiszter lesz.
Oké, akkor a STATUS mellett nézd végig azt a 35 utasítást, amiket az adatlapban találsz. Minden utasítás mellett vannak példák is, jól értelmezhetően. A STATUS bitek állapotai is jelezve vannak, ha az utasítás változást okoz valamelyikben. Jó tanulást, és várom a kérdéseid, ha lesznek!
|
Bejelentkezés
Hirdetés |