pojazd cz.1

Dziś było więcej mechaniki, niż elektroniki… choć na koniec udało się Wszystkim złożyć swoje pojazdy i uruchomić – gratuluję! Za tydzień sterowanie i pierwsze jazdy próbne 😉

(c) KG 2018

Bluetooth

Z wielkim sukcesem i zadowoleniem oprogramowaliśmy moduł Bluetooth XM-15B

  • biblioteka SoftwareSerial.h — bardzo przydatna w pracy z bluetooth, bo potrzebujemy komunikacji szeregowej (Arduino UNO ma tylko jedną parę Tx/Rx!)
  • tworzymy zmienną SoftwareSerial i przypisujemy jej dwa piny cyfrowe – w kolejności Rx, Tx
  • nie zapomnijcie o włączeniu metodą begin(9600)
  • łączenie „na krzyż” z modułem XM-15B, czyli: Tx <–> Rx, Rx <–> Tx
  • czytanie i interpretowanie komend…. a myślicie, że po co ciągle ćwiczyliśmy czytanie z klawiatury? teraz się przyda!

Poniżej działanie aplikacji Blutooth Control Lamp i wyświetlaczem 7-mio segmentowym:

Podłączamy sterownik silników L298N i kolejna apka z Androida: Android RC

A tu mamy to, co niebawem nas czeka: troszkę większe silniczki (37Dx73L) z zaprojektowanym i wydrukowanych „trzymakiem”

Chciałem pogratulować całej 5-tce obecnej na dzisiejszych zajęciach – za zaangażowanie w pracę nad projektem – i naukę nawet w długi weekend majowy. Jestem przekonany, że Wam się to opłaci.

(c) KG 2018

sterujemy pojazdem – oprogramowanie

Kontynuujemy oprogramowywanie pojazdu – ciągle chodzi nam o jak najpłynniejszą jazdę.

Propozycje softu:

  • tworzymy liczniki czasu jazdy (w milisekundach) do przodu, w lewo, w prawo
  • każdorazowe naciskanie przycisków na pilocie zwiększa odpowiednie liczniki
  • w pętli głównej unikamy zatrzymywania Arduino – czyli funkcji delay, zamiast to
  • używamy funkcji millis() do sprawdzenia aktualnego czasu i wyłączeniu silników, jeśli liczniki pracy do przodu (w lewo, w prawo) się skończyły
  • a teraz najciekawsze modyfikacje:
  • jeśli oba liczniki: do przodu i skrętu (nieważne: w lewo czy w prawo) są niezerowe, to w zależności od ich stosunku sterujemy PWM-em koła i robimy albo lekki skręt, albo bardzo mocny (bez jechania do przodu).

Kolejne zajęcia po Świętach – wtorek 25 kwietnia – sterujemy pilotem platformą – nie zapomnijcie przynieść ze sobą pilota na podczerwień.  Zapraszam!

 

sterujemy pojazdem (TSOP 2236) + tuning platformy

Rozpoczęliśmy od sprawdzenia, na ile czasu jazdy starczą nam zainstalowane akumulatorki. Pierwszy program był się bardzo prosty – cała naprzód (i  mierzymy prąd).

Potem zamonotowaliśmy czujkę TSOP 2236 i wpisaliśmy obsługę poleceń: jedź do przodu, tyłu, skręcaj (niektórzy nawet dwa rodziaje skrętów – ciasny, oraz szeroki).

Okazuje się, że pojazdy jeżdzą, ale trudno się nimi steruje – wykręcenie „ósemki” na przygotowanym torze nie jest wcale łatwe. Sprawa wymaga odpowiedniego oprogramowania rozkazów jazdy – na tym trzeba się skupić.

Kolejne zajęcia – także we wtorek 16:00 – sterujemy pilotem platformą – nie zapomnijcie przynieść ze sobą pilota od TV/radia/odkurzacza.  Zapraszam!

 

pilot od TV — czujka TSOP 22xx + platforma pojazdu

Poznaliśmy odbiornik podczerwieni TSOP 2236. 

#define VCC 13
#define IR 12
#include <IRLib.h>
IRrecv pilot(IR);//pin
IRdecode dekoder;

void setup(){
  pinMode(VCC, OUTPUT);
  digitalWrite(VCC, 1);//wlaczamy napiecie dla odbiornika IR
  pilot.enableIRIn();//uruchamiamy odbiornik IR
  Serial.begin(9600);
}

