Forbot.pl — nowy konkurs z nagrodami pieniężnymi

Portal forbotl.pl ponownie organizuje konkurs, do którego można zgłaszać artykuły dotyczące szeroko pojętej elektroniki. Może ktoś z Państwa będzie zainteresowany udziałem w tej akcji? Mile widziane są teksty dotyczące m.in.: Arduino, Raspberry Pi, ESP, STM32, FPGA, Raspberry Pi Pico, MicroPython, Grafana, MQTT, TensorFlow, AI, TinyML, RISC-V, Arduino CLI, Arduino Pro, Node-RED, ESP32, LoRa, Home Assistant, Processing, Firebase (w kontekście IoT). Do wygrania są karty podarunkowe Allegro o wartości 2000 zł, 1000 zł ale nagrodzonych zostanie aż 7 osób. Więcej info na https://forbot.pl/blog/

(c) K. G. 2021

 

Zajęcia odwołane: COVID-19

Do odwołania… ale proszę wykorzystać ten czas na pracę w domu 😉 Jeśli komuś czegoś brakuje we własnym warsztacie (a wie, że mamy to na uczelni) to proszę o kontakt.

Życzę zdrowia,
K. G.

AKTUALIZACJA: Pan Bartek nie marnuje czasu – ciągle realizuje swój projekt heXapoda i niebawem go ukończy! Drukowanie i składanie ma już za sobą, ale konstrukcja to jedno. Teraz czas na oprogramowanie tej bestii 🙂

 

Zajęcia w semestrze lato 2019/2020. Moduł SIM800L działa.

Ustaliliśmy, że spotykamy się w czwartki godz. 15:45 w sali 1064.

A na dzisiejszych zajęciach działo się trochę chaotycznie: 1) kontynuowany był projekt sterowania Maskotką/pojazdami, 2) odkrywaliśmy dźwięki z buzera, 3) uruchamialiśmy moduł SIM800L – ale bez powodzenia a na koniec 4) omawialiśmy plany zakupowe do kolejnego projektu.

Z tym modułem SIM800L są jakieś dziwne problemy – mimo łatwego podłączenia i (wydawać by się mogło) obsługi. Polecam opis na lastminuteenginers.com a także inne wpisy z tej stronki – są bardzo ładnie przygotowane! Wracając do SIM800L – problemu jeszcze tego nie rozumiem, bo mój moduł rozpoznaje kartę ale nie może złapać sieci 🙁

