Ong Ji Keong + Lee Juo Shuen + Gu Wang Fan + Kuan Wei Heng + Chin Chee
group3.jpg
Day 1

We feel that this lecture session was very informative. Before this, we were completely clueless about what electronics and the systems behind communications are. We realised that electronics are simple devices that could be made into complicated but useful daily objects. However, we are still puzzled over how computers are built out of simple circuitry. After the first day, we feel that this is a start of an extremely exciting and enriching journey of learning, even though the lecture might have been a little dull and dry at times. We are looking forward to the rest of the lectures and making our own circuits and writing our own programs for them. We also hope that we can get more opportunities to learn through hands-on activities, so that we may experience and experiment with the circuitry ourselves.

Day 2

We were introduced by the GSM module and Arduino, an open-source electronic prototype and the uses of these two prototypes. After the lecture, we are provided with a set of Arduino Inventor’s Kit and Quectel M10 GSM module to explore. There are a lot of parts provided; some of them include breadboards, LED lights, resistors and transistors. Initially we do were staring blankly at the parts given, not having a single idea of what to do :P but we tried out some of the simpler experiments first.

day2-5.jpg

After we have some idea what’s happening between the parts, we started to try out the harder ones. We also used HyperTerminal, a terminal emulation program to make a call using Quectel M10 GSM module. We did lots of stuff using the HyperTerminal, like calling one of our members, receiving a call, and others too. We are excited to be able to explore these programs and have a chance to use them. Also, we gained some knowledge on how they work. All in all, it is a very enjoyable experience throughout this course.




Day 3

Today, we learnt about how to do certain things with the arduino, getting a few ideas about what we can do for our mini-project. The Intel personnel also showed us a few electronics parts which we had not seen before, and explained to us how they work and how we can implement them in our mini-project. We think that it was quite helpful, as we could possibly use those parts to improve on the design and function of our prototype, but the only downside was that we did not possess any of those parts. For most of the time, we were working on our project, and despite not having much resources, we managed to come up with a simple, yet practical idea. The assembly was generally not that dfficult, but the large number of wires made it quite confusing as to which wire and which port was linked to which part.It was the coding that made us get stuck. We faced problems with configuring the switch and getting the LED lights to turn on and off in the pattern we wanted them to, but after a few hours of trial and error, we finally completed it. We feel that this has been a good experience so far, learning both through lectures and hands-on.


Day 4

We reassembled our circuit to make it more neat, and hopefully more convenient to code. After that, we went off to start improving on our code such that we can soon integrate our arduino with the GSM.
day4-3.jpg
After that, we began the assembly of our level-shifter, soldering wires and linking them with our existing circuit. We feel that the assembly of the level shifter and the integration of it into our GSM and arduino circuits were quite difficult tasks, as the large number of wires involved made the process very confusing.

Also, the small size of the breadboard we were using for the level shifter made the assembly process more difficult too. In the end, we managed to come out wth a few new light patterns to apply, and then could also fix certain problems with the duration of the patterns. However, we had to remove the button control as we could not really link the buttons with particular patterns in the code. We feel that we have done a pretty good job overall, but can still improve more as we could not code the GSM to integrate with the arduino.





Our circuit has 2 pushbuttons as inputs and a 2x5 LED matrix and an RGB LED as outputs.

This is the current state of our circuit:grp3_bb.pngAnd here is its schematic diagram:grp3_schem.png

The following is our program:

int led_mode[][11] = {
  {1,0,0,0,0,0,0,0,0,0,20}, \
  {0,1,0,0,0,0,0,0,0,0,18}, \
  {0,0,1,0,0,0,0,0,0,0,16}, \
  {0,0,0,1,0,0,0,0,0,0,14}, \
  {0,0,0,0,1,0,0,0,0,0,12}, \
  {0,0,0,0,0,1,0,0,0,0,10}
  // etc etc
};
 
volatile byte state = 0;
long prev_rgb_time = 0;
 
void setup() {
  Serial.begin(9600);
  for(int i=40; i<=49; i++) {
    pinMode(i, OUTPUT);
  }
  for(int i=8; i<=10; i++) {
    pinMode(i, OUTPUT);
  }
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  attachInterrupt(0, toggle, RISING);
}
 
void updateMatrix() {
  byte terminate = 0;
  for(int i=0; i<=sizeof(led_mode)/sizeof(led_mode[0])-1; i++) {
    for(int j=0; j<=9; j++) {
      if(state==1) {
        unsigned long rgb_time = millis();
        if(rgb_time - prev_rgb_time > 100) {
          updateRainbow(random(0,255),random(0,255),random(0,255));
          prev_rgb_time = rgb_time;
        }
        digitalWrite(j+40, led_mode[i][j]==1?HIGH:LOW);
        delay(led_mode[i][10]);
      }
      else {
        terminate = 1;
        break;
      }
    }
    if(terminate==1) {
        break;
    }
  }
}
 
void updateRainbow(int r, int g, int b) {
  analogWrite(8, r);
  analogWrite(9, g);
  analogWrite(10, b);
}
 
void toggle() {
  static unsigned long prev_time = 0;
  unsigned long time = millis();
  if (time-prev_time>200) {
    state = !state;
  }
  prev_time = time;
}
 
void loop() {
  updateMatrix();
  for(int i=40; i<=49; i++) {
    digitalWrite(i, LOW);
  }
  updateRainbow(0,0,0);
}
Presentation PowerPoint: LINK
P1000200.JPG