Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Voor de mensen die niet weten wat een "VEX" is. Het is een bedrijf dat robotonderdelen en -kits verkoopt. Ze verkopen een "VEX"-zender en -ontvanger op hun site voor $ 129,99, maar je kunt een "VEX" -zender en -ontvanger krijgen voor ongeveer $ 20 op "Ebay" en vele andere plaatsen.
De "VEX" zender is een 6 kanaals FM zender met 2 joysticks die op en neer en van links naar rechts kunnen gaan. Aan de achterkant van de zender bevinden zich 4 knoppen die kanaal 5 en kanaal 6 bedienen. De zenderbediening kan worden ingesteld op tankstijl of arcadestijl. De zender heeft tal van andere functies. Dit maakt het een zeer goedkope manier om servo's op afstand te bedienen. Het enige probleem is dat je alleen servomotoren kunt besturen en dat je daarvoor een dure "VEX" microcontroller van $ 149,99 moet kopen. Dat is tot nu toe!
Stap 1: Hoe het allemaal werkt
Deze goedkope ($ 14,95) "motor interface chip" kan worden gekocht op: https://robotics.scienceontheweb.net. De chip kan de signalen van de "VEX" ontvanger decoderen om tot 8 motor H-bruggen en 1 driver te besturen. Het kan ook opdrachten ontvangen van een andere microcontroller-chip om de motoren te besturen. Deze interfacechip gebruikt 3 uitgangspinnen om de H-Bridge van een motor te besturen. Twee pinnen om de richting van de motor te regelen en één pin om de snelheid van de motor te regelen met behulp van P. W. M. De chip gebruikt de invoer van de twee knoppen op kanaal 5 om de invoer van de linker joystick van de "VEX" zender te regelen, zodat deze 6 motoren kan besturen. De chip gebruikt de invoer van de andere 2 knoppen op kanaal 6 om de hoge of lage uitvoer op pin 14 van de motorinterfacechip te vergrendelen. De motorinterfacechip heeft de volgende kenmerken. Deze functies werken mogelijk niet omdat een ontvanger overal een signaal kan oppikken. Wij aanvaarden geen directe of indirecte verantwoordelijkheid voor het gebruik van deze onderdelen. WAARSCHUWING! GEBRUIK DE AFSTANDSBEDIENING NOOIT OP EEN ROBOT DIE SCHADE KAN VEROORZAKEN ALS DEZE UIT DE CONTROLE GAAT. Als uw robot buiten het zenderbereik komt; de motorinterface-chip kan de motoren uitschakelen en controle geven aan een microcontroller als uw robot er een gebruikt. Dit kan ook het geval zijn als u uw zender uitschakelt. De motorinterfacechip gebruikt geen seriële poort om met andere microcontrollers te communiceren. Dit betekent dat u een zeer goedkope microcontroller-chip kunt gebruiken om het brein van uw robot te zijn. Als u pin 2 laag zet, werken alle motoren op de helft van het vermogensniveau wanneer u de zender gebruikt.
Stap 2: Hoe de VEX-ontvanger op de interfacechip aan te sluiten?
Motoren, relais en voedingen veroorzaken radiostoring; dus kies een plek op je robot waar de "VEX"-ontvanger ver weg is van deze dingen. Ik heb de mijne op een 43 inch lange mast gemonteerd die aan de basis van de robot was bevestigd.
De "VEX" ontvanger wordt geleverd met een gele kabel. Steek de kabel in de "VEX"-ontvanger, het andere uiteinde van de kabel in een telefoonhoornaansluiting. Je moet de krik kopen. Aangezien ik de kleuren van de draden die uit je aansluiting komen niet weet; Ik zal verwijzen naar de gele kabeldraden. Als je naar de gele kabel kijkt, zie je 4 draden die geel, groen, rood en wit zijn. De gele draad wordt aangesloten op + 5 volt. De groene draad is het signaal en wordt aangesloten op pin 6 op de interfacechip. De rode draad wordt geaard. De witte draad wordt niet gebruikt. U moet een 4,7 K pull-up weerstand van pin 6 op de interfacechip aansluiten op de + 5 volt. U wilt ook een condensator van 2200 uf over de stroomdraden dicht bij de "VEX" -ontvanger aansluiten. Pin 2 is een ingangspin. Het moet bedraad zijn en NIET zwevend achtergelaten. Het kan worden aangesloten op + 5 volt of worden geaard via een weerstand van 47 ohm. Het kan ook worden aangesloten op pin 14. Optie 1: pin 2 hoog geeft het volledige vermogen aan de motoren. Optie 2: pin 2 laag geeft de helft van het vermogen aan de motoren. Optie 3: pin 2 aangesloten op pin 14. Wanneer de bovenste knop van kanaal 6 wordt ingedrukt, wordt het volledige vermogen aan de motoren gegeven. Wanneer de onderste knop van kanaal 6 wordt ingedrukt, geeft dit de helft van het vermogen aan de motoren.
Stap 3: Een microcontroller aansluiten op de interfacechip?
Uw microcontroller, als u er een gebruikt, kan communiceren
met de Interface Chip over 3 draden. Pin 7 op de interfacechip is de invoer voor de databit. Wanneer de pin laag is, is het een databit nul. Als de pin hoog is, is het een databit. Uw microcontroller moet de databit uitvoeren vóór de klokpuls. De databit moet minimaal 40 us lang zijn. Pin 16 op de interfacechip is de ingang voor het klokbit. Uw microcontroller moet minimaal 0,5 ons een hoge puls afgeven. Pin 5 op de interfacechip is een outputpin. Wanneer deze pin hoog wordt, is dit om uw microcontroller te laten weten dat hij klaar is om de volgende opdracht te ontvangen. Deze pin wordt laag als de interfacechip een signaal ontvangt van de "VEX"-zender. Deze pin gaat ook laag en blijft laag als er een communicatiefout is tussen uw microcontroller en de interfacechip. Pin 4 is een uitgangspin. Als er een communicatiefout is tussen de interfacechip en uw microcontroller, zal deze pin hoog gaan en hoog blijven. Er moet een reset worden uitgevoerd om deze fout te wissen.
Stap 4: Lijst van de opdrachten
Er zijn 32 commando's die de interfacechip begrijpt. Alle opdrachten zijn 3 bytes of 24 bits lang. De indeling voor de opdrachten is als volgt.
De 1e byte die wordt verzonden, is altijd de opdrachtbyte die het meest linkse nummer is in de onderstaande lijst. De verzonden 2e byte kan een PWM-byte zijn. Het is een getal tussen 0 en 50. Wanneer een 0 wordt verzonden, zal de P. W. M. puls is laag, wat betekent dat de motor is uitgeschakeld. Wanneer het getal 50 wordt verzonden, wordt de P. W. M. puls is hoog, wat betekent dat de motor op vol vermogen draait. Wanneer het getal 25 wordt verzonden, draait de motor op ongeveer de helft van het vermogen. Zoals te zien is in de lijst, is de 2e byte soms gewoon 0, die alleen voor een tijdelijke aanduiding wordt gebruikt. Het heeft geen invloed op de motor. De 3e byte die wordt verzonden, kan een PWM-byte of een foutcontrolenummer zijn. Voorbeeld: Om motor 1 op volle snelheid te laten rijden en motor 2 op halve snelheid vooruit te laten gaan, zou het commando zijn. 1 50 25 Om motor 7 met 10% vermogen achteruit te laten gaan, zou het commando zijn. 16 5 16 1 Motor 1 & 2 vooruit, PWM #, PWM # (geen foutcontrole) 2 Motor 1 & 2 achteruit, PWM #, PWM # (geen foutcontrole) 3 Motor 1 vooruit, PWM #, 3 4 Motor 1 achteruit, PWM #, 4 5 Motor 2 vooruit, PWM #, 5 6 Motor 2 achteruit, PWM #, 6 7 Motor 3 vooruit, PWM #, 7 8 Motor 3 achteruit, PWM #, 8 9 Motor 4 vooruit, PWM #, 9 10 Motor 4 achteruit, PWM #, 10 11 Motor 5 vooruit, PWM #, 11 12 Motor 5 achteruit, PWM #, 12 13 Motor 6 vooruit, PWM #, 13 14 Motor 6 achteruit, PWM #, 14 15 Motor 7 vooruit, PWM #, 15 16 Motor 7 achteruit, PWM #, 16 17 Motor 8 vooruit, PWM #, 17 18 Motor 8 achteruit, PWM #, 18 19 Alle motoren snelheid, PWM #, 19 20 Motor 1 & 2 snelheid, PWM #, PWM # (geen foutcontrole) 21 Motor 1 & 2 stop, X, 21 (pins laag) 22 Motor 1 stop, 0, 22 (pins laag) 23 Motor 2 stop, 0, 23 (pins laag) 24 Motor 3 stop, 0, 24 (pinnen laag) 25 Motor 4 stop, 0, 25 (pinnen laag) 26 Motor 5 stop, 0, 26 (pinnen laag) 27 Motor 6 stop, 0, 27 (pinnen laag) 28 Motor 7 stop, 0, 28 (pins laag) 29 Motor 8 stop, 0, 29 (pins laag) 30 Alle mo tors stop, 0, 30 (pinnen laag) 31 Pin 14 hoog, 0, 31 32 Pin 14 laag, 0, 32
Stap 5: Pin-overzicht
Invoerpinnen
Pin 1 Als het laag gaat, rust het (MCLR) Pin 2 Als het laag is, geeft het slechts de helft van de output aan de motoren Pin 6 "VEX" ontvanger Pin 7 commando's en gegevens van een andere microcontroller Pin 33 data-interrupt Pin 11 + 5 volt Pin 32 + 5 volt Pin 12 massa Pin 31 massa Output Pins Pin 34 PWM voor motor 1 Pin 35 Hoog wanneer joystick 1 links is Pin 36 Hoog wanneer joystick 1 rechts staat Pin 37 P. W. M. voor motor 2 Pin 38 Hoog wanneer joystick 2 omhoog is Pin 15 Hoog wanneer joystick 2 omlaag is Pin 16 P. W. M. voor motor 3 Pin 17 Hoog wanneer joystick 3 omhoog is Pin 18 Hoog wanneer joystick 3 omlaag is Pin 23 P. W. M. voor motor 4 Pin 24 Hoog wanneer joystick 4 links staat Pin 25 Hoog wanneer joystick 4 rechts staat Pin 26 P. W. M. voor motor 5 Pin 19 Hoog wanneer joystick 3 omhoog is en bovenste knop 5 is, druk op Pin 20 Hoog wanneer joystick 3 omlaag is en bovenste knop 5 is ingedrukt, druk op Pin 21 P. W. M. voor motor 6 Pin 22 Hoog als joystick 4 naar links staat en bovenste knop 5 is, druk op Pin 27 Hoog als joystick 4 naar rechts staat en bovenste knop 5 is, druk op Pin 28 P. W. M. voor motor 7 Pin 29 Hoog wanneer joystick 3 omhoog is en onderste knop 5 is druk op Pin 30 Hoog wanneer joystick 3 omlaag is en onderste knop 5 is, druk op Pin 8 P. W. M. voor motor 8 Pin 9 Hoog wanneer joystick 4 naar links is en onderste knop 5 wordt ingedrukt Pin 10 Hoog wanneer joystick 4 naar rechts staat en onderste knop 5 is ingedrukt Pin 14 Blijft hoog wanneer bovenste knop 6 wordt ingedrukt; gaat laag als onderste knop 6 wordt ingedrukt. Pin 5 Vertelt andere microcontroller dat hij het volgende commando kan sturen. Pin 4 gaat hoog als een commandofout is gedetecteerd. Alle andere pinnen worden niet gebruikt. Het is niet nodig om pull-ups op deze pinnen te plaatsen.