void loop() 
{
   if (pilot.GetResults(&dekoder)) {
     dekoder.decode();    //dekoduj dane
     pilot.resume();     //restartuj odbiornik
     Serial.print("0x");      
     Serial.println(dekoder.value, HEX);//szesnastkowo - tak tylko...
   }//if
}/loop

W powyższym przykładzie zakładam, że pilot odbiornik IR podłączony był bezpośrednio do płytki Arduino o tak:

co jest bardzo stabilne i (warto podkreślić) nie wymaga płytki stykowej. Wszystko zgodnie ze specyfikacją – odbiornik IR dostaje zasilanie 5V z pinu #13 Arduina, a wymagany prąd to tylko 5mA (czy pamiętasz, jakim maksymalnie prądem można obciążyć piny cyfrowe Arduino?). Dlatego na początku kodu pojawia się deklaracja VCC i włączenie tego pinu. Reszta zgodna z biblioteką IRLib – nie musimy bawić się w dekodowanie sygnału, wszystko zostało zrobione przez Chris Younga – dziękujemy!

Dodatkowo: zbudowaliśmy platformę pojazdu, którą za tydzień – będziemy sterować pilotem od TV. Jak widać stawiam na prostotę i możliwość późniejszej rozbudowy – dlatego nasze pojazdy są dość sporych rozmiarów. Zachęcam do tego typu prac ręcznych.

Kolejne zajęcia – także we wtorek 16:00 – sterujemy pilotem platformą – nie zapomnijcie przynieść ze sobą pilota od TV/radia/odkurzacza.  Zapraszam!

 

silniczki DC + fotorezystor

Sterujemy szybkością silniczka światłem – dlatego zaczęsliśmy od

  • zbudowania dzielnika napięć z fotorezystorem
  • wczytywaniu napięcia z tego dzielnika na port analogowy Arduino
  • podłączenie L298N z silnikiem
  • wybranie pinu PWM do sterowania szybkością obrotów
  • przydatna funkcja skalująca wartości z jednego zakresu na drugi: map

A oto i bohaterowie naszych zajęć:

Kolejne zajęcia – także we wtorek 16:00 – sterujemy dwoma silnikami za pomocą światła.  Zapraszam!

 

silniczki DC + moduł L298

Ponownie programowaliśmy silniczek DC, tym razem wykorzystywaliśmy moduł na bazie L298. Przypomnieliśmy sobie kilka istnych rzeczy:

  • wczytywanie znaków z klawiatury do Arduino – funkcja Serial.read() 
  • pisanie „niechluje” instrukcji warunkowej w C/C++
  • wczytywanie liczb z klawiatury – funkcja Serial.parseInt()
  • podłączenie modułu L298 do koła i bateryjki — sprawdzamy, czy rozumiemy jak to działa
  • jeśli rozumiemy, to podłączamy do Arduino
  • prosty program włączający obroty silnik w jedną stronę na czas 1 sekundy, a potem w stronę przeciwną (też na czas 1 sek) i tak w kółko
  • modyfikacja programu na wczytywanie liczb: liczba 0 silnik stop, liczba <0 — silnik w jedną stronę, liczba >0 silnik w przeciwną stronę
  • kolejna modyfikacja o uwzględnienie sterowania szybkością obrotów – wczytujemy liczbę z przedziału -255..255 i sterujemy nie tylko kierunkiem obrotów, ale też i szybkością
  • przy okazji zachęciłem do wirtualnego Arduino na www.circuits.io

A oto i bohater naszych zajęć:

Znalezione obrazy dla zapytania modul l298

Kolejne zajęcia – także we wtorek 16:00 – sterujemy silnikiem za pomocą światła.  Zapraszam!

 

silniczki DC + sterownik L293N

 

Zajęliśmy się silniczkami prądu stałego i przypominając sobie nawet najprostrze programiki dla Arduino udało się nam:

  • praca z multimetrem – mierzenie prądu płynącego przez działający silniczek – uwaga na odpowiednie nastawy zakresów pomiaru  
  • zwrócenie uwagi na wydajność prądową pinów cyfrowych Arduino oraz pinu zasilającego 5V
  • omówienie układu L293 – sterownik silnika (mostek H) – jego zalety? warto pamiętać!
  • budowa układu na płytce stykowej i „oprogramowanie” go w Arduino 
  • regulacja szybkości obrotów – pin PWM
  • regulacja szybkości ze zwiększonym zasilaniem silniczka (2x 6V) –  wcale nie spaliliśmy nasz silniczek!

Kolejne zajęcia – także we wtorek 16:00 – budujemy nasz pojazd.  Zapraszam!