Google mówi mi, że najczęstszym problemem jest zasilanie – należy zadbać nie tylko o napięcie 3.7-4V, które w przypadku dużego poboru prądu może spaść – co spowoduje reset modułu gdy mamy mniej niż 3.4V. UWAGA: moduł SIM800L jest bardzo wrażliwy na zasilanie i dlatego należy go podłączać w kolejności GDN, VCC, a nie odwrotnie (jeśli damy najpierw VCC – nawet „dobre” 3.7V – to w odniesieniu do czego będzie to 3.7V? brak GND może spowodować, że układ „zobaczy” 5V (czy nawet więcej) i się sfajczy. Kolejnym problemem jest niewystarczająca sprawność zasilania – źródło powinno dostarczać nawet 2A prądu, co wydaje się być główną przyczyną niepoprawnego działania tych układów. Ale to chyba nie u mnie – posłużyłem się zasilaczem laboratoryjnym Zhaoxin 1503D i powinienem otrzymać nawet 3A, jednak przy pracy mój układ pobierał maksymalnie 100mA i… chyba się restartował. Najpierw świecił sygnałami co 1s starając się łączyć (pobór prądu ~40-70mA) a potem jakby coś złapał, bo pobór prądu wzrósł do (równo) 100mA i dioda zamilkła na 2s po czym… Brak połączenia i znowu miganie co 1s. Nie mogła to być wina zasilacza, bo jest sprawny. O dziwo udaje mi się odczytać ID karty i inne parametry, ale siła sygnału (AT+CSQ) wynosi ZERO, i ciągle nie mogę zarejestrować w sieci (AT+CREG? zwraca 0,2). Prace trwają…

Sukces! Czyli jednak ZASILANIE! Chodziło o zbyt długie przewody zasilające z mojego zasilacza!Widać tutaj króciutkie przewody (czerwony oraz szary) podłączone do zacisków zasilacza, a obok leżą przewody bananowe. Przy takim podłączeniu szybko zostałem zarejestrowany w sieci a LED miga teraz co 3 sek. Pierwszy programik z pytaniem o połączenie:

Trochę dziwię się wynikowi AT+COPS=? pokazujący listę operatorów sieci (karta z PLAYa, a ja go tu nie widzę… Inna rzecz to numer mojej karty SIM: na starterze PLAYa jest o jeden (ostatni) znak mniej, ale wszystkie inne się zgadzają – dlaczego ten programik powtórzył ostatni znak? W innych przypadkach tak nie robił. Na koniec zasięg – AT+CSQ mam jedynie 22 podczas gdy w telefonie z tą kartą 2 kreski (z czterech) – ale to wystarcza by uruchomić drugi programik z polecanej stronki – wysyłający SMSa i sukces!

Dwa pierwsze SMSy zostały wysłane z innego telefonu z testowanej karty PLAY, dwa ostatnie – to właśnie sprawka Arduino UNO + SIM800L.

Na koniec zoom na podłączenie:

(c) K. G. 2020

 

Forbot.pl — konkurs z nagrodami pieniężnymi

Portal forbotl.pl organizuje konkurs, do którego można zgłaszać artykuły dotyczące szeroko pojętej elektroniki. Może ktoś z Was będzie zainteresowany udziałem w tej akcji? Mile widziane są teksty dotyczące m.in.: Arduino, Raspberry Pi, ESP, STM32, FPGA i nie tylko. Do wygrania są karty podarunkowe Allegro o wartości 2300 zł (1000 zł za pierwsze miejsce). Więcej info na https://forbot.pl/blog/

(c) K. G. 2020

 

Pojazd (autonomiczny), refleks (LEDy + przyciski) oraz line follower

Ciągle dwa/trzy niezależne projekty. Wygląda na to, że będą jednak trzy, bo Pan Bartek „atakuje” temat line followera (świetnie!)

1) zespół od pojazdu po sukcesie sterowania pojazdem przez człowieka (bluetooth) poznawał temat czujki odległości HC-SR04. Zamontowali już nawet „trzymak” w pojeździe – bez użycia wkrętaki! zuchy! 😉 Tak, tak – to „oklepany” układ, ale każdy od czegoś zaczyna – prawda? Trzymam więc kciuki za poprawne oprogramowanie go w pojeździe i zrobienie autonomicznego robota (poruszającego się bez ingerencji człowieka, w tym przypadku: wykrywającego kolizje i zmieniającego kierunek ruchu).

2) „refleks” przeszedł w stan rozbudowany i teraz składa się z 3 losowo zapalanych LEDów, i łapaniu reakcji przez 3 przyciski. Układ:

oraz program (+dużo komentarzy):

//piny z podlaczonymi przyciskami
int btn[]={2,4,6};
//piny z podlaczonymi ledami
int led[]={3,5,7};

void setup() {
  Serial.begin(9600);
  for (int i=0; i<3; i++){
    pinMode(btn[i],INPUT_PULLUP);
    pinMode(led[i], OUTPUT);
  }
}

unsigned int i;
unsigned int cr,tstart,tstop;
byte bt1, bt2, bt3, LOS;

void loop() {
  //"dysko-mode" informujace o poczatku rozgrywki
  for(i=0;i<3;i++){
        digitalWrite(led[0], HIGH);
        delay(100);
        digitalWrite(led[1], HIGH);
        digitalWrite(led[0], LOW);
        delay(100);
        digitalWrite(led[2], HIGH);
        digitalWrite(led[1], LOW);
        delay(100);
        digitalWrite(led[2], LOW);
        delay(100);
    }//"dysko-mode"
      
   //(pseudo)losowe czekanie: od 1s do 5s
   delay(random(1000,5000));

   //wybor LEDa do zaswiecenia: 1,2 lub 3
   LOS=random(1,4);
   
   //wersja tylko do testow: wypisywanie na ekran losowania
   Serial.print("LOS=");
   Serial.println(LOS);

   //wlaczenie wylosowanego LEDa     
   //dzieki zapisaniu numerow pin-ow do tablicy jest to teraz bardzo proste!
   digitalWrite(led[LOS-1], HIGH);

   //rozpoczecie mierzenia czasu
   tstart = millis();
       
   //czekanie na rekacje uzytkownika - wcisniecie jednego z trzech pyrzycsikow
   //zapamietujemy w zmiennych, ktore przyciski sa wcisniete
   do{                
       bt1 = digitalRead(btn[0]);
       bt2 = digitalRead(btn[1]);
       bt3 = digitalRead(btn[2]);                
   }while(bt1+bt2+bt3==0); //petla wykonuje sie tak dlugo, az przynajmniej jeden z przyciskow zostanie wcisniety                          

   //zatrzymanie "stopera" skoro cos zostalo wcisniete
   tstop = millis();
   digitalWrite(led[LOS-1], LOW);     

   //okreslenie poprawnosci wcisniecia przycisku:
   //zakladamy, ze zle wcisniety przycisk (tak wygodniej)
   bool ok=false;   //czy wygralem? 

   //sprawdzenie, czy moze jednak zostal wcisniety odpowieni przycisk
   switch(LOS){
      case 1: if ((bt1==1)&&(bt2==0)&&(bt3==0)) ok=true;break;
      case 2: if ((bt2==1)&&(bt1==0)&&(bt3==0)) ok=true;break;
      case 3: if ((bt3==1)&&(bt1==0)&&(bt2==0)) ok=true;break;
    }//swicth

    //jesli wygrales, to stosowny komunikat
    if (ok){    
      cr = tstop-tstart; //cr = "czas rekacji"
      Serial.print("brako! gratulacje! ");    
      Serial.print("czas reakcji:");
      Serial.println(cr);
    }//ok==true
    else{    
      Serial.println("pudło! nie ten przycisk!");    
    }     
    delay(1000);
}//loop
         
        



