Robotics

ARDUINO UNO [2016]

The ultimate, entry-level circuit board for open and interactive projects.
The Arduino system is similar to that of a Raspberry Pi, with one exception; it was made for more than computing.
An Arduino is essentially a circuit board comprising of a microcontroller chip (ATMEGA), as well as Digital/Analog IO. As with other Arduino devices, it utilizes a special distro of C/C++ known as Arduino Language, to program the ATMEGA microcontroller. However, there exist extended libraries for other languages, including Java and Python.
Arduino_Uno_-_R3
An Arduino board has near infinite uses.
One can use an Arduino as a simple interface, a drive for extra DIO’s for sensors or circuits that are but subsystems of a greater system.
One can also mod and use an Arduino to control systems, such as the automation of a coffee machine, or a robotics system.

In addition, Arduino has an amazing active open-source community that brings to life the educational and professional use of Arduino systems. It’s a place to seek help, and even share creations, often in the form of Arduino Shields.

RobotOpen Control Shield
Controlling an FRC cRIO, with an Arduino.

One of the Arduino Projects I’d like to highlight would be a shield made by an open-source robotics community – RobotOpen’s Control Shield. This device is an extension of the Arduino, a Shield, that’s sole purpose is to replace the deprecated cRIO.

The RobotOpen Control Shield supports 10 PWM, 8 DIO, and 6 ADC for Analog Input. This is achieved through Interfacing with the Digital Sidecar of an FRC system. The shield itself contains another ATMEGA, specifically for handing PWM & DIO.

As with anything, these Arduino systems support programming via the Arduino Language. RobotOpen however, releases its own unique set of libraries and classes which translate the Java/C++ programming of FRC systems, to Arduino.

In addition, the RobotOpen Control Shield hosts a HTML5-based driver station on Apache, which makes it possible to control a robotics system from any device with a web browser.

 

VEX Robotics EDR + VRC [2016]

Essentially a smaller, cuter version of FRC! VEX Robotics is a separate organization specialized in engineering robotics systems and kits for educational uses. This organization also hosts its own competition, known as VRC (VEX Robotics Competition).

Snapchat-657257854389521734

Specific to the VEX EDR system is the Cortex Microcontroller, which includes interfaces for PWM, DIO, Analog IN, and I2C notably. The network protocol is VEX-specific, known as VEXNet; a series of Wireless USB adapters that plug into the Cortex, and controller. The system itself is programmable in several languages, including C++ and Java. The EDR system however recommends the use of EasyC, a distro of C++ with a graphical interface, similar to LabView.

imgpsh_fullsize

I’ve had experience participating in VRC Mississauga 2015-2016 for the first time as the head of Team 70707B. Our team did great; making it to quarter finals on our first year with the VEX EDR system.

This season’s competition was Nothing But Net, a game where the main objective is to gather and shoot balls into nets. Points are calculated based on colored-ball shot into net, as well as team co-operation in performing an optional ‘lift’ near the end.

Our robot was designed to feed from the floor, as well as from base. We can shoot the full distance from base, as well as possess the capabilities to adjust power manually, on the fly. Balls are fed in from the bottom, brought up via an elevator/belt system, and dropped into a chute/hopper system that waits before the 4-motor flywheel shooter.

Our team and I learned a lot from VRC. One thing being the significant difference between an Open and Closed circuit system. The lack of precise feedback/motor control of the flywheels made the power of the shooter dependent on battery life, rather than a constant pre-defined. This made the shooter unreliable as battery life dwindled.

Our team is currently experimenting with the IME modules to encode critical systems, and will most likely be seeing other teams in VRC 2016-2017.

 

FRC (First Robotics Competition) [2016]

Get your fingers warmed up and wrenches at the ready, for the FRC Build Season has begun! Our school is one of the lucky few to have our own FRC team that is active in the FIRST community. We have competed in several FRC competitions, hosted an FLL tournament, and mentored several teams for different FRC programs. For those who are not aware of what FRC is, this video should suffice:

The reason why I love FIRST would be because of how broad, intriguing, and intuitive the community is. FIRST, from FRC to FLL, has never been “just” technical. FIRST takes real-life problems, and gives younger generations the resources and will to solve them. This leads to some diverse and unorthodox solutions to problems we face daily, as well as a spark in the minds of young future innovators.
The challenge as of now [2016] is Stronghold, where the theme is medieval, and the objectives include weakening opponent defenses, and conquering their ‘tower’ by shooting boulders into it.

My current role in our team is as the Software Lead. I’m the primary programmer for our FRC 2016 system, where I’ve used C++ to program various kinematic subsystems – including pneumatics. I’m also the primary electrician, and have specialized in preparing/wiring the entire control system.
On an average day, I would be programming a feature with close collaboration with the drive/build team, or working out kinks in the control system, or even mocking something up in inventor. Otherwise, I’m trouble-shooting something, or helping others with their specified task. However, something I feel our team has versus others is peer-relations. Although small, everyone on our team are well familiar with each other, capable of knowing their strengths and weaknesses.

 

FLL (First Lego League)

As an introduction to robotics and control systems, we started with something small and simple to manipulate; lego robots. Specifically, our class charade as a team competing in the FLL 2014 World Class challenge.
My mission was to program the standard build FLL robot into completing the Community Learning mission. The objective was to lift a loop, or a key, out of a holder – then set it down. This was relatively easy to create a manipulator for – a hook-like armature mounted to a motor. Programming it was even easier, for the NXT 2.0 can be programmed with Mindstorms, a graphical and interactive distribution of LabView.

legobot

 

PBASIC & BOE-Bots

Another programming language learnt in my Grade 11 year would be PBasic to program BOE-Bots. PBasic is a very, very simple programming language peaking at around 40 possible syntaxes in total.
A sample program that I have created can be found below. This program contains sub-routines prepared for my specific BOE-Bot configuration. A sub-routine is essentially a list, or container of parts that with some valid entry data, can perform a task. By use of these sub routines, you can easily program sentences of code that would perform much more versus a program without subroutines.

The PBasic language was used to program a BOE-Bot (BOE, board of education). The BOE-Bot is a small navigation robot which utilizes a Basic STAMP microcontroller and breadboard space to give the user an ability to interface hardware and devices into the robot.
The BASIC Stamp microcontroller from Parallax is essentially a small computer. Mounted on the chip are all the vital components (processor, clock source, memory, power regulator). Interfaced to the BASIC Stamp is a small breadboard for integrating devices and hardware into the small BOE-Bot. One of the integrated hardware would be Servo motors, in which would be the main means of moving the BOE-Bot.