5. Занятие 5 - Умна касичка. Броене на пари

Въведение

Днес ще си направим касичка, която ни брои спестяванията. Ще се запознаем с концепцията за променливи, което ще ни позволи да програмираме робота да помни.

content picture

Конструиране

Днешният робот използва жиро-сензора за да измери размера на монетите.

Скрудж МакРобот - LEGO Mindstorms EV3 брояч на монети

Този робот бе създаден за да брои пари. Вратата за монети се плъзга и завърта жироскопичния сензор, което му позволява да измери размера на монетата, която е влязла в касата. Сменяйки отворите, на които се крепи гредата на жироскопичния сензор, се променят границите на сработване на сензора.

Важно: тази конструкция изисква лего-ластик.

Програмиране

Днес ще направим програма, която разпознава пуснатата монета. След това ще създадем умна касичка, която във всеки един момент знае сумата на спестяванията ни.

За целта ще импортираме готово собствено блокче, което да ни връща ъгъла засечен от жиро-сензора за всяка монета. След това диапазоните от ъгли ще бъдат превърнати в стойности на монети. За да създадем свое блокче, което връща стойността на засечена монета ще трябва за първи път да използваме променлива. Накрая за да проследим сумата на спестяванията си, робота завърта двигател на толкова градуса колкото стотинки са пуснати в касичката. Сензорът за завъртане на двигател ще бъде нашата механична памет и сумата от 5лв и 26ст ще отговаря на 526 градуса натрупани в периода от няколко минути или няколко дни!

Засичане на максимален ъгъл

Това блокче чака светлинният сензор да засече някой цвят и връща максималният ъгъл засечен от жироскопичния сензор през това време. Предназначен е да работи с Скрудж МакРобот.

В днешното занятие отбягвайте използването на блокчета за повторение, освен ако задачата изрично не ви каже да го използвате!

Какво е променлива

Променливите са малки кутийки в компютъра, които пазят важната за нас информация. Представете си следната ситуация: вие притежавате бар, който предлага най-добрата лимонада в града. Лимонадата се съхранява във варел, през който никой не може да види колко лимонада има в него. Важно е винаги да имате прясна лимонада. Ако лимонадата свърши преди следващата доставка, няма да имате лимонада и клиентите ви ще бъдат недоволни. Ако поръчате лимонада прекалено рано, рискувате да ви остане непродадена лимонада и да се развали. Решението на проблема е да вземете листче хартия, което ще бъде вашата променлива и да напишете на него количеството лимонада, което имате. Когато някой клиент поръча лимонада, премахвате поръчаното количество лимонада от количеството лимонада, което сте си записали и пишете на хартията новото оставащо количество лимонада. Повтаряте този процес, докато продадете почти цялата лимонада и тогава поръчвате нов варел.

Както споменахме в горната ситуация, листчето хартия е променлива. То пази важна за нас информация тоест количеството лимонада във варела. Ако трябва да автоматизираме този процес, то трябва да програмираме робота да прочете числото на листчето (в променливата), да извади продаденото количество лимонада от него и да запише новата стойност на листчето (в променливата). Ние не знаем колко лимонада ще се продаде, но количеството лимонада няма значение. Процеса се повтаря докато лимонадата не намалее достатъчно.

Създаване на променливи

Първата стъпка към създаването на променлива е поставянето на блокче за променлива от червената палитра. Добра практика е да създавате променливите си в началото на програмата.

Име на Променлива

След това трябва да ѝ дадем име. По-нататък в програмата ще може да четем информацията от тази променлива като я извикаме по име. В началото може да сте изкушени да ги кръщавате "a", "var1" или "asdf" но в бъдеще когато създавате по-сложни програми ще ви бъде трудно да помните имената на вся променлива която създавате. Особено когато посетите отново кодът си след дълго време. За това трябва да кръщаваме променливите си с имена, които ни подсказват каква информация пазят в себе си. Така хората, които седнат да четат кодът ви ще могат да го разберат по-лесно.

За да дадете име на променливата си, натиснете на бялото квадратче в горният десен ъгъл на блокчето за променливи и изберете "Add variable":

После въведете името, което сте си избрали и изберете "Ok".

Последната стъпка в създаването на променлива е задаването на началната ѝ стойност. В примера показан горе, променливата "count" започва със стойност 0.

Инициализиране на променлива

Инициализирането на променлива означава задаване на начална стойност.

Инициализирането на променлива става чрез въвеждането на блокчето за променливи от червената палитра:

content picture

Всяка променлива трябва да има име, с което да се различава. Когато искате да промените някоя променлива, ще трябва да я извикате по име и за това е хубаво да им давате имена, които ви подсказват каква информация пазят. Също така трябва да имат начална стойност, с която да започнат.

На примера е демонстрирано инициализирането на променлива на име "count" с начална стойност 15:

 

Четене и писане на променлива

Щом сте създали променлива, ще трябва да я четете и презаписвате. За това блокчето за променливи има 2 опции в падащото си меню. Ако желаете да създадете или да промените вече създадена променлива използвате "Write", което се превежда "Писане". 

content picture

Ако желаете да проверите и използвате информацията, която пази променливата, използвайте "Read",което се превежда "Четене".

content picture

Задачи по приключване на урока.

  1. Направете снимки и клипове на роботите
  2. Разглобете и подредете робота
  3. Подредете работното си място
    • Важно е да подредите електрониката на роботите върху капака на кутията.
    • Навийте кабела за програмиране, така че да е събран.
    • Поставете кабелите за робота до електрониката.
    • Навийте кабела на мишката около мишката.
    • Навийте кабела на зарядното на лаптопа така, както преподавателят ви ще ви покаже.
    • Когато изключите компютъра, оставете го до кутията по роботика.
  4. Изключете всички програми на компютъра
  5. Излезте от FLLCasts
  6. Изключете компютъра
  7. Приберете столовете си под масата