Оглавление:

ATTiny-RAT, мини-подсветка ATTINY Powered Mini: 3 шага
ATTiny-RAT, мини-подсветка ATTINY Powered Mini: 3 шага

Видео: ATTiny-RAT, мини-подсветка ATTINY Powered Mini: 3 шага

Видео: ATTiny-RAT, мини-подсветка ATTINY Powered Mini: 3 шага
Видео: BadUSB - Ключ-Флешка для авторизации в ЛЮБОЙ системе / на ЛЮБОМ сайте | UnderMind 2024, Ноябрь
Anonim
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered
Мини-лайтфолловер ATTiny-RAT, ATTINY Powered

Привет народ, Прошло некоторое время с тех пор, как я опубликовал свое последнее руководство. Что ж, сейчас у меня в голове много вещей, но мне удалось задокументировать свои «первые шаги» с чипами серии ATTiny в этом кратком руководстве для вас.

Я заказал несколько образцов ATTINY85 только потому, что хотел их протестировать:-) (все любят тестировать, правда?). После этого я начал рисовать некоторые идеи в свой блокнот. Честно говоря, первое, что я сделал, это мигал светодиодом, что, как всегда, было хорошим началом, чтобы проверить, работает ли ваша установка / набор инструментов. Я также попробовал регистратор температуры и влажности с DHT22 и SoftwareSerial. Это было сложно, потому что библиотеки DHT в основном предназначены для тактовой частоты 16 МГц (если вы планируете сделать что-то подобное, проверьте, как предварительно масштабировать внутренние часы). Но я решил показать вам кое-что, ну просто смешнее. BTW: Я загрузил для вас один из моих рисунков, это не Рембрандт, но он покажет вам, как у меня появилась эта (действительно) дурацкая идея на листе бумаги: -П.

Я использовал только те вещи, которые у меня были под рукой, чтобы сделать этот проект как можно более дешевым (для меня). Результатом этого небольшого приключения стал симпатичный маленький «робот-последователь света» примерно за 10-15 долларов (3 доллара для меня:-P)

Так что, если вас интересует ATTINY, читайте дальше.

Кстати: извините за мой плохой английский (я не носитель языка)

Шаг 1. Начало работы с ATTiny и инструментами и материалами

Начало работы с ATTiny и инструментами и материалами
Начало работы с ATTiny и инструментами и материалами
Начало работы с ATTiny и инструментами и материалами
Начало работы с ATTiny и инструментами и материалами
Начало работы с ATTiny и инструментами и материалами
Начало работы с ATTiny и инструментами и материалами
Начало работы с ATTiny и инструментами и материалами
Начало работы с ATTiny и инструментами и материалами

Что вам понадобится для начала:

- чип ATTiny85

- Arduino UNO или аналогичный

- макетную плату с какой-нибудь перемычкой или программатором ATTINY или сделайте сам программатор-щит для Arduino (смотрите приложенные картинки, есть схема с avdweb.nl). Я также сделал это, и я очень доволен этим, единственная модификация, которую я сделал, заключалась в том, что я добавил сокет для серии ATTinyx4 (см. Рисунок и схемы распиновки).

- IDE Arduino (получить здесь)

- аппаратные файлы для ArduinoIDE (скачайте и установите их)

Инфо-ссылка на игровую площадку Прямая ссылка на файлы github, которые я использовал

- загрузите Arduino в качестве скетча ISP в UNO (это будет ваш программист)

