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!

 

Przygotowania cdn…

  • Pan Paweł atakuje temat wyświetlaczy, ciekawe, czy mu się uda zrealizować grę 😉
  • Pani Noemi zaprzyjaźnia się z bluetoothem i sterownikiem silników…
  • Pan Kamil niedługo stanie się mistrzem Processingu…
  • Pana Marcina nie było 🙁 ciekawe, jak jego serwa?
  • Pan Adrian jest już na ostatniej prostej – pojazd jeździ (prosto!), reaguje na zderzenia, więc… dostał nowe zderzaki do zamontowania + pomysł na modyfikację softu do swojego bolida 😉

Się dzieje 😉

P.S.

Jak na razie zapisało się do nas:

  • na godz. 10:00 – III LO B-stok (~15 osób),  gimnazjum nr I Grajewo (~25 osób)
  • na 11:00 – II LO Grajewo (~16 osób)
  • jak na razie zapisów brak
  • na 13:00 – II LO B-stok (~30 osób !!!)

 

Arduino: PULL-UP, PULL-DOWN, microswitch (28-03-2016)

PULL-UP, PULL-DOWN, microswitch

Bardzo istotne zagadnienia wprowadzania sygnałów do Arduino z eliminacją stanów nieustalonych. Będziemy wykorzystać microswitche jako „zderzaki” zamontowane na pojeździe, które poinformują o napotkanych przeszkodach, coś w tym stylu:

12417902_10153698956393155_8987875999733465878_n

Arduino: TSOP2236 + IRLib + L298N (14-03-2016)

Po co bawić się silniczkami? Przecież zdalnie sterowaną zabawkę można kupić u Chińczyka za 10 zł – powie malkontent. TAK, to prawda. ALE:

  • konstruując samodzielnie mamy przy tym dużo zabawy,
  • tu chodzi nie tylko o zabawki na kółkach – równie dobrze można zdobyte umiejętności wykorzystać przy budowie własnego Inteligentnego Domu, gdzie możemy tego typu silniki zastosować do sterowanych pilotem rolet.

Ku pamięci: PWM ciągle szwankuje, zostawiamy to na potem…

L293-pwm

3 & 4                      SILNIK + i –
2                             ARDUINO #9
7                             ARDUINO #8
16                           ARDUINO 5V
4 & 5 GND, ARDUINO GND
8 4xAAA (bateria)
1                             ARDUINO   #10 (PWM)