21st Feb LAB – Tolu

In the beginning we looked closely at timelines. Specifically looking in detail about the similarities and differences between a Gantt chart and timeline. (Post white board screenshot)

Next week looked at the different softwares that we could create timelines and Gantt charts. Here below are the various options that we have towards creating these types of timelines.

Next we focused on Goals, tasks & milestones. Collectively looking at what they are, their differences and how we set them. Even looking to set some for our projects for specificity & clarity.

21st Feb (ONLINE)

What is a timeline?

A timeline is a display of a list of events in chronological order.

What are the different types of timelines?

  • Text timelines, labeled as text
  • Number timelines, the labels are numbers, commonly line graphs
  • Interactive, clickable, zoomable
  • Video timelines
https://cacoo.com/templates/project-timeline-template

What is a Gantt chart?

Gantt chart is a type of bar chart that illustrates a project schedule, named after its popularizer, Henry Gantt (1861–1919), who designed such a chart around the years 1910–1915. Modern Gantt charts also show the dependency relationships between activities and the current schedule status.

GanttPRO — 

  • multi-platform
  • 14 day free trial but then paid
  • web based
  • Gantt chart

Smartsheet

  • multi-platform
  • 30 day free trial but then paid
  • web based
  • Gantt chart

TimeGraphics –

  • multiplatform
  • Free
  • Web based
  • Timeline

Milestones and goals:

Goals refer to the results an organization intends to achieve in a given time period.

Milestones are the critical and measurable accomplishments that need to be made so as to progress towards a goal. 

Home Studio

Software Checklist

  • Arduino IDE (Lab 1: 1L.pdf)
  • Mozzi library (Lab 4: 4L.pdf)
  • Fritzing software (Lab 6: 6L.pdf) – you could also use Tinkercad -> https://www.tinkercad.com/

note that it might be an idea to work with fritzing for circuits and code but for the interface/box outer esthetics it might be a good idea to use Tinkercad to design the user interface.

But if you were creating a basic circuit and wanted to have your interface design and circuit design in one place use Tinkercad.

Some ideas of my circuit from my first instrument using Tinkercad:

TYPES OF PROJECT TIME MANAGEMENT

What is a timeline?

A timeline is a list thact can consits of dates, times and tasks that are set in cronological order (date and time order). Like a schedule or diary.
Mostly used in projects and history.
How to Make a Timeline: 13 Steps (with Pictures) - wikiHow
https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.wikihow.com%2FMake-a-Timeline&psig=AOvVaw3OTtrC-EKG0MoMaFie1Rrz&ust=1645537910801000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCNDIttL4kPYCFQAAAAAdAAAAABAb

What is a Gantt chart?

A Gannt Chart is a form of bar chat that shows the progress of a task or project. This is mainly used when managing projects. 
Gannt Charts are also used with teams as it's a way of managing who is doing what tasks and how their progress of the tasks are going.
They are also mainly used when preforming more than one task at a time.
What is a Gantt chart? - Definition from SearchSoftwareQuality
https://www.google.com/url?sa=i&url=https%3A%2F%2Fsearchsoftwarequality.techtarget.com%2Fdefinition%2FGantt-chart&psig=AOvVaw0iYcoIJE00KndOJq8z7Fia&ust=1645537744381000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCICEsvj3kPYCFQAAAAAdAAAAABAN

Other management ideas/methodologies for our project

Agile vs. Waterfall Software Development | Momentum3
waterfall is doing one step at a time where as agile we do each task but will imphttps://www.google.com/url?sa=i&url=https%3A%2F%2Fmomentum3.biz%2Ftechnology%2Fagile-vs-waterfall-development-when-outsourcing-it%2F&psig=AOvVaw2oaD6wt6BWlPKMXoK43KAh&ust=1645538152373000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCJCZ28H5kPYCFQAAAAAdAAAAABAJrove each task as we go.

So waterfall is like a timeline and Agile can be seen as a Gannt Chart.

PROJECT PLANNING SOFTWARE

What software is available to create:

Timelines

Gannt Charts

From a quick google search, you can see there are thousands and thousands of websites that will have programs and/or guides to help build either charts. From Microsoft Office (word, Powerpoint, Excel, Note, etc.) to websites like monday.com, teamwork.com.

