Montelulecode
måndag 12 oktober 2015
söndag 11 oktober 2015
torsdag 8 oktober 2015
Få arduinon att spela ljud
Du kan programmera arduinon att spela melodier, som denna välkända... Ursäkta slakten.
Och här är koden (du måste också skapa en ny tab där du lägger in pitches.h som du kan hitta här: https://www.arduino.cc/en/Tutorial/ToneMelody?from=Tutorial.Tone)
/*
Melody
Plays a melody
circuit:
* 8-ohm speaker on digital pin 8
This code is based on the original work by:
created 21 Jan 2010
modified 30 Aug 2011
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Tone
The melody is programmed by Kristoffer Nordekvist who do not own the rights to the melody.
*/
#include "pitches.h"
// notes in the melody:
int melody[] = {
NOTE_A3, NOTE_C4, NOTE_E4, NOTE_A4, NOTE_B4, NOTE_E4, NOTE_C4, NOTE_B4, NOTE_C5, NOTE_E4, NOTE_C4, NOTE_C5, NOTE_FS4, NOTE_D4, NOTE_A3,
NOTE_FS4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_A3
};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 2
};
void setup() {
// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 26; thisNote++) {
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000 / noteDurations[thisNote];
tone(8, melody[thisNote], noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
noTone(8);
}
}
void loop() {
// no need to repeat the melody.
}
onsdag 30 september 2015
Kod för att styra robot längs eltejp och "stationer"
/***********************************************************************
* The following is explained in Swedish
* En svart linje av eltejp läggs på golvet
* Ställ Redbot rakt över eltejpen (längs med) så den kan följa eltejpen
* Redbot kommer köra rakt fram med hastighet 75/255
* Om vänster sensor känner av ett förhöjt värde (svart eltejp) kommer Redbot svänga åt höger
* Om höger sensor känner av ett förhöjt värde (svart eltejp) kommer Redbot svänga åt vänster
* På så sätt håller sig Redbot längs eltejpen
* Sätt ett rakt streck av eltejp som ett kors någonstans längs "spåret"
* Detta är en "station"
* När Redbot kommer till station stannar motorerna
* Först blinkar lilla Leden på Redbot 5 ggr långsamt
* Sedan blinkar lilla Leden på Redbot 5 gg fortare
* Sedan startar Redbot från stationen och programmet återvänder till "normaldrift" framåt
*
* This code was written with lots of help from the Arduino community and Sparkfun Electronics
* This code is released into the public domain
*
* Kristoffer Nordekvist 30.09.15
***********************************************************************/
//Här kommer först instruktioner om vilka program som ska vara med:
#include <RedBot.h>
RedBotSensor IRSensor1 = RedBotSensor(A3); // initialize a sensor object on A3
RedBotSensor IRSensor2 = RedBotSensor(A6); // initialize a sensor object on A6
RedBotSensor IRSensor3 = RedBotSensor(A7); // initialize a sensor object on A7
RedBotMotors motors; //startar motorernas kontroll
int Led = 13; //LED anknuten till pin 13 (finns på breadboard)
void setup() //här kommer instruktioner om vilka program som ska köras en gång
{
Serial.begin(9600);
Serial.println("Här följer mätning av IR-sensorerna");
Serial.println("-----------------------------------");
}
void loop() //Här kommer instruktioner om det som ska köras "för alltid"
{
Serial.print("IR Sensor Readings: ");
Serial.print(IRSensor1.read());
Serial.print("\t"); // tab character
Serial.print(IRSensor2.read());
Serial.print("\t"); // tab character
Serial.print(IRSensor3.read());
Serial.println();
delay(50);
//HUVUDKOMMANDO säger att kör framåt i 75/255 hastighet
motors.rightMotor(75);//startar höger motor
motors.leftMotor(-75);//startar vänster motor
//SVÄNGKOMMANDO 1
if(IRSensor1.read()>900)//om IRSensor1 läser ett värde större än 900
{
motors.leftMotor(-25);//ska vänster motor sänka varvtal
motors.rightMotor(125);//höger motor kör på
// Svänger till vänster
}
//SVÄNGKOMMANDO 2
if(IRSensor3.read()>900)//om IRsensor3 läser ett värde större än 900
{
motors.rightMotor(25);//ska höger motor sänka varvtal
motors.leftMotor(-125);//vänster motor kör på
//Svänger till höger
}
//STOPPKOMMANDO
if(IRSensor3.read()>900 && (IRSensor2.read()>900 || IRSensor1.read()>900))
//Om alla tre sensorerna läser högt värde
{
motors.brake(); //ska båda motorerna stanna
for (int i=0; i<5; i++) //skapar en loop som ska köras 5 ggr inuti void loop
//startar räkningen på 0. Räknar UPP till 5. Varje gång adderas ett.
{ //BLINKA LÅNGSAMT
digitalWrite(Led, HIGH); //slå på Led
delay(500); //vänta 0,5 s (500 ms)
digitalWrite(Led, LOW); //slå av Led
delay(500); //vänta 0,5 s
}
for (int i=0; i<5; i++) //skapar en loop som ska köras 5 ggr inuti void loop
//startar räkningen på 0. Räknar UPP till 5. Varje gång adderas ett.
{ //BLINKA FORT
digitalWrite(Led, HIGH);
delay(100); //vänta 0,1 s
digitalWrite(Led, LOW);
delay(100); //vänta 0,1 s
}
//KÖR UT FRÅN STATIONEN
motors.rightMotor (50);
motors.leftMotor (-50);
delay (500);
}
}
tisdag 29 september 2015
Ett första uppdrag i Scratch
Denna övning är starkt inspirerad av Stiftelsen för Internetinfrastrukturs guidematerial "Barnhack".
Försök programmera detta:
1. Ge katten instruktioner att gå 10 steg fram för varje klick på den gröna flaggan.
2. Klicka på flaggan, sedan ska katten gå själv, vända vid kanten och fortsätt röra sig.
3. Efter att spelaren klickat på den gröna flaggan ska varje musklick på katten ge en poäng.
4. Om spelaren missar katten med ett musklick dras ett poäng bort från poängställningen.
5. När spelaren fått tio poäng ska katten säga "Du vann!" och spelet stanna. När spelet startas ska poängen nollställas.
Försök programmera detta:
1. Ge katten instruktioner att gå 10 steg fram för varje klick på den gröna flaggan.
2. Klicka på flaggan, sedan ska katten gå själv, vända vid kanten och fortsätt röra sig.
3. Efter att spelaren klickat på den gröna flaggan ska varje musklick på katten ge en poäng.
4. Om spelaren missar katten med ett musklick dras ett poäng bort från poängställningen.
5. När spelaren fått tio poäng ska katten säga "Du vann!" och spelet stanna. När spelet startas ska poängen nollställas.
måndag 28 september 2015
Scratch
Ett exempel på vad du kan göra i Scratch:
Ett annat exempel på vad du kan göra i Scratch:
Ett annat exempel på vad du kan göra i Scratch:
Prenumerera på:
Inlägg (Atom)