- следуйте этой инструкции (https://highlowtech.org/) или этой инструкции (от ardutronix) и попробуйте "мигающий" эскиз (измените PIN-код. используйте изображение ATTINY в качестве справки! Вам понадобится предварительно мигающий индикатор ATTINY a LED). и резистор ~ 220 Ом для этого)

Сделайте небольшой макет, чтобы все проверить. Если вы все сделали правильно, светодиод будет мигать, и вы готовы к работе.

ИНСТРУМЕНТЫ

- Паяльник - немного припоя - небольшой кусачок - дремель или другой вращающийся инструмент (только для резки печатной платы!) - немного горячего клея - пинцет - провода

МАТЕРИАЛЫ

- прототип печатной платы (подойдет ~ 4 см x 6 см) - 2x LDR- 5x резистор 10k (2x для LDRs и 2x для транзисторов BE, 1x LED) - 1x 330Ohm резистор (1x NEOPIXELS) - 2x LDR- 1x LED (цвет вашего на выбор вместо колесика) - 3x NEOPIXEL WS2812- 2x транзистора (BD137 или аналогичный) - 2x диод (1N4001 или аналогичный) - 2x микромотор (например, от микроквадрокоптера Hubsan) - 1x ATTINY85 + дополнительно (рекомендуется) 8PIN IC Socket - 1x 1s LIPO (я использовал 140Ah от старого RC-вертолета) - некоторые штыревые разъемы / гнезда - термоусадочная трубка (корпус LDR)

Давайте приступим к созданию оборудования…

Шаг 2: Оборудование

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Если вы посмотрите на схемы, которые я прикрепил, установка оборудования довольно проста. Так что если вы умеете читать схемы и пользоваться паяльником, это половина дела. Также посмотрите фотографии, я добавил вам несколько примечаний.

Я не предоставляю план резки печатной платы, вы можете создать свой собственный дизайн (проявите изобретательность и покажите нам своих крошечных ботов). Размещение всех электронных компонентов также зависит от вас. Несколько подсказок с моей стороны:

Постарайтесь точно выровнять двигатели (следите за углом!), Мы используем только вал двигателя, а не колеса. (это потребует меньше энергии). Я рекомендую разместить двигатели под аккумулятором (груз) и использовать LDR спереди (под углом 45 °) в паре со светодиодом (я пытаюсь использовать эту комбинацию для предотвращения столкновений, в дальнейшем нужны тесты).

Кроме того, я рекомендую сделать небольшую перемычку включения / выключения, чтобы аккумулятор не терялся так легко.

Если что-то непонятно или у вас есть вопросы, просто спросите меня. Это не заставит людей сделать тезис из этого небольшого проекта.

Шаг 3: Программное обеспечение

Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение

Первым делом скачайте и установите ADAFRUIT Neopixel Library

Вот мой код с некоторыми основными описаниями (я также добавил файл скетча). Я не комментировал каждый шаг, потому что считаю, что в этом нет необходимости.

Загрузите эскиз на свой ATTiny85 и получайте удовольствие от своей новой игрушки

Идеи для "индивидуальной" функции + возможно, примеры кода приветствуются:-)

Если есть вопросы, не стесняйтесь спрашивать.

Надеюсь, вам понравились мои короткие инструкции и небольшое путешествие в мир ATTINY.

/ * ATTINY85-Rata простой робот-светосопровождающий робот с питанием от ATTINY85. Версия 2.0, автор Ауэр Маркус * /

#включают

#включают

// двигатели

#define LMOTOR 0 #define RMOTOR 1 // Светодиоды #define PIXELPIN 2 #define NUMPIXEL 3 // LDR #define LLDR A2 #define RLDR A3

// otherint emo = 0; калибр поплавка; логический эостат; длинный олдмиллис; // определение NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

установка void ()

{// увеличьте частоту, иначе вы столкнетесь с некоторыми проблемами синхронизации (библиотека neopixel написана для 16 МГц) #if defined (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, ВЫХОД); pinMode (LLDR, ВХОД); pinMode (LLDR, ВХОД); // инициализируем пиксели PIXEL.begin (); PIXEL.show (); задержка (500); // запускаем последовательность для (int i = 0; i

пустой цикл ()

{если (lightfollow () == 1) {слева (); } иначе, если (lightfollow () == 2) {right (); } иначе, если (lightfollow () == 0) {вперед (); } эмоция (); }

int lightfollow () {

int treshold = 14; int результат = 0; float left = 0; плавать вправо = 0; int samples = 1; // считываем LDR для (int j = 0; j <samples; j ++) {

left = left + analogRead (LLDR); right = right + (analogRead (RLDR) * calib);

}

// вычисляем результат (с какого направления исходит свет?)

if ((left / samples)> ((right / samples) + treshold)) {result = 2;}

иначе if ((left / samples) <((right / samples) -treshold)) {result = 1;}

else {result = 0;}

вернуть результат; } void forward () {// Вперед analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

void left () {

// ЛЕВЫЙ analogWrite (LMOTOR, 150); analogWrite (RMOTOR, 255); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); //PIXEL.setPixelColor(1, PIXEL. Color (75, 0, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 100, 0)); PIXEL.show (); }

void right () {

// ПРАВИЛЬНО analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

// это для дальнейших экспериментов, пытаюсь придать этому немного индивидуальности:-) Я тестирую, что можно сделать, но пока нет хороших идей.

пустая эмоция () {int emotimer = 2500; int duration = random (250, 750); если (millis () - oldmillis> emotimer) {oldmillis = millis (); эмо = случайный (1, 4); } если (millis () - oldmillis> duration) {emostate =! emostate; } если (emostate == true) {переключатель (эмо) {случай 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); перерыв; случай 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); перерыв; случай 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); перерыв; по умолчанию: PIXEL.setPixelColor (1, PIXEL. Color (случайный (0, 255), случайный (0, 255), случайный (0, 255))); PIXEL.show (); перерыв; }} еще {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Рекомендуемые: