This media is not supported in your browser
VIEW IN TELEGRAM
🤖 Adeept Tank поехал. Часть 3 — манипулятор и движение
Робот собран, запущен и слушается команд. Сегодня разбираем, как устроена рука и как заставить его ехать.
🦾 Манипулятор: 4 сервопривода на одной микросхеме
Все серво висят на плате PCA9685 (адрес 0x5f на шине I2C). У каждого сустава свой канал:
0 — плечо, поднимает всю руку
1 — локоть, сгибает посередине
2 — запястье, поворот кисти
3 — захват, клешня
4 — наклон камеры
⚙️ Как задаётся угол
Серво управляется не напряжением, а шириной импульса при частоте 50 Гц:
500 мкс → 0°
1450 мкс → 90° (центр)
2400 мкс → 180°
Нейтральные положения прописаны в переменных init_pwm0…7 — при старте робот разгоняет туда все серво.
🚗 Движение
Гусеницы крутят два мотора — M1 и M2.
📹 Камера и веб-управление
Софт Adeept стартует автоматически при включении. Веб-интерфейс на порту 5000: живое видео с камеры, кнопки движения и манипулятора, телеметрия.
#robotics
Робот собран, запущен и слушается команд. Сегодня разбираем, как устроена рука и как заставить его ехать.
🦾 Манипулятор: 4 сервопривода на одной микросхеме
Все серво висят на плате PCA9685 (адрес 0x5f на шине I2C). У каждого сустава свой канал:
0 — плечо, поднимает всю руку
1 — локоть, сгибает посередине
2 — запястье, поворот кисти
3 — захват, клешня
4 — наклон камеры
⚙️ Как задаётся угол
Серво управляется не напряжением, а шириной импульса при частоте 50 Гц:
500 мкс → 0°
1450 мкс → 90° (центр)
2400 мкс → 180°
Нейтральные положения прописаны в переменных init_pwm0…7 — при старте робот разгоняет туда все серво.
🚗 Движение
Гусеницы крутят два мотора — M1 и M2.
📹 Камера и веб-управление
Софт Adeept стартует автоматически при включении. Веб-интерфейс на порту 5000: живое видео с камеры, кнопки движения и манипулятора, телеметрия.
#robotics
1❤33👍32🔥16👏4😍2💯2🥰1
🚗 Два мотора, которые работают наоборот
У моего робота два типа двигателей, и они устроены по противоположным принципам. Пока разбиралась — залипла. Рассказываю.
Почему гусеницы, а не колёса
Гусеница распределяет вес по всей своей длине, а не по четырём точкам. Отсюда:
— переезжает пороги
— разворачивается на месте
Как танк поворачивает без руля
У робота нет рулевого механизма вообще. Поворот делается разницей скоростей двух гусениц:
Обе вперёд → едет прямо
Левая вперёд, правая назад → крутится на месте вокруг своей оси
Левая быстрее правой → плавная дуга
Два мотора — две философии
🔵 DC-мотор с редуктором (крутит гусеницы)
Вращается бесконечно. Управляешь скоростью и направлением.
🟢 Сервопривод (двигает руку)
Крутится только в диапазоне 0–180°. Управляешь углом, а не скоростью.
Самое красивое: командует ими один чип
И моторами, и сервоприводами рулит один PCA9685 — через ШИМ, импульсами. Но смысл импульса разный:
для серво ширина импульса = угол
для мотора ширина импульса = скорость
#robotics
У моего робота два типа двигателей, и они устроены по противоположным принципам. Пока разбиралась — залипла. Рассказываю.
Почему гусеницы, а не колёса
Гусеница распределяет вес по всей своей длине, а не по четырём точкам. Отсюда:
— переезжает пороги
— разворачивается на месте
Как танк поворачивает без руля
У робота нет рулевого механизма вообще. Поворот делается разницей скоростей двух гусениц:
Обе вперёд → едет прямо
Левая вперёд, правая назад → крутится на месте вокруг своей оси
Левая быстрее правой → плавная дуга
Два мотора — две философии
🔵 DC-мотор с редуктором (крутит гусеницы)
Вращается бесконечно. Управляешь скоростью и направлением.
🟢 Сервопривод (двигает руку)
Крутится только в диапазоне 0–180°. Управляешь углом, а не скоростью.
Самое красивое: командует ими один чип
И моторами, и сервоприводами рулит один PCA9685 — через ШИМ, импульсами. Но смысл импульса разный:
для серво ширина импульса = угол
для мотора ширина импульса = скорость
#robotics
❤25🤝21🔥20🥰5👌5👀5👍1
«Школа 21» переходит с C на Python и AI
Побывала на дне открытых дверей «Школы 21».
В этом году стартовую программу обновляют: вместо привычного входа через C участники начнут с Python и будут использовать AI-инструменты уже во время «бассейна».
За 12 дней нужно освоить основы, поработать в команде и собрать цифровой продукт. Лекций по-прежнему нет: обучение строится на практике и peer-to-peer.
Главное изменение — AI становится не подсказкой, а полноценным рабочим инструментом разработчика.
@school21sber @sberbank
#Школа21 #Сбер #Python #AI #Программирование #ITобразование
Побывала на дне открытых дверей «Школы 21».
В этом году стартовую программу обновляют: вместо привычного входа через C участники начнут с Python и будут использовать AI-инструменты уже во время «бассейна».
За 12 дней нужно освоить основы, поработать в команде и собрать цифровой продукт. Лекций по-прежнему нет: обучение строится на практике и peer-to-peer.
Главное изменение — AI становится не подсказкой, а полноценным рабочим инструментом разработчика.
@school21sber @sberbank
#Школа21 #Сбер #Python #AI #Программирование #ITобразование
1🔥14👍13👏10❤9
🧠 Локальный ИИ в 2026: что запускать на своём компьютере
Свой AI-ассистент без облака, подписок и слежки — реально уже сегодня. Из чего он состоит и что брать под вашу видеокарту.
Локальный ассистент = 3 части:
🔧 Движок — запускает модель (сам файл модели не работает, как mp3 без плеера)
🧠 Модель — отвечает, анализирует, пишет код
🖐 Агент — даёт модели доступ к файлам, IDE и терминалу
⚙️ Движки
• Ollama — простой старт, локальный API для агентов
• LM Studio — запуск моделей через GUI
• llama.cpp — полный контроль над памятью
• vLLM — серверный inference для команд
🤖 Модели по видеопамяти
6–8 ГБ → Qwen3 4B / 8B — чат, тексты, простой код
12–16 ГБ → Qwen3 14B (универсал), DeepSeek-R1-Distill-14B (reasoning)
24 ГБ → Qwen3-Coder-30B-A3B (код), Qwen3.6-27B (универсал)
32 ГБ+ → Qwen3.6-35B-A3B; крупные DeepSeek V3/V4, Llama 4 — уже серверные
🔌 Через что работать
• Cline — coding-агент в VS Code
• OpenCode — агент для терминала и IDE
• Aider — правки через Git и diff
• Open WebUI — локальный чат в стиле ChatGPT
🚀 Готовые связки
• Ноут/слабая GPU → Ollama + Qwen3 4B/8B
• 12–16 ГБ → Ollama + Qwen3 14B + Open WebUI
• Код на 24 ГБ → Ollama + Qwen3-Coder-30B-A3B + Cline
• Универсал на 24 ГБ → Ollama + Qwen3.6-27B + Open WebUI
💡 Главное правило:
берите не самую «умную» модель, а самую большую, что влезает в видеокарту целиком. Что свисает на CPU — тормозит адски. И помните: размер файла ≠ потребление VRAM (память ест ещё контекст и KV-cache).
3 козыря локали: 🔒 данные не уходят на сторону · ✈️ офлайн · 💸 ноль подписок
💸 Нет мощной GPU? Арендуй по часам
Тот же стек можно гонять на арендованной карте. Бюджетный вариант — Vast.ai: для Qwen3-Coder 30B ищите инстанс с RTX 3090/4090/5090 или проф-картой 24+ ГБ. ⚠️ Это уже не локальный запуск — модель на чужом сервере. Не грузите приватные документы, ключи и закрытый код без шифрования и проверки хоста.
🔗 https://cloud.vast.ai/?ref_id=626108
Подробнее в статье на vc.ru
#AI #нейросети #ollama #localllm #разработка #технологии
Свой AI-ассистент без облака, подписок и слежки — реально уже сегодня. Из чего он состоит и что брать под вашу видеокарту.
Локальный ассистент = 3 части:
🔧 Движок — запускает модель (сам файл модели не работает, как mp3 без плеера)
🧠 Модель — отвечает, анализирует, пишет код
🖐 Агент — даёт модели доступ к файлам, IDE и терминалу
⚙️ Движки
• Ollama — простой старт, локальный API для агентов
• LM Studio — запуск моделей через GUI
• llama.cpp — полный контроль над памятью
• vLLM — серверный inference для команд
🤖 Модели по видеопамяти
6–8 ГБ → Qwen3 4B / 8B — чат, тексты, простой код
12–16 ГБ → Qwen3 14B (универсал), DeepSeek-R1-Distill-14B (reasoning)
24 ГБ → Qwen3-Coder-30B-A3B (код), Qwen3.6-27B (универсал)
32 ГБ+ → Qwen3.6-35B-A3B; крупные DeepSeek V3/V4, Llama 4 — уже серверные
🔌 Через что работать
• Cline — coding-агент в VS Code
• OpenCode — агент для терминала и IDE
• Aider — правки через Git и diff
• Open WebUI — локальный чат в стиле ChatGPT
🚀 Готовые связки
• Ноут/слабая GPU → Ollama + Qwen3 4B/8B
• 12–16 ГБ → Ollama + Qwen3 14B + Open WebUI
• Код на 24 ГБ → Ollama + Qwen3-Coder-30B-A3B + Cline
• Универсал на 24 ГБ → Ollama + Qwen3.6-27B + Open WebUI
💡 Главное правило:
берите не самую «умную» модель, а самую большую, что влезает в видеокарту целиком. Что свисает на CPU — тормозит адски. И помните: размер файла ≠ потребление VRAM (память ест ещё контекст и KV-cache).
3 козыря локали: 🔒 данные не уходят на сторону · ✈️ офлайн · 💸 ноль подписок
💸 Нет мощной GPU? Арендуй по часам
Тот же стек можно гонять на арендованной карте. Бюджетный вариант — Vast.ai: для Qwen3-Coder 30B ищите инстанс с RTX 3090/4090/5090 или проф-картой 24+ ГБ. ⚠️ Это уже не локальный запуск — модель на чужом сервере. Не грузите приватные документы, ключи и закрытый код без шифрования и проверки хоста.
🔗 https://cloud.vast.ai/?ref_id=626108
Подробнее в статье на vc.ru
#AI #нейросети #ollama #localllm #разработка #технологии
Ollama
Ollama is the easiest way to automate your work using open models, while keeping your data safe.
1👍35❤21🔥20⚡6😍1
Валентин Малых пишет, что ИИ-агенты начинают отрезать рекламодателей от пользователей. Но меняется не только реклама — меняется вся цепочка продвижения.
Теперь бренд борется не только за клик из поиска, но и за попадание в ответ Алисы AI, ChatGPT или Gemini.
GEO — Generative Engine Optimization — оптимизация бренда под упоминания, цитирование и рекомендации в генеративной выдаче.
Например, Алиса AI формирует ответы на основе результатов поиска Яндекса: выбирает страницы, извлекает факты и показывает ссылки на источники.
В русскоязычной выдаче это могут быть vc.ru, Хабр, Дзен, маркетплейсы, Карты и профильные медиа.
Изменение уже измеряется:
— при появлении AI-ответа переходы на обычную выдачу Google снижаются с 15% до 8%;
— по ссылкам внутри AI-ответа переходят примерно в 1% случаев;
— с быстрыми ответами Алисы AI ежемесячно взаимодействуют 48,3 млн человек;
— Яндекс уже показывает в Вебмастере Share of Voice — долю запросов, в которых Алиса упоминает сайт.
Было:
запрос → поисковая выдача → сайт → реклама → покупка.
Становится:
запрос → ответ ИИ → несколько вариантов → рекомендация → покупка.
SEO не исчезает, но поверх него появляются:
— AEO — оптимизация под прямые ответы;
— GEO — оптимизация под генеративную выдачу.
Подробнее о GEO и способах попадания в ответы ИИ:
https://telegra.ph/II-menyaet-reklamu-kak-brendam-popadat-v-otvety-Alisy-AI-ChatGPT-i-Gemini-07-28
#ai #geo @valuableai
Теперь бренд борется не только за клик из поиска, но и за попадание в ответ Алисы AI, ChatGPT или Gemini.
GEO — Generative Engine Optimization — оптимизация бренда под упоминания, цитирование и рекомендации в генеративной выдаче.
Например, Алиса AI формирует ответы на основе результатов поиска Яндекса: выбирает страницы, извлекает факты и показывает ссылки на источники.
В русскоязычной выдаче это могут быть vc.ru, Хабр, Дзен, маркетплейсы, Карты и профильные медиа.
Изменение уже измеряется:
— при появлении AI-ответа переходы на обычную выдачу Google снижаются с 15% до 8%;
— по ссылкам внутри AI-ответа переходят примерно в 1% случаев;
— с быстрыми ответами Алисы AI ежемесячно взаимодействуют 48,3 млн человек;
— Яндекс уже показывает в Вебмастере Share of Voice — долю запросов, в которых Алиса упоминает сайт.
Было:
запрос → поисковая выдача → сайт → реклама → покупка.
Становится:
запрос → ответ ИИ → несколько вариантов → рекомендация → покупка.
SEO не исчезает, но поверх него появляются:
— AEO — оптимизация под прямые ответы;
— GEO — оптимизация под генеративную выдачу.
Подробнее о GEO и способах попадания в ответы ИИ:
https://telegra.ph/II-menyaet-reklamu-kak-brendam-popadat-v-otvety-Alisy-AI-ChatGPT-i-Gemini-07-28
#ai #geo @valuableai
1❤29🔥18💯16👍8😍2
Из чего состоит нейросеть
Нейросеть — это слои, преобразующие данные.
Пример на Keras:
Input задаёт формат входа: изображение 28 × 28 превращается в 784 числа.
Dense связывает каждый нейрон со всеми нейронами прошлого слоя и ищет признаки.
ReLU обнуляет отрицательные значения: max(0, x). Без неё сеть линейна.
Dropout случайно отключает часть нейронов при обучении и снижает переобучение.
Softmax превращает выходы в вероятности: кошка — 0,81; собака — 0,14; лиса — 0,05.
Другие слои:
— Conv2D — изображения
— LSTM/GRU — последовательности
— Embedding — токены в векторы
— Normalization — стабилизация
— Attention — выбор важного
Архитектуру задаёт разработчик, модель обучает веса.
данные → слои → результат
Подробнее:
https://telegra.ph/Kakie-eshchyo-byvayut-nejroseti-07-29
Нейросеть — это слои, преобразующие данные.
Пример на Keras:
model = keras.Sequential([ keras.layers.Input(shape=(784,)), keras.layers.Dense(128, activation="relu"), keras.layers.Dropout(0.2), keras.layers.Dense(10, activation="softmax") ]) Input задаёт формат входа: изображение 28 × 28 превращается в 784 числа.
Dense связывает каждый нейрон со всеми нейронами прошлого слоя и ищет признаки.
ReLU обнуляет отрицательные значения: max(0, x). Без неё сеть линейна.
Dropout случайно отключает часть нейронов при обучении и снижает переобучение.
Softmax превращает выходы в вероятности: кошка — 0,81; собака — 0,14; лиса — 0,05.
Другие слои:
— Conv2D — изображения
— LSTM/GRU — последовательности
— Embedding — токены в векторы
— Normalization — стабилизация
— Attention — выбор важного
Архитектуру задаёт разработчик, модель обучает веса.
данные → слои → результат
Подробнее:
https://telegra.ph/Kakie-eshchyo-byvayut-nejroseti-07-29
1👍25❤22🔥18🙏4
MNIST: как нейросеть распознаёт рукописные цифры
В прошлом посте разбирали, из каких слоёв состоит нейросеть. Теперь соберём рабочий пример на MNIST.
MNIST — классический учебный датасет из 70 000 изображений рукописных цифр от 0 до 9:
— 60 000 изображений для обучения
— 10 000 для проверки
— размер каждой картинки — 28 × 28 пикселей
Загружаем данные:
Например:
Для нейросети картинка — это таблица чисел от 0 до 255. Нормализуем значения до диапазона от 0 до 1:
Затем превращаем каждое изображение 28 × 28 в массив из 784 чисел:
Теперь собираем модель:
Настраиваем обучение:
Запускаем обучение:
Проверяем модель на данных, которые она не видела во время обучения:
В прошлом посте разбирали, из каких слоёв состоит нейросеть. Теперь соберём рабочий пример на MNIST.
MNIST — классический учебный датасет из 70 000 изображений рукописных цифр от 0 до 9:
— 60 000 изображений для обучения
— 10 000 для проверки
— размер каждой картинки — 28 × 28 пикселей
Загружаем данные:
from tensorflow import keras from tensorflow.keras import layers import numpy as npВ x_train находятся изображения, а в y_train — правильные ответы.
(x_train, y_train), (x_test, y_test) = ( keras.datasets.mnist.load_data() )
Например:
print(x_train.shape)
# (60000, 28, 28)
print(y_train[0])
# 5
Для нейросети картинка — это таблица чисел от 0 до 255. Нормализуем значения до диапазона от 0 до 1:
x_train = x_train.astype("float32") / 255
x_test = x_test.astype("float32") / 255
Затем превращаем каждое изображение 28 × 28 в массив из 784 чисел:
x_train = x_train.reshape(-1, 784)
x_test = x_test.reshape(-1, 784)
Теперь собираем модель:
model = keras.Sequential([
layers.Input(shape=(784,)),
layers.Dense(128, activation="relu"),
layers.Dropout(0.2),
layers.Dense(10, activation="softmax")
])
Настраиваем обучение:
model.compile(
optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"]
)
Запускаем обучение:
model.fit( x_train, y_train, epochs=3, batch_size=32, validation_split=0.1 )
Проверяем модель на данных, которые она не видела во время обучения:
test_loss, test_accuracy = model.evaluate(Получаем предсказание для одной картинки:
x_test,
y_test
)
print("Точность:", test_accuracy)
image = x_test[0:1]
probabilities = model.predict(image)
predicted_digit = np.argmax(probabilities)
print("Вероятности:", probabilities[0])
print("Ответ модели:", predicted_digit)
print("Правильный ответ:", y_test[0])
1❤30👍23🔥15😍2
Квантизация моделей: что означают Q8 и Q4
Внутри нейросети хранятся миллиарды чисел — весов. Они определяют, какие связи модель считает важными.Обычно веса записываются с точностью 16 бит. Но для локального запуска модель можно сжать:
Q8 — примерно 8 бит на вес.
Q4 — примерно 4 бита на вес.
Чем меньше бит, тем меньше памяти занимает модель. Но вместе с размером снижается и точность хранения чисел. Для каждой группы рассчитывают общий коэффициент масштаба —
Например, есть веса:
Самое большое значение по модулю —
Теперь исходные веса заменяются компактными кодами:
Они немного отличаются от исходных, но не сильно.Архитектура модели не меняется. Меняется только способ хранения весов.
В итоге, Q4 меньше FP16 в 3–4 по памяти.
#нейросети
Внутри нейросети хранятся миллиарды чисел — весов. Они определяют, какие связи модель считает важными.Обычно веса записываются с точностью 16 бит. Но для локального запуска модель можно сжать:
Q8 — примерно 8 бит на вес.
Q4 — примерно 4 бита на вес.
Чем меньше бит, тем меньше памяти занимает модель. Но вместе с размером снижается и точность хранения чисел. Для каждой группы рассчитывают общий коэффициент масштаба —
scale.Например, есть веса:
−1,20 | −0,30 | 0,40 | 1,10Самое большое значение по модулю —
1,20. Делим его на 7:scale = 1,20 / 7 ≈ 0,171Теперь исходные веса заменяются компактными кодами:
−1,20 → −7В памяти хранятся эти коды и один общий scale−0,30 → −20,40 → 2
1,10 → 6
.
Во время работы модель умножает коды на коэффициент и получает приблизительные веса:
−1,20 | −0,34 | 0,34 | 1,03`
Они немного отличаются от исходных, но не сильно.Архитектура модели не меняется. Меняется только способ хранения весов.
В итоге, Q4 меньше FP16 в 3–4 по памяти.
#нейросети
1🔥21👀15👍13