Cette page présente le module CrcConnect, qui permet de contrôler à distance un contrôleur CrcDuino en utilisant une manette sans fil compatible.
Introduction
Le CRCconnect est un dispositif qui permet d’envoyer des commandes au CRCduino à l’aide d’une manette de jeu. Le CRCconnect sert de relais pour les données; il prend les informations par USB, puis envoie l’information au CRCduino sans fils.
Il a été conçu pour permettre une utilisation flexible. Le module CRCconnect peut être attaché par velcro directement sur le contrôleur. Il peut aussi être dans la poche du conducteur et connecté à la manette par un fil USB plus long. Plusieurs écoles ont même des manettes modifiées pour intégrer directement le module. Il peut finalement être connecté à une banque d'énergie externe pour allonger sa vie de batterie.
Manettes compatibles
La beauté du CRCconnect est qu’il permet à une équipe de contrôler son robot avec des manettes de jeu standards. De cette façon, chaque équipe peut utiliser la manette avec laquelle elle est le plus confortable.
Manettes compatibles:
PlayStation 3 wireless (Sony Official)
Havit HV-G69 wired PS3 knockoff
PlayStation 4 (Sony Official)
Logitech F130
XBox One (Microsoft Official)
Wired Xbox 360
Manettes incompatibles:
Wireless Xbox 360
Most knockoff brand Wireless PlayStation 3
La manette doit être connectée au module CRCconnect à l’aide d’un fil USB-A vers:
Mini-B (pour les manettes PS3), comme celui-ci de 6".
Micro-B (pour les manettes PS4), comme celui-ci de 6".
USB-C (pour les manettes Xbox One), comme celui-ci de 6".
Les contrôleurs Logitech F130 et HAVIT ne supportent pas les mouvements analogues des gâchettes, contrairement aux contrôleurs XBox et Playstation.
Sur ces dernières, la valeur de GACHETTE_L et GACHETTE_R sera entre -128 et 127 inclusivement.
Au contraire, les manettes F130 et HAVIT auront des valeurs de -128 ou 127.
Si vous utilisez un contrôleur HAVIT, assurez-vous d’appuyer sur le bouton ANALOG de la manette afin d’allumer la petite DEL rouge entre les joysticks. En cas contraire, les joysticks ne pourront que prendre les valeurs -128, 0 ou 127.
Storage Mode
Like almost every electronic gadget, there is a very small current that leaks from the battery of the CrcConnect when it’s not in use, even when powered off using the power button. This undesired battery drainage can be avoided by putting the CrcConnect in Storage Mode. We recommend to put the CrcConnect in Storage Mode when you know it won’t be used for 2+ weeks. This will extend the CrcConnect battery life! Storage mode physically disconnects the battery from the control board, effectively cutting any possible leakage current.
Storage mode is enabled when the jumper is removed from the board, or when it is plugged into the left and center pins.
Jumper removed; CrcConnect won’t work
Jumper in storage mode; CrcConnect won’t work
Storage mode is disabled when the jumper is plugged into the center and right pins.
Jumper OK; CrcConnect will work
Pairing with a CrcDuino board
Pairing a CrcDuino with a CrcConnect is as easy as 1-2-3! Each CrcConnect is identified with a number and comes with a dedicated Xbee Module that is identified with the same number.
Simply plug the Xbee module into the CrcDuino, then power up the CrcConnect and CrcDuino.
A characteristic victory sound will be heard from the CrcDuino when a successful connection as been established with a CrcConnect. If the connection is lost, the CrcDuino sights in despair 😞 …
A compatible remote controller must be plugged into the CrcConnect for it to communicate succesfully with a CrcDuino.
The CrcDuino must run using CrcLib Release 1.1 and up to be able to connect with the CrcConnect.
Swapping the Xbee Module from the old CrcConnect to the new CrcConnect with integrated remote control
https://youtu.be/D8woVCYgStUhttps://youtu.be/zLYCgJZHE0U
Ports & buttons
The CrcConnect has 2 ports a one button on its side. From left to right:
Do not press and hold the Power button for more than 10 seconds. This puts the CrcConnect in a limbo state that allows CRC Robotics to configure the CrConnect, and disables the communication function with the CrcDuino.
Status LEDs
The CrcConnect has 4 LEDs that allows to learn about the state of the CrcConnect and the CrcDuino:
Robot LED
Indicates the voltage of the power supplied to the CrcDuino to which the CrcConnect is connected to, witha refresh rate of 10s. This therefore feedbacks the charge level of the 12V battery on the robot.
Robot LED Color | We good? | Recommendation | Power Supply voltage |
---|---|---|---|
Solid Green |
| Great power management, keep up the good work! | >= 12.5V |
Solid Orange | 👋 | Maybe charge the battery? | [12V ; 12.5V[ |
Solid Red |
| Yeah, you should charge the battery NOW! | [11V ; 12V[ |
Blinking Red | ❌ | Were you even paying attention? Go on and you might affect your robot batteries ability to hold up charge 🤷♂️ | < 11V |
CrcConnect LED
Indicates the voltage of the internal CrcConnect battery. This therefore feedbacks the charge level of the 5V battery inside of it.
CrcConnect LED Color | We good? | Recommendation | Internal battery voltage |
---|---|---|---|
Solid Green |
| Great power management, keep up the good work! | >= 3.8V |
Solid Orange | 👋 | Maybe charge the battery? | [3.7V ; 3.8V[ |
Solid Red |
| Yeah, you should charge the battery NOW! | [3.6V ; 3.7V[ |
Blinking Red | ❌ | Were you even paying attention? Go on and you might affect your CrcConnect battery ability to hold up charge 🤷♂️ | [3.5V ; 3.6V[ |
OFF | ☠ | The CrcConnect will automatically shutdown to prevent battery damages. | < 3.5V |
Communication LED
Indicates the connection quality between the CrcConnect and its paired CrcDuino. Is also used to indicate a successful link between a remote controller and the CrcConnect.
Typical interference causes include and are not limited to: too much metal around the CrcDuino, robot frame electrically connected to the battery negative pole (lose wire, faulty wire isolation), etc.
Communication LED Color | We good? | Recommendation | Meaning |
---|---|---|---|
Solid Green |
| Whatever you’re doing, keep up doing it! | Great connection with the CrcDuino. Wired to a remote controller. |
Solid Orange | 👋 | Get closer to the robot. Reduce possible interference. | Meehh connection with the CrcDuino. Wired to a remote controller. |
Solid Red |
| Get closer to the robot. Reduce possible interference. | Bad connection with the CrcDuino. Wired to a remote controller. |
Blinking Red | ❌ | Get closer to the robot. Reduce possible interferences. Have you tried turning everything off and on again? Are the CrcDuino & CrcConnect powered up? Appropriate Xbee module correctly inserted in the CrcDuino socket? CrcDuino running a program using CrcLib Release 1.1 and up? | Connected to the CrcDuino and wired to a remote controller, but data is not correctly sent/received |
OFF | ☠ | No connection with a CrcDuino, or no wired to a compatible remote controller |
Charge LED
This LED, on the backside of the CrcConnect, is lit when it's charging, and OFF when not charging.
Power management
The CrcConnect module can be recharged throught the Micro-USB port. It can even be recharged when in use!
No need to worry about recharging the remote controller itself. The remote controller, when connected to a CrcConnect module, is powered by the CrcConnect internal battery pack.
Auto-shutdown function
Auto-shutdown functions have been programmed into the CrcConnect to avoid permanent internal damage.
Voltage shutdown
If the internal battery voltage falls beneath a certain threshold, the CrcConnect won’t power up or will shutdown immediately after being powered up.
Temperature shutdown
If the internal temperature gets so hot that it might lead to permanently damage the internal battery, the three main status LED will flash Orange 5 times and the CrcConnect will automatically shutdown right after.
Button and joystick mapping
The remote controller buttons and joysticks state can be retrieved using CrcLib::ReadDigitalChannel() and CrcLib::ReadAnalogChannel() using the appropriate nomenclature.
The following pictures show the physical mapping of the different members of the enum classes for typical remote controller arrangements.
Still not sure? Upload the following code into your CrcDuino and open up a Serial Monitor at 2000000 baud to witness the state of the different buttons of the remote controller on your computer screen.
//CrcConnect Remote Controller Test Sketch //Valid using CrcLib_1-1-0_Release #include <CrcLib.h> //------------------------------------------------------------ void setup() { // put your setup code here, to run once: CrcLib::Initialize(); Serial.begin(2000000); } void loop() { // put your main code here, to run repeatedly: CrcLib::Update(); Serial.println(); if (CrcLib::IsCommValid()) { CrcLib::PrintControllerState(); } else { Serial.print("No remote controller successfully communicates with the CrcDuino"); } }
Related articles
-
CrcConnect Module Details (Système CrcDuino System) —
This page presents the CrcConnect module that allows controlling a CrcDuino board using a remote controller.
Introduction
The CrcConnect is a device that allows to send commands to a CrcDuino using a remote controller. The CrcConnect serves as a data relay; it takes information from a controller (using a wire), and sends this information to a CrcDuino wirelessly using a pair of Xbee Modules.
-
CrcLib: How to access the remote controller buttons (Système CrcDuino System) —
This page presents how CrcLib functions can use a remote controller buttons and joystick states. It details the different types declared in CrcLib.
Analog
-
IsCommValid() (Système CrcDuino System) —
Purpose
Know if a remote controller connected to the CrcDuino via a CrcConnect module.
When to use
-
ReadAnalogChannel() (Système CrcDuino System) —
Purpose
Get the value of an Analog Channel (joystick) on a remote controller connected to the CrcDuino via a CrcConnect module.
When to use
-
ReadDigitalChannel() (Système CrcDuino System) —
Purpose
Get the value of a Digital Channel (button) on a remote controller connected to the CrcDuino via a CrcConnect module.
When to use
Articles liés
-
CrcConnect: détails du module (Système CrcDuino System) —
Cette page présente le module CrcConnect, qui permet de contrôler à distance un contrôleur CrcDuino en utilisant une manette sans fil compatible.
Introduction
-
CrcLib: accéder aux boutons de la télécommande (Système CrcDuino System) —
Cette page présente les différents types de données déclarés dans CrcLib.
Analog
-
IsCommValid() {FR} (Système CrcDuino System) —
Objectif
Savoir si une manette contrôle le CRCduino à travers un module CRCconnect.
Quand l’utiliser
-
ReadAnalogChannel() {FR} (Système CrcDuino System) —
Objectif
Obtenir la valeur d’un canal analogique (joystick ou gachette) de la manette connectée au CRCduino par le module CRCconnect.
Quand l’utiliser
-
ReadDigitalChannel() {FR} (Système CrcDuino System) —
Objectif
Obtenir la valeur d’un canal numérique (un bouton) de la manette connectée au module CRCconnect.
Quand l’utiliser
0 Comments