
CHAPTER
01
INFORMATION ABOUT HARDWARE:
COMPONENTS OF NOVA

Let's start by having a look at the components of Nova by learning about their roles, structures and specifications. Getting to know each component thoroughly will provide a better understanding while working with Nova. Additionally, getting familiar with the individual components will give you confidence while customising Nova or while using them for other projects.
CREOQODE MINI MEGA DEVELOPMENT BOARD
Creoqode Mini Mega is an Arduino-based development board. In other terms, it is the brain of Nova. We will be programming ATmega2560, the microcontroller Creoqode Mini Mega is based on, to make Nova act as we want. With the use of this development board, Nova can receive data from sensors and move accordingly.
Mini Mega is fully compatible with Arduino Mega 2560 and is much smaller in terms of physical size. The fact that Creoqode Mini Mega offers the same technical specifications in a compact package makes it an ideal solution for projects with space restrictions that require numerous input/output pins. Mini Mega allows many electronic gadgets and sensors to be simultaneously used without the need of another microcontroller or a development board.

You can see below the technical specifications of Creoqode Mini Mega:
Microcontroller
Operating Voltage
Input Voltage (recommended)
Input Voltage (limit)
Digital I/O Pins
Analog Input Pins
DC Current per I/O Pin
DC Current for 3.3V Pin
Flash Memory
SRAM
EEPROM
Clock Speed
LED Built-in
ATmega2560
5V
7-12V
6-20V
54 (of which 15 provide PWM output)
16
20 mA
50 mA
256 KB of which 8 KB used by bootloader
8 KB
4 KB
16 MHz
13


Each of the 54 digital pins on Mini Mega can be used as an input or output, using pinMode(),digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive 20 mA as recommended operating condition and has an internal pull-up resistor (disconnected by default) of 20-50 k ohm. A maximum of 40mA is the value that must not be exceeded to avoid permanent damage to the microcontroller. In addition, some pins have specialized functions:
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.
External Interrupts: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), and 21 (interrupt 2). These pins can be configured to trigger an interrupt on a low level, a rising or falling edge, or a change in level. See the attachInterrupt() function for details.
PWM: 2 to 13 and 44 to 46. Provide 8-bit PWM output with the analogWrite() function.
SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). These pins support SPI communication using theSPI library. The SPI pins are also broken out on the ICSP header, which is physically compatible with the Arduino /Genuino Uno and the old Duemilanove and Diecimila Arduino boards.
LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off.
TWI: 20 (SDA) and 21 (SCL). Support TWI communication using the Wire library. Note that these pins are not in the same location as the TWI pins on the old Duemilanove or Diecimila Arduino boards.
Mini Mega has 16 analog inputs, each of which provide 10 bits of resolution. By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and analogReference() function.
Creoqode Mini Mega board has a number of facilities for communicating with a computer, another board, or other microcontrollers. The ATmega2560 provides four hardware UARTs for TTL (5V) serial communication. An ATmega16U2 on the Mini Mega board channels one of these over USB and provides a virtual com port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically). The Arduino Software (IDE) includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer.
To summarise, Creoqode Mini Mega is a microcontroller board based on the ATmega2560. It has 54 digital input/output pins (of which 15 can be used as PWM outputs), 16 analog inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal oscillator, a USB connection, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a battery to get started.

CREOQODE NOVA SERVO SHIELD
Nova Servo Shield provides quick connection between MG996R servo motors and Creoqode Mini Mega while providing easy access to the unoccupied digital and analog I/O pins. In addition, it accomodates a power jack where 5V is supplied to the board, and a switch to turn on/off Mini Mega development board.

The wiring for the servo motors require 3 pins, which are VCC (5V in our case), GND, and signal pin that the data to set the servo shaft angle is sent. Nova Servo Shield groups these 3 pins as a column, where each row contains VCC, GND and signal pins. VCC are directly connected to the power jack where 5V is supplied. Both top and bottom copper layers of the circuit board are used as ground planes, so the GND pins are connected to the plane without any routing. Input / Output signal pins of Creoqode Mini Mega are distributed from the female header pins to the columns designed for servo motors. You can see below the PCB design of Nova Servo Shield.

CREOQODE NOVA JOYSTICK SHIELD
Nova Joystick Shield has two thumb joysticks consisting of 4 potentiometers and 2 switches in total. The joysticks used on this circuit board are the ones you find in PS2 joysticks. Tactile switches that comes with the joysticks are connected to digital pins on Creoqode Mini Mega, and the potentiometers are connected to analog pins. As described earlier, the analog pins on Creoqode Mini Mega can provide 10 bits of resolution, which is 1024 different values. They measure from ground to 5 volts, and return a value between 0 to 1024, where 512 would be the neutral position of each potentiometer. We will be going though this in detail in the upcoming chapters.

CREOQODE NOVA SERVO MOTORS
Servo motors that come with Creoqode Nova has a shaft angle range of 180 degrees, and can provide up to 12 kg/cm torque when 6V is supplied. We will be supplying 5V when working with Nova through the power adapter provided in the kit, and the approximate torque value we can achieve is 9.4 kg/cm which is more than enough to move Nova in many different applications. As explained in the Nova Servo Shield section of this chapter, the servos have 3 wires which are VCC (red colour), GND (brown colour) and the signal wire (orange colour). Below, you can find some technical specifications of these servo motors:

Weight
Dimension
Stall torque
Operating speed
Operating voltage
Gear Type
Temperature range
Dead band width
Servo Wire Length
55 grams
40.7 mm × 19.7 mm × 42.9 mm
9.4 kg/cm (4.8V) | 12 kg/cm (6.0V)
0.19 sec/60 degrees (4.8V) | 0.15 sec/60 degrees (6.0V)
4.8V - 6.6V
Metal gear
0 - 55 degrees Celcius
1 us
32 cm

CREOQODE NOVA CAMERA MODULE
The camera module that comes with Creoqode Nova is based on Aptina AR0130 sensor and a 3.6 mm lens. This camera module allows USB communication with your PC and it works with Windows, Mac OS and Linux. Maximum resolution of the camera is 1280 x 960 pixels. Camera allows video capturing at 15 frames per second at maximum resolution, and 30 frames per second at any resolution lower than 1280 x 720 pixels.

You can find below some of the technical specifications of the camera module:
Sensor
Lens Size
Pixel Size
Maximum Resolution
Compression format
Resolution
Sensitivity
Minimum Illumination
Shutter Type
Connecting Port Type
Adjustable Parameters
Lens Parameter
Aptina AR0130
1/3 inch
3.75 um
1280(W)X960(H)
MJPEG / YUV2(YUYV)
1280X960 JPEG @ 15fps | 1280X720 JPEG @ 30fps
5.5 V/lux-sec @ 550nm
0.01 lux
Electronic Rolling Shutter / Frame Exposure
USB 2.0 High Speed
Brightness, Contrast, Saturation, Hue, Sharpness, Gamma, Gain, White balance, Backlight Contrast, Exposure
3.6 mm

ULTRASONIC SOUND SENSOR (HC-SR04)
HC-SR04 is an ultrasonic sound sensor. This sensor provides 2 cm to 400 cm of non-contact measurement functionality with a ranging accuracy that can reach up to 3 mm. This module includes an ultrasonic transmitter, an ultrasonic receiver and a control circuit.
There are only four pins that you need to worry about on the HC-SR04: VCC (Power), Trig (Trigger), Echo (Receive), and GND (Ground). You will find this sensor very easy to connect to Creoqode Mini Mega and to work with it. In the upcoming chapters, we will go through this module and its applications in detail.

