Arduino w M26

Małe podsumowanie moich wspomnień z warsztatów z Arduino. Prowadzone były przez Jakuba Buszyńskiego. Prowadził ostatnio wykład na politechnice. Choć moim zdaniem była to bardziej dyskusja niż typowa nudna prezentacja. Za to wielki plus dla prelegenta :)
Kurs trwał kilka miesięcy. Odbywał się w niedawno zamkniętym M26Lab. Teraz czekamy na przeniesienie do nowej lokalizacji. Przez te kilka miesięcy programowaliśmy i tworzyliśmy kilka ciekawych projektów.

1. Program otwierający do drzwi.

No w końcu to problem. Tacy ludzie przychodzą do M26 i trzeba im otwierać… Co to ma być!!! Zróbmy do tego automat!!!
– Te słowa najlepiej opisują ideę projektu. Nasz ukłąd automatycznie otwierał domofon i zamek w drzwiach. Drzwi otwierały się po serii puknięć. Choć całość nie zawsze działała tak jakbyśmy tego chcieli. Do tego dobór plastikowej rączki nie był dobrym pomysłem. No chyba, że mieli byśmy zarabiać na jej wymianie to tak 😉

2. Licznik wejść i wyjść ludzi.

Prosty ciekawy układ. Składał się z fotorezystaora, lasera i arduino. Jak działa? Cyklicznie na bardzo krótko włączamy laser. Mniejsza moc pozwala nam znacząco zwiększyć żywotność lasera. Robienie pomiarów raz / kilka razy na sekundę, daje nam praktycznie pełny obraz o stanie układu. Znając stany bramek jest już banalnie: Sprawdzamy w jakim stanie jest jedna z dwóch bramek świetlnych. Po kolejności ich przecięć stwierdzamy czy osoba wchodziła, czy wychodziła z budynku. Kod w dwóch wariantach dostępny poniżej:

[cc lang=”Java”]

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
int analogPin = 0;
int analogPinValue = 0;
int people = 0;
int state = 0;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
Serial.begin(9600);
pinMode(led, OUTPUT);
}

int ciemno(){

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(10); // wait for a second
analogPinValue = analogRead(analogPin);
Serial.println(analogPinValue);
//Serial.println(analogPinValue);
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(10); // wait for a second
return analogPinValue<300;
}

// the loop routine runs over and over again forever:
void loop() {
while(!ciemno());
while(ciemno());
people++;
//Serial.println(people);
/*
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(10); // wait for a second
analogPinValue = analogRead(analogPin);
Serial.println(analogPinValue);
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(10); // wait for a second*/
}

/*Autors:
Sebastian Pożoga
Jakub Juszkiewicz
Arek Dymalski
Łukasz Fiedkiewicz
Mateusz Smektalski
Wojtek Stachowiak
Cyryl Kwasniewski
*/

[/cc]

I druga wersja:

[cc lang=”java”]

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:

//led1
int ledWe = 13;
int analogWe = 0;

//led2
int ledWy = 14;
int analogWy = 1;

//config
int waitTime = 3;
int waitRepeat = 100;

//count
int we = 0;
int wy = 0;

 

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
Serial.begin(9600);
pinMode(ledWe, OUTPUT);
pinMode(ledWy, OUTPUT);
}
int laserCiemno(int led, int analog){
digitalWrite(led, HIGH);
delay(waitTime);
int value = analogRead(analog);
Serial.println(analog);
digitalWrite(led, LOW);
delay(waitTime);
return value<300;
}

int waitForLaserBreak(int led, int analog){
for(int i=waitRepeat;i>0;i–){
if(laserCiemno(led,analog)) return 1;
}
return 0;
}

int weWyPrint(){
Serial.print(„\nWe:”);
Serial.print(we);
Serial.print(„\nWy:”);
Serial.print(wy);
}
// the loop routine runs over and over again forever:
void loop() {

if(laserCiemno(ledWe,analogWe)){
we += waitForLaserBreak(ledWy,analogWy);
}

if(laserCiemno(ledWy,analogWy)){
wy += waitForLaserBreak(ledWe,analogWe);
}
}

//Autors:
/*
Sebastian Pożoga
Jakub Juszkiewicz
Arek Dymalski
Łukasz Fiedkiewicz
Mateusz Smektalski
Wojtek Stachowiak
Cyryl Kwasniewski
Adam Zajkowski

*/

[/cc]

Byłem głównym autorem kodu więc jak coś można spokojnie pisać i bluzgać 😉

3. Duocopter

W sumie plan budowy można zobaczyć na obrazku:

DSC00866

Model turbiny możemy zobaczyć na filmiku:

Temat jest tak szeroki, że nie sposób go omówić w jednym poście. Czy nawet jednej książce… Ale osoby które chcą więcej podłubać na pewno znajdą coś dla siebie 😉

To jeszcze nie koniec

Tak jak pisałem M26 już nie istnieje ale warsztaty z Arduino będą odbywać się dalej. Tak, więc zapraszam a tymczasem zapraszam do zobaczenia jak to było kiedyś:

 

Co mogę powiedzieć więcej?

Dzięki za świetną zabawę i inspirację :) W końcu dzięki wam kupiłem sobie raspberry pi