Грус - LEGO SPIKE Prime робот кран
Грус, от латински, означава Кран.
Кранът използва един мотор, за да завърти ръката, и един мотор, за да държи топката. Първо трябва да балансирате стрелата? Какво можете да добавите към нея?
- #4178
- 25 Jan 2026
Грус, от латински, означава Кран.
Кранът използва един мотор, за да завърти ръката, и един мотор, за да държи топката. Първо трябва да балансирате стрелата? Какво можете да добавите към нея?
Леви произлиза от левитама, което на естонски означава „разпределям“.
Този робот използва цветен сензор, за да открие цвета на пластмасова топка. След това, според цвета на топката, роботът я сортира на правилната страна.
Пага идва от известния цигулар Николо Паганини.
Роботът е направен да прилича на цигулка. Той пуска по-висок тон колкото по-бързо се движи мотора. Да видим дали ще се справите да свирите на него!
Хромаграф е игра на думи с оригиналното име на грамофона "Фонограф", от Гръцки фоно - звук, граф - писане и хрома - цвят.
Роботът работи подобно на грамофон. Има въртящ се "диск" с цветни тухли които се четат от сензора за цвят. Роботът възпроизвежда звук спрямо цвета, който вижда сензора. Можете ли да направите мелодия?
Симфо е кръстен на Симфониум, първата компания, която произвежда музикални кутии.
Роботът използва цветен сензор, за да засече дали кутията е затворена. Когато засече, че е отворена, робота пуска музика и върти мотора вътре. Можете да построите каквото пожелаете върху него!
Карлос, кръстен на Мексиканския китарист Карлос Аугусто Алвес Сантана.
Роботът използва сензора за разстояние, за да определи честотата на звука и сензора за сила, за да пусне звука. Да видим дали ще изпилиш солото на него!
Мело идва от името на известния диджей "Marshmello".
Този робот работи като половин диджей сет. Той забързва или забавя мелодия спрямо завъртането на мотора. Можете ли да направите як ремикс на него?
This is a program we created for the LED strip display course.
#include <Adafruit_NeoPixel.h> #define LED_COUNT 20 #define StripPin A2 #define HallEffectSensorPin 6 #define HallEffectGNDPin 5 #define HallEffectVCCPin 4 int startSeconds = 20; int startMinutes = 10; int startHours = 1; int secondsArrow; int minutesArrow; int hoursArrow; int arrowPosition; int hallSensorPastState = LOW; int hallSensorRead; int timeForOneRotation = 1; unsigned long RPMTimer = millis(); Adafruit_NeoPixel leds = Adafruit_NeoPixel(LED_COUNT, StripPin, NEO_GRB + NEO_KHZ800); int color[3] = {255, 100, 150}; int secondsColor[3] = {255, 0, 0}; int minutesColor[3] = {0, 255, 0}; int hoursColor[3] = {0, 0, 255}; void setup(){ pinMode(HallEffectSensorPin, INPUT); pinMode(HallEffectGNDPin, OUTPUT); pinMode(HallEffectVCCPin, OUTPUT); digitalWrite(5, LOW); digitalWrite(HallEffectVCCPin, HIGH); leds.begin(); leds.setPixelColor(19, color[0], Color[1], color[2]); } void loop(){ RPMUpdate(); ClearLedsWithoutTheLastOne(); arrowPosition = StateFrom60(); secondsArrow = ((int) floor(( millis() / 1000) + startSeconds) % 60); minutesArrow = ((int) floor(( millis() / 60000) + startMinutes) % 60); hoursArrow = ((int) floor(( millis() / 3600000) + startHours) % 12) * 5; if (arrowPosition == secondsArrow){ for (int i = 0; i < LED_COUNT - 3; i ++){ leds.setPixelColor(i, secondsColor[0], secondsColor[1], secondsColor[2]); } } if (arrowPosition == minutesArrow){ for (int i = 0; i < LED_COUNT - 6; i ++){ leds.setPixelColor(i, minutesColor[0], minutesColor[1], minutesColor[2]); } } if (arrowPosition == hoursArrow){ for (int i = 0; i < LED_COUNT - 10; i ++){ leds.setPixelColor(i, hoursColor[0], hoursColor[1], hoursColor[2]); } } if (arrowPosition % 5 == 0){ leds.setPixelColor(18, color[0], color[1], color[2]); leds.setPixelColor(17, color[0], color[1], color[2]); } leds.show(); } void RPMUpdate(){ hallSensorRead = digitalRead(HallEffectSensorPin); if(hallSensorRead != hallSensorPastState){ if(hallSensorRead == HIGH){ timeForOneRotation = millis() - RPMTimer; RPMTimer = millis(); hallSensorPastState = HIGH; } else{ hallSensorPastState = LOW; } } } void ClearLedsWithoutTheLastOne(){ for(int i = 0; i < LED_COUNT - 1; i ++){leds.setPixelColor(i, 0);} } int StateFrom60(){ return (int)floor(((millis() - RPMTimer) * 60) / timeForOneRotation) % 60; }