Można jeszcze popracować nad tym kodem – można dodać kolejny (inny) „dysko-mode” informujące, że się poprawnie wybrało przycisk, albo zaświecić wszystkimi LED-ami, gdy użytkownik „spudłował”. W przyszłości dodamy do układu wyświetlacz LCD aby tam pojawił się stosowny komunikat, a nie na ekranie podłączonego komputera.

3) na bazie TSOP5000 (kiedyś już ją poznawaliśmy) powstanie czujnik do pojazdu typu line follower – praca się właśnie rozpoczyna. Działa już (podwójny) układ czujników, więc teraz rozpoczął się drugi etap: układ 3/4/5? czujek na własnoręcznej płytce prototypowej + pojazd na sterowniku L298.

Dlaczego własnoręcznie robiona czujka, a nie jedna z „kupnych”, jak te ze zdjęć poniżej?

Odpowiedź jest prosta: bo to fajniejsze i mamy więcej zabawy podczas pracy, a o to właśnie chodzi!

 

KG, 2018

Pierwsze zajęcia… falstart :(

Na spotkaniu organizacyjnym ustaliliśmy, że spotykamy się co tydzień w piątki o 15tej.

Dzisiejsze zajęcia jednak przepadły z powodu szkolenia „pierwszaków” w tym samym terminie. Cóż – bywa (ja się o tym szkoleniu dowiedziałem przed samymi zajęciami, więc za późno by oficjalnie odwołać zajęcia u mnie). Ale ale, co się odwlecze, to nie uciecze 😉 Zapraszam w kolejne piątki (szkoleń już nie będzie).

KG, 2018

Startujemy! piątek, 5-10-2018

STARTUJEMY!

piątek, 5-10-2018, godz. 15:00

(dla studentów Wydziału Fizyki)

Będziemy bawić się/oprogramowywać Arduino, RaspberryPi (no sam nie wiem) i wiele gadgetów elektronicznych (silniczki, czujki, itd.). Co z tego powstanie? Inteligenty dom, robot, nocnik? 😉 Trudno powiedzieć, ale na pewno dużo się nauczysz (programować + konstruować proste układy elektroniczne). Obawiasz się, że mało umiesz z powyższych rzeczy? Zapraszam także „nowicjuszy”!

Jeśli jesteś zainteresowany, zapraszam na spotkanie organizacyjne w dniu 5-10-2018 (piątek), godz. 15:00, sala 1064.

(c) K. Gawryluk 2018

p.s.

nie było łatwo z doborem terminu – chodzi o dostępność sal, oraz o nie kolidowanie z zajęciami dla większości studentów. Inna propozycja spotkań to wtorki, godz. 16:15 – przedyskutujmy to na spotkaniu organizacyjnym.

 

Sesja lato 2018 — przerwa w spotkaniach

Sesja – wiadomo, studenci zaczynają się (w końcu!) uczyć. Oficjalnie ogłaszam więc przerwę na nasze spotkania – niech priorytetem będzie zaliczenie zajęć/labek/egzaminów. Piszcie do mnie na priv jeśli będziecie chcieli się spotkać i popracować nad „maskotką”.

Powodzenia w sesji! Niech moc będzie z Wami 😀

(c) K. Garwyluk 2018