Esti pasionat Arduino si IoT? Vino la workshop Wireless Sensor Networks!

16939449_1261266363921429_5138969679018507708_n

Invata mai multe despre Internet of Things si tehnologiile Cloud intr-un workshop organizat de SoftBinator cu si despre Wireless Sensor Networks.

Vom folosi nodurile senzoriale Sparrow pe care le vom programa pentru a construi o aplicatie simpla dar foarte puternica de automatizare. Vom crea o retea de senzori wireless care citeste datele de la senzori si se conecteaza la servicii in Cloud, puse la dispozitie de catre colegii nostri de la DeviceHub. De asemenea, vom invata sa trimitem date si comenzi din Cloud inapoi in retea folosind API-ul DeviceHub.

composite

Biletele sunt disponibile la aici.

Participantii vor primi gratuit cate un exemplar din cartea 10(Zece) Proiecte cu Arduino, iar nodurile senzoriale Sparrow le puteti gasi si in magazinul nostru.

Continutul workshop-ului:
1. Crash course into Wireless Sensor Networks
2. Installing Arduino and Sparrow node support
3. Hello World! (what would we be without it?)
4. Reading sensor data
5. Radio transmission protocols
6. Connect sensor nodes to the Cloud
7. Collect sensor data
8. Send commands from the Cloud
9. Free-for-all

Ce trebuie sa aveti la voi: Laptop-ul vostru + Arduino IDE + Sparrow Node Support (urmati acest tutorial scurt pentru a va seta IDE-ul inainte de workshop).

Oare cum se poate folosi tehnologia pentru a imbunatati relatia dintre om si animale? Vino la prima editia FIRST LEGO League ROMANIA!

23 de echipele de concurs din 9 orase au raspuns provocarii Animal Allies.  FIRST LEGO League Romania va avea loc la Bucuresti, Rectorat UPB, pe data de 12 martie 2017, orele 10:00 – 16:30. Cele mai bune echipe vor fi invitate sa participe la evenimentele internationale din SUA, Danemarca si UK.

Incepand cu sezonul 2016/2017 elevii din Romania au oportunitatea de a participa la FIRST® LEGO® League, cea mai importanta competitie in domeniul tehnologiei si roboticii dedicata copiilor si adolescentilor cu varsta cuprinsa intre 9 si 16 ani. Competitiile FIRST LEGO League se desfasoara in prezent in circa 80 de tari, avand peste 290.000 de copii participanti.

In cadrul sezonului curent, Animal Allies, echipele de concurs au explorat interactiunea dintre om si animal si au raspuns provocarii de a gasi solutii inovatoare ce imbunatatesc aceasta interactiune.

 

FIRST LEGO League isi propune sa sporeasca interesul tinerilor pentru stiinta, tehnologie, inginerie si matematica (STEM) si sa-i motiveze sa urmeze o cariera in aceste domenii. In cadrul competitiei participantii proiecteaza, construiesc, programeaza si testeaza un robot autonom, aplica concepte din matematica si stiinta, elaboreaza solutii inovative pentru rezolvarea unor probleme reale, lucreaza in echipe si dezvolta aptitudini importante pentru cariera si viata.

Programul competitional FIRST LEGO League este alcatuit din trei elemente: proiectul de cercetare, proba de robotica si valorile fundamentale. In cadrul proiectului de cercetare, echipele elaboreaza solutii inovative, conform tematicii anuale. Rezultatele acestei munci de cercetare si studiu vor fi prezentate in cadrul concursului in fata unui juriu de specialitate.

Pentru partea practica a concursului, proba de robotica, echipele vor construi un robot autonom, ce poate rezolva in mod independent o serie de misiuni. In ziua concursului, echipele vor incerca sa rezolve cat mai multe misiuni cu ajutorul robotului construit.

Valorile fundamentale, temelia programului FIRST LEGO League, ii incurajeaza pe participantii sa constientizez faptul ca beneficiul reciproc si concurenta prieteneasca nu pot fi separate, iar intrajutorarea sta la baza lucrului in echipa.

