The functional requirements of the sensor system are as follows:
Accurately actuate a jump at a predetermined position.
Maintain a level position upon landing.
Cost effective.
Easily replaceable and reproducible.
The functional requirements of the microcontroller unit (MCU) are as follows:
Gather information from the sensor system.
Interpret information and provide commands.
Cost effective.
Reproducible ease.
Ease of coding.
The criteria for these items are cost efficiency, off the shelf availability and ease of reproduction. The goal is to make two separate robotic skateboards with one being a purely educational device and the other being a demonstrative device.
The educational version would be interactive with student involvement in the teaching of physics principles while performing a “bunny hop” jump. The demonstrative version would be the performance of ollie skateboard trick like a skateboarder would.
Based on the requirements, the sensor that can detect an obstacle and inform the MCU is a commercially available ultrasonic sensor. The sensor works by sending and receiving high frequency signals and using the time interval between incoming and outgoing signals to determine distance. These sensors are made for a variety of MCUs that will be used and the prices between these types vary, but they are reasonably priced. These sensors can be as low as $6 and up to $26 depending on the MCU used.
The next item is the sensor that can detect the position of the skateboard when it is midair performing the jump. Based on the need to know that information in a 3 dimensional space then an accelerometer is viable solution. Using positional data while in midair and correcting for an imbalance in orientation then the jump can be completed right side up thus preventing damage to the robot. There are a number of 3 axis accelerometers available online on such websites as Amazon.com and Parallax.com with pricing usually less than $30 depending on the MCU used.
There are two options for the MCU that are easily attained and can be replaced with minimal cost are those offered by Arduino and Lego respectively. Arduino offers a plethora of MCUs for a variety of applications and there is a familiarity with the Arduino Uno. The other option is the Lego NXT Intelligent Brick that is geared towards K-12 students and the demographic our project is aimed towards.
Specifications:
The NXT
The NXT is the brain of a MINDSTORMS® robot. It’s an intelligent, computer-controlled LEGO® brick that lets a MINDSTORMS robot come alive and perform different operations.
Motor Ports
The NXT has three output ports for attaching motors - Ports A, B and C
Sensor Ports
The NXT has four input ports for attaching sensors - Ports 1, 2, 3 and 4.
USB Port
Connect a USB cable to the USB port and download programs from your computer to the NXT (or upload data from the robot to your computer). You can also use the wireless Bluetooth connection for uploading and downloading.
Loudspeaker
Make a program with real sounds and listen to them when you run the program.
NXT Buttons
Orange button: On / Enter / Run
Light grey arrows: Used for moving left and right in the NXT menu
Dark grey button: Clear / Go back
NXT Display
Your NXT comes with many display features - see the MINDSTORMS NXT Users Guide that comes with your NXT kit for specific information on display icons and options.
Technical Specifications
32-bit ARM7 microcontroller
256 Kbytes FLASH, 64 Kbytes RAM
8-bit AVR microcontroller
4 Kbytes FLASH, 512 Byte RAM
Bluetooth wireless communication (Bluetooth Class II V2.0 compliant)
USB full speed port (12 Mbit/s)
4 input ports, 6-wire cable digital platform (One port includes a IEC 61158 Type 4/EN 50 170 compliant expansion port for future use)
3 output ports, 6-wire cable digital platform
100 x 64 pixel LCD graphical display
Loudspeaker - 8 kHz sound quality. Sound channel with 8-bit resolution and 2-16 KHz sample rate.
Power source: 6 AA batteries
Microcontroller ATmega328
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory
32 KB of which 0.5 KB used by bootloader
SRAM 2 KB
EEPROM 1 KB
Clock Speed 16 MHz
Sensors:
The Ultrasonic Sensor is one of the three sensors that give your robot vision [The Light Sensor and Color Sensor are the others]. The Ultrasonic Sensor enables your robot to see and detect objects. You can also use it to make your robot avoid obstacles, sense and measure distance, and detect movement. The Ultrasonic Sensor measures distance in centimeters and in inches. It is able to measure distances from 0 to 255 centimeters with a precision of +/- 3 cm. The Ultrasonic Sensor uses the same scientific principle as bats: it measures distance by calculating the time it takes for a sound wave to hit an object and return – just like an echo. Large sized objects with hard surfaces return the best readings. Objects made of soft fabrics or those that are curved [like a ball] or are very thin or small can be difficult for the sensor to detect. Note that two or more Ultrasonic Sensors operating in the same room may interrupt each other’s readings.
PING Ultrasonic Distance Sensor
Features:
Provides precise, non-contact distance measurements within a 2 cm to 3 m range
Simple pulse in/pulse out communication
Burst indicator LED shows measurement in progress
20 mA power consumption
Narrow acceptance angle
3-pin header makes it easy to connect using a servo extension cable, no soldering required
Key Specifications:
Power requirements: +5 VDC
Communication: Positive TTL pulse
Dimensions: 0.81 x 1.8 x 0.6 in (22 x 46 x 16 mm)
Operating temp range: +32 to +158 °F (0 to +70 °C)
Using the sensor, you can measure the acceleration of your robot in the range –2g to + 2g. Great for experimenting with acceleration forces in cars, on amusement rides, even on swing sets. This sensor will also tell you if your robot is level so you can build self-leveling robots and much more.
Comparisons:
Conclusion:
The benefit of the NXT Intelligent Block is its presence in the K-12 education system and the ease of using Robot C for programming. Based on that it would be beneficial to use it for the robotic skateboards. Although the sensors have a higher cost compared to those compatible with Arduino, the availability of the NXT in K-12 schools offsets this based on the students’ familiarity and the school inventory. An added benefit is the Bluetooth connectivity already installed thus providing more options to control the NXT with more student involvement.
References:
http://www.ni.com/academic/mindstorms/
http://arduino.cc/en/Main/arduinoBoardUno
http://www.parallax.com/tabid/768/productid/92/default.aspx