Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[EL] radiogestuurde auto via joystick/pc met PIC

Pagina: 1
Acties:

  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
Wel, omdat ik interesse heb voor PIC's en dat soort zaken, zou ik graag een projectje willen doen, ik leg ff kort uit wat mijn bedoeling is:

Afbeeldingslocatie: http://www.theforumisdown.com/uploadfiles/0103/ibex-radiocontrol-v2.gif

Ik maak een 'controlbox', welke ik aansluit op de parallelle poort, op de controlbox zit een aansluiting voor een joystick. in de controlbox zit het 'bakje' van de radiogeleide auto verwerkt.
De controlbox zou moeten werken met een PIC zoals de 16F628 :) de PIC zou moeten eerst en vooral moeten kijken of op de joystickpoort een joystick is aangesloten.

Is dit WEL zo, zou de controlbox de bewegingen van de joystick moeten doorvoeren naar de zendmodule van de auto, dus dit eventueel via transistors. Bovendien moet de PIC de bewegingen van de joystick ook naar de parallelle poortzenden, zodat zelfgeschreven software de beweging kan tonen op het scherm. Wanneer de joystick NIET is aangesloten, zou de PIC moeten kijken naar signalen op de parallelle poort, daarop kan ik via een programma dat ik zelf wil schrijven de auto besturen.

Eventueel zou het leuk zijn moest het programma de bewegingen van de auto kunne recorden, zodat eerder uitgevoerde en opgenomen 'moves' later kunnen worden afgespeeld.

Natuurlijk zou de auto voorlopig enkel voor/achter/links/rechts of gecombineerd moeten kunnen rijden.


Nu; dit roept enkele vragen op...
  1. Is het te controleren of er al dan niet een joystick is aangesloten?
  2. Zijn de signalen van een joystick vrij standaard, zodat ik makkelijk kan analyseren welke (voor/achter/links/rechts) commando's worden gegeven?
  3. Is het wel mogelijk op met een PIC16f628 en/of een PIC16f84A deze schakeling te maken?
  4. Is het mogelijk om eventueel op de een of andere manier de draaiingen van de wielen (links/rechts) later zonder al te veel veranderingen soepel te laten werken? dus dat ik op de een of andere manier de wielen traploos kan draaien?
  5. Is het mogelijk om gegevens uit de paralelle poort te lezen en deze in een "routefile" te schrijven zodat ik deze moves achteraf kan laten herhalen door de computer zonder dat ik er zelf iets aan doe. Ik bedoel dan een file die er bijv. zo uitziet?
    4 sec vooruit
    3 sec rechtsvooruit
    1 sec stop
    5 sec achteruit
    1 sec stop
    10 sec rechtsachteruit
Reacties of tips ofzo over het ID zijn natuurlijk altijd welkom :) Eventueel kan ik later wanneer is echt begin, een EiP openen (Electronics in Progress) :)

[ Voor 5% gewijzigd door Verwijderd op 08-10-2003 21:19 ]

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Ibex schreef op 03 October 2003 @ 17:31:
1) Is het te controleren of er al dan niet een joystick is aangesloten?
Dit lijkt me wel mogelijk, omdat de joystick ook een +5v en ground heeft. Als daar stroom doorheen gaat is er een joystick aangesloten.
2) Zijn de signalen van een joystick vrij standaard, zodat ik makkelijk kan analyseren welke (voor/achter/links/rechts) commandos worden gegeven?
Deze zijn inderdaad redelijk standaard, het werkt gewoon met een x en een y waarde:

