Arduino for Practice Bot

I have recently become aware of the arduino equivalents of the cRIO. I know they are less capable then the cRIO from the KOP, but i am wondering if they would work for a practice bot.
This practice bot would probably consist of 4 CIM motors, maybe some sensors, and some servos. A very minimal robot setup that can be used to just practice making robots on the off season.
Would i also need an equivalent of the digital sidecar, or can i use the KOP sidecar?
Can you also still program in your language of choice like Labview, or is the arduino language specific?

The arduino can only be programmed in C or assembly.

It is capable of driving 13 servos/motor controllers with it’s software Servo library, but you will need a regulated power supply to power the servos.

How do you plan on communicating/driving with it?

we are doing something very similar, our practice bot consists of 4 cims in a tank drive, and maybe some sensors and a minibot deployer. we have yet to test to see how fast the code runs, but i think it should work fairly well.

is where the arduino software can be downloaded, it is a different programing language, lab-view may also be usable but i don’t know for sure. a digital sidecar is not needed as the PWM wires plug directly into the arduinos digital IO pins. an arduino also has 10 analog ports, which can be arranged in any way necessary.

First of all, an arduino is nothing like a C-RIO. The only thing they have in common is that they’re both IO centered - this means that they have lots of inputs and outputs, unlike a computer which has like five USB ports and a headphone jack.

An arduino has 20 IO ports total. If you get an arduino mega, it has 54. The normal one has 6 analog inputs, the mega has 16. The C-RIO, on the other hand, can have 28 DIO ports, 20 PWM ports, 16 analog ports, and 48 DO ports.

The C-RIO runs off of 24V, the arduino runs off of 5V. The C-RIO can be programed in a bunch of different ways, the arduino must be programmed in a language based off of Processing (kind of like C).

The arduino weighs about 500 grams, the C-RIO weighs 2 or 3 kilograms.

The arduino is also a prototyping tool. It’s not meant to be used for anything remotely long-term. The headers you plug things into are like those PWM cables (the female ends) and things fall out of them very easily.

Even if you don’t care about that, there’s a big problem with the arduino: how to tell the robot what to do. With the C-RIO, it has an ethernet port, so you can easily attach an ethernet cable that can connect to a laptop, or connect it to a normal wifi thing. With the arduino, there’s nothing of the sort - it connects to a computer via USB. You can buy bluetooth attachments, but it’s still hard to get working.

You also need a bunch of extra stuff to work with the arduino. The best way to power it is with a barrel jack, so you’ll have to buy or scavenge that and and get 7-12V to it somehow.Then you’d need 22 gauge hookup wire to connect to it. You also need a USB A to B cable, which are getting harder to find.

However, if you don’t care about sensors, there’s a much easier way to control jaguars. I’m pretty sure you can hook up a normal RC Car receiver and attach the PWM signal to the jaguars (make sure you check first, the jaguars might not want the voltage coming in). Then you’d just control it with the RC transmitter. You could do a tank drive pretty easily (splice the forward/backward signal on one joystick to two of the jags and the same for the other two).

I’ve worked with Arduino and I agree with WizenedEE. For making a full FRC robot, it is not the way to go. Maybe an FTC robot, which is more like what Arduino can be used for, but even then you will have trouble getting it to communicate with the drivers.

What we are doing is much more higher-end than what Arduino is meant for. If you are going to do this, you will need to make a lot of custom solutions and code and there won’t be a lot of help out there.

What WizenedEE was talking about at the end sounded like a good option to look into if you just wanted a driving robot. It would be much less “custom” than working with an Arduino. Here’s a video that’s related:

Andymark has a few options here:

Also, the ‘older’ IFI controllers would would well for a practice 'bot.

Yep, but just make sure you have an old copy of the software and know how to use it. If you don’t, I think there are some teams that have resources on their websites for how to use the old controllers. Search on Chief Delphi for that, it gets asked a lot.

We’ve wired together a kitbot with a VEX brain. Since Jaguars and Victors communicate through PWM, just hook them up directly into the ports. You don’t even need any code (as long as you’re fine with the default mappings on the controller).

I’ve been looking at the Cross-link control system for powering my teams current robot after the season is over and we remove our cRio. It helps that we’re already extensively using CAN bus and a 2CAN.

Arduino makes an awesome practice bot brain…

We also use them for industry purposes, see a swerve bot we built this summer using an Arduino for custom wifi control.

Team RUSH is also using one on their FRC bot this year to handle auton functions! Cheap, reliable and open-source!!

A microcontroller vs an embedded computer with a full RTOS?

I can see an advantage that the Arduino has raw IO access, while the cRio has to go through the the FPGA, so the Arduino could handle sensors with an interface that the cRio does not support easily.

I have thought about the notion of building a robot for my own personal enjoyment. And looked at the Arduino it seemed to me to be better used as a sidecar to a main brain that should probably be a laptop of some description. but I think the better question to ask is what can the WPI library be ported to?

The Arduino does have an Ethernet shield available which could be hooked up to the AP or bridge from either year’s KOP (or additionally, there are a few WiFi shields available but I have not had good luck with these).

You could either reverse engineer a Driver Station receiver by checking out the packets in a utility like Wireshark (this has been done before) or make something like a web console to control the robot.

I second this idea… The old VEX controller and radio are a great way to power up an older FRC bot or a practice bot… You can’t really use your Driver control station with it but at least it gets it running and its cheap…

If you use Victors and Spikes you can control up to eight motors/pneumatics…

The Old VEX controller is pretty much the same as the old Control systems that FRC was using until the cRio. Same chips…same company…

Good stuff for prototyping… and you can program it in C (or use EasyC) …

good luck!!

WOW, I am thoroughly impressed! Can I ask how much coding that took to get it to communicate with the rest of the robot (this year’s robot and the robot you linked to)?

The wifi protocol for Arduino is very well documented. There is relatively little code involved to make it talk with another Arduino, and even less if you talk with a laptop.

For our fRC application we’re using the serial port to talk to the cRIO. We are using the supplied serial open and read calls with good results.

If you do prefer to use the Cross-link Control System you will be happy to know that an Android app is currently in the beta testing phase and will be released shortly. The app is called the uCANdrive and allows users to control motors using touch gamepads or the accelerometer. The app is free to anyone and connects to the 2CAN via wifi. Current 2CAN users will be able to use the app without any additional hardware being purchased(except jags). For more functionality or the ability to control Victors the CANipede RCM may be purchased and is supported in the uCANdrive.