dimanche 9 décembre 2012

Moonlight Mobile


The purpose of this project was to create a mobile that would distract and become the source of comfort that a baby is seeking when waking up in his crib, at a time where the parent should not step in to comfort him.

Its first purpose was to be interactive and responsive to the baby's screams. The idea was dropped due to conceptual conflicts: a baby could be conditioned to understand that crying meant making the mobile move. Having only a basic knowledge of electronics, I decided to make the mobile static for the moment so that it doesn't interactively responds to the child at the moment.


 





(I apologize for the lack of pictures. The pole of the mobile broke down and it damaged a few components.)

_____

My first inspiration came from the idea that parents should not step inside the room whenever their baby is crying even when they want to. I wanted to create something that would be relaxing for the baby if/when he woke up that would calm him down.

I was looking through mobiles for kids on Google and liked the DIY ideas. Since it was a project I had to build myself, I browsed through a lot of DIY websites such as this one to find ideas.

_____

Feedback during the presentation on december 6th include distracting colours such as the red pole and dangling stars. It was also suggested to develop the 'responsive' part of the mobile, perhaps by having a plastic controller for the kid to play with himself, which would make the mobile turn and light up.
_____

Here was the code I used to control the motor as well as control the RGB lights.
#include <Servo.h>
Servo myservo;
int pos = 0;    // variable to store the servo position

#define MOTOR_P 3

#define GREEN 9
#define RED 10
#define BLUE 11

int lightpos = 0; //position action of the light
int red = 255;
int blue = 255;
int green = 255;

int moveRed = 128;
int moveBlue = 128;
int moveGreen = 128;

#define MOTOR_MIN 50
#define MOTOR_MAX 180

boolean motorMotion = false; //false = move left to right, true = move right to left
int motorPos = MOTOR_MIN;

void setup()
{
  Serial.begin(9600);
  pinMode(12, INPUT); // set pin 12 for input
  pinMode(9, OUTPUT); // set pin 12 for input
  pinMode(10, OUTPUT); // set pin 12 for input
  pinMode(11, OUTPUT); // set pin 12 for input
 
    myservo.attach(MOTOR_P);
    myservo.write(90);

//  pinMode(MOTOR_P, OUTPUT);
//  pinMode(MOTOR_M, OUTPUT);
 
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);
  digitalWrite(11,LOW);

}

void loop()
{
  if (digitalRead(12) == LOW) // pin 12 is connected to gnd
  {
    delay(50);
  
    //digitalWrite(3,LOW);
  
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
  }
  else // pin 12 is not connected to gnd
  {
    Serial.println("active");
    //digitalWrite(3,LOW);

    digitalWrite(9,HIGH);
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
 
    tickColor();
    moveMotor();
    delay(15);
  }
}

void moveMotor() {
 
    if(motorMotion==false)
    {
      if(motorPos < MOTOR_MAX)
      {
        motorPos += 1;
      }
      else
      {
        motorMotion=true;
        motorPos -= 1;
      }
    }
    else
    {
      if(motorPos > MOTOR_MIN)
      {
        motorPos -= 1;
      }
      else
      {
        motorMotion=false;
        motorPos += 1;
      }
    }
  
    myservo.write(motorPos);              // tell servo to go to position in variable 'pos'
}


void changeColor()
{
  if(lightpos == 0)
  {
    //blue
    lightpos = 1;
    moveRed = 50;
    moveGreen = 150;
    moveBlue = 255;
  }
  else if(lightpos == 1)
  {
    //purple
    lightpos = 2;
    moveRed = 100;
    moveGreen = 0;
    moveBlue = 255;
  }
    else if(lightpos == 2)
  {
    //blue
    lightpos = 3;
    moveRed = 100;
    moveGreen = 100;
    moveBlue = 255;
  }
  else if(lightpos == 3)
  {
    lightpos = 4;
    moveRed = 128;
    moveGreen = 128;
    moveBlue = 128;
  }
   else if(lightpos == 4)
  {
    lightpos = 0;
    moveRed = 254;
    moveGreen = 254;
    moveBlue = 254;
  }
}

void tickColor() {
  if(!(red==moveRed && green==moveGreen && blue==moveBlue))
  {
    if(red>moveRed) red -= 1;
    else if(red<moveRed) red += 1;

    if(green>moveGreen) green -= 1;
    else if(green<moveGreen) green += 1;

    if(blue>moveBlue) blue -= 1;
    else if(blue<moveBlue) blue += 1;
  }
 
  else
  {
    changeColor();
  }
    analogWrite(RED,red);
    //analogWrite(GREEN,green);
    analogWrite(BLUE,blue);
  
    delay(10);
}


_____

HI

jeudi 22 novembre 2012

What the mobile does:
When the baby cries, a sensor inside of the mobile captures the frequency disturbance and makes the mobile lighten up. The moon will start rocking from front to back.

