• Saimme uuden liikesensorin tuttavalta lainaan, mutta sama ongelma jatkuu edelleenkin. Sensori havaitsee liikettä vaikka mitään ei tapahdu.

     

     

    // Authors Maria Elo ja Kaisa-MAria Hänninen
    //Alkuperäinen koodi John Park
    //

    int ledPin = 13;                    // LEDin pin
    int inputPin = 7;                   // liiketunnistimen pin
    int liikeSensori = LOW;             // alkuarvo on: ei liikettä
    int val = 0;                           // muuttuja

    void setup() {
    pinMode(ledPin, OUTPUT);       // LED on output
    pinMode(inputPin, INPUT);       // sensori on input
    Serial.begin(9600);                    // GPRS shieldin baudinopeus
    }

    void loop() {
    val = digitalRead(inputPin);           // tutkitaan input(liiketunnisti) arvo
    if (val == HIGH) {                         // tutkitaan onko input(liiketunnistin)
    digitalWrite(ledPin, HIGH);           // LED päälle
    delay(150);

    if (liikeSensori == LOW) {    // turned on
    Serial.println(”Liikettä havaittu!!”);
    liikeSensori = HIGH;
    }
    }
    else {
    digitalWrite(ledPin, LOW); // LED pois
    delay(300);
    if (liikeSensori == HIGH) {    // turned off
    Serial.println(”Liike loppui”);
    liikeSensori = LOW;
    }
    }
    }

    //TEKSTIVIESTIN LÄHETYS
    /*If (liikeSensori == HIGH) {
    viesti.print(”AT+CMGF=1r”);                                      // Haluamme lahettaa SMS:n tekstimuodossa
    delay(100);
    viesti.println(”AT + CMGS = ”+358 504913758”);    // viestin lähetys muista maakoodi!
    delay(100);
    viesti.print(”HÄLYTYS!! LIIKETTÄ!!”);                       // viestissä lukee
    viesti.println((char)26);                                               // ctrl+z ASCII koodi on 26
    delay(100);
    viesti.println();
    }*/

     

  • Kaiken järjen mukaan koodin pitäisi toimia, sillä olemme kokeilleet myös suoria esimerkkejä netistä, joten alamme epäillä, että sensorissamme on jotain vikaa. Vaikka mitään liikettä ei tapahtuisikaan ”Motion[…]

  • 2015-03-11 18.37.50Tänään rakennamme viimeistä kertaa prototyyppiämme. Suunnitelma vaihtui viime viikolla lennosta ja teemmekin koiranpelättimen sijaan varashälyttimen.

    Kun liiketunnistin havaitsee liikettä, se sytyttää ledejä palamaan ja lähettää tekstiviestin ”Tunkeilija! Liikettä havaittu!” haluttuun numeroon.

    Tänään asensimme arduinoomme GSM-shieldin ja siihen ostamamme prepaid simkortin. (4,90 e).

    Nyt koodailemme.

     

     

    //lähetetään tekstari, kun ledi syttyy
    /*
    if (onLiiketta == true){
    tamaSarjaportti.print(”AT+CMGF=1r”); // Haluamme lahettaa SMS:n tekstimuodossa
    delay(100);
    tamaSarjaportti.println(”AT + CMGS = ”+358504913758″”);//lähetä tekstari
    delay(100);
    tamaSarjaportti.print(”Tunkeilija! Liikettä havaittu kotona!”);// viestissä lukee
    tamaSarjaportti.print(” (”);
    delay(100);
    tamaSarjaportti.println((char)26);// ctrl+z ASCII koodi on 26
    delay(100);
    tamaSarjaportti.println();
    tamaSarjaportti.println();
    }
    */

  • Inspiraation lähde:http: //makezine.com/projects/pir-sensor-arduino-alarm/
    int ledPin = 13; // Led is placed to the pin 13.
    int inputPin = 7; // Another led places in the pin 7.
    int pirState = LOW; // we start, assuming no motion detected
    int val = 0; // variable for reading the pin status
    boolean onLiiketta = false;

    void setup() {
    pinMode(ledPin, OUTPUT); // declare LED as output
    pinMode(inputPin, INPUT); // declare sensor as input
    Serial.begin(9600);
    }

    void loop(){
    val = digitalRead(inputPin); // read input value
    if (val == HIGH) { // check if the input is HIGH

    if (pirState == LOW) { // we have just turned on
    onLiiketta = true;
    Serial.println(”KYLLA”); // We only want to print on the output change, not state
    //pirState = HIGH;
    }
    else{
    onLiiketta = false;
    }

    }

    /**  else {
    * digitalWrite(ledPin, LOW); // turn LED OFF
    * if (pirState == HIGH){ // we have just turned of
    * Serial.println(”EI”); // We only want to print on the output change, not state
    * pirState = LOW;
    * }
    }**/

    if (onLiiketta == true){
    digitalWrite(ledPin, HIGH); // turn LED ON
    delay(100);
    digitalWrite(ledPin, LOW);
    delay(100);
    }
    }

     

     

    liike

     

  • Tehtävänä oli saada servo liikkumaan 45 astetta ja jäämään siihen.

    Vaihtoehto 1

    // AUTHORS Maria Elo & Kaisa-Maria Hänninen
    // 25.02.2015

    #include <Servo.h>
    Servo propelli;  // servon nimi on propelli koska se näyttää propellilta
    int asento = 0;    // alkuasento

    void setup()
    {
    propelli.attach(2);  // Propelli-servo yhdistetty 2 pinniin
    delay(2000);
    }
    void loop()
    {
    for(asento = 0; asento <= 45; asento +=1)  // 0 asteesta 45 asteeseen
    {                                          // yksi aste kerrallaan
    propelli.write(45);                    // servo kääntyy sille edellä annettuun 45-asteen asentoon ’asento’
    delay(150);                               //
    }
    propelli.detach();
    }

    2015-02-25 18.10.26

    Vaihtoehto 2
    //Authors Kaisa-Maria Hänninen & Maria Elo

    #include <Servo.h>

    Servo propelli;

    void setup()
    {
    propelli.attach(2);
    propelli.write(0);   //Alkuasento on 0 astetta
    delay(2000);         //Odotettaa 2 sek
    propelli.write(45);  //propelli kääntyy 45 asteeseen

    }

    void loop(){

    }

  • Tänään saimme tehtäväksi:

    ”Painike ja ledi – helppo (1 kappale): Kytke arduinoon painike ja ledi. Kun painiketta painetaan ledin pitää syttyä päälle. Kytkentään ei tarvitse etuvastusta, kuten esimerkissä, koska käytetyssä arduinossa on sisäänrakennettuna ko. vastus.”

     

    tehtävää varten tarvitsemme:

    Arduino
    ledi
    painike
    Arduino Board
    johtoja(lyhyitä ja pitkiä)
    vastus(??)

    Liitännät:

    [caption id="attachment_21" align="aligncenter" width="943"]JEE! se palaa!! JEE! se palaa!![/caption]

    Kytkennät olivat haaste, mutta selviydyimme ilman apua.

     

    koodi:

    //Authors Kaisa-Maria Hänninen & Maria Elo

    // määritetään kytkennät
    const int painikePin = 2;     // painikkeen pin
    const int ledPin =  13;      // ledin pin

    int painikeTila = 0;

    void setup() {
    pinMode(ledPin, OUTPUT);
    pinMode(painikePin, INPUT);
    }

    void loop(){
    painikeTila= digitalRead(painikePin);

    // tutkitaan painetaanko painiketta
    // jos painetaan niin the painikeTila is HIGH:
    if (painikeTila == HIGH) {
    // ledi palaa:
    digitalWrite(ledPin, HIGH);
    }

    // jos painiketta ei paineta niin ledi ei pala
    else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
    }
    }

     

  • Ledi jää vilkkumaan, aina kun ovesta on kuljettu.
    Ajattelimme että oven leveys on 100cm eli jos etäisyys on alle 100cm niin silloin ovesta on kuljettu.

    Tällä kertaa ei kuvia, koska unohdimme ottaa.

     

    //Authors Kaisa-Maria Hänninen & Maria Elo
    // trig= keltainen johto > digital pin 12 ja echo = vihreä johto > digital pin 11
    const int trigPin = 12;
    const int echoPin = 11;
    int led =13;
    boolean ihminenMeni = false;

    void setup() {

    Serial.begin(9600);
    pinMode(led, OUTPUT);

    }

    void loop()
    {
    long duration, cm;            //Matka mitataan senteissä

    pinMode(trigPin, OUTPUT);
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    //Kuinka usein lähettää pulssin
    pinMode(echoPin, INPUT);
    duration = pulseIn(echoPin, HIGH);    //Kun vastaanottaa kaiun

    cm = microsecondsToCentimeters(duration);   //Aika muutetaan senteiksi
    Serial.println(cm);

    if(cm < 100){
    ihminenMeni =true;

    Serial.print(cm);
    Serial.println();

    }
    if(ihminenMeni) {
    digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(200);               // wait for a second
    digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
    delay(200);               // wait for a second
    }

    delay(500);
    }

    long microsecondsToCentimeters(long microseconds)
    {
    return microseconds / 29 / 2;              //Aika jaetaan kahdella, koska pulssi kulkee edestakaisen matkan
    }

  • Rakennamme prototyypin koiran pois pitämiseksi keittiöstä, sillä koiralla on tapana rötöstellä isäntäväen poisollessa.

    Prototyyppiin tulee liiketunnistin, joka reagoi koiran lähestyessä. Prototyypin takoituksena on pelästyttää koira matkoihinsa keittiöstä, joten jonkinnäköistä liikettä ja valoja on luvassa.

    2015-02-04 16.25.56

     

     

     

     

     

  • Maria&Kaisa rekisteröityi sivustolle 4 vuotta, 6 kuukautta sitten