Zajęcia nr 2 – 3 LEDy (7?) i bardzo szybki kurs programowania strukturalnego

Na naszych drugich zajęciach powiedzieliśmy sobie o:

  • czym są zmienne w programie?
  • ile pamięci (SRAM) zajmują zmienne? int = 2 bajty, float = 4 bajty
  • może zamiast deklarować zmienne, użyć #define – czyli słów kilka o preprocesorze
  • operator przypisania i niematematyczna konstrukcja a=a+10
  • skrócone operatory przypisania a+=10 (a także a-=10, a*=10, a/=2)
  • instrukcja warunkowa if 
  • grupowanie wielu instrukcji sterujących nawiasami sześciennymi { }
  • rozbudowana instrukcja warunkowa – if else
  • pętla for
  • tablice oraz operator [ ]
  • definiowanie wartości początkowych dla tablic – ponownie nawiasy sześcienne { } w innym kontekście!

Po tych zajęciach powinieneś znać:

  • orientować się w poruszanych zagadnieniach – dla mnie oczywistym jest, że nie sposób to opanować w 100% na naszych krótkim spotkaniu! tylko praktyka spowoduje, że zrozumiesz to, o czym była mowa (dlatego rozwiąż zadanie domowe)
  • podłączyć 3 (lub więcej) LEDów do Arduino i nimi sterować – nawet, jeśli masz problemy z pętlami (for) to jeszcze się tym nie przejmuj. Z czasem nabierzesz wprawy, o ile będziesz ćwiczyć

Praca domowa

Napisać program w Arduino, który steruje 7-mioma LEDami. Diody mają zapalać się od pierwszej do ostatniej, z odstępem 0.2s między kolejnymi włączeniami. Po zapaleniu wszystkich LEDów, gasimy je w odwrotnej kolejności – z tym samym odstępem czasu. Powodzenia! (Pamiętaj, że możesz mieć wirtualne Arduino u siebie w domu wchodząc na stronkę 123d.circuits.io i tam zapalać/gasić LEDy!)

Arduino: konwerter I2C dla wyświetlacza LCD HD44780 + microswitche ponownie (18-04-2016)

Po raz pierwszy na nasard_microsw_led2x16zym Kole pojawiła się kwestia komunikacji innej niż UART. Podłączyliśmy więc ekranik LCD za pomocą konwertera I2C. Dzięki temu zaoszczędzamy piny mikrokontrolera, które możemy zagospodarować inaczej.

Wróciliśmy też do mikroswiczy, z których budujemy zderzaki dla naszego pojazdu. Liczbę kliknięć (zderzeń) lewego i prawego czujnika (mikroswicza) wypisujemy na LCD w górnym, i dolnym wierszu. Za tydzień pojazd ruszy w swoją pierwszą, autonomiczną podróż ?

Arduino: TCRT5000 (11-04-2016)

TCRT5000 –  czujnik optyczny odbiciowy

Dioda z układutcrt5000s TCRT5000 emituje światło 950nm – niewidoczne dla ludzkiego oka, ale… nie dla kamery telefonu komórkowego ? Tutaj mamy dwa takie układy (patrz płytka stykowa na stole, obok Arduino), z których tylko jeden jest podłączony i działa. Który – to widać właśnie na ekranie telefonu komórkowego (kolor jasno-fioletowy na to wskazuje; kolor niebieski to dioda wyłączona – porównaj kolory diod na płytce stykowej).

Do czego ten układ? Detekcja linii, czujka zbliżeniowa… zobaczymy, jak my go wykorzystamy.

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 (21-03-2016)

TSOP2236 + IRLib + L298N

już jeździ!Dziś już bez problemu oprogramowaliśmy ruch do przodu, do tyłu i dwa typu zakręcania – w miejscu (koła naprzemiennie), oraz szeroki-łuk (jedno koło stop, drugie skręca).
Co pozostaje? Jeszcze 1) PWM , 2) omijanie przeszkód oraz 3) sztuczna inteligencja – w końcu do tego dążymy!

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)

Fi-BOT: Koło robotyków na Wydziale Fizyki UwB

Fi-BOT: Koło robotyków na Wydziale Fizyki UwB

Od 13.10.2015 rozpoczęło działalność Koło Robotyków „Fi-Bot”.
Zaproszeni są wszyscy studenci Wydziału Fizyki (niezależnie od roku i specjalności studiów). Zajęcia odbywają się w poniedziałki, godz. 16:00-17:30, sala 1064. Inne Wydziały nie mają takiego koła zainteresowań! Wykorzystaj tą szanę!

Rozpoczęliśmy od poznania platformy Arduino (ciągle kontynuujemy). W planach mamy programowanie Raspberry Pi. Jeśli więc pragniesz nauczyć się/podszkolić w programowaniu, poznać tajniki budowy prostych (ale bardzo efektownych!) układów elektronicznych – serdecznie zapraszam. Zdobyta wiedza przyda Ci się tworząc swoje własne projekty – pomysłowe gadżety elektroniczne, inteligentne domy, roboty… jesteś ograniczony jedynie swoją wyobraźnią! Zainwestuj w siebie i podejmij wysiłek nauki czegoś konkretnego a nie będziesz narzekać na swoje studia pracując na zmywaku w Anglii ?

Nie czekaj, zadbaj już o swoją przyszłość!
dr Krzysztof Gawryluk (tel. 85 738 81 98)

Historia spotkań w Semestrze ZIMOWYM 2015/2016:

wtorek 12-01-2016 (Arduino, Nokia 5110/3310
LCD5110_Graph.zip LCD5110_Graph.pdf
wtorek 22-12-2015 (Arduino, serwosilniczki
wtorek 15-12-2015 (Arduino, czujnik HC-SR04 – predkosciomierz!
wtorek 08-12-2015 (Arduino, czujnik HC-SR04
wtorek 01-12-2015 (Arduino, keypad 4×4 + LiquidCrystal.h)
wtorek 24-11-2015 (Arduino, LCD 16×2 + LiquidCrystal.h)
wtorek 17-11-2015 (Arduino, 1x silniczek + sterownik L293)
wtorek 10-11-2015 (Arduino, rejestr przesuwny 74HC595)
wtorek 03-11-2015 (Arduino, 7-digit display + tablice!)
wtorek 27-10-2015 (Arduino, PIR HC-SR501)
wtorek 20-10-2015 (Arduino, 8 diod)
wtorek 13-10-2015, godz. 12:15, kampus sala 1064 (Arduino, 1 dioda)