Fórum témák

» Több friss téma
Fórum » Rádiós távirányítású kisautó
Lapozás: OK   1 / 2
(#) RoboCop hozzászólása Jún 28, 2005 /
 
Sziasztok !

Feladatom egy számítógéppel távolról vezérelt kisautó megépítése. Tudjon előre, hátra, jobbra, balra menni. Továbbá tudjon dudálni, ha akarom.
Van valakinek ehhez hasonló tapasztalata ?
Érdemes ehhez PIC vezérlőt használni, vagy van-e egyszerűbb megoldás ?
Ha igen, akkor mi ? Illetve milyen PIC controller a legoptimálisabb és legköltséghatékonyabb erre a feladatra ?
Milyen rádiós eszközök ismertek, amelyekkel könnyű a számítógép és a kisautó közötti kommunikációt megvalósítani ?

Válaszokat előre is köszönöm !

Bye, Gyuri
(#) Topi válasza RoboCop hozzászólására (») Jún 28, 2005 /
 
Hali!

Én egy olyan korrekt megoldást javasolnék, amiben a következőkre lesz szükséged.

2 db PIC (PIC16F84)
Egy Conradnál kapható Tx,Rx kommunikációs rádiós modult. Ez azt hiszem 433MHz-en kommunikál, pont a kisautók nyílt frekijén.
A két pic azért kell mert az egyik
A sorosporti jeleket alakítja át saját kommunikációs nyelvre.
Ezt ezutánegy adóra kell rávezetni.
A vevő részére meg dobsz megint egy PIC et, ami meg a saját kommunikációdat fordítja vissza TTL jelekké. Ebből 8 csatornát tudsz csinálni, azon belül, hogy melyik csatornán mi van, pl. motor, lámpa, kanyar. Azt már a PC szoftware határozza meg.

Igazából az adó modulnál található PIC et el is lehet hagyni, csak kellegy szint illesztő áramkör, mert a sorosport jeleit közvetlenül lehet rádiófrekire tenni.

Ha gondolod rajzolok egy tömbvázlatot...
Végülis összességében kell egy Tx,Rx mudul: 3EFt, kell 1 db PIC16F84 és készvagy. A kanyarodáshoz meg én azt javaslom ne építs kormány rendszert, hanem van egy olyasfajta meghajtás a motorokhoz, amit úgy neveznek hogy híd meghajtás.
És itt pont azt fogod tudni kihasználni, hogy az egyes kerekek külön tudnak előre/hátra menni. Ezzel el tudod érni, hogy a kocsi vagy robot meg tudjon egyhelyben fordulni... Mert ha az egyik kereket előre forgatod, a másikat hátra akkor egyhelyben a közös tengely körül meg fog fordulni a kívánt irányba... És ráadásul ha PIC l csinálod, akkor lehet még sebességszabályzást is csinálni a pic D/A konverterével...

Lehet hogy egy kicsit értetlen voltam, vagy gyors, szép lassan rágd át ha nem értesz valamit vagy kérdezz.

Üdv. Topi.
(#) RoboCop válasza Topi hozzászólására (») Jún 28, 2005 /
 
Jó ötletnek tartom, amit javasoltál.
Még az lenne a kérdésem, hogy a
PIC16F84 és adó, illetve PIC16F84 és vevő között hogyan állíthatom be, hogy milyen sebességgel folyjon a kommunikáció (bit/s) ?
Erre a külső órajel használata jó megoldás ?
(#) Topi válasza RoboCop hozzászólására (») Jún 28, 2005 /
 
9600... A legkisebb bitrátán kell küldeni.
A sorosporti kommunikációnál az b?ven elég... 104us elég egy bit átküldéséhez...
Amúgy meg nem kell semmit különlegesen összehangolni, mert a sorosporti kommunikáció start+stop bit szerkezet?... azaz nincs igazán szinkronjel...
(#) RoboCop válasza Topi hozzászólására (») Jún 28, 2005 /
 
A PIC16F84 programját ha C-ben írom, akkor az nem gáz ?
Pillanatnyilag PiccLite-ot és MPLab-ot használok, ezek közül is a legfrissebeket.

Szóval, ha jól értem, akkor ezt a kommunikációt úgy kellene megoldanom, hogy ha soros porton érkezik 9600 bauddal adat, akkor lökje át a PIC a rádión ?
(#) Topi válasza RoboCop hozzászólására (») Jún 28, 2005 /
 
Na az elvi vázlata a következő... A sorosport jelet rádiófrekisen moduláljuk... A kisautóban meg demoduláljuk.

Mikor egy parancs érkezik, jön egy 1-es, vársz 104mikro sec et, és utánna jönnek rajta a bitek. az a 8 bit. Azután kapsz egy stop bitet. Szóval a PIC RA0-ra kell rávinni a jelet... Visszafele kommunikáció szerintem nem kell, mert csak oda irányú adat kell.... Vissza gondolom nem akarsz hozni semmi adatot. Azaz figyelni kell a RA0 bemenetet, és szépen füzögetni a biteket...

Itt van hozzá az soros kommunikáció unit. Én assemblyben szoktab dolgozni de a lényeg világosan látszik ebből is:
  1. ;Serial routines
  2.  
  3.                 cblock  0x20                    ;start of general purpose registers
  4.                         Xmit_Byte               ;holds byte to xmit
  5.             Rcv_Byte            ;holds received byte
  6.             Bit_Cntr            ;bit counter for RS232
  7.             Delay_Count         ;delay loop counter
  8.                 endc
  9.  
  10. SER_INIT
  11.             BSF     STATUS, RP0           ;select bank 1
  12.             BCF     SER_TRIS, SER_OUT     ;set B6 as an output
  13.             BSF     SER_TRIS, SER_IN      ;set B7 as an input
  14.             BCF     STATUS, RP0           ;select bank 0
  15.             BSF     SER_PORT, SER_OUT     ;set SER_OUT high
  16.             RETURN
  17.  
  18. XMIT_RS232  MOVWF   Xmit_Byte             ;move W to Xmit_Byte
  19.             MOVLW   0x08                  ;set 8 bits out
  20.             MOVWF   Bit_Cntr
  21.             BCF     SER_PORT, SER_OUT
  22.             CALL    Bit_Delay
  23. Ser_Loop    RRF     Xmit_Byte , f         ;send one bit
  24.             BTFSS   STATUS    , C
  25.             BCF     SER_PORT, SER_OUT
  26.             BTFSC   STATUS    , C
  27.             BSF     SER_PORT, SER_OUT
  28.             CALL    Bit_Delay
  29.             DECFSZ  Bit_Cntr  , f         ;test if all done
  30.             GOTO    Ser_Loop
  31.             BSF     SER_PORT, SER_OUT
  32.             CALL    Bit_Delay
  33.             RETURN
  34.  
  35. Rcv_RS232   BTFSC   SER_PORT, SER_IN      ;wait for start bit
  36.             GOTO    Rcv_RS232
  37.             CALL    Start_Delay           ;do half bit time delay
  38.             BTFSC   SER_PORT, SER_IN      ;check still in start bit
  39.             GOTO    Rcv_RS232
  40.             MOVLW   0x08                  ;set up to read 8 bits
  41.             MOVWF   Bit_Cntr
  42.             CLRF    Rcv_Byte
  43. Next_RcvBit CALL    Bit_Delay
  44.             BTFSS   SER_PORT, SER_IN
  45.             BCF     STATUS    , C
  46.             BTFSC   SER_PORT, SER_IN
  47.             BSF     STATUS    , C
  48.             RRF     Rcv_Byte  , f
  49.             DECFSZ  Bit_Cntr  , f         ;test if all done
  50.             GOTO    Next_RcvBit
  51.             CALL    Bit_Delay
  52.             MOVF    Rcv_Byte, W
  53.             RETURN
  54.  
  55. Start_Delay MOVLW   0x0C
  56.             MOVWF   Delay_Count
  57. Start_Wait  NOP
  58.             DECFSZ  Delay_Count , f
  59.             GOTO    Start_Wait
  60.             RETURN
  61.  
  62. Bit_Delay   MOVLW   0x18
  63.             MOVWF   Delay_Count
  64. Bit_Wait    NOP
  65.             DECFSZ  Delay_Count , f
  66.             GOTO    Bit_Wait
  67.             RETURN
  68.  
  69. ;End of serial routines


Ezután van a waites unit:
  1. ;Delay routines
  2.  
  3.                 cblock  0x20                    ;start of general purpose registers
  4.                         count                   ;used in looping routines
  5.                         count1                  ;used in delay routine
  6.                         counta                  ;used in delay routine
  7.                         countb                  ;used in delay routine
  8.                 endc
  9.  
  10. Long_Delay
  11.                 call    Delay255
  12.                 call    Delay255
  13.                 call    Delay255
  14.                 call    Delay255
  15.                 return
  16.  
  17. Delay255        movlw   0xff            ;delay 255 mS
  18.                 goto    d0
  19. Delay100        movlw   d"100"          ;delay 100mS
  20.                 goto    d0
  21. Delay50         movlw   d"50"           ;delay 50mS
  22.                 goto    d0
  23. Delay20         movlw   d"20"           ;delay 20mS
  24.                 goto    d0
  25. Delay10         movlw   d"10"           ;delay 10mS
  26.                 goto    d0
  27. Delay1          movlw   d"1"            ;delay 1mS
  28.                 goto    d0
  29. Delay5          movlw   0x05            ;delay 5.000 ms (4 MHz clock)
  30. d0              movwf   count1
  31. d1              movlw   0xC7
  32.                 movwf   counta
  33.                 movlw   0x01
  34.                 movwf   countb
  35. Delay_0         decfsz  counta, f
  36.                 goto    $+2
  37.                 decfsz  countb, f
  38.                 goto    Delay_0
  39.  
  40.                 decfsz  count1  ,f
  41.                 goto    d1
  42.                 retlw   0x00
  43.  
  44. ;end of Delay routines


És végül itt a használatára egy főunit...
Az rs232lib.inc a felső kód.
Az rs232delay.inc a második kód. Ezek vannak belinkelve.

Ja és itt a főunit:
  1. LIST P=16F84
  2.  #INCLUDE "P16F84.INC"
  3.  ERRORLEVEL     0,      -302    ;suppress bank selection messages
  4.  __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF
  5.  
  6.         cblock  0x20                    ;start of general purpose registers
  7.                 endc
  8.  
  9. SER_PORT        Equ     PORTA
  10. SER_TRIS        Equ     TRISA
  11. SER_IN          Equ     0x00
  12. SER_OUT         Equ     0x01
  13.  
  14.         org     0x0000
  15.  
  16.  
  17. start   clrf    count
  18.                 clrf    TRISB ;összes kimenet
  19.                 clrf    PORTA
  20.                 clrf    PORTB  
  21.                 call    SER_INIT                ;initialise serial port
  22.                 call    Long_Delay              ;wait about 1 second
  23.  
  24. Loop    call    Rcv_RS232
  25.                 movwf   PORTB
  26.                 goto    Loop
  27.  
  28.                
  29.         include "rs232lib.inc"                  ;include the defaults for the chip
  30.         include "rs232delay.inc"                ;include the defaults for the chip
  31.  
  32.                 end
(#) mspike válasza Topi hozzászólására (») Jún 30, 2005 /
 
Az adó oldalon tök jó a dolog, de szerintem használhatna Microchip adó chipet a cuccos, és az autóban lehetne rf12F675 sorosan programozható PIC van 5 szabadon használható I/o portja és beépített rf vevő, jószerivel csak az anternát kell rábiggyeszteni, ha jól tudom 608HUF most a chipcadnél... szerinetm így egyszerűbb mint vevő oldalon is összekötni egy vevőt + egy 16F84-et... mit gondoltok ? (pontot nem kérek érte !)
(#) mspike válasza mspike hozzászólására (») Jún 30, 2005 /
 
Hülye vagyok most látom itt nem is az a sztory Szóval pont téma stornó
(#) Topi válasza mspike hozzászólására (») Jún 30, 2005 /
 
Nembaj... ?színtén? Én nem is tudtam hogy van ilyen IC-je a microchip-nek...
De ha ez valóban jó, akkor szerintem ez a legolcsóbb és legegyszerább megoldás... Ha meg több kimenet kell, akkor még mindig lehet rá tenni pl egy BCD - Decimal IC-t azt hiszem ez a 7447 es TTL... de ebben most nem vok biztos... Szóval azzal meg az 5 portból 11et lehet csinálni... és mégtöbbet...
(#) RoboCop válasza mspike hozzászólására (») Jún 30, 2005 /
 
Egyelőre azon vagyok még, amit Topi mondott a felépítésről.
Úgy döntöttem, hogy a vevő és adó oldalon is lesz egy-egy mikrovezérlő a további bővíthetőség érdekében.

A programmozással nálam nincsen gond, egyedül a hardver az ami kifog rajtam, mivel most először fogok ilyen nagyléptékű melóba. Magyarul még sohasem használtam PIC-et ...

Érdemes-e venni egy olyan égetőt, amiben vannak próba ledek, meg kapcsolók ?
A beégetés az még ok, hogy kell hozzá beégető áramkör, de milyen áramkört érdemes a sorosport és PIC kommunikációjára használni ? Van valakinek egy jó sémája ?

Másik kérdés: adott az rádiós adó modul. Ezt galvanikusan kell elzárni a PIC vezérlőtől ? Illetve honnan veszi a tápot az adó modul ?
(#) Topi válasza RoboCop hozzászólására (») Júl 1, 2005 /
 
Akkor sorjában...

Nem kell venni semmi égetőt, mert az bazi drága... Ott vannak a kapcsolások oldalon egy PIC égető. Soros portos, nagyon egyszerű... Olvasd el melyiket kell megépítened a cikkben szereplőkből.
Ha azzal készen vagy, akkor belenyomod a programot az égetővel és egy IC-prog nevű progival. Amíg nincs égetőd addig a mplab-al is tudsz szimulátor üzemmódban szüttyögni, és látod hogy hogy műxik amit csináltál...

Az adó oldalon tök mindegy honnan de kell stabil 5V. a pic nek és a max232 es ic nek. MAX232 és PIC16F84 összekapcsolására van a neten töméntelen kapcsrajz fuss át párat...

Próbapanelt meg találsz az ICD2 nevű tudástártémában, ott van a playpic nevő. Az a legjobb... Egyszerű és nagyszerű...

A PIC et meg nem kell elválasztani... Annak van egy TTL szintű bemenete, azt egyből rá tudod kötni a PIC re. Ha félted a PIC edet használj 4N25ös optocsatolót, de szerintem semmi szükség nincs rá. Csak ha nem akarod szétmolyolni...
(#) mspike válasza Topi hozzászólására (») Júl 12, 2005 /
 
Figyi vevő oldalon szerintem mindenkép egyszerűbb az egybe épített cucc... rfP12F675 igaz csak 5I/O lába van de ha elég akkor tuti egyszerűbb mint variálni, de olcsobbnak tuti olcsóbb... Igaz a programozása biztos bonyásabb... meg nem tudok rájönni mekkora antenna kell neki, pedig van róla doksi fent... na 8 majd lesz pénz beszerzek kettőt azt kipróbázom nektek
(#) pintad válasza RoboCop hozzászólására (») Júl 12, 2005 /
 
Én is gondolkoztam már ilyenen, szentem úgy lenne megoldható hogy LPT port vezérli egy bármilyen kisautó rádiós távirányítóját, úgy, hogy a gombok helyére pl. relét raksz. És kész, már csak a programot kell megírni...

És még azt is hozzáteheted hogy a www.bss.fw.hu-n található kis távú TV adót megépíted aztán, az autóra szereled egy kamerával együtt, és tévén "kinézhetsz" az autóból
(#) RoboCop válasza Topi hozzászólására (») Júl 20, 2005 /
 
Ezek közül melyiket előnyösebb választani ?

- PIC16F84A-04/P
- PIC16F84A-04/SO
- PIC16F84A-04I/P
- PIC16F84A-04I/SO
- PIC16F84A-20/P
- PIC16F84A-20/SO
- PIC16F84A-20/SS
- PIC16F84A-20I/P
- PIC16F84A-20I/SO

Ezeket is lehet az itt közölt égetős kapcsolással programozni ?

Mi a különbség a PIC16F84 és
PIC16F84A-04/P, illetve a P és SO között ?
(#) Topi válasza RoboCop hozzászólására (») Júl 20, 2005 /
 
Neked a PIC16F84A-04/P kell. A P az a DIP tokozás a SO az SMD tokozás.
(#) Penge válasza RoboCop hozzászólására (») Júl 25, 2005 /
 
Itt 1 link sztem hasznalható!
http://jap.hu/electronic/codec.html
Én is most barátkozok vele.
(#) tgpetrjan hozzászólása Ápr 30, 2007 /
 
sziasztok
ez a vezérlés már régóta foglalkoztat sztetek nem lehetne Pic nélkül megoldani mert nagyon nem értek hozzá
(#) novarobot válasza tgpetrjan hozzászólására (») Máj 28, 2007 /
 
szia

a rádiós részéere csak az tudom mondani hogy vegyél egy kisautót azt szed ki belöle a távirányítót, viszont a számítógépes vezérlés részében tudok segiteni ha kel.

különben it a forumon miis hasonlóval foglalkozunka a fűnyíró robot c. topic-ban Bővebben: Link

novarobot
(#) molnar01 válasza Topi hozzászólására (») Szept 24, 2009 /
 
Hí!

Nekem is hasonló feladatom volna amihez segítséget szeretnék kérni!

Tudnánk erről értekezni??
(#) Tyson5 hozzászólása Szept 21, 2016 /
 
Sziasztok!

Hobbi szinten foglalkozok, illetve foglalkozunk a programozással az iskolában, kisebb dolgokat már megcsináltunk pl vonalkövető kiskocsi, de úgy tűnik most nagy fába vágtuk a fejszénket. Egy távirányítós kiskocsit szeretnénk összehozni. Az autón csak 2 motor van (kormánymű, illetve meghajtás), ezt szeretnénk egy távirányítóval irányítani. Először csak 2 jelet szeretnénk elküldeni, ez az lenne, hogy 0 és 1.
Ez összejött a kereskedelemben kapható WirtualVire (azt hiszem ez a neve) könyvtárral és a hozzá tartozó adó-vevő egységekkel, de a leírt 100m hatótáv kissé alulmúlta az elvárásainkat a maga 1-2méterével.
Gondoltunk autós transmitterre is (pendrive-ról beolvassa a zenét és lejátszható bármilyen rádióval), ez kb. 30m-t tud, de elég nehezen lehetne megvalósítani a beolvasást. Nekem 10m is elég lenne. Mit ajánlotok?
(#) pucuka válasza Tyson5 hozzászólására (») Szept 21, 2016 /
 
Talán az adó-, és a vevőmodul antennáit kéne rendbe tenni.
De ez a téma bőven elfért volna valamelyik távirányítós topikba is. Ott esetleg bővebb információkat is találhatsz.
(#) Tyson5 hozzászólása Szept 21, 2016 /
 
Fizikatanárommal kiszámoltuk milyen hosszúságú antenna lenne a legoptimálisabb a frekvenciához, de ezzel is kb. fél métert nyertünk
(#) pucuka válasza Tyson5 hozzászólására (») Szept 21, 2016 /
 
Akkor gyanús, hogy hangolási probléma van. Az RF modulok adatlapján ott van, hogy mekkora antenna szükséges.
De tényleg, kérd a moderátoroktól a hozzászólásod áthelyezését. (az új hozzászólás alatti nyíl lenyitásával)
A hozzászólás módosítva: Szept 21, 2016
(#) pucuka válasza Tyson5 hozzászólására (») Szept 21, 2016 /
 
Így már mindjárt más.
De azért ez így egy eléggé ágyúval verébre projekt. Erre a feladatra vannak céláramkörök, Pl. RX2, TX2 és társai, ezek párban vannak. Általában négy-öt funkciót képesek kapcsolni.
Mikrovezérlőkkel komolyabb távirányítást lehet készíteni, ilyenkor a távvezérlőben, és a távvezérelt eszközben is mikrovezérlő leledzik, melyek között rádiós adatátvitel van. Ezzel sokkal több funkció valósítható meg, és még az arányos (pl sebesség) vezérlés is.
A hozzászólás módosítva: Szept 21, 2016
(#) Tyson5 hozzászólása Szept 21, 2016 /
 
Nyilván több adatot is át fogunk küldeni, összesen kb. 30 érték lehetséges, melyet 1, max. 2 változóban adok meg, de nem is ez a lényeg, magát a programot megcsináljuk, de a távolsággal vannak gondok. Elég komoly gondok...
(#) pucuka válasza Tyson5 hozzászólására (») Szept 21, 2016 /
 
Azt azért lehet-e tudni, milyen RF modulokat használsz?
(#) Tyson5 hozzászólása Szept 21, 2016 /
 
Ezen a linken megtaláltok róla mindent. Sajnos csak angol nyelven van, amit én nem nagyon értek, de sikerült így is 2 különböző értéket elküldeni egy hasonló programmal, mint amilyen ez is.
(#) Kékróka válasza Tyson5 hozzászólására (») Szept 22, 2016 /
 
Ilyen rádiócskákkal mennek a távirányítós kapuk is. Szeretik a külső antennákat ha nem tiszta a terep vagy nagyobb a távolság.
Bluetooth-ot neki, és a számítógépes oldal már készen is van, HC-06 -os modulka mondjuk egy arduino nanoval a kiskocsiba. Persze a 100 méter elvárása enyhe túlzás lenne.
(#) pucuka válasza Tyson5 hozzászólására (») Szept 22, 2016 /
 
Hogy mindent, az enyhe túlzás.
Én nem látom hogy milyen modulokat használnak, csak azt, hogy vannak. Te milyen RF modulokat használsz?
(#) Tyson5 hozzászólása Szept 23, 2016 /
 
http://www.ebay.com/itm/Arduino-Mcu-433Mhz-RF-Wireless-Transmitter-...dXtBUA
Pontosan ez a modul van benne, csak itt találtam hozzá pontos leírást. Próbáltuk antenna nélkül, illetve hosszú és rövid antennával is, de a max. távolság sem volt több 2-3m-nél. Nem kell 100m, nekem bőven elég lenne 10-15m is.
Következő: »»   1 / 2
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