fbpx

👉 За проекта STEM на МОН създадохме специализиран уебсайт STEM.Tinusaur.BG

Нови възможности в Блоктину при писане на код на езика за програмиране C

Блоктину е уеб-базираната платформа за блоково програмиране на Тинузавър за създаване на програми, които да ползваме с микроконтролерните ни платки или с други подобни базирани на микроконтролера ATtiny85 на формата Microchip.

Знаете ли, че Блоктину може да се използва за създаване програми не само с помощта на блокчета, като за абсолютно начинаещи, но и за писане на код на езика за програмиране C?

Как става това?

В текущата версия на Блоктину (от февруари 2023 г.) в главната лента най-отгоре има бутон Projects, който води към екран с двата проекта по които можем да работим. Единият е с блокчета, а другият – на езика C.

Блоктину програмиране с блокчета или на не езика C

Нека отворим този, който е на C.

Блоктину програмиране с блокчета или на не езика C

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

Блоктину програмиране с блокчета или на не езика C

Сега е момента да обясним …

Как работи Блоктину.

Когато редим блокчета на екрана, платформата всъщност създава вместо нас код на езика C. Блоктину ни дава възможност и да надникнем в кода, който е генериран. Това става със стрелката най-вдясно на екрана.

Блоктину програмиране с блокчета или на не езика C

Генерирания C код от блоковия проект можем да копираме в този на C и по същия начин на използваме бутона Build за компилиране и качване на програмата.

Блоктину програмиране с блокчета или на не езика C

Използване на библиотеки

Ако искаме да направим на езика C нещо по-сложно, например четене на стойности от фоторезистора, ще трябва да използваме т.нар. софтуерни библиотеки.

Тук отново може да прибегнем към помощта на блоковото програмиране, като добавим променлива x и ѝ присвоим стойността на фоторезистора.

Блоктину програмиране с блокчета или на не езика C

Веднага забелязваме, че в C кода на блоковата програма настъпиха няколко съществени промени.

  1. Добавен е нов ред в началото на кода:
    #include „tinyavrlib/adcxlib.h“
  2. Създадена е помощна функция shield_edux3io_photores().
  3. В секцията Initialization на кода са добавени нови редове.

Този код също може да бъде копиран в проекта на C.

Блоктину програмиране с блокчета или на не езика C

Важен въпрос в този момент е как работят библиотеките на езика C?

Те се състоят от два файла – name_of_the_library.h и name_of_the_library.c, като в конкретния случай това са:

Файла “adcxlib.h” съдържа описание на библиотеката и функциите, които тя имплементира, докато “adcxlib.c” съдържа самия код на тези функции.

Библиотеката ADCxLib (част от проекта TinyAVRLib) ни помага да работим по-лесно с т.нар. аналогово-цифрови преобразователи (или ADC – analog-digital convertor) в микроконтролера ATtiny85.

Това, което Блоктину прави в случая, и което е много удобно за нас, е че за библиотеките, които са инсталирани в него, знае за кои .h файлове кой .c файлове да включи в проекта.

Друго предимство е, че не ни се налага да инсталираме на компютъра си сложни и големи софтуерни пакети, за да програмираме на C. Това е така защото компилирането на C кода ни се извършва на сървърите на Блоктину, където тези софтуерни пакети са вече инсталирани.

Блоково или с код на C?

С Блоктину може да създаваме програми както с блокчета така и на езика C. Кое да изберем зависи от това какво искаме да постигнем, колко сме напреднали в програмирането и колко добре познаваме езика за програмиране C.

Нов комплект-проект за слънчева зарядна станция Solar Charging Pod

Създаването на програми с използване на език за програмиране като C дава по-големи възможности, но изисква и много по задълбочени познания както на езика така и на хардуерната платформа.

Блоктину дава възможност за избор между двете в зависимост от сложността на проблема, който решаваме и задачата, която решаваме.

Вашият коментар

Добавено в картата
0 продукта - 0.00лв.