Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
Ezért érdemes inkább a táppal foglalkozni ( azt elvben le is tudod választani - azaz csak a szervok áremellátását végzi) . Egy bontott PC tápot akár ingyen is tudsz szerezni, amit 20-30 A-t ad 5V-n, és minden gondod meg van oldva. Én azért használtam 12V/5A tápot, mert a modulokon ott volt már a DC-DC konverter igy kellett az >5V-nál nagyobb feszültség.
Ha még csak az Avr-nél tartasz, akkor egyszerübb a PC táp használata, más meg nem kell.
Nem vagyunk egy véleményen. Egyrészt idegesít a szervó zaja, mert nem fog beállni fix értékre, hanem kerreg, másrészt elvi problémám van azzal, hogy minek fogyaszt áramot, ha nem is akarom, hogy működjön. Utána lehet méretes tápokat berakni, akkora lesz minden, mint egy tepsi, melegszik,... miközben egy kart szeretnék elfordítani jobbról balra.
Ráadásul megpróbáltam kézzel elforgatni a szervót, de nem sikerült. A fogaskerekek olyan erősen fogják, hogy lehetetlen kézzel megtekerni. Nem lesz olyan, hogy a kar magától egyik irányból a másikba véletlenül átmegy. Jelenleg notebook tápot használok, 4A-t kibír, praktikus, nehéz lenne megmagyarázni, hogy miért kellene erősebb 15-20 szervo áttekeréséhez egyik állásból a másikba. Akkor is, ha az idő 90%-ában egyik sem mozog semmit. A hozzászólás módosítva: Jan 20, 2016
Nagyon keményfejü vagy, nem marad más hátra, mint orra esni.
Ha jo a táp a szervo olyan csendes mint a sir. Várjuk majd az eredményeket. Azért vigyázz az orrodra, annyit nem ér meg a dolog. A hozzászólás módosítva: Jan 20, 2016
Maradjunk annyiban, hogy könnyebben kapcsolom ki a servo-k tápját, mint hogy egy 500 W-os erőművet berakjak modellszervók vezérléséhez.
500 W-tal (PC táp), már egy kisebb szobát fel lehet fűteni. Tudom fizetni a villanyt, de a zaj, amit a kerregésükkel okoznának, azzal nem akarok együtt élni. Mert ugye akkor is van hangjuk, ha állnak. A hozzászólás módosítva: Jan 20, 2016
Komoly bajokban szenvedsz az alapvetö elektrotechnikai dolgokkal ( hány éve adok tanácsokat ). A tápon még a ventilátor sem fog elindulni, csak arra kell, hogy megfelelöen kemény legyen az áramforrás.
Mondok még mást is - talán az jobban fog tetszeni. A táp helyett rakj be egy komolyabb LIPO akkut (2S 4-5 Ah), és azt töltsd a laptop táprol állandoan. Az is megoldja a gondjaid. Te döntöd el mit akarsz.
Azért kerreg a servo, mert a táp nem stabil?
Igen, mert cuppant egyet a tápbol valamelyik szervo, amire a táp egy kicsit összerogyik, azaz megváltozik a referencia és jön a kerregés.
Sziasztok!
Ha van egy érzékelőm (gyorsulásmérő), aminek a tápja 3.3V-os, így az analog kimenete is maximum 3.3V-os lehet(de inkább kisebb). Ha ezt egy 5V-os AVR-el olvasnám be, akkor ezt a feszültséget inkább érdemes valami műveleti erősítővel felerősíteni, vagy csak referencia szintet váltok AVR-en? Ha referencia szintet váltok AVR-en,akkor nem lesz lassú/lassabb? Gondolom az első 1-2 jelet el kéne hozzá dobnom. Köszi a válaszokat!
Sok segitség után én is kérdeznék valamit.
Egy kis vasuti állomás vezérlésén dolgozom. Van egy A szakasz a bemenet ( vagy kimenet az uránytol függ. Ebböl kiágazik 5 vágány (1-5) mindegyikhez 2 válto tartozik. A vágányok másik végén van B szakasz kimenet ( vagy bemenet). A fö irányba a vonatoknak egymás után kell megtölteni az elsö 4 vágányt (1-4). FIFO alapon, aza az elsö vonat jött az elsö hagyja el az állomást. Minden szakaszrol rendelkezésre áll egy jel ( foglalt szabad), de a központi egységnek kezelni kell a szomszédos szakaszokat (A és B) azaz onna ill oda csak akkor mehet a vonat ha van hely ill ha nem foglalt. Ha visszirányba mennek a vonatok, akkor csak az 5. vágány áll a rendelkezésre (2 váltoval). A visszirányra szintén van egy jel Dir (FW/REV). Minden vágányon van egy kapcsolt szakasz, amin a vonat megáll ill indul. A manuális (MAN On/Off) üzemben szintén csak az 5. Vágányon megy a vonat (a központi egységnek kezelni kell a váltokat az 5. Vágányt és a 2 közelitö szakaszt (A és B). Csabeszq van valami ötleted, hogyan lehet ezt intelligensen megoldani? A proci 328-s NANO portok és a perifériák megvannak, az algoritmuson rágodok még. Ötletem van néhány - de sosem elég. (Csak itt 10 szervo mozgatja a váltokat) Bárki ötletét köszönöm.
Elsőre próbálkozz a referenciával, nem lesz lassabb.
A szervó kérdés egyelőre megoldódott. Levettem a teszt szervómat a polcról és kísérletezgettem. Meg volt szorulva és leégett. Tekergettem egy kicsit, ettől a fogaskereke is eltört. Amíg új érkezik az ebay-ről, az beletelik egy kis időbe.
Érdekes, hogy pusztán attól, hogy a polcon állt, képes volt megszorulni.
Ha FIFO-t akarsz, akkor azt sajnos le kell programozni. Mármint csinálsz egy 5-ös tömböt és amikor bejön egy vonat, akkor beírod, hogy hányadiknak jött be, amikor meg távozik, akkor kitörlöd onnan, a várakozó vonatok helyértékét meg csökkented 1-gyel. Mindig az 1-es vonat távozik. Csak szabad vágányra érkezhet vonat.
Én kicsit magasabbról szemlélném a problémát automatikus játék esetén. Amikor egyik túl közel kerül a másikhoz, akkor beállítom, hogy előzzön. A program meg úgy állítja a váltókat, hogy az előzés létrejöhessen. Nálad gondolom hasonló lehetne: vannak vonatok: személy, gyors, teher, ... A személy minden állomáson megáll, a gyors minden fontos állomáson, a teher A pontból B pontba megy. Ezeknek prioritása van: a teheré a legkisebb, a gyorsé a legmagasabb. A váltókat úgy állítod, hogy az egyes vonatok igényét kiszolgáljad. Annyit csinálsz, hogy a problémát magasabb szintre emeled, a FIFO nekem nem tűnik életszerűnek. Értelemszerűen tehervonattal nem állsz be az állomás legelejére, mert eltorlaszolsz vele mindent. A kézi vezérlés nálam váltóállítással valósul meg. A menetszabályzóval javaslatot lehet tenni a vonat sebességére. Kereszt irányú váltónál természetesen megáll a vonat, függetlenül attól, hogy mi van a menetszabályzóval. Egy manuális kikerülés (szembe jövő vonatok) így nézne ki: - a bemeneti váltót 4-es re állítod - a kimeneti váltót 5-ösre Megvárod, míg mindkét vonat beér és megfordítod a váltókat. A bemeneti lesz 5-ös, a kimeneti 4-es. Ez automatikusan megadja a szabad jelzést és indul mindkettő. Pusztán a váltók megfelelő állításával automatikusan lassít, megáll és gyorsít a vonat. A hozzászólás módosítva: Jan 21, 2016
Kösz.
Ezen az állomáson nem elöznek a vonatok, itt csak várnak, igy ezt nem kell megoldanom. Ez egy rejtett állomás nem is láthato, csak arra szolgál, hogy a vonatok ott várakozzanak. Az állomáson kivül a menet kezelve van, azaz az egyik vonat követi a másikat egy blokk távolságra. Itt csak azt kell megoldani, hogy akkor indulhat amikor az elötte levö szakasz szabad. A kézi vezérlés itt is váltoállitással meg vonat inditással és fogadással történik, a központnak csak az lesz a feladata, hogy kezelje a foglaltsági állapotokat, azaz, ha pl a 3. Vágányra akorok küldeni egy vonatot jelezze, hogy az szabad. Ugyanugy az inditáskor jelezze a 3. Vágányon levö vonatnak, hogy az elötte levö szakasz szabad.
Megvásároltam aranyáron (1400 Ft) egy modell boltban egy szervót (SG90) és lemértem a fogyasztását.
- ha nem küldök impulzusokat, akkor pontosan 5 mA-t eszik - ha küldök impulzusokat, de már beállt a servo, akkor is 5 mA-t eszik - nincs olyan műszerem, amivel a mozgást elkaptam volna, mert túl gyors, gondolom felmegy rendesen, viszont a multiméterem 400mA-s biztosítékja nem égett ki - a kerregés megszűnt miután 1200 µF kapacitást rávarázsoltam a szervó tápjára Kijelenthető, hogy nincs mérhető különbség SG90 esetén impulzusok küldése / nem küldése között. Tehát nem kell leválasztani. Ha veszek 16 modell szervót, az értelemszerűen 80 mA-t fog fogyasztani nyugalmi állapotban. Ehhez nem kell PC táp (500W) és nem kell varázslás sem. Ennyit tudtam lemérni. A kerregést kell megszüntetni, akkor leesik a fogyasztás is. Nem kell ki/be kapcsolgatni, mert a nyugalmi fogyasztása nem vészes.
Ez az az eljárás, ami tankönyvbe illö ( vagy politikailag Brüsszelbe. ) mint elrettentö példa. Csináltál rengeteg mérést, levontál következtetéseket, csak nem jok, és nem jutsz A-rol B-re.
Az egyetlen jo következtetés, hogy valoban nem kell az alapfogyasztás miatt lekapcsolni a szervot, mert ha jo a táp, akkor nem oszt meg nem szoroz az alapfogyasztás. Amit mértél teljesen értelmetlen, mert azt mezei DMM-l nem lehet megmérni. Gondold meg, milyen jelet küldesz a szervoba? 20 ms-ként 1-2 ms hosszu impulzust! Mennyi ennek a kitöltési tényzöje? 1/20ad? Mit tud egy mezei müszer erre mutatni? A legjobb esetben a valos érték 1/20-t! A valoságban sokkal rosszabb a helyzet, mert a müszer maga is mintavételez és két freki viszonya ismeretlen, azaz az eredmény is. Felejtsd el és hidd el, nem unalombol szajkozom, hogy 1A/szervo az irány. A te utadat másfél éve jártam meg, 48 szervoval indulva. 8 szervonként van 1 darab 5 A-s tápom, azota csend és nyugalom van. A hozzászólás módosítva: Jan 22, 2016
A multiméter az átlag fogyasztást méri. Független attól, hogy PWM van-e, vagy sem.
Van benne kapacitás, ami az impulzusszerű élek kiszűrésére van. Csodálatosan mutatja PWM-nél az átlagot. Nem értem, hogy hogy jön a 20 ms-es tüske a képbe, amikor a szűrő ezt kiveszi. Mi a jó a pillanatszerű fogyasztás mérésében? Mennyivel ad jobb képet? Átlagban 5 mA-t vesz fel, ezt mértem hitelesített multiméterrel. Az átlag teljesítménye 25 mW. Ezen túl sokat nincs értelme vitatkozni. A hozzászólás módosítva: Jan 22, 2016
Bocs,de ez melyik topic ? A MÁV-tól a servo-ig, minden van már
Nem láttam eddig közös mikrovezérlős topikot. Jelenleg arról beszélünk, hogy hogyan kell irányítani/méretezni egy/több szervót és milyen PWM jelalakot érdemes kiküldeni rá.
Megértem, hogy lehetne PIC/ESP8266/STM32/Arduino is, valóban nem AVR-ről szól a dolog. Közös topikot idáig nem láttam. Ez mikrovezérlős szervo irányítás, nem tudom melyik másik topikban lenne a helye. A hozzászólás módosítva: Jan 22, 2016
Kedves barátom, az AVR nem arra van, hogy összevissza programozzák, hanem arra, hogy valamilyen feladatot megoldjon. Igy nem igen helyénvalo, ha felszolalsz, amikor valaki a szervok vezérlésével tölti a becses idejét, vagy a vonatok kezelésével, te meg esetleg egy fülvakaro berendezést fogsz csinálni.
A szervod akkor igényel NAGY áramot, amikor mozdul (amikor jön a 1-2 ms tüske, és a kar nem ott van ahol lennie kell), különben elmegy gombelemröl is.
Ezt a multiméterrel soha az életben nem fogod tudni kimérni. A tápod pontosan az impulzus idejü fogyasztásra roggyan össze és okozza a zümmögést. Egy szervo esetén még ugy ahogy segit a nagy kondi 1200µF ( sokkal jobb lenne a nagyobb), de nem oldja meg a gondodat! A lényeg ugyanis azon van, hogy a szervok alapbol igen kis kimenö ellenállásu áramforrásra lettek tervezve (akku), amik képesek több 10 A-t leadni nagyon rövid idöre. A tápnak ugyanilyen tulajdonságokkal kell rendelkeznie. Pl egy klasszikus trafos táprol soha nem fognak jol menni. A hozzászólás módosítva: Jan 22, 2016
Kedves barátom,ez nem chat. Nem véletlen van ennyi topic.Aki avr témában érdeklődik,nem gondolom,hogy a modellezésről szeretne olvasni dolgozatokat.
Nem, az adott esetben sem a modellekröl van szo, hanem bizonyos berendezés kezeléséröl.
Ha itt visszanézed a topik sok 100 oldalát a két kezed ujjain megszámolhatod, hány olyan projekt volt, ahol valos feladatot kellett megoldani, a többi meg csak arrol szol melyik kész programot és hova beilleszteni, vagy hogyan kezelni az AVR valamelyik regiszterét, portját stb. Szomoru, hogy alig volt más téma az utobbi néhány évben. Ha megnézed a többi topikot is, ahány mikroprocesszoros van, ott sincs nagyobb választék. A páka vezérlésen , robotikán meg az alkatrészteszteren kivül más nincs is. Ott is föleg arrol megy a szöveg, hogy melyik kész programot honnan lehet ellopni és letölteni a saját berendezésbe.. Nem szégyen ez egy kicsit? Csabeszq kolléga az egyetlen, aki kitüzött magának egy atipikus feladatot és már évek ota azon dolgozik, és vergödik olyan dolgokkal, amikröl a nagy programozok talán még nem is hallottak. ( sajnos az eredmény lépten nyomon láthato a modern autokban, és egyébb drága okos telefonokban stb., ahol csapnivalo a FW, mert a tervezönek dunsztja sincs bizonyos alapvetö dolgokrol). Mutass egyetlen hozzászolást, ahol algoritmusokról vagy a perifériák kezeléséröl van szo! ( Csabeszq és hozzászolásaimon kivül). Nem erröl kéne egy ilyen topiknak szolnia?
Nemrégen volt ilyen 5 + 4 vágányos kitérő programozására megbízásom.
Ott a szabad vágányjelzők is voltak +ban a váltókezelésen felül! Az is PC tápról volt meghajtva. Mondjuk a HW feladatokat a megrendelő oldotta meg, az én gondom csak az SW volt. Mi időosztásosan vezéreltük, hogy bírja a táp a terhelést. 1*re Csak 1 eszköz vezérlése ment 100mS-ig, közben 100mS szünetekkel. hogy legyen idejük a kondiknak feltöltődni. Közben még a váltók helyes beállását is figyeltük, + a szabad vágány jelzőket. Elég szépen működött. Nem volt táp gond! Ja! És Arduino Megával oldottam meg! (Hogy nehogy kidobjanak OFF ért!) A hozzászólás módosítva: Jan 22, 2016
Esetleg majd irj rola - akár privátban is - hogy ne zavarjuk itt a bitrendezöket - érdekel. Nekem is a HW már megvan, müködik, a tápok is rendben vannak. ( az ilyen projektet mindig ezzel kell kezdeni), igy elvben nekem is csak a SW-t kell megirni.
Nálam nagyobb szünetek is lesznek, hiszen itt nem sürgös a dolog, csak a váltok kb. 2 másodpercet igényelnek az átállásra, a szakaszok is mintegy 3-4 sec után jeleznek szabdat, igy van ideje a procinak "gondolkodni" mielött a következö parancsot kiadja.
Nagy vonalakban, ami a kezdéshez kell!
A HW pontos leírása. Mi hova van kötve és hogyan működik, hogyan kell vezérelni? Ezt így kezdtük, aztán következet a folyamatok kidolgozása:
Kösz szépen
Áttanulmányozom, de sajnos ma mennem kell, majd talán holnap.
A mikrovezérlőzés átalakulóban van (szerencsére).
Leginkább a LEGO-ra kezd hasonlítani, megveszed a kész panelt, letöltöd a függvénykönyvtárakat, írsz egy pár soros programot, összeütöd a kódot. Hardvernél kész paneleket veszel (servo vezérlő, step down, ...) drótozol, minimális elektronikával. Ennek sok hátulütője van (nem optimális kód, erősebb vezérlők,...), de alapvetően a megközelítés jogos. Legutóbb 2 napom ment el azzal, hogy az Atmega328P EEPROM-ot bootloaderbe rakott Flash íróval helyettesítsem, mert 4k-ra volt szükségem. Két nap azért, mert az Atmega328P alul volt méretezve a feladathoz. Nem tartom jónak a bűvészkedést azért, hogy beleférjek a SRAM-ba, EEPROM-ba, FLASH-be. Ez mind kidobott, soha meg nem térülő idő. Pár év múlva jön egy erősebb vezérlő és minden mehet a kukába. Ha nem 1 milliót gyártok belőle, akkor nem éri meg spórolni a teljesítményen. Ebbe a képbe az Atmega328P csak neccesen fér bele, igencsak súrolja a használhatóság határát. Ami nekem hiányzik: - 512k FLASH - 64k SRAM - 1000 Ft körüli panel költség - 100 MHz - komoly támogatottság függvénykönyvtárakkal, inkább letöltesz, mint programozol - használható perifériák (ADC-k, UART-ok, I2C-k, SPI-k, DAC-k,...) - DMA Vannak ilyen árban jó mikrovezérlők, viszont a támogatottság hiányzik náluk. Mindent neked kell megírni hozzájuk letöltögetés helyett. Maga az Atmega328P szerintem elavultnak tekinthető, amit kizárólag az Arduino keret tart még most is életben, mert a chip gyenge képességei ellenére gyorsan és könnyen programozható. A hozzászólás módosítva: Jan 22, 2016
Szerencsére nem nagyon értek a modern magasabb nyelvekhez, igy szonte mindent magam izzadok ki ASM-ben. Én is rengeteg, egyszer már kiizzaditt makrot használok és sajnos én is belefutottam már sok csapdába. Van egy gyári fejlesztö NYÁKoom meg egy nagy breadboardom. A fejlesztö lapon minden megvan, csak nem volt elég olyan port ami kellett volna, igy átraktam a procit a breadboardra azon meg nem ismerte fel a atmel studio. Mai napig nem tudom miért. Igy a Drgonban kellett programozni majd vissza dugni a breadbordba- ez ment egy honapig. Csináltam egy NYÁKot és nicsak ott minden megy.
Én is most a 328al probálkozom - van egy marékkal NANO modulon. Ha nem elég akkor majd szerzek egy 644-t.
Stm32,LPC ? Cube,Lpcxpresso stb. miden standard lib-et megkapsz,ami plusz kell a neten biztosan megtalálható.Tény,hogy nagyobb falat,mint az avr, de ez már az Xmega-ra is elmondható.
|
Bejelentkezés
Hirdetés |