Materials needed:
DC motor
Gear Motor 3
Microphone
RGB lights
Cam
Light fabric
Papier maché

The movement of the moon rocking has been changed last minute. Up until now I had resorted to using magnets to avoid the use of motors (too much noise). But after revising the efficiency of the magnets and the potential issues arising from their use, I have decided to use a DC motor and simply frame it at the top of the mobile to choke the noise.




http://cnx.org/content/m13594/latest/img74.gif 

I have also done some research on the responses of babies at different ages.


At the moment I am leaning towards 6-8 months old babies. I will be gathering more accurate data from this age category and will be testing the mobile with a baby towards the end.

 
What works / is done
- RGB lights fading
- Switch
- Box (built, painted, mounted)
- Plexiglas layer (painted)



What doesn't work / isn't done
- DC motor > Rocking moon (CAM broke)
- Soldering wires & glueing lights on plexiglas
- Soft switch toy (isnt sewn completely)

mercredi 14 novembre 2012

final project proposal

Creating a mobile designed for small children and babies, that illuminates and responds to its actions (moving, crying, getting up, laughing).

The esthetic of the mobile will be thought through carefully: the colours will correspond to what the child is doing (different colours = different moods), the mobile will move slightly to distract). The purpose of this mobile is to calm the child down until he falls asleep and to develop his reflexes and awareness to what is around him.



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjI127rN2Hccod55kZ6GXXmOlbycPhPjl6eW-hWn2gTO0d9LtQvz75QepdPzc9RVBetRFm_cjxBw8hXRDncM9IfvkAtYchxwtaAGhfAtNbAFwVMxI1OMB531yhiCiXYjiH8kRk2ka5eIXy/s1600/4680451880_c73d933394_b.jpg
Light sensors
Movement sensors
Vibration sensors
wood
LED lights
fabric

vendredi 9 novembre 2012

Kevin's blog contains the video as well as pictures of the project.

 The concept of the hockey pinball was to reunite two games that almost everyone knows of, and give it a new twist in its gameplay. We chose pinball and hockey table because the first game is usually played in solo while the other requires atleast two players. Their basic rules being quite different, we wanted to combine them to create a 'new type of game' that would still be relatively familiar and intuitive in its rules.

Because of the nature of the game, the marble seemed the most appropriate object to choose from the list.

The first sensor we had used, the LDT piezo sensor, had to be dropped because its capacities did not respond well with our game: the marble would have needed to hit hard on the sensor to trigger the next move, which could have potentially damaged said sensor.

We opted for a photocell sensor and a narrow angled light to trigger the game results. The outcome was just as efficient, but not damageable for neither the sensor nor the physical box.


mercredi 24 octobre 2012

Exercice 3 ; Sense (take two)

After having scraped down the xylophone idea, Kevin and I have turned to a small pinball type of game.

The circuit that had been built for the previous xylophone idea was almost entirely reused, so all of it was not lost. It needs a few adjustments and nre components and the biggest part to do at the moment are the actual boxes. 

The primary goal is to slip a marble inside of the box and to roll it to the other side, where a light will indicate if it fell into the right spot or not. The use of the drum sensors will measure the weight of the marbles to trigger the light and the buzzer.


The sketch of the game as well as the storyboard are on Kevin's blog at the moment, they will be added here later on.

As of right now, we do have a somewhat functioning prototype. We are still missing three zener diodes, which are needed for our project to function properly (we are waiting for the pieces to be shipped).




mardi 23 octobre 2012

Exercice 3 ; Sense

Kevin and I originally wanted to make a xylophone, but realized much later that it did not integrate any of the required materials (marbles, feathers, string or clay).

I met Elio and he told me that the sensor we currently had, the LDT Piezo sensor, might be an issue because of the nature of the project and the sensitivity of said sensor. He then suggested the drum sensor, which might be efficient for our project.

We therefore decided to use the same circuit idea but make our game into some sort of small pinball game for 2 players (one model each).

Here were the first drawings of the xylophone game, which has now been abandoned.
 



mercredi 17 octobre 2012

Piezo Sensor - LDT Series

Piezo Sensor - LDT Series


Name: LDT0-028K
Manufacturer:
Resercher names:
Image of the sensor:
Datasheet: right here (unable to link to direct pdf, sorry!)
Describe the main function of the sensor:
Examples of applications in the real world: Vibration Sensing in Washing Machine, Low Power Wakeup Switch, Low Cost Vibration Sensing, Car Alarms, Body Movement, Security Systems


Most of these informations were directly pulled from the from the following webpage.


Basic switch circuit using the sensor:


Most of these informations were directly pulled from the following website.

___

In relation to our next assignment, Kevin and I wanted to use the sensor and integreate it into our windmill.

We would be working on the concept of wind making the pals turn (in our case, when we blow on it) to create more interactivity.

The sensor would most probably be located at the top of the windmill, and we would be adding light sensors inside of it.