Valorile Fundamentale ale FIRST LEGO League:

  • Suntem o echipa.
  • Noi suntem cei care lucram pentru a gasi solutii, sub indrumarea antrenorilor si mentorilor.
  • Recunoastem ca antrenorii si mentorii nostri nu cunosc toate raspunsurile si invatam impreuna.
  • Cultivam spiritul competitiei prietenesti.
  • Ceea ce descoperim este mai important decat ceea ce castigam.
  • Impartasim experienta si cunostintele cu altii.
  • Dam dovada de Profesionalism Demn (Gracious Professionalism® ) si de Competitie cooperanta (Coopertition®) in tot ceea ce facem.
  • Ne DISTRAM!

Proiectul de cercetare si proba de robotica sunt ceea ce vor face elevii. Valorile fundamentale tin de felul cum le vor face. Fiecare echipa de concurs poate fi compusa din trei pana la zece membri si va fi indrumata de un antrenor adult atat inainte de concurs cat si in timpul acestuia.

Echipele care se vor clasa pe primele locuri vor fi invitate sa participe la evenimentele internationale din SUA (1 loc), Danemarca (2 locuri) sau Marea Britanie (2 locuri), pentru sezonul Animal Allies.

Incepand cu anul 2016, sezonul Animal Allies, competitia FIRST LEGO League ajunge si in Romania, fiind organizata de Asociatia pentru educatie STEM creativa (CRESTEM),  in calitate de partener operational.

Despre Asociatia CRESTEM

Asociatia pentru educatie STEM creativa (acronim: CRESTEM) a fost infiintata in 2016 cu scopul crearii, dezvoltarii si promovarii unui ecosistem educational capabil sa ofere copiilor si studentilor o educatie completa, echilibrata si de calitate, care sa le permita acestora sa ia decizii in cunostinta de cauza, ce vor avea impact asupra lumii si modului in care acestia vor trai.

Incepand cu anul 2016 Asociatia CRESTEM, in calitate de partener operational, organizeaza la nivel national competitia de solutii inovatoare si robotica FIRST LEGO League. Echipele castigatoare de la etapa nationala se vor putea calificat pentru evenimentele internationale FIRST LEGO League.

Pentru informatii suplimentare va rugam contactati:
Stefan Aureliu Radulescu
Presedinte – Asociatia pentru educatie STEM creativa
Coordonator – FIRST LEGO League Romania
stefan@crestem.org

HackITall

afis-hackitall

“HackITall” este un eveniment destinat studenților competitivi, care sunt iubitori de tehnologie. Aceștia au șansa de a intra în contact direct cu specialiștii din domeniul IT&C și astfel, își vor demonstra competențele în programare, totodată, dezvoltându-și capacitatea de a lucra în echipă.
Aflat la a doua ediție, HackITall se bucură și în acest an de participarea firmei Avira ca sponsor și partener oficial pentru a face împreună un eveniment de succes, care să antreneze spiritul competitiv al studenților pasionați de coding.
Concursul va avea loc în perioada de 18 – 19 martie și se va desfășura la Biblioteca UPB. Numărul echipelor participante este de 20, dublu față de prima ediție, oferindu-le astfel șansa mai multor studenți de a se afirma și de a-și arăta skill-urile de programator. Fiecare echipă va fi alcătuită din trei membri, care vor fi supuși unui challenge sub presiune timp de 24 de ore în care vor scrie cod. Pentru că tuturor le plac provocările, tema va fi anunțată la începutul competiției și nu mai devreme, pentru a stârni creativitatea concurenților și a-i determina să stabilească pe loc strategia de bătaie. Hackathon-ul va fi un maraton de concentrare și muncă intense, unde concurenții vor veni cu o soluție simplă la o problemă complexă într-un interval de timp prestabilit.
De asemenea, premiile vor fi pe măsura dorinței voastre de a câștiga, așa că înscrieți-vă la HackITall și arătați că aveți pasiune, ambiție și că sunteți adevărați programatori!

Proiect WiFi Car Reloaded (partea I)