PC Gameport met Midi/ForceFeedback
Afbeeldingslocatie: http://www.hardwarebook.net/images/conn/dsub15f.gif (15 pin D-sub female op de computer)
Afbeeldingslocatie: http://www.hardwarebook.net/images/conn/dsub15m.gif (15 pin D-sub male aan de kabel)
PinNaamOmschrijving
1+5V+5 VDC
2/B1Button 1
3X1Joystick 1 - X
4GNDGround
5GNDGround
6Y1Joystick 1 - Y
7/B2Button 2
8+5V+5 VDC
9+5V+5 VDC
10/B4Button 4
11X2Joystick 2 - X
12MIDITXDMIDI Transmit
13Y2Joystick 2 - Y
14/B3Button 3
15MIDIRXDMIDI Receive

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
          Joystick B             ____      Joystick A
                                /    |
                              /      |
                            /        |
                          /       1  |
                         |        O------- 5 Volt
              5 Volt -------O        |
                         |  9     2  |
                         |        O------- Button
              Button -------O        |
                         |  10    3  |
                         |        O------- Resistor X-axis
     Resistor X-axis -------O        |
                         |  11    4  |
                         |        O------- Ground
            MIDI TXD -------O        |
                         |  12    5  |
                         |        O------- Ground
     Resistor Y-axis -------O        |
                         |  13    6  |
                         |        O------- Resistor Y-axis
              Button -------O        |
                         |  14    7  |
                         |        O------- Button
            MIDI RXD -------O        |
                         |  15    8  |
                         |        O------- 5 Volt
                          \          |
                            \        |
                              \      |
                                \    |
                                  \__|

Deze (analoge) signalen moet je nu dus naar de parallelle poort laten gaan. Een schema daarvoor:

Afbeeldingslocatie: http://www.tweakers.net/ext/f/11797/full.gif

Zie ook deze website.
4) Is het mogelijk om eventueel op de een of andere manier de draaiingen van de wielen (links/rechts) later zonder al te veel veranderingen soepel te laten werken? dus dat ik op de een of andere manier de wielen traploos kan draaien?
Dit snap ik niet helemaal, je vertelt namelijk nergens hoe je de wielen aan gaat sturen. Steppers, servo's, iets anders?
5) Is het mogelijk om gegevens uit de paralelle poort te lezen en deze in een "routefile" te schrijven zodat ik deze moves achteraf kan laten herhalen door de computer zonder dat ik er zelf iets aan doe.
Dit is goed te doen, je stelt een timer in die elke 100ms (ik noem maar wat) de status van de parallelle poort checkt. Bij elke richting verandering start je een timer en schrijft de huidige stand van de timer in een bestand. Zie voor het programmeren van de poort: De Parallelle poort FAQ. Het feit dat je geen interrupts kunt gebruiken is hier niet zo'n probleem.

Veel informatie over de joystick aansluitingen en de poort zelf is hier te vinden: http://www.epanorama.net/documents/joystick/pc_joystick.html.

Succes en mij zul je nog wel horen in dit topic ;)

[ Voor 28% gewijzigd door Verwijderd op 09-10-2003 13:18 ]


  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
OK, dus ff veriefieren of ik het princiepe van die joystick snap:
Wanneer ik met men autotje vooruit wil, zal ik de Y-as van de joystick van waarde laten verhogen, dus pin 6 zal een waarde tussen 0 en 5V aannemen, afhangkelijk van hoever ik de joystick naar voor duw. De Pic zal dit signaal voor een 1 aanzien van zodra deze waarde tussen 2 en 5V valt als ik het goed voorheb. Met andere woorden, op dat moment weet ik dat de gebruiker een "Ik wil vooruit" signaal geeft.
Dan laat ik dit naar een pin op de paralelle poort verzenden, zodat de software weet dat hij op het scherm visueel moet aangeven dat de auto vooruit gaat, bovendien zal de PIC dan ook moeten de auto laten vooruit gaan.

De auto is een radiogestuurd autootje, dus hoe dat op zich werkt hoef ik niet te weten, ik zal enkel de electronica in de afstandsbediening gebruiken, dus, ik zal de PIC een transistor laten schakelen. Die transistor zou dan moeten het vooruithendeltje imiteren, dus ik veronderstel dat dit hendeltje een analoge potmeter is met ongeveer het princiepe van de joystick. Maar om het voorlopig eenvoudig te houden zal ik dat gewoon het autotje volle kracht vooruit laten rijden.

Het zou echter wel de bedoeling zijn dat de signalen zoveel mogelijk via de PIC passeren, omdat ik analoge signalen van de joystick zo rap mogelijk wil omzetten in digitale signalen, zodat ik makkelijker kan werken. Eventueel zal ik later de snelheid laten variëren, maar voorlopig denk ik dat ik men handen meer dan vol zal hebben met dit concept.

Hoe de motor van het autotje werkt, doet hier niet zoveel toe, want ik zal enkel de "hendeltjes" op de aftsandsbediening moeten laten schakelen. Dit heb ik gekozen omdat ik me dan niet hoef te verdiepen in draadloze overdracht en het zelf knutselen van een autootje :)

In ieder geval al bedankt voor de nuttige info :)

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Je verhaaltje over de assen klopt volgens mij wel. Heb het niet uit kunnen testen, maar het idee is goed. Overigens kun je die analoge signalen dus ook gewoon direct je parallelle poort in laten gaan, deze zal dat ook gewoon als een 1 zien. Wil je ook nog de snelheid bepalen adhv de joystick word het natuurlijk wel lastig (want er is geen verschil tussen 0 en 1), maar daar was je zelf ook al achter :)

Je zou dit hele systeem "vrij eenvoudig" op de parallelle poort aan kunnen sluiten, maargoed, jouw doel is dus het leren begrijpen van de PIC :) Er gaan dan dus 4 statuslijnen van de poort naar de uitgangen van de PIC. Maar jouw vraag 4 snap ik nog steeds niet; wat bedoel je met het traploos laten draaien van de wielen? Dat doen ze toch zowieso?

Over die PIC, de 16F628 heeft ook 2 analoge ingangen. En inderdaad, dat is precies genoeg voor de assen ;) De overige 5 ingangen kun je dan gebruiken om de auto via de pc te bedienen.

[ Voor 20% gewijzigd door Verwijderd op 03-10-2003 19:07 ]


  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
idd, ik wil het doelbewust door een controlbox laten gaan om 1) met een PIC te kunnen en leren werken, das altijd wel interessant, en ook, omdat ik dan in princiepe de auto zal kunnen besturen zonder een pc, want als de joystick is aangesloten zal de PIC de besturing van de auto laten afhangen van de joystick, de signalen die naar de paralelle poort worden gezonden om dan de software visueel de richting te laten aangeven, zullen dan wel verloren gaan, maar goed, er werd ook geen interactie ofzo verwacht.

Over men vraag 4: het bakje van de auto die ik zal gebruiken beschikt over een 'stuurwieletje', wanneer je dit wieletje dus naar links draaid, draaien de wielen van de auto mee, dus zo kan je de wielen meer of minder laten draaien naargelang hoever je aan het wieletje op het bakje draaid (dit is dus traploos). Wat ik echter wil zeggen, is dat ik er in het begin zal vanuit gaan dat ik deze niet kan regelen (tussen volledig naar rechts, een beetje naar rechts, gewoon rechtdoor, een klein beetje naar links, wat meer naar links, helenmaal naar links,;..) maar dat ik gewoon kan zetten van: volledig links, midden(dus geen stuursignaal) en volledig rechts. omdat dit eenvoudiger zal zijn omdat ik dan deze met een simpele transistor kan laten schakelen vanuit de PIC.

Dat de 16f628 over 2 analoge ingangen beschikt wist ik niet, maar ik weet niet of ik die zal gebruiken, in de zin van, want zijn de mogelijkheden van deze ingangen? Voorlopig had ik het zo voor ogen: (ik ben ff fictief in de pinnummers, tis gewoon het princiepe)

joystick gaat naar voor: joystickpoort-pin3 krijgt 5V binnen, deze word naar de PIC gezonden, laten we zeggen, pin1. De PIC is ingesteld om, als de joystick is aangesloten (wat hij bvb merkt door de status van pin5) te reageren op pin1. De pic zal indien hij signaal krijgt op pin1, een "1" (of dus 5V) zetten op laten we zeggen, pin2 en pin3. Pin2 is op zijn beurt doorverbonden naar een transistor die verbonden is met de vroegere afstandsbediening en die laat dus de afstandsbediening de auto gas geven. Pin3 loopt dan naar bvb pin1 op de paralelle poort. De software, die deze poort in de gaten houd, weet dat wanneer er op pin1 een signaal staat, gij visueel moet weergeven van: de auto rijd vooruit.
Het princiepe bij de andere richtingen is gelijkaardig, combinaties zijn natuurlijk mogelijk.

Nu zal ik proberen om dit weekend eens op te zoeken welke pinnen op de poorten van belang zijn, en welke pinnen ik van de PIC kan gebruiken. Ik heb jammergenoeg te weinig kennis assembler om de status van pinnen "op te vragen", ik kan deze in assembler enkel instellen, dus ik denk dat ik zal moeten gebruik maken van JALcc, wat ik voorlopig nog niet kan laten compileren (het programma wil altijd een of andere standaardfile compileren).

Ik hoop dus in de loop van het weekend een schema te kunne posten waar de hele controlbox zou moeten in uitgetekend worden. Wellicht inclusief de nodige fouten, aangezien mijn kennis electronica, assembler, JALcc e.d. is gebaseerd op "wat prutsen". Apparatuur heb ik ooknog niet zoveel: ik heb een soldeerdbout plus soldeertin, ik een breadboard (of hoe dat ok mag heten), en that's it. Ik ga hopelijk van mijn opa een voeding, multimeter (analoog vrees ik) en een osiloscoop ter beschikking krijgen :)
In men bakje "electronicaspullen" ligt voorlopig enkel een printerpoort, wat draad, n ledje, n pic programmer, n 16f84a en een 16f628, 2 condensatortjes van 10µF, weerstandjes, enkele BC547's, enkele BC517's, een chip met het opschrift: MC14027BCL.
Achja, de apparatuur zal dus niet echt een probleem opleveren, enkel wat electronica zal moeten worden bijgekocht, maar das nu ook geen probleem :)

Tip's, hulp, raad, commentaar,.. kortom: alles is welkom :)

edit: Als ik ff men vingers gebruik om te tellen :P kom ik op volgende 'benodigdheden': 4 signalen voor de auto te besturen (voor/achter/links/rechts) en voor via de paralelle poort de pc van deze acties te informeren -- 4 uitgangen op de PIC --, dan heb ik nog 1 signaal nodig om te weten of de joystick is aangesloten of niet -- 1 ingang op de PIC --, dan nog eens 4 signalen komende van de joystick (voor/achter/links/rechts) -- 4 ingangen op de PIC -- dan nog eens 4 signalen komende van de pc die de auto wil besturen indien de joystick niet is aangesloten -- 4 ingangen op de PIC -- . Indien ik nix ben vergeten, heb ik dus 4 uitgangen en 9 ingangen nodig op deze pic. Ik heb reeds enkele signalen gecombineerd. Maar dit stuk laat ik/laten we misschien best ff liggen tot ik een schema heb :)

edit2: ik weet niet of het duidelijk is, maar ik wil dus dat de controlbox "weet" of er een joystick is aangesloten. indien dat zo is, moet de controlbox enkel de signalen van de joystick naar de auto zenden. wanneer deze niet is aangesloten, moet de controlbox dus de signalen van de pc halen: een combinatie is dus niet mogelijk, daar zou én de controlbox, én de software moeten voor zorgen.

[ Voor 19% gewijzigd door Ibex op 03-10-2003 19:48 ]

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Lees nu dat je in een edit zelf ook de I/O op een rijtje gezet hebt :) Ik heb het net ook even bij elkaar gezet, maar dan in een schema. Veel dingen zijn niet aangesloten (voeding etc) maar het is dan ook even voor het idee. De pinbenamingen van de IC kloppen niet helemaal, maar de pin nummers kloppen iig wel met de 16F628. Volgens mij hadden we wel redelijk hetzelfde idee, jouw verhaaltje sluit wel gedeeltelijk aan :)

Afbeeldingslocatie: http://www.tweakers.net/ext/f/11796/full.jpg

Ik heb de "joystick check" op pin 15 van de PIC en pin 2 van de joystickpoort gezet. Pin 2 van de joystickpoort is de eerste button, je zult deze dus permanent moeten kortsluiten. Als je de joystick aansluit komt er dan een hoog signaal op pin 15 te staan. Dit weet ik echter niet zeker, dus ik hoor het wel ;)

[ Voor 11% gewijzigd door Verwijderd op 09-10-2003 13:17 ]


  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
Ok, dit schema heb ik ff proberen begrijpen, maar toch nog wat vragen:

Waarom is de joystick-checker aangesloten op de clk van de PIC? daarvan snap ik de bedoeling niet echt, ik zou deze eerder hebben aangesloten aan een gewone ingang van de PIC zodat ik dan met een of andere "if-structuur" kon nagaan of de poort al dan niet was aangesloten en dus zo verder kiezen tussen een computersturing en een joysticksturing.

waarom is een van de uitgangssignalen van de paralelle poort naar de clk geschakeld?

Op het schema zie ik dat de X en de Y as naar RA0 en RA1 zijn gevoerd... bedoel je daarmee de digitale of de analoge ingangen? Ik veronderstel dat de digitale ingangen problemen zullen hebben met de -5V (bvb achteruit) -> 0V (in middenstand, stil dus) -> 5V (vooruit). Indien je de analoge ingangen bedoeld, hoe werken deze, en hoe reageert de PIC op deze analoge signalen, maw, hoe kan ik deze gebruiken?

Zoals je uitlegd, heb je de butoon1 gebruikt als indicator voor of de joystick nu is aangesloten of niet. Zodra ik over een meter beschik, zal ik eens proberen de joystick uit te meten, misschien dat ik ergens anders signaal kan uithalen ofzo, maar daar ben ik niet zeker van. Nuja, anders houden een paar centimeters plakband de knop wel ingedrukt :)

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Zoals ik al zei kloppen de benamingen in bovenstaand schema niet helemaal, dat lukte zo snel niet ;) De pin nummers kloppen wel allemaal met de 'echte' PIC, zie ook:

Afbeeldingslocatie: http://www.tweakers.net/ext/f/11795/full.gif

Daar zie je dus dat de joystick-checker is aangesluiten op pin 15, die als digitale ingang dient en als OSC2/CLKOUT. Zelfde verhaal voor pin 2 van de parallelle poort, die gaat ook naar een digitale ingang, die tevens CLKIN is.

Ik heb geen idee wat voor voltages de joystick afgeeft, maar dat is natuurlijk eenvoudig te controleren. De spanningen die je op de analoge ingang zet moet tussen VSS en VDD inliggen. Aangezien dat je 0v en 5v zijn... je snapt wat ik bedoel ;) Als je meer dan 0.6V van die waardes afwijkt werkt het niet meer goed, -5v erop zetten zal dus niet gaan. Eerst maar eens even je joystick doormeten denk ik.

[ Voor 5% gewijzigd door Verwijderd op 09-10-2003 13:17 ]


  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
OK, dit laatste schemaatje van de PIC geeft dus aan dat die clkin en clkout ook gewone in/uitgangen zijn van de PIC, dus dit gedeelte snap ik :)

Het doormeten van de joystick zal in ieder geval nog fftjes moeten wachten, misschien dat ik deze middag eventjes naar men opa kan gaan en daar een en ander kan doormeten, maar ik heb hier ds geen materiaal, jammergenoeg.

Van zodra ik meer informatie heb, post ik ze wel :)

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Je was vast zelf ook wel op het idee gekomen, maar het aanschaffen van een multimeter lijkt me geen overbodige luxe bij zo'n project ;) Voor een paar euro heb je er al een. Dat zijn misschien niet de beste, maar voldoen prima hiervoor.

  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