14th Feb Lab (online) – Tolu

As usual at the start of the lab we recalled the information and findings of the previous lab making sure we were up to date with everything that we learned and were caught up on anything we may have missed.

Firstly we looked at CC (Creative Commons license). looking specifically at BY 3.0. This is what I found out.

The Creative Commons Attribution License 3.0 (“CC BY 3.0”) is a public domain license which permits most forms of use or re-use of a licensed work provided that (a) due acknowledgement is made of the original source and authorship, and (b) no additional restrictions are placed on subsequent users.

In todays lab we looked at a new software called fritzing. This software allows us to build circuits, look at their PC layouts as well as export our creations to out computers. The first task was to create a basic circuit with fritzing. There is the ability to change the colour of the wires, the colour of the LEDs etc which I can do.

The next task in the lab was to design a PCB for the classic 74C14 Hex Schmitt Trigger oscillators. This circuit was a little bit more complex but I eventually completed as shown below.

Lastly we looked at the pros and cons of both tinkered and fritzing as a final discussion.

AME MATD3039 14/02/22 Lab (Online)

For this session, we revised Creative Commons Licensing which is crucial to the software we will be utilising. A Creative Commons license is used by authors that intend for the general public to have access to their work, to edit it and potentially expand upon it. This can include a non-commercial license so it is for non-profit, individuals, or educational purposes.

The Attribution-ShareAlike 3.0 Unported (cc BY-SA 3.0) license version allows users to share, copy and republish work in any format. It allows users the freedom to adapt the work provided, including any commercial uses that may be relevant. It is required that the original work is referenced properly and that it is not disguised as your own, independent work.

We then installed the Fritzing software and went about following the tutorial to create our very first circuit which features an Arduino Uno board, a LED and a resistor (220Ohm). We used the inspector fucntion to alter the resistance of the resistor and colour of the LED.

https://fritzing.org/learning/tutorials/building-circuit

We then followed a more advanced tutorial featuring a 9V battery, a capacitor, a general IC (74C14), a photoresitor and a breadboard to create to following circuit.

Handmade Electronic Music by Nicolas Collins, Chapter 32 – “My First Oscillator”

The above circuit would assumably control the output of the device using the photoresistor, which is essentially the same design as my coursework from a previous module that functioned like a light theremin.

Fritzing is quite an intuative software that allows you to create circuits very quickly and has a very similar interface to TinkerCAD which I have worked with previously. You can implement the code that you would upload to the Arduino which helps with error checking and even goes much further with the schematic section which allows greater routing variety. Fritzing is very similar to TinkerCAD, with the exception that it cannot perform simulations. However, Fritzing provides a much greater variety of components that are not included in TinkerCAD.

AME MATD3039 Lab Session 07/02/22

We began this session as usual by revising our blog posts from last week and the content we covered.

We then setup a circuit that features a 100 Ohm resistor and a piezo disc as a speaker that produces one single stable, monophonic frequency sine tone. The code for this version is featured below.

//A sketch to demonstrate the tone() function
//Specify digital pin on the Arduino that the positive lead of
//piezo buzzer is attached.
const int piezoPin = 8;
void setup() {
}//close setup
void loop() {
/*Tone needs 2 arguments, but can take three
1) Pin#
2) Frequency - this is in hertz (cycles per second) which
determines the pitch of the noise made
3) Duration - how long teh tone plays
*/
tone(piezoPin, 250, 500);
//tone(piezoPin, 1000, 500);
//delay(1000);
}
No description available.

We then created a version of the code that rapidly increases the pitch and then a version that can ascend and then descend when it hits its threshold pitch.

We then utilized a piece of code that recreates the Mario theme tune through limited beeps which was interesting, so far most of the end products have been very unmusical but now we have a musical output which is encouraging. Below is a small snippet of the code which is quite lengthy due to the many pitches, etc required.