Așa cum am prezentat și în proiectul precedent (WiFi Car), realizarea unei platforme robotice comandate la distanță prin intermediul unei conexiuni WiFi se poate realiza foarte simplu prin intermediul unei plăci de dezvoltare mixte (microprocesor + microcontroler) – Arduino Yun sau echivalentă. În cadrul lecției de față vom relua aceiași provocare dar vom aduce o serie de îmbunătățiri atât la nivel hardware cât și la nivel funcțional.

1

Din punct de vedere hardware ne propunem să utilizăm o placă de dezvoltare similară cu placa Arduino Yun dar de dimensiuni mult mai mici, în plus nu vom mai utiliza un șasiu cu 2 motoare ci unul cu 4 motoare pentru o stabilitate crescută și o manevrabilitate mult mai bună. Din punct de vedere funcțional vom adăuga posibilitatea de control prin intermediul unei aplicații mobile și transmiterea de imagini live direct de pe platforma robotică (vom adăuga o cameră ce va transmite de pe WiFi Car).

Șasiul utilizat pentru implementare este asemănător cu cel folosit anterior dar dispune de 4 roți și 4 motoare oferind, în ciuda unui consum mai mare, o stabilitate foarte bună și o posibilitate de control al direcției superioară variantei cu doar 2 motoare:

2

https://www.robofun.ro/kit-roboti/flexybot-4-motoare

Placa de dezvoltare utilizată este o placă MediaTek LinkIt Smart 7688 Duo, placă cu aceleași facilități funcționale și performanțe ca și placa de dezvoltare de Arduin Yun dar la un preț și o dimensiune mult mai mici:

3

https://www.robofun.ro/wireless/wireless-wifi/linkit-smart-7688-duo

Pentru controlul motoarelor vom utiliza un driver dual de curent Pololu DRV8835 ce permite o logică de comandă între 2V și 7V și o tensiune de comandă de pănă la 11V și 1.2A per canal (potrivit pentru mașina noastra ce va avea o logică de comandă de 3.3V și o tensiune de alimentare a motoarelor de 7.4V și un curent de 2x300mA per canal):

4

https://www.robofun.ro/mecanice/driver/driver_dc/drv8835-dual-motor-driver

5

Alimentarea mașinii se va face prin intermediul unui accumulator LiPo de 7.4V și capacitate 1800mAh dar dacă se dorește o autonomie mai mare se poate înlocui varianta indicată cu un accumulator de capacitate mai mare. Atenție!!! Utilizarea accumulatorilor LiPo necesită anumite precauții specifice (pericol de explozie / incendiu). Pentru începători este recomandată utilizarea unei cutii de 6 baterii AA – la fel ca și în lecția precedentă – conectarea este identică atât pentru accumulatorul LiPo cât și pentru cutia de baterii.

https://www.robofun.ro/surse_de_alimentare/acumulatori/acumulator-lipo-gens-1800mah

Tensiunea oferită de accumulator va alimenta în mod direct motoarele prin intermediul driverului de curent dar pentru alimentarea plăcii de dezvoltare, deoarece nu există regulator de tensiune pe placă, este nevoie de un regulator step-down de 5V extern, de exemplu:

6

https://www.robofun.ro/surse_de_alimentare/regulator_step_down/pololu-5v-1a-step-down-voltage-regulator-d24v10f5

Astfel, sistemul de alimentare al mașinii are următoarea schemă (este inclus și un întrerupător pentru oprirea alimentării, este util dar opțional):

7

Schema de interconectare a componentelor de comandă este următoarea:

8

După cum se poate vedea din schema de interconectare, placa de dezvoltare se va alimenta la 5V (ieșirea regulatorului de tensiune) iar motoarele (prin intermediul driverului de curent) la 7.4V/9V. Placa de dezvoltare dispune totuși de un regulator de tensiune intern ce coboară tensiunea de la 5V la 3.3V, ieșirea de 3.3V va fi utilizată pentru a indica driverului de curent nivelul tensiunii de comandă (spre deosebire de placa Arduino Yun care avea logica pinilor pe 5V, placa LinkIt Smart 7688 Duo are logica pinilor pe 3.3V). La ieșirea driverului de curent se vor conecta câte două motoare pe fiecare canal (cele din dreapta pe un canal, cele din stânga pe celălalt canal).

