Miesięczne archiwum: Maj 2019

Kurs: Podstawy robotyki – Czujnik dotyku – Programowanie Scratch

W tym artykule wykonamy podstawowe warsztatowe ćwiczenia w programowaniu czujnika dotyku.

Do ich wykonania będziemy potrzebowali: sterownik (jednostka sterująca), czujnik dotyku, jeden silnik, przewody do podłączenia czujnika dotyku i silnika a także aplikację Scratch, bądź program dedykowany dla konkretnego modelu robota (w tym zadaniu program oparty na języku Scratch).

W opracowaniu tego artykułu wykorzystaliśmy materiały przygotowane przez nas dla robotów modularnych i dostosowane w formie kursu robotyki do serii robotów Abilix Krypton.
W poszczególnych robotach tłumaczenia nazw i kolory poszczególnych bloków mogą się różnić. Zasada działania i programowania w języku Scratch pozostaje jednak podobna. 

  1. Przygotuj:

  • blok motoru (małego, bądź dużego)
  • czujnik dotyku
  • przewody połączeniowe
  • sterownik
  1. Podłącz za pomocą przewodów:

  • motor do portu A w sterowniku
  • Czujnik dotyku do portu 1 w sterowniku
  1. Uruchom sterownik
  2. Połącz komputer / tablet ze sterownikiem
  3. Uruchom aplikację (Scratch) by wykonać przykładowe zadanie.

Przykładowe zadanie: (Krypton 0, 2)

W momencie uruchomienia programu silnik pracuje z maksymalną prędkością w lewą stronę. Po wciśnięciu czujnika dotyku silnik obraca się z maksymalną prędkością w prawą stronę.

Level up:

W momencie uruchomienia programu silnik porusza się z prędkością 20%Vmax w lewo. Po wciśnięciu czujnika dotyku zmienia prędkość do 50% Vmax. Po kolejnym wciśnięciu czujnika silnik pracuje z prędkością 100% Vmax a następnie po 5 sekundach program jest wyłączany.


Rozwiązanie:

  1. Uruchom program (Programowanie) i podłącz sterownik.
  2. Przeczytaj raz jeszcze zadanie, wypisz najważniejsze założenia programu:
„W momencie uruchomienia programu silnik pracuje z maksymalną prędkością w lewą stronę. Po wciśnięciu czujnika dotyku silnik obraca się z maksymalną prędkością w prawą stronę.”

  1. Z zakładki Czynności wybierz polecenie „Włącz mały silnik Port <A> Prędkość <100>
    i umieść go pod niebieskim blokiem „Główny
Chcemy by silnik pracował bez zmian aż do czasu wciśnięcia czujnika.  Wykorzystamy więc blok kontroli, który przekaże instrukcję, aby program czekał do wykonania następnego polecenia do czasu aż wydarzy się sytuacja, którą za moment zaprogramujemy (o tym, czy sytuacja się wydarzyła poinformuje sterownik właśnie blok kontroli).

4. Z czerwonej zakładki Kontrola wybieramy blok „Czekaj do <…>” i umieszczamy go pod ustawionym wcześniej blokiem „Włącz mały silnik Port <A> Prędkość <100>”.

5. Z żółtej zakładki Czujniki wybieramy blok „Port kolizji <automatycznie> uderz w obiekt” (czujnik dotyku jest wciśnięty) i zagnieżdżamy go wewnątrz bloku „Czekaj do <…>”, w specjalnie przygotowanym polu.

Jesteśmy na etapie pisania fragmentu programu – instrukcji mówiącej  o tym, co wydarzy się po wciśnięciu czujnika. Chcemy by silnik pracował teraz z prędkością 100% w przeciwnym kierunku.

6. Nasz czujnik jest podłączony do portu nr 1, warto zmienić parametr Automatycznie na port 1.

  1. Z zakładki Czynności wybierz blok „Włącz motor mały Port <A> Prędkość <100>” i umieść go pod blokiem kontroli, który przed chwilą został przez nas utworzony. Prędkości tego bloku na <-100>.
  2. Uruchom program.

 

Kurs: Podstawy robotyki – Czujnik dotyku

W opracowaniu tego artykułu wykorzystaliśmy materiały przygotowane przez nas dla robotów modularnych i dostosowane w formie kursu robotyki do serii robotów Abilix Krypton.
W poszczególnych robotach tłumaczenia nazw i kolory poszczególnych bloków mogą się różnić. Zasada działania i programowania w języku Scratch pozostaje jednak podobna. 

W tej części naszego kursu zajmiemy się sczytywaniem informacji z czujnika dotyku i jego programowaniem. Zanim jednak przejdziemy do tego punktu, zastanówmy się jak ten czujnik działa.

Człowiek – czujnik dotyku w ludzkim ciele?

Aby zobrazować jego działanie, dobrze jest w ramach wprowadzenia zastanowić się nad jedną kwestią: Wiemy, że nasze ciało odczuwa każdy dotyk. Gdzie zatem my mamy czujnik dotyku?