idd, ik was me al langer van plan om me een multimetertje aan te schaffen. Het is namelijk vrij frustrerend om niet te weten welke voltages er overal doorlopen, aangezien je dan vaak moet gokken, en je dan ook soms wat ledjes ofzoiets opblaast :( en veel zin heb ik niet om een PIC, of een paralelle poort ofzo op te blazen, want das net al ietsje lastiger dan een ledje ofzo :)

Men opa komt deze middag op bezoek, dus ik zal de nodige metingen kunnne verrichten, ik ga ondertussen zoveel mogelijk opmeten en noteren, en met wat geluk heeft mijn opa de meters een tijdje niet nodig en mag ik ze een weekje ofzo gebruiken :) tot ik zelf een multimeter aanschaf.

edit: naja, aangezien ik geen voeding heb om volt over de pinnetjes aan te sluiten, kon ik enkel de weerstand meten, maar men ouders hebben dat papiertje waar alles opstond dan maar doodleuk weggesmeten :| ik herinner me wel nog dat de waarde lag tssn 20 kOhm en 120 kOhm, de stroomsterkte weet ik niet op een joystickpoort, maar het was telkens tussen pin 1 en pin 3/6 dat ik het mat. Maandag ga ik (als ik mag) om een multimeter, dan kan ik het direct ff uitmeten, bovendien ga ik me binnekort een labvoeding aanschaffen, dus dan heb ik direct al men materiaal bij me :) Ik heef het topic wel een schopje als ik (interessantere ) meetresultaten heb.

[ Voor 34% gewijzigd door Ibex op 05-10-2003 09:21 ]

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 28-11 12:23

Bergen

Spellingscontroleur

Heel misschien heb je hier ook iets aan: http://autopilot.sourceforge.net, over een automatische piloot voor een radiografische helicopter, bestuurd door een computer uiteraard. (filmpjes!!)

  • Anus Cocainus
  • Registratie: December 2002
  • Laatst online: 07-10-2024

Anus Cocainus

Wrong hole fool!!!

En hele tijd geleden is het mij ook gelukt om een rc-car te besturen met mijn pc, maar echt op een vreemde manier die ik toevallig ontdekte:

Hou een walkie-talkie bij je besturings-kastje van je auto'tje, en 'geef gas'.
Dit zal een bepaalde toon produceren op je walkie-talkie. Neem deze toon op met je pc, en doe dit bij alle standen. (Gas, Rem, Links, Rechts)
Zo heb je dus voor elke stand een bepaalde toon op je pc.
Knijp de knop van je walkie-talkie in en houd hem bij de boxen, terwijl je 1 van de tonen afspeelt, en voila je bakkie doet het, waarschijnlijk niet optimaal en met wat schokken, maar ik vond deze pioneers uitvinding zeker het melden waard ;-)

  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
De metingen van de joystick zijn klaar... maar ze verbazen me uitermate.

De voltages zijn telkens gemeten tov de gnd van de case tussen de case en de gnd van de joystick merkte ik 0.01V):
Vooruit: 0.45V (pin6)
Achteruit: 0.1V (pin6)
Rechts: 0.11V (pin3)
Links: 0.72V (pin3)

Bovendien heb ik in de vrijstand van de joystick alle pinnen uitgemeten tov de gnd en de volgende gave 5V:
pin1, pin2, pin7, pin10 en pin14.

De volgende pinnen gaven 0V:
pin4

Pin13 gaf steeds 0.14V

Pïn5, pin8, pin9, pin11, pin12 en pin15 worden niet gebruikt.

Nu zit ik dus wel degelijk in de knoop want ik zou niet weten hoe ik deze minieme waardes een PIC kan laten schakelen...

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Meet ook eens de weerstand bij vooruit/achteruit/rechts/links, ik geloof dat er gewoon potmeters in de joystick zitten. Overigens, je zegt niets over pin 8 en 9, daar moet toch ook 5V op gezet worden?

Dat pin 4 0V geeft is overigens wel logisch, dat is een ground ;) Overigens is het nog geen probleem als blijkt dat die voltages gewoon niet hoger komen, die kun je nog wel omhoog krikken.