Comanda individuală a celor patru motoare nu este necesară deoarece controlul direcției se poate face foarte bine și prin comanda simultană a motoarelor de pe aceiași parte. Placa va comanda motoarele de pe partea stângă prin intermediul pinilor digitali 5 și 6 iar motoarele de pe partea dreaptă prin intermediul pinilor digitali 9 și 10 (toți cei patru pini au facilitate de ieșire PWM). Dacă, la punerea în funcțiune a mașinii, se observă anomalii de tipul: motoarele de pe aceiași parte se rotesc în sens invers sau în loc ca mașina să meargă înainte se rotește înseamnă că motoarele au fost conectate încrucișat și trebuie modificată conectarea acestora.

Noua platformă WiFi Car (Reloaded) poate fi programată în mod similar cu vechea platformă WiFi Car (placa LinkIt Smart 7688 Duo are aproape aceiași arhitectură cu placa Arduino Yun și rulează tot sistemul de operare OpenWRT) – singura modificare necesară este schimbarea definițiilor de conectare a pinilor de comandă.

Nu vom continua dezvoltarea programului din proiectul precedent ci vom propune o nouă abordare în comanda la distanță a WiFi Car. Noul sistem software va avea două componente: o componentă ce va rula pe microprocesorul plăcii (sub OpenWRT) și se va ocupa de retransmiterea traficului de rețea către portul serial al microcontrolerului și o componentă ce va rula pe microcontrolerul ATmega32U4 și se va ocupa cu comanda motoarelor conform mesajelor primite pe serială (similar cu funcționarea unei mașini comandate prin bluetooth).

Programul ce va rula pe microcontrolerul ATmega32U4 este următorul (programarea plăcii se poate face, la fel ca și în cazul plăcii Arduino Yun, prin WiFi – Over The Air):

#define MOTOR2_PIN1 10

#define MOTOR2_PIN2 9

#define MOTOR1_PIN1 6

#define MOTOR1_PIN2 5

int vs = 0;

int vd = 0;

void setup() {

  pinMode(MOTOR1_PIN1, OUTPUT);

  pinMode(MOTOR1_PIN2, OUTPUT);

  pinMode(MOTOR2_PIN1, OUTPUT);

  pinMode(MOTOR2_PIN2, OUTPUT);

  Serial1.begin(9600); }

void loop() { 

  if (Serial1.available()) {

    char c = (char)Serial1.read();

    switch (c) {

      case ‘i’:

        if (vs<245) vs=vs+10;

        if (vd<245) vd=vd+10;

        Serial1.print(“Viteza: “);

        Serial1.print(vs);

        Serial1.print(“/”);

        Serial1.println(vd);

        break;

      case ‘b’:

        if (vs>-245) vs=vs-10;

        if (vd>-245) vd=vd-10;

        Serial1.print(“Viteza: “);

        Serial1.print(vs);

        Serial1.print(“/”);

        Serial1.println(vd);

        break;

      case ‘s’:

        if (vs<245) vs=vs+10;

        if (vd>-245) vd=vd-10;

        Serial1.print(“Viteza: “);

        Serial1.print(vs);

        Serial1.print(“/”);

        Serial1.println(vd);

        break;

      case ‘d’:

        if (vs>-245) vs=vs-10;

        if (vd<245) vd=vd+10;

        Serial1.print(“Viteza: “);

        Serial1.print(vs);

        Serial1.print(“/”);

        Serial1.println(vd);

        break;       

      case ‘x’:

        vs=0;

        vd=0;

        Serial1.print(“Viteza: “);

        Serial1.print(vs);

        Serial1.print(“/”);

        Serial1.println(vd);

        break;

    }

  }

  Serial1.flush();

  go(vs,vd);

  delay(50);

}