Tone tone1;
void setup() {
// put your setup code here, to run once:
tone1.begin(8); // Playback on Pin 11, change to whatever you may
//need
}
void loop() {
// put your main code here, to run repeatedly:
tone1.play(660,100);
delay(75);tone1.play(660,100);
delay(150);tone1.play(660,100);
delay(150);tone1.play(510,100);
delay(50);tone1.play(660,100);
delay(150);tone1.play(770,100);
delay(275);tone1.play(380,100);
delay(287);tone1.play(510,100);
delay(225);tone1.play(380,100);
delay(200);tone1.play(320,100);
delay(250);tone1.play(440,100);
delay(150);tone1.play(480,80);
delay(165);tone1.play(450,100);
delay(75);tone1.play(430,100);
delay(150);tone1.play(380,100);
delay(100);tone1.play(660,80);
delay(100);tone1.play(760,50);
delay(75);tone1.play(860,100);
delay(150);tone1.play(700,80);
delay(75);tone1.play(760,50);
delay(175);tone1.play(660,80);

We then implemented a new circuit with a speaker output jack and a potentiometer which controlled the frequency of the output signal.

No description available.

MATD3039 – Digital Oscillators (7th February 2022)

Lecture

In the lecture we spoke about the different ways that you can use an Arduino board to expand simple projects into more complex ones. We looked at different sensors and in particular I looked at a force sensitive resistor.

The link for this image of a FSR – Force-Sensing-Resistor.jpg (1847×1114) (elprocus.com)

Lab

We began the lab by using code for the Arduino that allowed for a sine tone to be created using a small speaker. The circuit that was used is included below and this is followed by the code that allowed us to create a sine tone with breaks in between.

//A sketch to demonstrate the tone() function
//Specify digital pin on the Arduino that the positive lead of piezo buzzer is attached.
const int piezoPin = 8;
void setup() {
}//close setup
void loop() {
/*Tone needs 2 arguments, but can take three
1) Pin#
2) Frequency - this is in hertz (cycles per second) which
determines the pitch of the noise made
3) Duration - how long the tone plays
*/
tone(piezoPin, 450);
delay(500);
noTone(piezoPin);
delay(500);
}

The Arduino board and breadboard that were included in my circuit.

We went through many other commands that you can add to the code in order to create more advanced melodies. We made our own code that ascend up to a specific note and then decrease to another. The code included below is just that.

//A sketch to demonstrate the tone() function
//Specify digital pin on the Arduino that the positive lead of piezo buzzer is attached.
const int piezoPin = 8;
void setup() {
}//close setup
void loop() {
/*Tone needs 2 arguments, but can take three
1) Pin#
2) Frequency - this is in hertz (cycles per second) which
determines the pitch of the noise made
3) Duration - how long the tone plays
*/
for (int i=31; i<10000; i++) {
tone(piezoPin, i, 1000);
delay(10);
}

for (int i=10000; i>700; i--) {
tone(piezoPin, i, 10000);
delay(10);

}
}

Digital Oscillator

Above is the circuit that I created for the digital oscillator.

Code for digital oscillator

//CODE DigitalOSC
const int ledPin = 13; //variable to represent LED Pin
const int periodKnob = A0; //variable for knob pin (A0 = analog in pin 0)
int delayTime; //variable for the delay time
void setup() {
pinMode(ledPin, OUTPUT); //configure pin 13 as a digital output
}
void loop() {
//set delay time equal to the current value read on analog pin 0
delayTime = analogRead(periodKnob);
//map the analog read range from 0-1023 to 10000-1
//delayTime = map(delayTime, 0, 1023, 10000, 1);
digitalWrite(ledPin, HIGH); //set pin 13 to 5 volts
delayMicroseconds(delayTime); //pause program
digitalWrite(ledPin, LOW); //set pin 13 to 0 volts
delayMicroseconds(delayTime); //pause program
}
//

7th Feb Lab – Tolu

As usual we recalled information from last weeks lab as well as sharing information from our individual research on mozzi.

The first task was to build the circuit for the buzzer. I firstly built the circuit using the solder-less breadboard and then copied the code that would be needed to make the buzzer work. This was the code:

//Specify digital pin on the Arduino that the positive lead of piezo buzzer is attached.
const int piezoPin = 8;
void setup() {
}//close setup
void loop() {
/*Tone needs 2 arguments, but can take three
1) Pin#
2) Frequency – this is in hertz (cycles per second) which
determines the pitch of the noise made
3) Duration – how long teh tone plays
*/
tone(piezoPin, 1000, 500);//tone(piezoPin, 1000, 500);
//delay(1000);
} –

The final outcome was that the buzzer worked. We were able to play around with the delay time and the tone which would affect the pitch of the sound as well as how long the sound is played for.

The next task was to change the tone that it would continue to get a higher pitch as time went by. The delay time has to be changed for that to be made possible and this is shown below in the code:

//Specify digital pin on the Arduino that the positive lead of piezo buzzer is attached.
const int piezoPin = 8;
void setup() {
}//close setup
void loop() {
/*Tone needs 2 arguments, but can take three
1) Pin#
2) Frequency – this is in hertz (cycles per second) which
determines the pitch of the noise made
3) Duration – how long the tone plays
*/for (int i=31; i<10000; i++) {
tone(piezoPin, i, 1000);
delay(10);

The next task was to upload a Mario tone. Using the code it would use different delay and tones to create the melody of the Mario tone we all know well. My outcome was positive in the end even though I did run into an issue with the upload of the tone. This was because I was working with 2 active functions in different tabs. I fixed this by beginning a new file and putting in the code and it worked. (The code is toooooo long to copy into here)

The next task was to create a digital oscillator. This had a different breadboard configuration so I firstly put the components on the breadboard first. Then I uploaded the code on to Arduino. This is the code that was used:

//CODE DigitalOSC ******
const int ledPin = 13; //variable to represent LED Pin
const int periodKnob = A0; //variable for knob pin (A0 = analog in pin 0)
int delayTime; //variable for the delay time

void setup() {

pinMode(ledPin, OUTPUT); //configure pin 13 as a digital output

}

void loop() { //set delay time equal to the current value read on analog pin 0 delayTime = analogRead(periodKnob);

//map the analog read range from 0-1023 to 10000-1 //delayTime = map(delayTime, 0, 1023, 10000, 1);

digitalWrite(ledPin, HIGH);

delayMicroseconds(delayTime);

digitalWrite(ledPin, LOW);

delayMicroseconds(delayTime);

With this code I was able to use the knob to change the tone of the sound. turning it up to make the tone high and turning it down to make the tone deeper.

Digital Oscillator

Today’s Worksheet:

Task 1 – Make a noise using ton() and a Piezo Buzzer

For this task, we followed the instructions from the lab sheet above. We were to set up a circuit using a breadboard, Arduino (clone), 100 ohms resister, a Piezo Buzzer and some cables.

Once we have built the circuit we needed to code the Arduino to allow a sound to be created as an output.

The Code:

// A sketch to demonstrate the tone() Function

// Specifu digital pin on the arduino that the positive lead of piezo buzzer is attached.

const int piezo = 8;

void setup() {

} //close setup

void loop() {

//*Tone needs 2 arguments, but can take three.

  1. pin#
  2. frequency – this is in Hz cycle per second wich determins the pitch (the lower the number the lower the pitch, the higher the number the higher the pitch)
  3. duration – how long the tone will be played/hold for.

*/

tone(piezoPin, 1000, 500);

}

Task 2 – Add a break in the loop

To create a break in the loop we added the following code after the tone() function.

delay(1000);
}

Task 3 – To create a beat

we do this by adding/changing to the code we used for task 1

tone(piezoPin, 450);
  delay(500);
  noTone(piezoPin);
  delay(500);

Sensors and actuators 2

Objectives

In this session, we will investigate how to add complexity to a circuit (e.g. increasing the number of sensors, complex sensors, talking to the cloud, talking to RPi) and will discuss the initial ideas of your project.

Task 1.

We are provided with the following essential sensor kit: https://www.kiwi-electronics.nl/nl/ sparkfun-essential-sensor-kit-2480.
Pick one complex sensor and explain how it works as well as what are the potential musical possibilities.

Hall Effect Sensor

The Hall-effect Sensor is able to distinguish between the positive and negative charge moving in the opposite direction.

https://en.wikipedia.org/wiki/Hall_effect_sensor

Hall Effect Sensor and How Magnets Make It Works
https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.electronics-tutorials.ws%2Felectromagnetism%2Fhall-effect.html&psig=AOvVaw2iZ12KypOlnoGKaKhu8Bf2&ust=1644314198576000&source=images&cd=vfe&ved=2ahUKEwis1vTuqe31AhWE_bsIHb-oAnUQjhx6BAgAEAo