[ Voor 27% gewijzigd door Verwijderd op 06-10-2003 21:29 ]


  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
wel, pin1 gaf dus wel mooi 5V, maar pin8 en 9 komen gewoonweg niet aan binnen in de joystick :s Pin1 geeft 5.10V (net zoals pin2, 7, 10 en 14)

In de joystick zitten idd gewone potmeters en de meter stond op 20V DC :) voor te testen welke pinnen waren aangesloten vanbinnen, gebruikte ik de stand voor geleiding te meten.

Ik twijfel dus wel sterk of ik de PIC ooit het verschil tussen 0.10, 0.17 en 0.45V duidelijk zal kunnen maken. of tussen 0.11, 0.17 en 0.72V

In ieder geval, de auto blijkt op zicht niet te werken, dus zal ik eventjes mijn maat zijn andere auto moeten lenen :)

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Volgens mij kan die PIC op zijn analoge ingangen dat verschil wel merken, het zijn gewoon 2 comperators. Ik zou zeggen, lees de datasheet er nog eens op na :)

Anders kun je die 0,10 - 0,45 V nog wel een stuk versterken met een opamp.

  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
Ik heb zopas de comperator-sectie in de datasheet erop nagelezen, maar toch snap ik een en ander niet, das misschien aan mijn brakke kennis en brak engels te wijten, maar ik zeg ff wat ik ongeveer snap.

Wanneer ik de hendel van achter naar voor druk, krijg ik een min of meer logarimische funtie te zien, dat analoog signaal steek ik in een analoge input, bvb op RA0/AN0, bovenien moet ik een referentie ingeven waarmee het ingangssignaal word vergeleken. Daarvoor neem ik dan bvb 0.30V, welke ik op een andere input steek, bvb RA1/AN1.
De PIC vergelijkt deze waarden en stelt alles wat bvb 0.05V meer is dan de referentie gelijk aan een: dus de 0.45V word herkend als een 1. Alles was onder de 0.25V komt, kent de PIC dan als een 0, dus dat is de stilstand en achteruit.
Een plaatje ter verduidelijking:

Afbeeldingslocatie: http://users.pandora.be/ibex/referentie.jpg

Wanneer ik deze logica voorttrek, heb ik bij elke richting (dat zijn er 4), 2 analoge inputs nodig, wat me tot aan 8 analoge inputs brengt, maar ik tel er maar 4 (RA0/AN0, RA1/AN1, RA2/AN2/Vref en RA3/AN3/CMP1)

Wat ik daaruit besluit, is dat het dus onmogelijk is alle joystickinputs door 1 PIC te laten afhandelen... Of, heb ik het mis? want van de tabellen en speciale CMCON lijsten snap ik niet echt veel.

[ Voor 4% gewijzigd door Ibex op 07-10-2003 15:40 ]

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Ibex schreef op 07 October 2003 @ 15:39:
Wanneer ik de hendel van achter naar voor druk, krijg ik een min of meer logarimische funtie te zien, dat analoog signaal steek ik in een analoge input
Exponentieel lijkt me beter hier ;)
Ibex schreef op 07 October 2003 @ 15:39:
Wanneer ik deze logica voorttrek, heb ik bij elke richting (dat zijn er 4), 2 analoge inputs nodig, wat me tot aan 8 analoge inputs brengt, maar ik tel er maar 4 (RA0/AN0, RA1/AN1, RA2/AN2/Vref en RA3/AN3/CMP1)
Ik weet ook niet zeker hoeveel je er nodig hebt, maar iig geen 8. Je kunt het zelfs met 2 doen, dan kan je auto alleen niet stoppen of recht vooruit rijden :P Als je de comperator instelt op 0,3 volt en je rijd achteruit geeft hij een logische 0 af, dan weet je dus dat hij achteruit rijd. Hetzelfde gaat op voor links/rechts. Maargoed, omdat het waarschijnlijk lastig is als je de auto niet kunt stoppen zul je inderdaad meer ingangen nodig hebben, maar het moet zeker een stuk onder de 8 te houden zijn.