void go(int speedLeft, int speedRight) {

  if (speedLeft > 0) {

    analogWrite(MOTOR1_PIN1, speedLeft);

    analogWrite(MOTOR1_PIN2, 0);

  }

  else {

    analogWrite(MOTOR1_PIN1, 0);

    analogWrite(MOTOR1_PIN2, -speedLeft);

  }

  if (speedRight > 0) {

    analogWrite(MOTOR2_PIN1, speedRight);

    analogWrite(MOTOR2_PIN2, 0);

  }else {

    analogWrite(MOTOR2_PIN1, 0);

    analogWrite(MOTOR2_PIN2, -speedRight);

  }

}

Se observă că programul preia de pe portul serial Serial1 (portul serial ce face legătura între microprocesor și microcontroler) comenzile de înainte (i), dreapta (d), stânga (s), înapoi (b) și stop (x) și le transmite către motoare. Comenzile constau în modificarea (incrementarea sau decrementarea cu 10) celor două viteze (a motoarelor de pe partea dreapta și a motoarelor de pe partea stângă).

Înainte de a implementa cea de a doua componentă software a sistemului, componenta de legătură între conexiunea WiFi și comunicația serială dintre cele două circuite programabile ale plăcii de dezvoltare, trebuie să configurăm placa LinkIt Smart 7688 Duo să poată acceseze Internet prin intermediul unei rețele WiFi locale – configurația inițială a plăcii – similară cu partea de configurare inițială din lecția precedentă. Pentru configurarea de bază / inițială a plăcii de dezvoltare LinkIt Smart 7688 Duo se poate consulta următorul material:

LinkIt Smart 7688 Duo – Seeed Wiki

http://wiki.seeed.cc/LinkIt_Smart_7688_Duo/

Testarea configurației următoare a fost realizată pe o placă LinkIt Smart 7688 Duo cu firmware 0.9.4.

Componenta software ce va rula pe microprocesorul sistemului sub OpenWRT este aplicația ser2net ce trebuie instalată:

opkg update

opkg install ser2net

Pentru pornirea automată a aplicației la restarea sistemului vom crea fișierul /etc/init.d/ser2net cu următorul conținut:

#!/bin/sh /etc/rc.common

START=10

STOP=15

start(){

ser2net

}

stop(){

killall ser2net

}

După care vom activa pornirea aplicației și vom porni efectiv aplicația:

chmod +x /etc/init.d/ser2net

/etc/init.d/ser2net enable

/etc/init.d/ser2net start

Pentru a transmite comenzile către mașină vom utiliza o aplicație client telnet (putty de exemplu) și ne vom conecta la adresa IP locală a plăcii de dezvoltare pe portul 2001. În consola telnet vom trimite comenzile descrise anterior (caracterele i, s, d, b, x) – captură de ecran de mai jos.

9

În partea a doua a lecției vom vedea cum putem realiza comanda prin intermediul unei aplicații mobile și, bineînțeles, cum putem adăuga sistemului nostru o cameră video.

RoboTEC 2017 LigaAC

RoboTEC este o competiţie internaţională între roboţi care se desfăşoară în perioada 24-26 martie, la Timişoara. În cadrul concursului, se pot înscrie echipe formate din 3 studenţi, cu posibilitatea de a fi însoţiţi de un cadru didactic (mentor).
Fiecare echipă construieşte un robot pentru una dintre cele 5 categorii ale concursului: urmărirea liniei, ieşirea din labirint, mini-sumo, mega-sumo şi freestyle. Astfel, participanţii au şansa de a-şi aprofunda cunoştinţele de programare, de a le pune în practică şi de a interacţiona cu alţi studenţi, atât din Timişoara, cât şi din lume.
Aşadar, înscrie-te şi tu la RoboTEC până la data de 15 martie,construieşte-ţi roboţelul autonom, inteligent şi puternic şi câştigă marea competiţie!
Pentru a completa formularul de înscriere şi a afla mai multe detalii, accesează site-ul oficial: https://robotec.ligaac.ro/.