Oczywiście, całe nasze ciało jest czujnikiem dotyku. Odczuwamy dotknięcie przedmiotu
(i przedmiotem) nie tylko za pomocą naszych dłoni, czy nóg ale też np. pleców, szyi czy nawet nosa. Dzieje się tak, ponieważ nasze ciało jest silnie unerwione i każdy impuls ze skóry człowieka jest przekazywany do naszego procesora—mózgu. Informacja o dotknięciu przedmiotu przechodzi od miejsca którym dotykamy rzecz (np. palca) aż do naszego głównego procesora. Przejście informacji o dotknięciu odbywa się za pomocą naszego systemu nerwowego—układu  przewodów, które wysyłają sygnały do naszego mózgu. Ten analizuje zebrane informacje i ocenia, czy powinien reagować (i w jaki sposób), czy też nie, np. jesteśmy świadomi tego, że nosimy ubrania – ich dotyk jest delikatny—nie chcemy natomiast w tej sytuacji reagować.)

Robot – jak działa czujnik dotyku?

Wewnątrz czujnika dotyku znajduje się obwód elektryczny,  który za pomocą przewodów jest podłączony do sterownika. Ten wysyła sygnał w postaci cyfrowego impulsu elektrycznego. W momencie kiedy czujnik jest w stanie swobodnym (nie jest wciśnięty) obwód elektryczny jest otwarty i sygnał nie wraca z powrotem do sterownika. Sterownik otrzymuje więc informację zwrotną, że obwód elektryczny jest otwarty i czujnik nie oddaje sygnału do sterownika. Innymi słowy—wartość sygnału, którą czujnik zwraca do sterownika jest równa 0.

Obwód czujnika dotyku (zderzenia) jest zamykany w momencie wciśnięcia analogowego czerwonego przycisku. Sygnał wysyłany przez sterownik przechodzi wtedy przez zamknięty obwód a sterownik otrzymuje informację, że sygnał cyfrowy, który został  nadany wrócił. Wartość zwrócona przy takim układzie zamkniętym nazywana jest stanem wysokim i określona wartością 1.

Tę samą zasadę przekazywania impulsu elektrycznego przez układ wykorzystuje się także np. w testerach żarówek. Do testera cyfrowego podpinane są dwa przewody, które podłącza się do obwodu żarówki. Jeżeli nie jest spalona, obwód jest zamknięty i sygnał wraca do testera. Również elektrycy sprawdzają przejścia sygnału elektrycznego w przewodach w budynkach mieszkalnych w podobny sposób.

Praktyczne wykorzystanie czujników dotyku

  • Uruchomienie i wyłączenie programu za pomocą czujnika to jedno z najpopularniejszych zastosowań użycia czujnika dotyku. Wykorzystywane jest we wszelkiego rodzaju urządzeniach domowych sterowanych cyfrowo za pomocą wbudowanych programów.
  • Czujniki dotyku można znaleźć m.in. w samochodach—są odpowiedzialne za uruchomienie poduszek powietrznych, przesyłają informację o tym czy ktoś siedzi na miejscu kierowcy / pasażera. Czujniki te wykorzystywane są też m.in. w komputerach, urządzeniach elektronicznych, telefonach (włącznik i przycisk głośności).
  • Czujnikiem dotyku jest też touchscreen—jego zasada działania jest jednak inna—jest to czujnik pojemnościowy.
  • Czujniki dotyku wbudowane m.in. w klawiaturę elektrycznych instrumentów muzycznych (np. pianino elektryczne) potrafią przekazać nie tylko informację o zamknięciu danego obwodu (wciśnięciu klawisza) ale też potrafią zmierzyć siłę z jaką dany czujnik został naciśnięty. Dzięki temu możliwa jest praca np., klawiatury dynamicznej—im mocniej klawisz zostanie uderzony, tym mocniejszy będzie dźwięk.
  • Czujnik dotyku wykorzystywany może być również jako guzik służący do chwilowego przerwania danego programu, celem włączenia innego na krótki okres czasu. Na tej zasadzie działają na przykład wszystkie urządzenia AGD z opcją „Turbo”, m.in.. Blendery, miksery a także suszarki elektryczne.

Programowanie w Scratch

Schemat programowania czujnika dotyku w Scratch jest bardzo podobny dla każdego robota.Blok odpowiedzialny za odczyt wartości czujnika dotyku znajduje się w zakładce „Czujniki”. Blok czujnika nie jest blokiem samodzielnym, jest tzw. parametrem który należy umieścić wewnątrz innego bloku analizującego jego wartość i kontrolującego dalsze działanie programu w zależności od wskazań czujnika. Bloki te można znaleźć w zakładce „Kontrola”.

Przykłady wykorzystania czujnika dotyku zagnieżdżonych w blokach kontroli z wyjaśnieniem ich działania w programie Android Krypton Scratch.

Program zatrzyma się w tym miejscu i będzie oczekiwał na sygnał z czujnika dotyku (jest wciśnięty) by przejść do wykonywania dalszej części programu

Program będzie powtarzał algorytm zapisany wewnątrz bloku „Powtarzaj do” do czasu aż czujnik dotyku zostanie uderzony (wciśnięty).

Jeżeli czujnik dotyku będzie wciśnięty program wykona algorytm zapisany wewnątrz bloku. W przeciwnym razie program przejdzie dalej do wykonywania kolejnej części programu.

Jeżeli czujnik dotyku będzie wciśnięty program wykona algorytm wewnątrz bloku bezpośrednio pod warunkiem. W przeciwnym razie program wykona algorytm znajdujący się w drugim wierszu („inny”) tego bloku i dopiero potem przejdzie dalej do wykonywania kolejnej części programu.

Jesteśmy autorami tekstu, zdjęć i grafik w tym artykule. Kopiowanie materiału w celach komercyjnych bez zgody i wiedzy właściciela jest zabronione.