Je kunt een transistor ook een digitale ingang laten schakelen. Komt die spanning van 0,7V van de X-as meteen even goed uit :) Lijkt me dat het op deze manier nog wel beter zou werken.

  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
Verwijderd schreef op 07 October 2003 @ 15:55:
Exponentieel lijkt me beter hier ;)
Nou, ik ga seffes toch nog eens mijn wiskunde leren, dusja, maakt niet uit :p
Verwijderd schreef op 07 October 2003 @ 15:55:
[...]
Je kunt een transistor ook een digitale ingang laten schakelen. Komt die spanning van 0,7V van de X-as meteen even goed uit :) Lijkt me dat het op deze manier nog wel beter zou werken.
Deze snap ik niet echt zo goed, je bedoeld dat ik die 0.7V op een transistor aansluit en dat ik die transistor dan uiteindelijk een digitale ingang laat maken?

Ik hoop dat er me misschien nog inspiratie te binnen schiet om de auto dan te laten stoppen, maar dat laat ik dan ff achterwegen, ik ga nu eens kijken wat de afstandsbediening allemaal doet :)

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Dit plaatje verduidelijkt ook het een en ander:

Afbeeldingslocatie: http://www.tweakers.net/ext/f/11794/full.gif

Deze is afkomstig uit [rml][ C++] Winamp control op Gameport[/rml], een topic dat voor jou zeker de moeite waard is om te volgen :) Het probleem is vergelijkbaar en het antwoord is eigenlijk ook al gegeven.

[ Voor 8% gewijzigd door Verwijderd op 09-10-2003 13:16 ]


  • Ibex
  • Registratie: November 2002
  • Laatst online: 09:42

Ibex

^^ met stom.

Topicstarter
hmz, deze zal ik idd best volgen, er zal nog veel info bij komen vermoedelijk.
In ieder geval, ik heb ondertussen alle info over de afstandbediening verzameld en de draden naar buitentoe zijn al gesoldeerd.

Vooruit/achteruit betreft 3 draden; 1 stroomtoevoer, en dan 2 draden voor vooruit en achteruit., wanneer deze geschakeld worden, loopt er een stroom van tussen de 1 en de 0.8 mA, ik dacht dat ik die wel zou kunnen schakelen met een BC547 of een BC517, maar tot zover was ik dus mis. Ik schakelde bvb de stroomtoevoer en de vooruit aan de C en E van een BC547. Vervolgens keek ik wat er gebeurde als ik 5V op de B stak, ik dacht dat deze wel zou schakelen, maar deze deed dat dus niet :s

Hoe kan ik maw contact geven tussen die 2 draden dmv een BD547 of een BC517? Dit lijkt me handig omdat ik de transistors kan laten schakelen met een PIC. zo lan ik dus bvb zeggen van: hou pin1 (= bvb rechts) en pin3 (bvb rechtdoor) aan gedurende 1 sec. hou dan pin2 (bvb links) en pin4 (bvb achteruit) 1 seconde hoog. zo kan ik de auto dan zogezegd in een cirkel laten manauvreren.
Maar tot nu toe flippen de motors gewoon, ze geven gewoon de hele tijd kleine snokjes, zonder logica erachter.

Archlinux - Rode gronddingetjes zijn lekker - Komt uit .be


Verwijderd

Misschien een zijsprongetje:
In veel afstandbedienbare versterkers zit een volumeknop met motortje op 1 as.

Op die manier is de aansturing (motor) volledig electrisch gescheiden van de besturing. Wellicht een optie als je een oude controller ombouwd en op de potmeters van de controller een motortje monteerd die je middels onderstaande topics kunt aansturen:
[rml][ HowTo] Stappenmotoren[/rml] / De Parallelle poort FAQ
Controle of de besturing door de PC via de LPT poort wordt overgenomen zou je dan kunnen doorgeven via 1 LPT pin aan de PIC.
tip: De Transistor FAQ
Pagina: 1