Hardgroup #6

IoT w praktycznym zastosowaniu

Artykuły i wykłady o Internet of Things (IoT) biją rekordy popularności. Pełno w nich wzniosłych słów, prognoz firm badawczych i ekscytacji autorów. Kiedy jednak z wypiekami na twarzy czytamy dalej, w poszukiwaniu ciekawych szczegółów, spotyka nas rozczarowanie – brak konkretów. Mało kto zmagał się z IoT sam na sam, przez co brak tam praktycznych porad, rewizji poglądów i dowodów udanego przeniesienia idei na coś użytecznego. My postanowiliśmy zakasać rękawy i sami sprawdzić czy IoT zmieni świat. Capgemini Software Solutions Center stworzyło własny system lokalizacji przedmiotów wewnątrz budynków w oddziale we Wrocławiu. Użyliśmy Beaconów, nowoczesnych narzędzi developerskich (m.in. Spring Boot, AngularJS, Microsoft Azure) oraz mnóstwa własnych pomysłów. Jeśli chcesz się dowiedzieć co z tego wyszło, czego się wystrzegać zaczynając własny projekt IoT, a co może pozytywnie zaskoczyć przyjdź na spotkanie. Będzie ciekawie, miejscami bardzo technicznie, ale przede wszystkim praktycznie.

The path from first prototype to preproduction release

Michal is Commander@Moodnode, a company that is on a mission to bring smart yet simple way to automate your home lights. Moodnode is the first IoT light switch that is designed to comply with European mechanical and electrical standards.
In his presentation his going to explain the development/prototyping process, talk about the techniques and tools that helped the team to develop the preproduction version of Moodnode.

Hardgroup #5

HomeIO – why you should choose it as a remote control system?

PL: (HomeIO – system do zdalnego monitorowania i sterowania) HomeIO tworzę już od 10 lat od momentu zainstalowania małej elektrowni wiatrowej. Chciałbym pokazać dlaczego warto go użyć i co dowiedziałem się podczas jego tworzenia.
Aleksander Kwiatkowski

I started HomeIO about 10 years ago as a dedicated system for small wind turbine. That experience allowed me to create an unique tool to monitor and control various systems. I would like to show you current iteration and explain how and why you could use it.

Windows IoT (Eng)

