Блоктину е уеб-базираната платформа за блоково програмиране на Тинузавър за създаване на програми, които да ползваме с микроконтролерните ни платки или с други подобни базирани на микроконтролера ATtiny85 на формата Microchip.
Знаете ли, че Блоктину може да се използва за създаване програми не само с помощта на блокчета, като за абсолютно начинаещи, но и за писане на код на езика за програмиране C?
Как става това?
В текущата версия на Блоктину (от февруари 2023 г.) в главната лента най-отгоре има бутон Projects, който води към екран с двата проекта по които можем да работим. Единият е с блокчета, а другият – на езика C.
Нека отворим този, който е на C.
В него първоначало няма никакъв код. Тук на помощ може да ни дойде блоковото програмиране затова нека се върнем към блоковия проект и използвайки Shield EDUx3IO за да направим елементарна програма за бутон и светодиод.
Сега е момента да обясним …
Как работи Блоктину.
Когато редим блокчета на екрана, платформата всъщност създава вместо нас код на езика C. Блоктину ни дава възможност и да надникнем в кода, който е генериран. Това става със стрелката най-вдясно на екрана.
Генерирания C код от блоковия проект можем да копираме в този на C и по същия начин на използваме бутона Build за компилиране и качване на програмата.
Използване на библиотеки
Ако искаме да направим на езика C нещо по-сложно, например четене на стойности от фоторезистора, ще трябва да използваме т.нар. софтуерни библиотеки.
Тук отново може да прибегнем към помощта на блоковото програмиране, като добавим променлива x и ѝ присвоим стойността на фоторезистора.
Веднага забелязваме, че в C кода на блоковата програма настъпиха няколко съществени промени.
- Добавен е нов ред в началото на кода:
#include „tinyavrlib/adcxlib.h“ - Създадена е помощна функция shield_edux3io_photores().
- В секцията Initialization на кода са добавени нови редове.
Този код също може да бъде копиран в проекта на C.
Важен въпрос в този момент е как работят библиотеките на езика C?
Те се състоят от два файла – name_of_the_library.h и name_of_the_library.c, като в конкретния случай това са:
- tinyavrlib/adcxlib.h – заглавен файл.
- tinyavrlib/adcxlib.c
Файла “adcxlib.h” съдържа описание на библиотеката и функциите, които тя имплементира, докато “adcxlib.c” съдържа самия код на тези функции.
Библиотеката ADCxLib (част от проекта TinyAVRLib) ни помага да работим по-лесно с т.нар. аналогово-цифрови преобразователи (или ADC – analog-digital convertor) в микроконтролера ATtiny85.
Това, което Блоктину прави в случая, и което е много удобно за нас, е че за библиотеките, които са инсталирани в него, знае за кои .h файлове кой .c файлове да включи в проекта.
Друго предимство е, че не ни се налага да инсталираме на компютъра си сложни и големи софтуерни пакети, за да програмираме на C. Това е така защото компилирането на C кода ни се извършва на сървърите на Блоктину, където тези софтуерни пакети са вече инсталирани.
Блоково или с код на C?
С Блоктину може да създаваме програми както с блокчета така и на езика C. Кое да изберем зависи от това какво искаме да постигнем, колко сме напреднали в програмирането и колко добре познаваме езика за програмиране C.
Създаването на програми с използване на език за програмиране като C дава по-големи възможности, но изисква и много по задълбочени познания както на езика така и на хардуерната платформа.
Блоктину дава възможност за избор между двете в зависимост от сложността на проблема, който решаваме и задачата, която решаваме.