Arduino nano, сервомотор и джойстик |
Завалялась у меня arduino nano (качественный китайский клон от RobotDyn). А тут на днях так же из Китая пришли сервомотор и манипулятор, а так же нашлось время, чтобы немного разобраться с этим. Итак, цель у меня была простая: соединить arduino uno, сервомотор и джойстик, и заставить сервомотор поворачиваться при повороте джойстика. В практических целях это можно использовать, например, для управления поворотом камеры.
Как оказалось, это не так уж и сложно. Схема подключения следующая:
1. Arduino и сервомотор:
2. Arduino и джойстик:
Соединяем все наши чуда китайского производства, подключаем arduino к компьютеру, открываем Arduino IDE, заливаем скетч, указанный ниже. После загрузки скетча можно двигать манипулятором в стороны, сервомотор будет поворачиваться .
#include <Servo.h> //Библиотека для работы с сервомотором
int xPin = A1; //А1 - аналоговый сигнал Х координат джойстика
int yPin = A0; //А0 - аналоговый сигнал У координат джойстика
int buttonPin = 2; // Пин для режима кнопки (нажата или отпущена)
int xPosition = 0; // переменная для хранения текущей позиции джойстика по оси X
int yPosition = 0; // переменная для хранения текущей позиции джойстика по оси Y
int buttonState = 0; //текущее состояние кнопки (нажата)
int servoPin = 8; // пин для сигналов с сервомотора
Servo servo; // переменная типа Servo
int angle = 90; //стартовый угол поворота сервомотора
int currentXpos = 0; //Текущая позиция X
void setup() {
pinMode(xPin, INPUT); // Сигнал с xPin определяем как входной сигнал
pinMode(yPin, INPUT); // Сигнал с yPin определяем как входной сигнал
pinMode(buttonPin, INPUT_PULLUP); // активируем подтягивающий резистор на пине кнопки
servo.attach(servoPin); // присоединяем пин
servo.write(angle); // Поворачиваем сервомотор на 90 градусов
}
void loop() {
xPosition = analogRead(xPin); // читаем значение xPin
yPosition = analogRead(yPin); // читаем значение yPin
buttonState = digitalRead(buttonPin); // читаем 'состояние' кнопки
//если значение xPosition больше 360
if(xPosition > 360) {
angle = angle-10; // уменьшаем угол поворота на 10 градусов
// если угол меньше 0
if(angle < 0) {
angle = 0; //устанавливаем значение угла 0 градусов
}
}
//если xPosition меньше 300
if(xPosition < 300) {
angle = angle+10; // увеличиваем угол поворота сервомотора на 10 градусов
//если угол поворота больше 180 градусов
if(angle > 180) {
angle = 180; //устанавливаем значение угла в 180 градусов
}
}
// если нажата кнопка джойстика
if(buttonState == 0)
{
angle = 90; //устанавливаем угол в 90 градусов
}
servo.write(angle); // поворачиваем сервомотор на нужный угол
delay(50); // добавляем задержку между считыванием данных
}
При подключении джойстика к питанию 3.3V значение по умолчанию для X и Y позиций было 330 (при подключении к 5V значения могут быть другие), для проверки значений текущих показаний и я взял отклонение от начального значения в 30 единиц.
Отследить значения аналоговых сигналов можно с помощью монитора серийного порта (открыть его можно так: инструменты -> монитор порта или CTRL + SHIFT + M). Для этого в функции setup() необходимо написать следующее:
Serial.begin(9600); // инициализация обмена данными по серийному протоколу со скоростью 9600 bps
В функции loop() написать следующее:
Serial.print("X: ");
Serial.print(xPosition);
Serial.print(" | Y: ");
Serial.print(yPosition);
Serial.print(" | Button: ");
Serial.println(buttonState);
Итак, в данной статье рассмотрен процесс подключения сервомотора и джойстика к Arduino Uno, приведен пример скетча. В дальнейшем я планирую подключить второй сервомотор, чтобы польностью использовать возможности джойстика и осуществлять поворот по осям X и Y.
Оригинал статьи, а так же видео здесь http://dev58.ru/articles/arduino_nano_servomotor_i_joystick
Метки: стик arduino сервомотор джойстик |
Устройства серии Google Nexus |
Google Nexus - серия популярных мобильных устройств, функционирующих на операционной системе Android. Данную серию выпускала всем известная корпорация Google в сотрудничестве с несколькими топовыми производителями мобильных устройств. Продукты линейки Google Nexus делятся на три типа: смартфоны, планшеты и медиа-устройства.
Первым девайсом из этой линейки был смартфон Nexus One, который был презентован 5 января 2010 года, тогда же и начались его продажи. Производителем смартфона является компания HTC. Это был первый аппарат, работающий на операционной системе Android 2.1. Уже 28 июня девайс получил обновление до Android 2.2, а в феврале 2011 года до Android 2.3.3. Технические характеристики Nexus One следующие:
11 октября 2011 был анонсирован смартфон Galaxy Nexus, производителем которого так же является компания Samsung. Galaxy Nexus является первым смартфоном, работавшим на операционной системе Android 4.0 (Ice Cream Sandwich). Позже данная модель получила обновление до версии Android 4.3. Характеристики Galaxy Nexus:
Следующий в этом списке - культовый планшет Nexus 7, разработанный Google в сотрудничестве с компанией ASUS. Дата выпуска планшета - 2 июля 2012 года. Nexus 7 получил положительные отзывы от критиков. Он оказался коммерчески успешным для Asus, которая продала 4,5-4,6 млн единиц данного планшета в 2012 году. Характеристики Nexus 7 следующие:
Смартфон Nexus 4 был представлен 29 октября 2012 года, его продажи начались 13 ноября 2012 года. Nexus 4 был разработан совместно с компанией LG Electronics. Стоит отметить, что магазин Play Store, в котором было эксклюзивное начало продаж, распродал все находившиеся в наличии смартфоны в первые часы продаж. Смартфон Nexus 4 обладает следующими характеристиками:
Одновременно со смартфоном Nexus 4 был представлен планшет Samsung Nexus 10. Данный планшет, как уже понятно из названия, был выпущен в партнёрстве с компанией Samsung и функционировал под управлением операционной системы Android 4.2 Jelly Bean. Характеристики Samsung nexus 10:
В июле 2013 года начались продажи планшета Nexus 7 2013. Данный планшет серьезно отличался от предыдущей версии в плане характеристик: 7.02-дюймовый экран с разрешением 1920x1200 (323 ppi), процессор Qualcomm Snapdragon APQ8064 1500 МГц, графический процессорAdreno 320, работающий на частоте 400МГц, 2 ГБ оперативной памяти, а также 16 или 32 ГБ внутренней памяти. Также у планшета имеется версия с модулем 4G LTE.
Многие считают, что Nexus 7 2013 является лучшим 7-дюймовым планшетом на рынке и отмечали его улучшенность по сравнению с предшественником.
Nexus 5 (LG Nexus 5, Google Nexus 5) - флагманский смартфон, разработанный Google совместно с LG, его официальный анонс состоялся 31 октября 2013 года. Это был первый смартфон, работающий на операционной системе Android версии 4.4 KitKat. Nexus 5 отличался качественным дисплеем диагональю 4,96 дюйма (12,6 сантиметра) защищены специальным стеклом Corning Gorilla Glass 3. Характеристики Google Nexus 5 на тот момент были впечатляющими:
Следующим девайсом линейки был так назваемый интернет-планшет Nexus 9. Данный планшет был разработан совместно с компанией HTC. Планшет Nexus 9 был анонсирован 15 октября 2014 года, а в продажу поступил 3 ноября того же года. Аппарат оличается нетипичным для Android планшетовсоотношением сторон экрана: 4x3. Nexus 9 - четвертый и последний планшет линейки Nexus. Технические характеристики Nexus 9:
Одновременно с планшетом Nexus 9 был анонсирован телефон Nexus 6. Данный смартфон корпорация Google разрабатывала совместно с Motorola. Nexus 6 относится к так назваемым фаблетам (устройства, имеющие сенсорный экран, размер которого находится между размером типичного смартфона и планшетного компьютера: от 5,5 дюймов до 6,9 дюймов). В данном девайсе следуют отметить хорошую 13-мегапиксельную основную камеру, способную снимать 4K-видео. По характеристикам Nexus 6 не уступает и более новым моделям смартфонов:
29 сентября 2015 года был анонсирован смартфон Nexus 5X. Этот смартфон был разработан совместно с компанией LG Electronics. Nexus 5X был первым смартфоном, работающим на операционной системе Android 6. Характеристики Nexus 5X следующие:
Вместе с Nexus 5X был анонсирован смартфон Nexus 6P, разработанный совместно с компанией Huawei. Данный смартфон отличается 8-ми ядерным процессором и 3 гигабайтами оперативной памяти LPDD4. Характеристики Nexus 6P следующие:
К сожалению, Nexus 5X и Nexus 6P - последние устройства этой популярной линейки гаджетов.
Так же в линейке Nexus присутствуют так называемые медийные устройства: Nexus Q (проект был закрыт) и Nexus Player - потоковый медиа-проигрыватель, разработанный Google совместно с ASUS. Nexus Player - первое устройство, использующее Android TV, анонсировано 15 октября 2014 года. Использует 4-ядерный Intel Atom процессор на 1.8 ГГц, графический ускоритель Imagination PowerVR серии 6, сеть WiFi 802.11ac 2x2 (MIMO), имеет HDMI выход и Micro USB 2.0 типа B, поддерживает платформу Google Cast.
Статья отсюда http:// http://dev58.ru/articles/ustrojstva_serii_google_nexus
Метки: google nexus nexus 5 nexus 9 nexus 6 |
Yii2 настройка отправки e-mail с использованием почтового аккаунта |
Чтобы отправлять e-mail письма с существующего аккаунта (mail, google, yandex) при использовании php фреймворка Yii2 необходимо скорректировать файл config/web.php следующим образом:
$config = [
'id' => 'basic',
'name' => 'My Site Name',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'language' => 'ru-RU',
'components' => [
//...
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com', // SMTP сервер почтовика
'username' => '<username>@gmail.com', // Логин (адрес электронной почты)
'password' => '<password>', // Пароль
'port' => '587', // Порт
'encryption' => 'tls', // Шифрование
],
],
//...
],
];
Параметры настроек (SMTP сервер, порт, шифрование необходимо уточнить у почтовика).
Код отправки электронной почты выглядит например так:
\Yii::$app->mailer->compose()
->setFrom('from@domain.com')
->setReplyTo('from@domain.com')
->setTo('to@domain.com')
->setSubject('Message subject')
->setTextBody('Plain text content')
->setHtmlBody('<b>HTML content</b>')
->send();
Статья взята отсюда: http://dev58.ru/articles/yii2_nastrojka_otpravki_e_mail_s_ispolzovaniem_pochtovogo_akkaunta
Метки: yii2 yii2 email setting yii2 настройка smtp |
Дневник dev58 |
|
Страницы: [1] Календарь |