The short history and bright future of Windows IoT.
(Related with http://events.pozoga.eu/57-spotkanie-poznanskiej-grupy-net/ )
Goran Karacic

 

 

 

Hardgroup #4

Connected home – technologie i wojna protokołów

Borys Tomala z CloudThing.io opowie o produktach i najnowszych technologiach dla automatyki domowej, wojnie protokołów oraz przedstawi stosunkowo nowego gracza na rynku – Thread Protocol.

Jak pozyskać finansowanie na komercjalizację swojego projektu?

Wprowadzanie hardware’owego projektu na rynek często wiąże się z koniecznością pozyskania zewnętrznego finansowania. Właśnie wtedy twórcy produktu muszą odpowiedzieć sobie wiele pytań: jak przekonać do siebie inwestorów? Która forma finansowania będzie dla naszego projektu najlepsza? Czego możemy się spodziewać po współpracy z inwestorem? Właściwe odpowiedzi na te pytania zwiększają szansę na rynkowy sukces produktu, więc warto znać jak najwcześniej. O tym jak najlepiej przygotować się do pozyskiwania środków na rozwój swojego projektu opowie Jacek Bartczak z Arkley Seed Fund, czyli funduszu inwestującego w projekty z obszaru Hardware.

Co nowego na FOSDEM

Opis stoisk i nowości które dało się znaleźć na konferencji. Boisz się terrorystów? Nie było Cię w tym roku na FOSDEM? To prezentacja dla Ciebie 😉

Hardgroup – Warsztaty z AVR #1

Instrukcja przygotowania komputera do warsztatów.

Na Windows będziemy korzystać z Atmel Studio.

Wariant 1: Windows
1. Ściągamy i instalujemy Atmel Studio (trzeba wpisać swoje dane, link przychodzi na maila – środowisko jest bezpłatne):
http://www.atmel.com/System/BaseForm.aspx…

2. Jeżeli nie pracowaliśmy jeszcze z Arduino Uno, to ściągamy Arduino IDE (w paczce jest sterownik do USB który nas interesuje):
https://www.arduino.cc/download_handler.php…

3. Ze ściągniętej paczki z Arduino rozpakowujemy folder drivers

4. Podłączamy Arduino Uno (jeżeli mamy; osoby które zamawiały u nas robią ten krok na warsztatach).

5. Jeżeli Windows nie da rady zainstalować sterownika, wchodzimy w Menedżer urządzeń, wyszukujemy Nieznane urządzenie (albo pod sekcją Porty COM i LPT, Arduino Uno), prawy klik i -> Aktualizuj sterownik.

6. Wybieramy nasz rozpakowany folder drivers jako źródło sterownika. Sterownik powinien się teraz zainstalować i pod sekcją porty COM i LPT powinno być widoczne Arduino z numerem portu (COMx – zapisujemy sobie jaki jest x)

7. Ściągamy i rozpakowujemy AVRDUDESS (avrdude + GUI – programator)
http://blog.zakkemble.co.uk/download/avrdudess_20140805.zip

8. Ściągamy http://downloads.sourceforge.net/…/libusb-win32-bin-1.2.6.0…i rozpakowujemy z niego plik bin\x86\libusb0_x86.dll i wklejamy go do folderu z rozpakowanym AVRDUDESS

9. Zmieniamy nazwę pliku libusb0_x86.dll na libusb0.dll

10. Odpalamy avrdudess.exe

11. W sekcji Programmer wybieramy Arduino, Port wybieramy COMx (taki jak w menadżerze urządzeń), Baud rate 115200, MCU (po prawej) Atmega328P. W sekcji Flash klikamy „…” i wybieramy miejsce zapisu pliku, poniżej wybieramy Read i format Intel Hex. Klikamy „Program!” na dole. Jeżeli wszystko dobrze zrobiliśmy, we wskazanym miejscu powinien się pojawić plik HEX z odczytanym programem z Arduino, a w konsoli coś w stylu:

„Reading | ################################################## | 100% 4.65s

avrdude.exe: writing output file „C:\Users\Mateusz\Desktop\plik.hex”

avrdude.exe done. Thank you.”

Wariant 2: Linux (nie testowałem tego, należy samemu sprawdzić!)
1. Instalujemy pakiet gcc-avr
2. Instalujemy pakiet avrdude
3. Uruchamiamy z konsoli „avrdude -c arduino -p m328p -P /dev/ttyS0 -b 115200 -U flash:r:”/sciezka/do/zapisu/plik.hex”:i” – podmieniamy ścieżkę i /dev/ttyS0 (ścieżka do portu szeregowego Arduino Uno) na właściwe wartości
4. Jeżeli wszystko się powiodło, dostaniemy podobny wynik w konsoli jak wyżej w punkcie 11 dla Windows.
5. Makefile do kompilacji można znaleźć tu: http://www.nongnu.org/…/user-manu…/group__demo__project.html – podmieniamy w nim tylko linię z „MCU_TARGET = atmega8” na „MCU_TARGET = atmega328p”

Hardgroup #3

The Things Network – budujemy smart Poznań

Jacek Rosik, inicjator The Things Network w Poznaniu opowie o crowdfoundingowym projekcie i technologii, która za nim stoi, czyli LoraWan. Otwiera ona praktycznie nieskończone możliwości wykorzystania Internetu Rzeczy w mieście. Może sami wpadniecie na nowatorski sposób jej użycia

Windows 10 IoT na Raspberry Pi 2

Jak wygląda Internet of Things według Microsoft w pigułce.
Czym jest Windows 10 w wersji IoT i co jest konieczne, aby rozpocząć pracę na przykładzie Raspberry PI 2. W jakim środowisku i w jakim języku możemy tworzyć aplikacje i jak połączyć to z zewnętrznymi urządzeniami oraz „internetem rzeczy”.

https://github.com/ChrisOrTwo/Public/tree/master/Windows%2010%20IoT%20Demo

Rapifire – czyli chmura dla internetu rzeczy

Łączenie urządzeń końcowych do chmury, tworzenie połączeń między urządzeniami oraz logiki odpowiedzialnej za działanie rzeczy internetu na platformie rodem z Poznania.

Hardgroup #2

Układ na arduino jako prototyp komercyjnego produktu

Czy za pomocą arduino i prostego kodu można stworzyć zalążek wielkiego produktu? Oczywiście, że tak! Udowodni to ekipa SmartMirrors opowiadając o początkach swojego projektu oraz wykorzystaniu arduino w szybkim zrobieniu sprawnie działających prototypów pozwalających przekonać się, że ich koncepcja jest możliwa do zrealizowania.

Zademonstrują również kilka kluczowych wad arduino – dlaczego w docelowym produkcie ta platforma nie ma racji bytu i co może ją zastąpić w gotowym produkcie.
– Przemek Michalak & Bartosz Ambrożkiewicz

Przykład praktycznego zastosowania AVR – przenośny rejestrator pogodowy

W krótkiej prezentacji pokażę projekt, który obecnie realizuję. Jestem w trakcie opracowywania przenośnego (kieszonkowego) rejestratora pogodowego do wypraw w tereny górskie / ekstremalne. Pokażę krok po kroku, jakie decyzje projektowe musiałem podjąć, dlaczego je podjąłem, oraz jak w praktyce wykorzystam mikrokontroler AVR aby zrealizować cel.
– Mateusz Gawenda

Obsługa prostych czujników w Arduino/AVR

Popularnym zastosowaniem mikrokontrolerów jest obsługa wszelkiej maści czujników. Na tej prezentacji pokażemy, na przykładzie czujnika odległości HC-SR04 , jak na podstawie noty katalogowej oraz instrukcji, napisać własny kod obsługi czujników.
– Artur Iwicki

 

Hardgroup #1

Jak zacząć z AVR-ami w C?

Programowanie AVR-ów od podstaw w języku C. Dowiedz się, jak użyć Atmega328P (ten sam co w Arduino) i innych bez użycia bibliotek Arduino – czyli zrób coś innego niż wszyscy dookoła! Zobaczysz jak programowanie przekłada się na świat mikrokontrolerów oraz dowiesz się, jak rozwijać swoją wiedzę dalej samemu. Na warsztacie pokażę narzędzia (zarówno softwareowe jak i hardwareowe), które ułatwią rozpoczęcie zabawy z AVR-ami bez narzutu tworzonego przez Arduino. Postaram się pokazać, jak czytać datasheet, jak działa mikrokontroler, oraz z jakimi narzędziami najłatwiej zacząć. Jeżeli już programujesz używając Arduino, na tym warsztacie dowiesz się jak to wszystko naprawdę działa „pod spodem”.

Start z Raspberry PI

Krótka prezentacja o tym jak zaczać swoją przygodę z hardware z wykorzystaniem systemu operacyjnego raspbian. O tym jakie ograniczenia daje nam jądro linuxa i co oferuje wzamian. W krótki sposób zaprezentuję sposób programowania portów GPIO i zaprezentuję jak zrobić nasz pierwszy twór, który „żyje”.

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