![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Наконец-то собрался и купил Arduino Uno и к нему разных шилдов
![]() Теперь можно всласть напаяться и напрограммироваться ( естественно под ALT Linux ) Кому интересно пишем в эту тему. Несколько полезных ссылок : Для начала : http://arduino.ru./ http://f1p.ucoz.ru/publ/9-1-0-34 Простой примерчик : http://www.freeduino.ru/arduino/sample_PhysicalPixel.html - проверил , работает при помощи встроенного в программу arduino монитора порта: ![]() Паяльник как всегда рулит : http://cxem.net/arduino/arduino.php PS Все это безобразие напоминает мне старые добрые времена ![]() Сообщение отредактировал kostyalamer - 11.4.2014, 20:15 |
|
|
![]()
Сообщение
#2
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Глоб. Модератор Сообщений: 10142 Регистрация: 22.6.2009 Вставить ник Цитата Из: Онега Пользователь №: 1352 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Это интересно
![]() -------------------- Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
|
|
|
![]()
Сообщение
#3
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Это интересно ![]() Все что угодно, вчера с младшим крутили сервопривод ![]() Хотя в основном такая штука мне нужна по работе, дешевый контроллер , программируется прямо с компа без всяких программаторов. Присобачил блок питания, шилду с 4-мя релюхами на выходы, запихал все это в приличный корпус , на входы повесил все что надо и получил контроллер не хуже Овен - овских , только дешевле в разы. Ну и программировать на Wiring ( практически С ++ ) гораздо интереснее чем в разных визуалках вроде PLC ![]() |
|
|
![]()
Сообщение
#4
|
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 530 Регистрация: 22.8.2007 Вставить ник Цитата Пользователь №: 317 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
У меня тоже есть Nano и UNO. А язык там вроде какой-то диалект Processing по-моему.
|
|
|
![]()
Сообщение
#5
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
У меня тоже есть Nano и UNO. А язык там вроде какой-то диалект Processing по-моему. 1) Отлично ! Андрей что на них интересного собирал ? 2) По-поводу языка цитирую учебник http://robocraft.ru/blog/arduino/29.html Цитата Как мы уже выяснили Arduino/ Freeduino программируется на языке Wiring, которого на самом деле не существует, как и не существует и компилятора Wiring – написанные на Wiring программы преобразуются (с минимальными изменениям) в программу на языке C/C++, и затем компилируются компилятором AVR-GCC. Так что, фактически, используется специализированный для микроконтроллеров AVR вариант C/C++. Однако, Вы получаете простую среду разработки, и набор базовых библиотек, упрощающих доступ к находящейся «на борту» микроконтроллера периферии. Хотя может и Processing программы то в нем скетчами называются ![]() |
|
|
![]()
Сообщение
#6
|
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 530 Регистрация: 22.8.2007 Вставить ник Цитата Пользователь №: 317 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Насчет названия языка не знаю, серьезно не изучал
![]() Сообщение отредактировал and - 12.4.2014, 21:43 |
|
|
![]()
Сообщение
#7
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Вот и простейшая программка, для начала схемка ( кстати нарисована в Qelectrotech ) :
![]() резисторы подключенные последовательно со светодиодами имеют номинал: 1 - 2 кОм а вот и простенький код: Код /* циклическое реле времени работа , пауза ( на 2 поочередно включающиеся нагрузки ) * поочередное включение 2-х светодиодов через паузу с подстройкой по времени * */ int ledPin13 = 13; // LED подсоединен к выводу 13 int ledPin12 = 12; // LED подсоединен к выводу 12 int potPin2 = 2; // потенциометр подключается к 2-му входу(работа) int potPin3 = 3; // потенциометр подключается к 3-му входу(пауза) int Mnog = 10; // Множитель шкалы времени void setup() { pinMode(ledPin13, OUTPUT); // устанавливаем вывод 13 как выход pinMode(ledPin12, OUTPUT); // устанавливаем вывод 12 как выход } void loop() { digitalWrite(ledPin13, HIGH); // включаем LED digitalWrite(ledPin12, LOW); // выключаем LED delay(Schit(Mnog , potPin2 )); // пауза работа 13 выход digitalWrite(ledPin13, LOW); // включаем LED digitalWrite(ledPin12, LOW); // выключаем LED delay(Schit(Mnog , potPin3 )); // пауза выключено digitalWrite(ledPin13, LOW); // выключаем LED digitalWrite(ledPin12, HIGH); // включаем LED delay(Schit(Mnog , potPin2)); // пауза работа 12 выход digitalWrite(ledPin13, LOW); // включаем LED digitalWrite(ledPin12, LOW); // выключаем LED delay(Schit(Mnog , potPin3 )); // пауза выключено } int Schit(int Mnog, int Pin) // процедура считывания значения с 2-го или 3 -го pin-а { int rez; rez = analogRead(Pin)*Mnog; // считываем значение и преобразуем к нужному диапазону if (rez < 500 ) rez = 500; // минимальное значение 0,5 с return rez; } На самом деле такое реле вместе с релейной шилдой подойдет для многих промышленных агрегатов, но можно и просто поморгать светодиодами. PS программировать такую штуку одно удовольствие, рекомендую всем ![]() PPS Если есть чего-нибудь интересное делимся схемами и кодом . Сообщение отредактировал kostyalamer - 19.4.2014, 16:20 |
|
|
![]()
Сообщение
#8
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Глоб. Модератор Сообщений: 10142 Регистрация: 22.6.2009 Вставить ник Цитата Из: Онега Пользователь №: 1352 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Отделил отсюда тему "Юные программисты в Архангельске" - там ведь отнюдь не только про Arduino.
-------------------- Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
|
|
|
![]()
Сообщение
#9
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Продолжаю тему про Arduino, теперь устройство немного посложнее - регулятор температуры / влажности , кроме Arduino Uno были использованы :
релюхи - http://fixled.ru/shields/4relay-shield.html экранчик - http://fixled.ru/microcontrollers/modules/serial-lcd.html датчик - http://fixled.ru/sensors/dht22.html потенциометры для задания температуры и влажности свои из старого хлама. ссылки привел специально, там можно скачать соответствующие этим устройствам библиотеки Код : Код // регулятор температуры и влажности #include "DHT.h" #include <Wire.h> #include "rgb_lcd.h" int ledT = 13; // выход регулятора температуры int ledH = 12; // выход регулятора влажности int sensorPinT = A1; // вход установки температуры int sensorPinH = A0; // вход установки влажности int sensorValueT = 0; // показания датчика температуры int sensorValueH = 0; // показания датчика влажности int scaleT = 10; // масштабатор уставки температуры int scaleH = 10; // масштабатор уставки влажности int deltaT = 2; // дельта между включением и выключением регулятора по T int deltaH = 2; // дельта между включением и выключением регулятора по H rgb_lcd lcd; const int colorR = 0; // цвета подсветки дисплея const int colorG = 0; const int colorB = 150; unsigned int RelayPin[]={4,6,5,7}; #define DHTPIN 2 // what pin we're connected to // Uncomment whatever type you're using! //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) // Connect pin 1 (on the left) of the sensor to +5V // Connect pin 2 of the sensor to whatever your DHTPIN is ( pin 2) // Connect pin 4 (on the right) of the sensor to GROUND // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor DHT dht(DHTPIN, DHTTYPE); void setup() { int i=0; for(i=0;i<4;i++) pinMode(RelayPin[i],OUTPUT); // релейные входы 1-4 pinMode(ledT, OUTPUT); // выход регулятора температуры pinMode(ledH, OUTPUT); // выход регулятора влажности lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); lcd.print("Regulator!"); delay(1000); dht.begin(); } void loop() { // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); float t = dht.readTemperature(); sensorValueT = analogRead(sensorPinT)/scaleT; if ( sensorValueT > 100 ) sensorValueT = 100; // макс. значение уставки T sensorValueH = analogRead(sensorPinH)/scaleH; if ( sensorValueH > 100 ) sensorValueH = 100; // макс. значение уставки F // проверка на ошибочные значения модуля DHT if (isnan(t) || isnan(h)) { lcd.print("Failed to DHT"); } else { // блок отображения информации // температура lcd.setCursor(0, 0); lcd.print("T: "); lcd.setCursor(3, 0); lcd.print(" "); lcd.setCursor(3, 0); lcd.print(t); lcd.print(" C"); lcd.setCursor(11, 0); lcd.print(" "); lcd.setCursor(11, 0); lcd.print(sensorValueT); // влажность lcd.setCursor(0, 1); lcd.print("H: "); lcd.setCursor(3, 1); lcd.print(" "); lcd.setCursor(3, 1); lcd.print(h); lcd.print(" %"); lcd.setCursor(11, 1); lcd.print(" "); lcd.setCursor(11, 1); lcd.print(sensorValueH); // блок регуляторов температуры и влажности if ( t < sensorValueT - deltaT/2) { digitalWrite( ledT, HIGH ); digitalWrite(RelayPin[1],HIGH); } else if ( t > sensorValueT + deltaT/2) { digitalWrite( ledT, LOW ); digitalWrite(RelayPin[1],LOW); } if ( h < sensorValueH - deltaH/2) { digitalWrite( ledH, HIGH ); digitalWrite(RelayPin[2],HIGH); } else if ( h > sensorValueH + deltaH/2) { digitalWrite( ledH, LOW ); digitalWrite(RelayPin[2],LOW); } delay (200); } } А вот как вся эта радость выглядит, слева на экране фактическая температура и влажность, справа заданная потенциометрами, релюшки как и положено щелкают ![]() ![]() |
|
|
![]()
Сообщение
#10
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Перенесено из темы "Кто чем занят?"
+1 очень тихо. По части Linux-а в данный момент не занят ничем ( нет лишнего времени на никому не нужные проекты ), разве что arduino из под него программирую. Кстати, Иван очень тебе советую, программирование таких железок крайне увлекательное занятие ![]() Костя, можешь чайникам на пальцах.. Что да как? Что брать для игры из платок на алиэкспрессе? |
|
|
![]()
Сообщение
#11
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Так результат ведь нужен какой-то, одной увлекательности мало. Нет вдохновляющих идей в этом направлении. 1 ) Иван, идей море : http://kaburka.ru/cat105-arduino http://habrahabr.ru/hub/arduino/ http://relax.ru/tag/7844/sintezator.html ( сейчас как раз раздумываю на тему синтезатора с клавиатурой из монет - идея просто гениальная ![]() 2) Юра я затариваюсь здесь http://fixled.ru/arduino просто заезжаю туда за железяками. Для начала возьми Uno или какой-либо его китайский клон : http://fixled.ru/arduino/arduino-uno.html на него ставятся все стандартные шилды http://fixled.ru/microcontrollers/pro-micro-5v.html не брал но наверное возьму для простых поделок то что надо ( тут уже надо паять, правда это тебя наверняка не пугает ), есть много разных идей под эту платку По шилдам , смотря что собираешься делать , если роботами баловаться то можно сразу : http://fixled.ru/arduino/arduino-shield-bot.html в нем кстати и Uno уже есть или набирать по шилдам и датчикам : http://fixled.ru/shields/motor-shield-l293d.html - покрутить движками http://fixled.ru/shields/4relay-shield.html - под автоматику http://fixled.ru/microcontrollers/modules/...nic-ranger.html - "глаза" для робота http://fixled.ru/mechanics/fs5103b.html сервы на покрутить и так далее под конкретную задачу, если что для продолжения переезжаем в эту тему: http://forum.russ2.com/index.php?showtopic=3973 Сообщение отредактировал IVK - 19.5.2014, 22:46 |
|
|
![]()
Сообщение
#12
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Костя, можешь чайникам на пальцах.. Что да как? Что брать для игры из платок на алиэкспрессе? Кстати, посмотрел цены на алиэкспрессе - практчески бесплатно, ты у них уже чего-нибудь брал ? Как там со сроками и ценой на доставку ? Сообщение отредактировал kostyalamer - 19.5.2014, 22:57 |
|
|
![]()
Сообщение
#13
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Кстати, посмотрел цены на алиэкспрессе - практчески бесплатно, ты у них уже чего-нибудь брал ? Как там со сроками и ценой на доставку ? Я начинающий интернет покупатель ![]() Там есть бесплатная доставка в РФ (можно отфильтровать по бесплатной доставке и единичному товару). С платной доставкой выходит дороговато обычно. Сроки зависят от почты ![]() ![]() Правда так как платная доставка тоже часто через почту и сроки почти те же, то совсем платить за доставку не охота... Вот сейчас жду DC-DC конвертер, т.к. поглядел ценник у них и "чтоб собрать из магазинных деталек" и понял, что лучше подожду (тем более время терпит). Платил через КиВи. Скидываю туда четко сумму для покупки и контролирую чтоб статус после оплаты был "отправлено". (тут тоже от продавца зависит - иногда оговаривает срок между оплатой и отправкой в несколько дней). Заказы лучше брать у кого хороший рейтинг и где много отзывов о том что реально приходит ![]() Дорогое и ценное брать там не собираюсь - т.к. хоть и есть гарантия у нормальных поставщиков (реально принимают назад и ремонтируют, возвращают), но это страшно огромные сроки. С другой стороны знаю реальную историю успеха покупки через интернет в Китае достаточно большого станка ![]() ![]() А вот мелочевку... Значит УНО... http://ru.aliexpress.com/item/Best-prices-.../909950710.html вот такое для старта подойдет? |
|
|
![]()
Сообщение
#14
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Значит УНО... http://ru.aliexpress.com/item/Best-prices-.../909950710.html вот такое для старта подойдет? По крайней мере контроллер внутри тот же а уж чего в него зашили китайцы не знаю, кстати там же есть и более дешевый вариант : http://ru.aliexpress.com/item/Free-Shippin...1855253249.html |
|
|
![]()
Сообщение
#15
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Глоб. Модератор Сообщений: 10142 Регистрация: 22.6.2009 Вставить ник Цитата Из: Онега Пользователь №: 1352 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
1 ) Иван, идей море : http://kaburka.ru/cat105-arduino http://habrahabr.ru/hub/arduino/ http://relax.ru/tag/7844/sintezator.html ( сейчас как раз раздумываю на тему синтезатора с клавиатурой из монет - идея просто гениальная ![]() Всё это очень здорово, но сейчас я точно не в состоянии этим заниматься... потому что не могу разорваться на части ![]() -------------------- Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
|
|
|
![]()
Сообщение
#16
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
По крайней мере контроллер внутри тот же а уж чего в него зашили китайцы не знаю, кстати там же есть и более дешевый вариант : http://ru.aliexpress.com/item/Free-Shippin...1855253249.html А это что за чудо юдо http://ru.aliexpress.com/item/Pro-Mini-Mod...1503533345.html ? Типа http://fixled.ru/microcontrollers/pro-micro-5v.html ? Или непонятно что ? ![]() |
|
|
![]()
Сообщение
#17
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
А это что за чудо юдо http://ru.aliexpress.com/item/Pro-Mini-Mod...1503533345.html ? Типа http://fixled.ru/microcontrollers/pro-micro-5v.html ? Или непонятно что ? ![]() Скорее непонятно что, на плате нет ни микро -USB ни 6-ти штырькового разъема для подключения программатора, лучше возьми вот эту штуку: http://ru.aliexpress.com/item/Freeshipping...1511600580.html кабель микро - USB найти проще чем программатор, который к первой железяке надо еще как-то прикосячить ![]() |
|
|
![]()
Сообщение
#18
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Скорее непонятно что, на плате нет ни микро -USB ни 6-ти штырькового разъема для подключения программатора, лучше возьми вот эту штуку: http://ru.aliexpress.com/item/Freeshipping...1511600580.html кабель микро - USB найти проще чем программатор, который к первой железяке надо еще как-то прикосячить ![]() да он 1 $ стоит ![]() http://ru.aliexpress.com/item/USB-To-RS232...1225758876.html http://pakhom.weebly.com/arduino_pro-mini.html Но похоже это уже для продвинутых... Сообщение отредактировал YYY - 20.5.2014, 21:25 |
|
|
![]()
Сообщение
#19
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Не, для продвинутых и экономных скорее вот это : http://fixled.ru/arduino/atmega8-bootloader.html |
|
|
![]()
Сообщение
#20
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Не, для продвинутых и экономных скорее вот это : http://fixled.ru/arduino/atmega8-bootloader.html меня вот это заинтересовало http://фридуин.ство.рф/?p=75 т.е. возможность через usb чем-то управлять ![]() |
|
|
![]()
Сообщение
#21
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
меня вот это заинтересовало http://фридуин.ство.рф/?p=75 т.е. возможность через usb чем-то управлять ![]() Ну такая штука реализуется относительно просто. Пишешь программу на arduino , которая мониторит порт и в зависимости от того что ты туда отправляешь выполняет различные действия. Что-то подобное делал когда ковырялся в встроенных в среду программирования примерах ![]() |
|
|
![]()
Сообщение
#22
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Ну такая штука реализуется относительно просто. Пишешь программу на arduino , которая мониторит порт и в зависимости от того что ты туда отправляешь выполняет различные действия. Что-то подобное делал когда ковырялся в встроенных в среду программирования примерах ![]() Не. Я с учетом того что по OTG умееют все многие мини девайсы - недорогие смартфоны, планшеты, автонавигаторы. И вот если получится ими через сабж управлять всякими реле и приводами - этож огого! ![]() |
|
|
![]()
Сообщение
#23
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Не. Я с учетом того что по OTG умееют все многие мини девайсы - недорогие смартфоны, планшеты, автонавигаторы. И вот если получится ими через сабж управлять всякими реле и приводами - этож огого! ![]() Этого в интернете сколько угодно, вот например : http://cxem.net/arduino/arduino54.php http://habrahabr.ru/post/123361/ а можно и синим зубом - http://wiki.amperka.ru/%D0%B1%D0%B5%D1%81%...D0%B8-bluetooth |
|
|
![]()
Сообщение
#24
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Вот еще очень интересная штука : http://www.polesite.ru/?p=2418
![]() |
|
|
![]()
Сообщение
#25
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Купил набор
http://ru.aliexpress.com/item/Pro-Mini-Mod...1503533345.html http://ru.aliexpress.com/item/USB-To-RS232...1225758876.html Обошелся менее 160 рэ. Буду ждать, а как придет - завалю вопросами ![]() |
|
|
![]()
Сообщение
#26
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Небольшой отчет о проделанной работе :
![]() Синтезатор из arduino , старой не нужной клавы ps/2 , дешевых китайских колонок и зарядника от давно умершего телефона. А , чуть не забыл парочку RС фильтров для улучшения звука. Вполне себе приличный звук для такой балалайки на четырех октавах ( октавы переключаются по 2 ). Сейчас добавил SD -шильд и учу его играть сэмплы от синтезаторов прямо с карты памяти, в виду того что код усложнится в разы, могу если кому надо скинуть код простого не SD - шного варианта синтезатора, пока я еще его не затер ( надерган из разных мест с добавлением большого количества разных костылей от меня ) PS кто сказал что arduino не компьютер : ![]() Сообщение отредактировал kostyalamer - 12.6.2014, 23:15 |
|
|
![]()
Сообщение
#27
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
могу если кому надо скинуть код простого не SD - шного варианта синтезатора, пока я еще его не затер ( надерган из разных мест с добавлением большого количества разных костылей от меня ) Прикольно! Закидывай код ![]() Для простого ничего более самого не надо? А то у меня уже "Типа Nano" пришло ![]() Вот второй компонент пока нет, но думаю на днях должен ![]()
Прикрепленные файлы
![]() |
|
|
![]()
Сообщение
#28
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Прикольно! Закидывай код ![]() Для простого ничего более самого не надо? Держи : Код #include <ps2.h> float note_len = 500000; #define play_C4 3821 // До (4 октава) #define play_Cis4 3607 // До диез #define play_D4 3404 // Ре #define play_Dis4 3213 // Ре диез #define play_E4 3033 // Ми #define play_F4 2862 // Фа #define play_Fis4 2702 // Фа диез #define play_G4 2550 // Соль #define play_Gis4 2407 // Соль диез #define play_A4 2272 // Ля #define play_Ais4 2144 // Ля диез #define play_B4 2024 // Си #define play_C5 1910 // До (5 октава) #define play_Cis5 1803 // До диез #define play_D5 1702 // Ре #define play_Dis5 1606 // Ре диез #define play_E5 1516 // Ми #define play_F5 1431 // Фа #define play_Fis5 1350 // Фа диез #define play_G5 1275 // Соль #define play_Gis5 1203 // Соль диез #define play_A5 1135 // Ля #define play_Ais5 1072 // Ля диез #define play_B5 1011 // Си // #define play_C6 955 // До (6 октава) #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 int pin = 8; int len = 500; int sint = 1; unsigned char code; PS2 kbd(6, 5); void playTone(int note ) { long elapsed_time = 0; while (elapsed_time < note_len) { digitalWrite(pin,HIGH); delayMicroseconds(note / 2); digitalWrite(pin, LOW); delayMicroseconds(note / 2); elapsed_time += (note); } } void kbd_init() { char ack; kbd.write(0xff); ack = kbd.read(); ack = kbd.read(); } void sintez() /* играет ноты длительностью len , можно нажать несколько клавиш подряд и спокойно ждать пока синтезатор все это проиграет, используется 9 цифровой выход Arduino с RC фильтром */ { Serial.println(code, HEX); pin = 9; if (code==0xE) { tone(pin,NOTE_C4,len); } // До (4 октава) else if (code==0x76) { tone(pin,NOTE_CS4,len); } // До диез else if (code==0x16) { tone(pin,NOTE_D4,len); } // Ре else if (code==0x05) { tone(pin,NOTE_DS4,len); } // Ре диез else if (code==0x1E) { tone(pin,NOTE_E4,len); } // Ми else if (code==0x26) { tone(pin,NOTE_F4,len); } // Фа else if (code==0x06) { tone(pin,NOTE_FS4,len); } // Фа диез else if (code==0x25) { tone(pin,NOTE_G4,len); } // Соль else if (code==0x04) { tone(pin,NOTE_GS4,len); } // Соль диез else if (code==0x2E) { tone(pin,NOTE_A4,len); } // Ля else if (code==0x0C) { tone(pin,NOTE_AS4,len); } // Ля диез else if (code==0x36) { tone(pin,NOTE_B4,len); } // Си else if (code==0x3D) { tone(pin,NOTE_C5,len); } // До (5 октава) else if (code==0x0B) { tone(pin,NOTE_CS5,len); } // До диез else if (code==0x3E) { tone(pin,NOTE_D5,len); } // Ре else if (code==0x83) { tone(pin,NOTE_DS5,len); } // Ре диез else if (code==0x46) { tone(pin,NOTE_E5,len); } // Ми else if (code==0x45) { tone(pin,NOTE_F5,len); } // Фа else if (code==0x01) { tone(pin,NOTE_FS5,len); } // Фа диез else if (code==0x4E) { tone(pin,NOTE_G5,len); } // Соль else if (code==0x09) { tone(pin,NOTE_GS5,len); } // Соль диез else if (code==0x55) { tone(pin,NOTE_A5,len); } // Ля else if (code==0x78) { tone(pin,NOTE_AS5,len); } // Ля диез else if (code==0x5D) { tone(pin,NOTE_B5,len); } // Си else if (code==0x66) { tone(pin,NOTE_C6,len); } // До (6 октава) else if (code==0x75) { if ( len < 1000) len= len + 100; } else if (code==0x72) { if ( len > 100 ) len= len - 100; } else if (code==0x29) { noTone(pin);} // стоп else if (code==0x70) { sint = 1; kbd.write(0xED); kbd.write(0x04); // вкл Caps Led } else if (code==0x7C) { noTone(pin); sint = 0; kbd.write(0xED); kbd.write(0x02); // вкл Num Lock Led } else if (code==0x71) { sint = 3; kbd.write(0xED); kbd.write(0x01); // вкл Scroll Led } Serial.println(code, HEX); } void sintez1() /* играет 4 и 5-ую октаву при нажатии следующей клавиши предыдущая нота перестает звучать ! используется 9 цифровой выход Arduino с RC фильтром */ { Serial.println(code, HEX); pin = 9; if (code==0xE) { playTone(play_C4); } // До (4 октава) else if (code==0x76) { playTone(play_Cis4); } // До диез else if (code==0x16) { playTone(play_D4); } // Ре else if (code==0x05) { playTone(play_Dis4); } // Ре диез else if (code==0x1E) { playTone(play_E4); } // Ми else if (code==0x26) { playTone(play_F4); } // Фа else if (code==0x06) { playTone(play_Fis4); } // Фа диез else if (code==0x25) { playTone(play_G4); } // Соль else if (code==0x04) { playTone(play_Gis4); } // Соль диез else if (code==0x2E) { playTone(play_A4); } // Ля else if (code==0x0C) { playTone(play_Ais4); } // Ля диез else if (code==0x36) { playTone(play_B4); } // Си else if (code==0x3D) { playTone(play_C5); } // До (5 октава) else if (code==0x0B) { playTone(play_Cis5); } // До диез else if (code==0x3E) { playTone(play_D5); } // Ре else if (code==0x83) { playTone(play_Dis5); } // Ре диез else if (code==0x46) { playTone(play_E5); } // Ми else if (code==0x45) { playTone(play_F5); } // Фа else if (code==0x01) { playTone(play_Fis5); } // Фа диез else if (code==0x4E) { playTone(play_G5); } // Соль else if (code==0x09) { playTone(play_Gis5); } // Соль диез else if (code==0x55) { playTone(play_A5); } // Ля else if (code==0x78) { playTone(play_Ais5); } // Ля диез else if (code==0x5D) { playTone(play_B5); } // Си else if (code==0x66) { playTone(play_C6); } // До (6 октава) else if (code==0x75) { if ( note_len < 500000) note_len= note_len + 100000; } else if (code==0x72) { if ( note_len > 100000 ) note_len= note_len - 100000; } else if (code==0x70) { sint = 1; kbd.write(0xED); kbd.write(0x04); // вкл Caps Led } else if (code==0x7C) { noTone(pin); sint = 0; kbd.write(0xED); kbd.write(0x02); // вкл Num Lock Led } else if (code==0x71) { sint = 3; kbd.write(0xED); kbd.write(0x01); // вкл Scroll Led } Serial.println(code, HEX); } void sintez2() /* играет басы , при нажатии следующей клавиши предыдущая нота перестает звучать ! используется 8 цифровой выход Arduino с RC фильтром */ { Serial.println(code, HEX); pin = 8; if (code==0xE) { tone(pin,NOTE_C2,len); } // До (2 октава) else if (code==0x76) { tone(pin,NOTE_CS2,len); } // До диез else if (code==0x16) { tone(pin,NOTE_D2,len); } // Ре else if (code==0x05) { tone(pin,NOTE_DS2,len); } // Ре диез else if (code==0x1E) { tone(pin,NOTE_E2,len); } // Ми else if (code==0x26) { tone(pin,NOTE_F2,len); } // Фа else if (code==0x06) { tone(pin,NOTE_FS2,len); } // Фа диез else if (code==0x25) { tone(pin,NOTE_G2,len); } // Соль else if (code==0x04) { tone(pin,NOTE_GS2,len); } // Соль диез else if (code==0x2E) { tone(pin,NOTE_A2,len); } // Ля else if (code==0x0C) { tone(pin,NOTE_AS2,len); } // Ля диез else if (code==0x36) { tone(pin,NOTE_B2,len); } // Си else if (code==0x3D) { tone(pin,NOTE_C3,len); } // До (3 октава) else if (code==0x0B) { tone(pin,NOTE_CS3,len); } // До диез else if (code==0x3E) { tone(pin,NOTE_D3,len); } // Ре else if (code==0x83) { tone(pin,NOTE_DS3,len); } // Ре диез else if (code==0x46) { tone(pin,NOTE_E3,len); } // Ми else if (code==0x45) { tone(pin,NOTE_F3,len); } // Фа else if (code==0x01) { tone(pin,NOTE_FS3,len); } // Фа диез else if (code==0x4E) { tone(pin,NOTE_G3,len); } // Соль else if (code==0x09) { tone(pin,NOTE_GS3,len); } // Соль диез else if (code==0x55) { tone(pin,NOTE_A3,len); } // Ля else if (code==0x78) { tone(pin,NOTE_AS3,len); } // Ля диез else if (code==0x5D) { tone(pin,NOTE_B3,len); } // Си else if (code==0x66) { tone(pin,NOTE_C4,len); } // До (4 октава) else if (code==0x75) { if ( len < 1000) len= len + 100; } else if (code==0x72) { if ( len > 100 ) len= len - 100; } else if (code==0x29) { noTone(pin);} // стоп else if (code==0x70) { sint = 1; kbd.write(0xED); kbd.write(0x04); // вкл Caps Led } else if (code==0x7C) { sint = 1; kbd.write(0xED); kbd.write(0x02); // вкл Caps Led } else if (code==0x71) { sint = 3; kbd.write(0xED); kbd.write(0x01); // вкл Ssroll Led } Serial.println(code, HEX); } void key() { code = kbd.read(); if (code==0xF0) { code = kbd.read(); code=0; } Serial.println(code, HEX); } void setup(){ // myOS.begin(); Serial.begin(9600); pinMode(9,OUTPUT); pinMode(8,OUTPUT); kbd_init(); sint = 0; kbd.write(0xED); kbd.write(0x02); // вкл Num Lock Led //myOS.addTask(key, 1000); } void loop() { //note_len = len*10000; key(); if ( sint == 0 ) { sintez1 ();} else if ( sint == 1 ) { sintez(); } else if ( sint == 3 ) { sintez2(); } } Собственно внутри этой проги 2 синтезатора - один простой на две октавы, второй сложнее и интереснее на 4 , переключение между ними по нажатию клавиш Home , Insert , Delete на клавиатуре. Код получился достаточно корявый , но работает ![]() Больше ничего не надо , я правда еще доставал из кладовки осциллограф для настройки фильтров ( считать их было лень ), но можно и на слух или вообще их не ставить ( правда звучек тогда будет еще тот ). У меня 2 фильтра на 8 и 9 пинах , если ставить один то либо басы хрюкают, либо 4-ую и 5-ую октаву сильно режет . Сообщение отредактировал kostyalamer - 13.6.2014, 10:00 |
|
|
![]()
Сообщение
#29
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
спасибо !
|
|
|
![]()
Сообщение
#30
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Получил вторую часть.
В системе usb 2-2: pl2303 converter now attached to ttyUSB0 |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 15.6.2025, 1:58 |