Sunday 24 May 2015

WEEK FIVE: 18 May to 24 May

Task: Driver Display

SunSPEC4 requires a driver display. This week, we sourced for suitable displays. Below are some considerations that we took:

  • Size of the display. The display should be able to show all the necessary parameters, but also fits into the limited space in the car.
  • Power consumption. As we have limited power from the battery, reliance on solar energy is high. A suitable display should be one that draws as little power from the system as possible, in order to utilize more of the power generated to driving the motors. 
  • Arduino compatibility. Programming will be done with Arduino unit, therefore the display must be able to receive inputs from Arduino.
  • Aesthetics. We are aiming to have a display that is pleasant-looking.

The parameters that the driver's display should have includes:
  1. Solar string currents
  2. Total solar power produced
  3. Instantaneous speed
  4. Average speed
  5. Battery power consumed
  6. State of charge

In SunSPEC3, a 20x4 LCD was used to display the various parameters. The data is neat and organized. Arranged in 3 columns, the driver was able to get real time information from the small display. 
Figure 1. 20 x 4 LCD in SunSPEC 3

In SunSPEC 4, we want to explore the options of graphical LCDs or even tablet as display. The advantages of the graphical LCDs and tablets are such that they are easier to look at for data analysis, allowing the driver to do a quick planning during the race.
Figure 2. Graphical LCD with Arduino
The above photo extracted from nathan.chantrell.net shows that a graphical LCD. It is arduino compatible and source codes and tutorials can be found in the arduino library. The resolution, however, is not enough for an ideal display.
Figure 3. 5" SSD1963 TFT Touch Screen Display
We also looked into the optical light emitting diodes. The TFT Touch is made by joining various optical LEDs. OLED is brighter than the regular green/black LCDs. A clearer and higher resolution is provided as well. However, it is expensive and may require a shield in order to function with arduino.

The ASUS Nexus 7 would be the best option for driver's display in terms of size, resolution and aesthetics. It is an android tablet which made arduino programming possible via ArduinoDroid. 
Figure 4. ASUS Nexus 7 Tablet
Figure 5. ArduinoDroid on ASUS Nexus 7 Tablet
This 7" tablet draws roughly 16W per charge. One full charge is able to withstand 8-10 hours of usage. During the race, the display will be constantly on for about 9 hours each day. This means that each day we will have to spare 16W for the tablet if we were to choose this. 

Currently, we are looking into the ASUS Nexus 7 for its benefits. However, if power consumption does not permit, the 20x4 LCD is always an alternative for us. 

Monday 18 May 2015

WEEK FOUR: 11 May to 17 May 2015


Task 1: Voltage Divider Circuit

As most of our sensors and controllers operate on 5 volts or less, we would require a voltage divider circuit in order to ensure that there is 5 volts to operate the necessary circuits.
Figure 1. Voltage Divider Circuit
The principle of a voltage divider is shown in the circuit above. Using 2 resistors, the voltage measured by the voltmeter at the particular point will be just a fraction of the original voltage. The output voltage is directly proportional to the source as well as the ratio of the resistors used in the design. In Sunspec 4, we will be designing our own circuit using the same principle to achieve a low voltage from a high voltage. 


Task 2: Optocoupler Circuit
Figure 2. Voltage Isolation Circuit using Optocoupler
Due to the fact that we are dealing with high voltages, there is a high chance of compromising the user's safety as well as damaging components used in the telemetry system. Therefore, a voltage isolation circuit is required. An optocoupler circuit is used to allow this to happen. For this circuit, the input voltage will be proportional to the output voltage. The larger the input voltage(1 and 2) , the brighter the LED in the circuit, the more light detected, the higher the output at the end of the circuit(3 and 4).



Task 3: Differential Amplifier


Figure 3. Differential Amplifier
This circuit is used to obtain more accurate readings for our uni-directional sensors. For a bidirectional sensor, a base voltage of 2.5V is inputted so that it raises the measuring range from 0V to 2.5V out of 5V. 0 to 2.5V is used for negative flow of the current detected by the sensor. Since unidirectional sensors only sense one sided flow of current, the range of measurement is limited to 2.5 to 5V, which decreases our accuracy in readings.( Possibility of voltage less than 2.5V). Input voltage from the sensor will be inputted into one of the inputs while the other one will be kept at 2.5V to offset the rise in range caused by the design of the sensor.  



Monday 11 May 2015

WEEK THREE: 4 May to 10 May 2015

Task: Determining the Different Type of Sensors

As there are different parameters that we need to obtain from SunSPEC 4, different sensors are needed. 

Current Sensors
Measurements taken from the following hardware:
  • 3x string current after Solar MPPT (Maximum Power Point Tracking) 
  • 1x total current from batteries (in 34S 36P)
  • 2x current from the 2 motors 
Requirements for the current sensors:

1. Non-invasive so that the circuit need not to be broken
2. Hall effect sensors that measures DC Current
3. Must be compatible with the microcontroller that we are using.
4. Accurate / Sensitive enough for data logging


There are multiple power sources and motors for the SunSPEC 4. Therefore, we are required to have multiple current sensors for data tracking, in order to calculate the power consumption of the solar car. The following are the considerations we took for selecting our current sensors.

1. Bi-directional. The sensors for certain parts of the car must be bi-directional. For example, in the case of the motor, current will be flowing to the motor when driving and current will be flowing out of the motor when implementing the regenerative braking.

2. Non-invasive. For the ease of removing the sensors when troubleshooting and also to minimize the possibility of hot spots due to bad contacts, we have decided to use a non-invasive hall effect sensors.

3. Size. The current sensor must also be of a certain size, in order for the wire to be able pass through the sensor for measurements to be taken.

4. Current rating. The rating of the current that we require would also be considered, as we would not want the sensor rating to be lesser than the rated currents of our systems in the solar car.

Coding for current sensors:

void setup() {
Serial.begin(9600); //initiate Arduino serial display }

void loop() { //to be repeated over and over again

float average = 0; //set average to pin A0

for(int i = 0; i < 1000; i++) {
average = average + (.0264 * analogRead(A0) -13.51); //calibrated current calculation
delay(1);  }
Serial.print(average);
Serial.println("mA"); }

We looked through a few non invasive current sensors which includes Panucatt CS-45AL Hall effect sensor, LEM HO series current sensors and AMPLOC current sensors. Although we favoured Panucatt Sensor the most, it has been out of stock since 2012. The LEM sensors on the other hand consumes too much power. Thus, we decided to continue using the AMPLOC current sensors.

Amploc current sensors were used in SunSPEC3.  We found that the readings obtained in SunSPEC3 was rather accurate which made decision-making easy for the telemetry team. Figure 1b shows the dimension of Amploc sensors. The size of the sensor is able to fit all the wire sizes, measuring the current of motor, MPPT, battery and others.

Shortlisted current sensors: AMPLOC AMP Series (Datasheet)



Voltage Sensing Circuits
Measurements taken from the following hardware:
  • 1x system voltage
  • 1x battery voltage
  • 1x solar voltage
Requirements for the voltage sensing circuit:
1. Able to sense up to 150V
2. To step down until 5V for microcontroller boards to function properly
3. Sensitivity:

For voltage sensing, our team would have to come up with a circuit to measure the voltage and step down into a range of 5V to be input into the microcontroller. 



Temperature Sensors
Measurements taken from the following hardware:
  • 4x battery temperatures (to be placed at hot spots in the battery box)
  • 3x solar panel temperature (to be placed underneath the solar panels)



Requirements for temperature sensors:
1. Big temperature range
2. Durable
3. Compatible with the microcontroller that we chose.  





Coding for temperature sensor

float temp;
int tempPin = 0;

void setup() {
Serial.begin(9600); }

void loop() {
temp = analogRead(tempPin)/9.31;
Serial.print("TEMPRATURE = ");
Serial.print(temp);
Serial.print("*C");
Serial.println();
delay(500); }

Temperature sensors are easily obtained from various stores. We shortlisted LM35 as it is cheap and compatible with any microcontroller. The reading from LM35 is also rather accurate at 10mV/°C. The pins are also easy to configure. Measurement of temperature ranges up to 300°C. 

Shortlisted temperature sensors: LM35 (Datasheet)

Monday 4 May 2015

WEEK TWO: 27 Apr to 3 May 2015

Task: Analyzing the Different Types of microcontrollers

During the World Solar Challenge as the SunSPEC 4 is running, we would need constant information about SunSPEC 4's current performance in order to better decide the speed that we should be running at. For that, we would need sensors and microcontrollers to help us deliver the information from the SunSPEC 4 to the chase vehicle.

For a start, we looked at some of the market's most prominent microcontrollers, mainly the Arduino, Raspberry Pi and the Beaglebone.



Arduino UNO
Figure 1. Arduino MEGA board
The Arduino is a very popular microcontroller in the current market. It has a very big community, with many projects and tutorials online, making the Arduino very easy to familiarise with. The Arduino uses the C programming language, the language that most of our team members are familiar with, thus the time taken for us to learn about the Arduino was shorten by quite a fair amount.

The unique part of Arduino would be the Shields that are available on the market. The Shields are like add ons to the Arduino boards, adding to the functionality of the Arduino boards. This unique feature of Arduino enhances the Arduino's flexibility, making them extremely useful when we need the Arduino to perform various tasks that a normal microcontroller would not be capable of.



Raspberry Pi

The Raspberry Pi is a mini computer, with many capabilities. The Raspberry Pi does not need a computer for programming, as it takes care of that by receiving instructions directly from the user by allowing them to program through the connecting a monitor, keyboard and mouse.

Although the Raspberry Pi may appear good in the market, it is unsuitable for use in the SunSPEC 4, as it would require a output display when we want to make changes to the program, making troubleshooting very inconvenient. Also, the Raspberry Pi only possesses digital I/O ports, making it unsuitable for taking outputs from the sensors which would require analog ports from the microcontroller.



Beaglebone

The Beaglebone is a relatively new microcontroller. It is a microcontroller with a powerful processor and many different interfaces for connections, such as the CAN bus and SPI bus. With many I/O ports, it is capable of taking in many different inputs from the various sensors that we would have on the SunSPEC 4.

However, as the Beaglebone is relatively new to this market, there is not much information we can learn about the Beaglebone's programming and functions. Although the Beaglebone may be a very good microcontroller for the SunSPEC 4, we do not have much information to start working with it.