Fórum témák

» Több friss téma
Fórum » Ellenállásmérés USB-n keresztül
Lapozás: OK   1 / 1
(#) szcs hozzászólása Júl 2, 2008 /
 
Sziasztok,

a megoldandó feladat: 10 db ellenállást szeretnék mérni és az időben változó értékeiket USB-n keresztül számítógépre továbbítani. A mintavételi idő nem kritikus, 10 Hz már bőven elég ellenállásonként. A pontosság sem nagyon kritikus.
Ehhez szeretnék Tőletek tippeket kérni. Pl van-e olyan, hogy több csatornás USB-s AD konverter?

Üdv:

Csaba
(#) Feri007 válasza szcs hozzászólására (») Júl 2, 2008 /
 
Nem valószinű, hogy készen, boltban megvehetően megoldást találsz. Én a következő úton indulnék el:
PIC18F4550 USB útmutató és előzményei. A cikk leirja, hogy kapcsolódhadsz egy PIC-hez, USB-n. Aztán leprogramozod, hogy legyen 10 analóg bemeneted, ellenállásmérésre.
(#) watt válasza szcs hozzászólására (») Júl 2, 2008 /
 
Van, úgy hívják, hogy PIC18F2550.
(#) kaszarobert válasza szcs hozzászólására (») Júl 2, 2008 /
 
Szia!
Gondolom printer port nem jó, ott 4 bites pontossággal mérhetnél(16 érték) és min 8 bites pontossággal (1024db) választhatnád ki melyik ellenállást méred. Ennek megvalósítása kifejezetten egyszerű lenne, kevés alkatrészt igényel :rinya:
(#) watt válasza kaszarobert hozzászólására (») Júl 3, 2008 /
 
Esküszöm nem értem, hogyan képzeled ezt a mérést. Egyébként azzal kezdte, hogy USB...
(#) szcs válasza Feri007 hozzászólására (») Júl 3, 2008 /
 
Köszönöm, megnéztem ezt a PIC18F2550/4550 családot, tényleg nagyon príma.
Elég süti vagyok egyenlőre a témában, két kérdésem lenne helyből:
1, hogyan lehet felprogramozni? Gondolom a hozzá való szoftvert le fogom tudni húzni mondjuk a chipcad honlapjáról, de hogyan töltöm fel a PICre?.
2, közvetlenül fel lehet programozni a PIC-et ellenállásmérésre, vagy kell valami ellenállás-feszültség átalakítás, mert csak feszültséget mér az áramkör?

Köszi előre is:

Csaba
(#) Báddzsó válasza szcs hozzászólására (») Júl 3, 2008 /
 
Hozzászólásod alapján szerintem kicsit nagy feladat lenne ez így hirtelen neked.
Programozni programozóval lehet (nahát ), ez egy áramkör ami a PC hez kapcsolódik USB-n. Ebbe beleteszed a PICet amit fel szeretnél programozni, és áttöltöd a progit, de a progit előtte meg kell írnod, szerintem ez így első enkifutásra nem kis feladat.
Én már jó pár éve picezek, de USB helyett erre a feladatra egy FTDI232 chipet választanék és egy egyszerűbb picet, pl 16F690. FTDI csip arra jó, hogy usbből csinál neked kommunkiációs portot, amit jóval egyszerűbb használni piccel, és a PC-n is csak egy + COM portod lesz amit szintén gyerekjáték kezelni az USB-hez képest.
:gumicsirke: szerintem
(#) Gory válasza szcs hozzászólására (») Júl 3, 2008 /
 
Van benne 10 csatornás multiplexelt A/D konverter. A te céljaidnak bőven megfelelő képességgel.
Ellenállást valószínűleg a jó öreg Ohm törvény alapján tudsz mérni. Ehhez ismert áram és feszültségérték kell, amit az ellenállásokra adsz. Aztán a rajta eső feszültséget az A/D konverzió már kiadja, ebből kiszámolod az ellenállást.
Az egy más téma hogy adsz referencia áramot. Referencia feszültséget referencia IC-vel meg tudod oldani, de szerintem találsz erre már kapcsolást a neten.

A PIC-re való feltöltést és egyebeket azt a cikkjeimben megtalálod. A hozzá való szoftvert nem fogod tudni lehúzni sehonnan. Ez nem úgy működik hogy van egy kész program direkt neked erre megírva. Azt magadnak kell megírnod valamelyik gyáriból kiindulva mondjuk.

Sorosportként is tudod kezelni a PC felől ezt a IC-et, a cikkekben ezt pontosan meg is találod. De első nekifutásra én sem javasolnám, mert látom hogy nem vagy teljesen tisztában hogy mi az a mikrokontroller.
(#) Feri007 válasza Báddzsó hozzászólására (») Júl 3, 2008 /
 
Még mielőbb vallásháborúba torkollna a vita:
a) soros-USB, (FTDI chip) konverzió esetén valószínűleg assemblyben kell dolgoznod,
b) Mig a PIC18F2550/4550 esetén C-ben.

Én tök hülye voltam minkettőhöz, a "b" megközlítéssel pár nap alatt meg tudtam csinálni, amit akartam.
Assemblyben nem biztos....

A "b" megoldáshoz kelleni fog a MPLAB, plussz C fordító, letölthető a Microchip-től.
Programozónak ilyen szinten PicKit v ICD2 kell. Az előbit inkább megvenni, az utóbbit talán utánépíteni érdemes.

A feszültség - ellenállás összefüggéshez az Ohm-törvényt kell segítségül hívni.
Csinálsz egy áramgenerátort, az A/D konverterrel méred a feszültséget.
(#) Báddzsó válasza Feri007 hozzászólására (») Júl 3, 2008 /
 
Idézet:
„Még mielőbb vallásháborúba torkollna a vita: a) soros-USB, (FTDI chip) konverzió esetén valószínűleg assemblyben kell dolgoznod,”

ez most honnan? legtöbb nyelven lehet a 16F690et progizni, basic, c, meg ugye assembly.
ftdi-t meg nem kell nyelven progizni csak kipipálgatni a felrprogramozó szoftverében a dolgokat.
(#) Gory válasza Báddzsó hozzászólására (») Júl 3, 2008 /
 
Gondolom nem fog SMD IC-ket forrasztgatni.
Én azt javasolnám hogy soros portra írjon meg mindent. Egy neki tetsző kontrollerrel meg neki tetsző PC-s programmal. Aztán gyári USB-soros kábel és kész.
(#) Gafly válasza szcs hozzászólására (») Júl 3, 2008 /
 
> Pl van-e olyan, hogy több csatornás USB-s AD konverter?

Nagyon sok van, keress ra a neten a kovetkezo (vagy hasonlo) kulcsszavakra:

- USB DAQ
- USB measurement devices
(#) Feri007 válasza Báddzsó hozzászólására (») Júl 3, 2008 /
 
Arra szándékoztam utalni, hogy a PIC USB CDC-hez adott mintaprogram PIC18F2550/4550-hez, 90%-ban tartalmazza a feladat megoldását.
Persze, minden PIC-et lehet mindenféle nyelven programozni, de az adott feladathoz én a "b" megoldást találom legkézenfekvőbbnek, nulla PIC-es felkészültségről. Szerintem
De majd szcs kolléga tájékozódik, és a neki legjobban fekvő/tetsző megoldást választja.
(#) proba válasza szcs hozzászólására (») Júl 3, 2008 /
 
Lehet találni soros vonalon vezérelhető AD átalakítókat + egy usb/soros port átalakító.Ezekhez "csak" a PC -s progit kell megírni.(bár ezt egyszerűbb lenne printerporton)
(#) Feri007 válasza Gafly hozzászólására (») Júl 3, 2008 /
 
> Van-e olyan, hogy több csatornás USB-s AD konverter? Nagyon sok van

Ó, igen én is innen indultam, találtam is Velleman kit-et a feladatra, aranyáron, erős kompromisszumokkal. Viszont a PC oldali program is megvan hozzá. Ha pénz nem/kevésbé számít, gyorsan célhoz lehet érni vele.
(#) szilva válasza Feri007 hozzászólására (») Júl 3, 2008 /
 
Amúgy amikor elkezdtem a PIC-ek USB-s dolgaival foglalkozni, akkor ezt a progit belenyomtam a próbapanelemen lévő 4550-be, és kipróbáltam, működött. Lehet, érdemes lenne megnézni és reszelni a forráson, hogy kezeljen 10 analóg vonalat.

PC oldalról meg egy progival kell lekérdezgetni rendszeresen, virtuális soros portot csinál.

Bővebben: Link
(#) Feri007 válasza szilva hozzászólására (») Júl 3, 2008 /
 
> ...ezt a progit belenyomtam a próbapanelemen lévő 4550-be,

Én azt csináltam, hogy a Microchip-es CDC C-forrásban átirtam a user.c-t ennek alapján, plussz a saját igények, ez megy jelenleg. A Link-alatt lévő forrás nem fordult le,
azért történt ez. Lusta voltam keresgetni a problémát...
(#) szcs válasza proba hozzászólására (») Júl 3, 2008 /
 
Nem tudom árnyalja-e a feladatot, hogy MATLABbal szeretném gyűjteni és feldolgozni az adatokat. Ebből a soros port kezelése nagyon egyszerű, elvileg az USB-hez is van támogatás, bár azt még nem próbáltam.

Még a feladathoz annyi tartozik hozzá, hogy nagyon kis méretben szeretném megoldani, az optimális egy 1,5*5 cm terület lenne.

A PIC-es megoldás most nekem elsőre kicsit bonyolultnak tűnik, de azért tetszene, mert ha később egy-két új funkciót akarok bele (bár ez nem valószínű), akkor azzal talán egyszerűbb.

Tehát ha a PICes vonalon indulok el akkor ha jól értem ezekből áll össze a feladat:
hardver:
- 4550(2550)-es PIC, egy-két beállító alkatrész, oszcillátor stb.
- áramgenerátor IC, aminek az áramát áthajtom az ellenállásokon, az eső feszültséget mérem a PIC analóg bemeneteivel.
- A PIC megfelelő lábai közvetlen USB csatira, ami megy a PC felé.

szoftver:
- a PIC gyári programjából kiindulva azt testreszabni, PICet ezzel felprogramozni
- virtuális soros port, azaz az USB sorosnak látszódik, tehát a MATLABbal simán tudom fogadni az adatokat.
Mi csinálja itt a virtuális soros portot?

Talán a kérdéseimből nagyjából belőttétek már, hogy milyen szinten értek ehhez. Mit gondoltok, melyik pont az ahol meg fogok izzadni, esetleg elvérezhetek, ha nem figyelek oda?
(#) Gory válasza szcs hozzászólására (») Júl 3, 2008 / 4
 
A virtuális soros portot egy driver csinálja, amit fel kell telepíteni mikor először csatlakoztatod a géphez a cumót. Nem nagy valami, egy fájl az egész.
A PIC-be pedig a CDC firmware-ből kiindulva kell a programot meggyártanod.

Egyébként tisztességes USB-ként is tudod ezt a PIC-et kezelni. Akkor egy DLL-en keresztül tudod a windows megfelelő függvényeit elérni hozzá. Ilyenkor a Custom firmware kell neked.

Ahol el fogsz vérezni az a 1,5*5 cm a PIC SMD változata is alig fér el 1,5 cm-ren. nemmég a többi kacat.
Másik pontja pedig a PIC programjának megírása, ha sose láttál még PIC-et. Elleszel vele egy darabig ha nincs segítséged. Bár a cikkek alapján talán menni fog. Az A/D konverzió kódja például ott van. Csak a 10 A/D multiplexelve van, azokat felváltva kell használnod, plusz beállítgatnod a lábakat Analog IO-ra. A PIC adatlapját nem árt jól felfogni.

(#) trudnai válasza szcs hozzászólására (») Júl 3, 2008 /
 
Vegyel egy Joystick - USB atalakitot es a programodbol a HID-es Joy-t kerdezgesd le. Nem emlekszem most fejbol ezek hany potit szoktak lekezelni de max veszel ket atalakitot

Amugy meg igen, PIC-es buheralas is mehet, pl a Microchip USB firmeare-jet felhasznalva asszem van is pelda Joy-ra - kisse atalakitva a dolgot biztos hasznalhatova lehet tenni.
(#) szcs válasza Gory hozzászólására (») Júl 4, 2008 /
 
A DLL is jó, a MATLAB elvben szintén tudja kezelni.

Viszont akkor fordítok egyet a dolgon. Van itt olyan szaki, aki ráérős idejében (gondolom egy délutánja ráfordításával) összedobná nekem a cuccot némi ellenszolgáltatás fejében?
(#) kaszarobert válasza watt hozzászólására (») Júl 4, 2008 /
 
Valahogy így képzeltem printerrel, de belátom game porttal az AD rész megspórólható:

Négy bemenő bit van a printer porton, az elé sajnos egy egyszerű AD átalakító kell, ezt akár egy számlálóval, vagy néhány műverősítővel is tudsz csinálni. (Egyébként ez a nehezebb fele a dolgoknak, és amint láttam a gameportot ti is használhatóbnak itélitek meg, bár nem olvastam végig:bocs stb.)

Ha van négy bites értéked az ellenállás értékéről, akkor a port kimenő bitjeivel bittel kiválasztod, hogy egy elektromosan vezérelt kapcsolóval, melyik ellenállást mérje éppen. (1 icben 4db*3 az 12kapcsoló az nem túl drága+ 1db demultiplexer).

A programozási része ezek után nem túl nehéz.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem