Content:
- Reviewing of proposal with teachers
- Improving on ideas/ creation of new ideas
Process;
We first met the teachers to discuss on the proposal that we had submitted earlier. Our first proposal was to create a UV clock. The idea stemmed from the the luminescent property of fluorescent paint under the exposure of ultraviolet light. Fluorescent paint, under the exposure of UV light, will continue to exhibit glowing properties for a period of time even after the removal of the UV light. We wanted to harness this effect to create a more energy efficient clock and a better clock display. We believed that although UV LEDs were less energy efficient than LEDs found in most digital clocks today, our design of using less UV LEDs to 'write' the time and the lack of need for constant energy supply to the LEDs would reduce overall energy consumption. Granted, the use of the Raspberry Pi and and the mechanisms within the clock would also take up energy, but we believed that if this first trial was to work, we could create a UV clock with a circuit board that would cut down on further energy consumption. We also believed that the display of the UV clock would be far better than that of those in the current market. Mechanical clocks cannot be read in the dark and digital clocks require more LEDs and constant power supply to keep the LEDs lit. Aside from the technical advantage we believe the UV clock could hold over the other clocks present today, we were also fascinated with the interaction between UV light and fluorescent. There has been little research about such an interaction and little trials to incoporate such an effect into daily life and hence we also wanted to, during the course of our project, research and hopefully shine some light onto the issue. We also gave our project a high level of difficulty as it required first, the research and understanding of the glowing effect, and second, the programming skills such as that of x and y axis positional to move the LEDs to 'write'. Our idea got rejected and we then had a difficult time trying to think of another one.
Reflection:
Sadly, our idea got rejected. The teachers wanted us to prove with calculations the energy consumption of the UV clock against that of the digital clock. As the information on the internet is too little, we were unable to do so. Whereas, we treated the project as an opportunity to learn and experience, and wanted to test the energy consumption after it was completed to see if our hypothesis was true, the teachers wanted a useful product and wanted us to first prove that our hypothesis was true before carrying it out. We also wanted to use the project to conduct a first prototype and test the viability of using the UV-fluorescent interaction, focusing on the energy consumption less as the Pi could simply be replaced by a circuit board. However, the teachers did not agree with such a stand and wanted a final product to surface from this project. Hence, due to the many difficulties, we had to do away with the project with think of another one.
Personal Development:
The rejection of our proposal taught me that life is not always smooth sailing. However, if I have the will to learn, I should explore and experiment on my own even outside the school. The school offers us some financial aid but nonetheless some things can be done without much money. It helped me to most importantly understand the school in terms of the things they look out for in the project of the students and this will not only help me in the later proposals but through my remaining school life too.
Saturday, 26 March 2016
Arduino Workshop Lesson 2 18 March 2016
Content:
- Setting up of LED to appear and disappear in a line
- Adding a buzzer to play sounds in sync with light
- Building of own project
Process:
It was the second lesson of our Arduino workshop and our first task was to light up a row of LED such that it would seem like the light was travelling in a line down the LEDs. This would require that all the LEDs be off as the next on is turned on and so on. This is a relatively simple task that we could complete using the delay function. The next task, however, was to involve the buzzer into the set-up such that a note would be played as the light switched from one LED to another. The main difficulty here was to synchronise the playing of the note with the lighting of the LED. For this, we were unable to complete the task until we figured out how to use an array. Finally, we were able to complete the task after lots of hard work.
The result of our hard work:
The second segment of our day was for us to embark on our own projects. We were allowed to think of our own ideas and to work it out. My group worked on two projects, a reaction time timer and a dice. Unfortunately, both of them did not work our very well but in the process, we had to be extremely determined and we learnt alot through the web and trial and error. Trying to complete our own projects trained us to think deep and concentrate well.
We also explored the other components in our Arduino kit and tried to make them work. One of the examples was the LCD. The wiring of the LCD was extremely complicated and we had to follow examples from the internet to make it work. We had to be extremely focused and meticulous as we could not even attach one of the wires wrongly without making the set up not work. After a long long time and several retries:
- Setting up of LED to appear and disappear in a line
- Adding a buzzer to play sounds in sync with light
- Building of own project
Process:
It was the second lesson of our Arduino workshop and our first task was to light up a row of LED such that it would seem like the light was travelling in a line down the LEDs. This would require that all the LEDs be off as the next on is turned on and so on. This is a relatively simple task that we could complete using the delay function. The next task, however, was to involve the buzzer into the set-up such that a note would be played as the light switched from one LED to another. The main difficulty here was to synchronise the playing of the note with the lighting of the LED. For this, we were unable to complete the task until we figured out how to use an array. Finally, we were able to complete the task after lots of hard work.
The result of our hard work:
The second segment of our day was for us to embark on our own projects. We were allowed to think of our own ideas and to work it out. My group worked on two projects, a reaction time timer and a dice. Unfortunately, both of them did not work our very well but in the process, we had to be extremely determined and we learnt alot through the web and trial and error. Trying to complete our own projects trained us to think deep and concentrate well.
We also explored the other components in our Arduino kit and tried to make them work. One of the examples was the LCD. The wiring of the LCD was extremely complicated and we had to follow examples from the internet to make it work. We had to be extremely focused and meticulous as we could not even attach one of the wires wrongly without making the set up not work. After a long long time and several retries:
Reflection:
The objective of this course and the embarking on a self project, to me, was to teach us the value of determination and the will to learn and succeed. Success is the derivative of your hard work. It does not come easy and it only goes to those who toil and work effectively. I also realised the wide array of learning possibilities found in the internet. We are extremely blessed with the internet today as it empowers us with the opportunity to learn. As long as we have a will to learn, we can always do so with the internet. I will use the internet much more not just to further my learning for Arduino but in all aspects of learning as well.
Personal Experience:
Not just was this course beneficial to me technically, it built my character as well. I made me realise the important of hard work and the will to learn. From now on I will strive to work harder in all aspects of my learning and life. I also gained more understanding of the different functions in Arduino and understood the importance of determination as a programmer.
Arduino Workshop Lesson 1 on 11 March 2016
Content:
- Introduction to Arduino
- Setting up of hardware and software
- Delay and millis function
Process:
It was the first day of our Arduino course and as beginners interacting with the Arduino, we were first given an introduction about the capabilities of Arduino, the set-up of the Arduino, and how to use to Arduino. We first embarked on a small task, which was to set-up one blinking LED. To do this, we were required to understand how to set a circuit up and the workings of the bread board. We had to understand the sequence of the breadboard, the pins on the Arduino, and had to use a resistor to avoid burning out the LED. We then had to tackle to software aspect of the task. We were introduced to the logic behind the Arduino programme which runs on the C programming language, relatively new to the most of us. However with the instruction of the trainers, we were able to complete the basic task while gaining some minute understanding of the programming language.
The next task we had was to send out the SOS signal with the blinking of the LED. The signal consists of 3 short taps, 3 long taps, followed by a final 3 short taps.. This task was not difficult and we were able to solve it easily using the delay function. The next part however, was much more difficult. The trainer required us to use the millis function as an alternative method to avoid some drawbacks of the delay function. Although not needed on this task, he wanted us to practise using it. The drawback of the delay function was that it would stop the whole Arduino from functioning for the set period of time. While the delay function was in effect, the Arduino would not be able to work on anything else. On the other hand, the millis function keeps track of time instead of stopping the Arduino for a period of time. Using the millis function, we would be able to set the Arduino to light up at certain instances in time without compromising other programmes running on the Arduino. With some difficulty, we were eventually able to complete the task, learning an important function in the process.
Reflection:
I am very glad that we were given the opportunity to pick up this course. Arduino holds alot of capabilities and possibilities, and it is not too hard for us to pick one up and experiment ourselves. Arduino however, would require me to pick up a new programming language, which although time-costly, will improve my overall programming flexibility and knowledge. I am interested in exploring and learning more about the Arduino and I might consider purchasing one to experiment on and embark on several self learning projects. I am very excited for the next Arduino workshop where we would be allowed to conduct some of our own projects. During the week in between, I would self-learn more of the C syntax which can help me during the next lesson.
Personal Development:
Personally, I have only heard of Arduino but not tried it out. This lesson was my first experience in handling and using the Arduino. I actually enjoy what I have attempted so far and am willing to get more of such opportunities. I would also start to learn more different programming languages so as to improve myself and my capabilities in different areas of computing. Personally, I enjoyed the trainers' methods of conducting the workshop. There was little guidance from him which encouraged us to think and solve problems on our own. The sense of achievement from completing a task, besides the knowledge we have gained, made the first lesson of the workshop extremely enjoyable.
About Arduino
Arduino is an open-source platform used for building electronics projects. Arduino consists of both a physical programmable circuit board (often referred to as a microcontroller) and a piece of software, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.
The Arduino platform has become quite popular with people just starting out with electronics, and for good reason. Unlike most previous programmable circuit boards, the Arduino does not need a separate piece of hardware (called a programmer) in order to load new code onto the board – you can simply use a USB cable. Additionally, the Arduino IDE uses a simplified version of C++, making it easier to learn to program. Finally, Arduino provides a standard form factor that breaks out the functions of the micro-controller into a more accessible package.
- Introduction to Arduino
- Setting up of hardware and software
- Delay and millis function
Process:
It was the first day of our Arduino course and as beginners interacting with the Arduino, we were first given an introduction about the capabilities of Arduino, the set-up of the Arduino, and how to use to Arduino. We first embarked on a small task, which was to set-up one blinking LED. To do this, we were required to understand how to set a circuit up and the workings of the bread board. We had to understand the sequence of the breadboard, the pins on the Arduino, and had to use a resistor to avoid burning out the LED. We then had to tackle to software aspect of the task. We were introduced to the logic behind the Arduino programme which runs on the C programming language, relatively new to the most of us. However with the instruction of the trainers, we were able to complete the basic task while gaining some minute understanding of the programming language.
The next task we had was to send out the SOS signal with the blinking of the LED. The signal consists of 3 short taps, 3 long taps, followed by a final 3 short taps.. This task was not difficult and we were able to solve it easily using the delay function. The next part however, was much more difficult. The trainer required us to use the millis function as an alternative method to avoid some drawbacks of the delay function. Although not needed on this task, he wanted us to practise using it. The drawback of the delay function was that it would stop the whole Arduino from functioning for the set period of time. While the delay function was in effect, the Arduino would not be able to work on anything else. On the other hand, the millis function keeps track of time instead of stopping the Arduino for a period of time. Using the millis function, we would be able to set the Arduino to light up at certain instances in time without compromising other programmes running on the Arduino. With some difficulty, we were eventually able to complete the task, learning an important function in the process.
Reflection:
I am very glad that we were given the opportunity to pick up this course. Arduino holds alot of capabilities and possibilities, and it is not too hard for us to pick one up and experiment ourselves. Arduino however, would require me to pick up a new programming language, which although time-costly, will improve my overall programming flexibility and knowledge. I am interested in exploring and learning more about the Arduino and I might consider purchasing one to experiment on and embark on several self learning projects. I am very excited for the next Arduino workshop where we would be allowed to conduct some of our own projects. During the week in between, I would self-learn more of the C syntax which can help me during the next lesson.
Personal Development:
Personally, I have only heard of Arduino but not tried it out. This lesson was my first experience in handling and using the Arduino. I actually enjoy what I have attempted so far and am willing to get more of such opportunities. I would also start to learn more different programming languages so as to improve myself and my capabilities in different areas of computing. Personally, I enjoyed the trainers' methods of conducting the workshop. There was little guidance from him which encouraged us to think and solve problems on our own. The sense of achievement from completing a task, besides the knowledge we have gained, made the first lesson of the workshop extremely enjoyable.
About Arduino
Arduino is an open-source platform used for building electronics projects. Arduino consists of both a physical programmable circuit board (often referred to as a microcontroller) and a piece of software, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.
The Arduino platform has become quite popular with people just starting out with electronics, and for good reason. Unlike most previous programmable circuit boards, the Arduino does not need a separate piece of hardware (called a programmer) in order to load new code onto the board – you can simply use a USB cable. Additionally, the Arduino IDE uses a simplified version of C++, making it easier to learn to program. Finally, Arduino provides a standard form factor that breaks out the functions of the micro-controller into a more accessible package.
Wednesday, 2 March 2016
Log for 3 March 16
Content:
- We learnt how to check our IP address ( ipconfig, ifconfig)
- Learnt how to use PuTTy to programme Pi with laptop over server (SSH)
- Raspberry Pi terminal basic commands
Process:
Each group SSH-ed one laptop to their Pi using Mr Zhou's router using PuTTy. However, many did not work due to the IP addresses given out to the Pi. This failure might be able to prove helpful in the future when troubleshooting etc. The non-working IP addresses given out by the router was an issue that we faced and I personally wonder how this can be solved or avoided so that this issue will not be faced again in the future.
Reason:
Being able to SSH provides alot of flexibility to us when working at home and outside. Without SSH, we would only be able to make use of the Pi bu attaching it to a monitor, keyboard, mouse, etc. This is extremely inconvenient, restricting us to doing it at home, and many of us do not have the hardware ourselves. With SSH, we will still be able to control the Pi through our laptop wherever we are, without any hardware. This is extremely convenient and the skill is directly applicable and important for the near future when we bring our Pi home etc.
Personal Development:
Each group SSH-ed one laptop to their Pi using Mr Zhou's router using PuTTy. However, many did not work due to the IP addresses given out to the Pi. This failure might be able to prove helpful in the future when troubleshooting etc. The non-working IP addresses given out by the router was an issue that we faced and I personally wonder how this can be solved or avoided so that this issue will not be faced again in the future.
Reason:
Being able to SSH provides alot of flexibility to us when working at home and outside. Without SSH, we would only be able to make use of the Pi bu attaching it to a monitor, keyboard, mouse, etc. This is extremely inconvenient, restricting us to doing it at home, and many of us do not have the hardware ourselves. With SSH, we will still be able to control the Pi through our laptop wherever we are, without any hardware. This is extremely convenient and the skill is directly applicable and important for the near future when we bring our Pi home etc.
Personal Development:
Today was a very short lesson. I was introduced to SSH which I had not known before. I feel like it can be a valuable tool that can help me in many aspects in the future and not just interacting with the Pi the near future. I look forward to be able to explore the wide array of capabilities that SSH can bring. I also got to revise some of the basic terminal commands which I have already known. I was also exposed to binary because of the IP address incident, and this turned out to be a blessing in disguise as I eventually learnt how to read binary, The internet is a wide library of knowledge and I believe that being able to harness and make use of it effectively is as important as any other skill. We are blessed with such an opportunity to learn and I feel that we ourselves should strive to learn independently.
About PuTTy
PuTTY is a free SSH, Telnet and Rlogin client for 32-bit Windows systems.
SSH, Telnet and Rlogin are three ways of doing the same thing: logging in to a multi-user computer from another computer, over a network.
Multi-user operating systems, such as Unix and VMS, usually present a command-line interface to the user, much like the ‘Command Prompt’ or ‘MS-DOS Prompt’ in Windows. The system prints a prompt, and you type commands which the system will obey.
Using this type of interface, there is no need for you to be sitting at the same machine you are typing commands to. The commands, and responses, can be sent over a network, so you can sit at one computer and give commands to another one, or even to more than one.
SSH, Telnet and Rlogin are network protocols that allow you to do this. On the computer you sit at, you run a client, which makes a network connection to the other computer (the server). The network connection carries your keystrokes and commands from the client to the server, and carries the server's responses back to you.
About PuTTy
PuTTY is a free SSH, Telnet and Rlogin client for 32-bit Windows systems.
SSH, Telnet and Rlogin are three ways of doing the same thing: logging in to a multi-user computer from another computer, over a network.
Multi-user operating systems, such as Unix and VMS, usually present a command-line interface to the user, much like the ‘Command Prompt’ or ‘MS-DOS Prompt’ in Windows. The system prints a prompt, and you type commands which the system will obey.
Using this type of interface, there is no need for you to be sitting at the same machine you are typing commands to. The commands, and responses, can be sent over a network, so you can sit at one computer and give commands to another one, or even to more than one.
SSH, Telnet and Rlogin are network protocols that allow you to do this. On the computer you sit at, you run a client, which makes a network connection to the other computer (the server). The network connection carries your keystrokes and commands from the client to the server, and carries the server's responses back to you.
Saturday, 27 February 2016
Log for 25 February 16
Content:
- Setting up Raspberry Pi and its different components, eg. Micro SD card, Wifi Adapter, etc
- Creating Loops on Python IDLE
- Switching Directories and performing commands in Raspberry Pi Terminal
Process:
We received our kits today, opened it up and started to assemble our Pi as shown by Mr Zhou. It was not hard to actually set up the Pi and the hardware into the product as shown in the picture above. The Pi is a relatively small and simple single-board computer which I am sure most people would be able to set up and make use of. However, the possibilities are immense with this product and I am excited to find out more of the capabilities of the Pi and to source for some possible projects my group can embark onto for our CID 4. We also created several loops on Python IDLE to create several mathematical functions such as factorial.
Reflection:
Besides the CID 4 project that we will be embarking on, I am also interested in doing my own project or creating some of my own products and services with the Raspberry Pi and Arduino. This is because I am extremely interested in exploring and studying this area and I believe I should further my learning individually so that I can maximise my understanding and abilities. I am interested in creating some products or systems that can be used in my own home, so that I can see the results of my own labour at home and solve some of the small household problems I have. One of the drawbacks that I face is definitely the cost of such a project, which I would have to foot myself. The Raspberry Pi Zero, which costs just $5, is one of the options I am considering, but the hardware that is necessary along with it will hike up the costs, as well.
The creating of Loops, although not the hardest, showed us how closely related programming is to mathematics. Loops are a very important part of programming as it is one of the most prevalent and most needed. It appears in so many areas of our daily life. Apart from further self-studying and experimenting with programming, it made me motivated to further study math on my own and to make sure I understand well the math in class so that I will become a more well-rounded programmer.
Besides the CID 4 project that we will be embarking on, I am also interested in doing my own project or creating some of my own products and services with the Raspberry Pi and Arduino. This is because I am extremely interested in exploring and studying this area and I believe I should further my learning individually so that I can maximise my understanding and abilities. I am interested in creating some products or systems that can be used in my own home, so that I can see the results of my own labour at home and solve some of the small household problems I have. One of the drawbacks that I face is definitely the cost of such a project, which I would have to foot myself. The Raspberry Pi Zero, which costs just $5, is one of the options I am considering, but the hardware that is necessary along with it will hike up the costs, as well.
The creating of Loops, although not the hardest, showed us how closely related programming is to mathematics. Loops are a very important part of programming as it is one of the most prevalent and most needed. It appears in so many areas of our daily life. Apart from further self-studying and experimenting with programming, it made me motivated to further study math on my own and to make sure I understand well the math in class so that I will become a more well-rounded programmer.
It was my
first time seeing and setting up the Raspberry Pi. I also got to revise some of the Terminal
commands which I have learnt awhile back and I am glad I still do remember most
if not all of it. I am excited to brainstorm with my team what ideas we have
for our Raspberry Pi project. I also got to revise the setting up of loop on
the Python IDLE. To me, learning programming is juse like that of anything else. With continual revision, application, and exposure, we will be able to remember what we have learnt much more effectively. Sometimes, I find that due to prolonged periods of time where I have not used a particular Python syntax, I tend to forget what I have learnt beforehand. Hence I feel that not just is improvement and further learning important, frequent revision of the concepts we have already known is just as important. I will over time include more and more revision of my programming knowledge as I add more and more concepts to my library of knowledge.
About Raspberry Pi
About Raspberry Pi
A Raspberry Pi is a credit-card sized computer originally designed for education, inspired by the 1981 BBC Micro. Creator Eben Upton's goal was to create a low-cost device that would improve programming skills and hardware understanding at the pre-university level. But thanks to its small size and accessible price, it was quickly adopted by tinkerers, makers, and electronics enthusiasts for projects that require more than a basic microcontroller (such as Arduino devices).
The Raspberry Pi is slower than a modern laptop or desktop but is still a complete Linux computer and can provide all the expected abilities that implies, at a low-power consumption level.
The Raspberry Pi was designed for the Linux operating system, and many Linux distributions now have a version optimized for the Raspberry Pi.
Friday, 12 February 2016
Log for 11 February 16
Content:
·
How to use if, else, and elif statements to set
conditions eg. to find out which years are leap years
o def
is_leap_year(x):
if x % 400 == 0 :
return True
elif x % 100 == 0 :
return False
elif x % 4 == 0 :
return True
else :
return False
if x % 400 == 0 :
return True
elif x % 100 == 0 :
return False
elif x % 4 == 0 :
return True
else :
return False
· Reading functions and predicting output
·
Implementing functions to meet specifications
Process:
It was our first time being exposed to Coursemology. I feel like it is a very engaging and
helpful platform for us to learn. We completed several Coursemology questions to help us
put into practice and refine the skills we have just learnt. I will most definitely use Coursemology as a learning and self revision tool in the future as it has a self mark option. We will immediately be marked on our answer after submission and this makes it very convenient for us to learn and revise as and when we like. Coursemology also has a very interesting interface and system that makes it fun and enjoyable to complete the tasks in it. There are many exercises in Cousemology and I look forward to completing all of them as I become better-versed in programming through my journey of learning.
Through the learning of the 'if', 'else', and 'elif' functions, we got exposed to one of the most basic yet essential programming functions. The most important skill from learning this, apart from the function itself, was that it was our first exposure to computational thinking. Being able to think computationally is important for us to become more successful programmers. Through the learning of this three functions, we understood the running of codes, from the top line to the bottom line in sequence and thus could understand the sequence we had to code in and how to make our codes run in the order we want them to. At the start, we also created codes that were unnecessarily long in length. We also learnt to make our codes more simple and concise so that our codes would be less messy and more easy to read and debug if necessary. I agree that such organisation is important and the mark of a good programmer. A good programmer should be able to write effective codes that can be simply understood once read.
Reason:
These are some of the basic coding that we may need that can help us in game-creation, our Raspberry Pi project, and so on. In everything, the basics and fundamentals are extremely important and programming is no exception. Without knowledge of the basic concepts and computational thinking, one cannot be effective in coding.
Personal Development:
Today, I got to put into use several of the programming
concepts I have already learnt before. Even though it was somewhat a revision
session for me, it was definitely not an easy one. The activities in Coursemology
were effective in giving me a glimpse of what programming is like as we had to
build or modify codes to fit a particular objective. I was able to learn and understand alot today.
Subscribe to:
Posts (Atom)
