- Добавляем основной код
- Основная активность, сопряжение arduino и android
- Bluetooth в arduino проектах
- Htc one: управление камерой с помощью bluetooth-гарнитуры
- Беспроводное программирование arduino через bluetooth
- Заготовка
- Как получить доступ к камере через bluetooth? oh! android
- Какие самые лучшие модули подключения bluetooth, которые мы можем использовать?
- Каковы преимущества использования bluetooth-соединений с arduino?
- Команды для настройки модуля hc-05
- Метод loop() и дополнительные функции
- Миниатюрный bt-пульт для камеры смартфона / 2023 hottest 10m camera shutter for smart phone android and ios
- Модуль bluefruit ez-key
- Модуль hc-05 и hc-06
- Монтажная схема arduino для программирования bluetooth
- Настройка модуля hc-05 для беспроводного программирования arduino через bluetooth
- Настройка оборудования
- Немного теории
- Необходимые материалы
- Подключение к устройству
- Подключение через wi-fi
- Пошагово узнайте, как подключить свой проект arduino к bluetooth и синхронизировать его с другими устройствами.
- Проводное подключение
- Сравнение модулей bluetooth hc 05 и hc 06
- Умный холодильник
Добавляем основной код
Пришла пора вдохнуть жизнь в наше приложение. Открываем файл MainActivity.java
(src → ru.amperka.arduinobtled). Изначально он содержит следующий код:
- MainActivityAutogen.java
packageru.amperka.arduinobtled; importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu; publicclass MainActivity extends Activity { @Override protectedvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);} @Override publicboolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);returntrue;} }
Дополним код в соответствии с тем, что нам нужно:
Будем включать Bluetooth, если он выключен.
Будем обрабатывать нажатия на кнопки
Будем посылать информацию о том, какая кнопка была нажата.
Передавать на Arduino мы будем один байт с двузначным числом. Первая цифра числа — номер пина, к которому подключен тот или иной светодиод, вторая — состояние светодиода: 1 — включен, 0 — выключен.
Число-команда, рассчитывается очень просто:
Если нажата красная кнопка, то берется число 60 (для красного светодиода мы выбрали 6-й пин Arduino) и к нему прибавляется 1 или 0 в зависимости от того, должен ли сейчас гореть светодиод или нет. Для зеленой кнопки всё аналогично, только вместо 60 берется 70 (поскольку зеленый светодиод подключен к 7 пину).
В итоге, в нашем случае, возможны 4 команды: 60, 61, 70, 71.
Напишем код, который реализует всё сказанное.
- MainActivity.java
packageru.amperka.arduinobtled; importjava.io.IOException;importjava.io.OutputStream;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method; importandroid.app.Activity;importandroid.bluetooth.BluetoothAdapter;importandroid.bluetooth.BluetoothDevice;importandroid.bluetooth.BluetoothSocket;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Toast;importandroid.widget.ToggleButton; publicclass MainActivity extends Activity implementsView.OnClickListener{ //Экземпляры классов наших кнопок ToggleButton redButton; ToggleButton greenButton; //Сокет, с помощью которого мы будем отправлять данные на Arduino BluetoothSocket clientSocket; //Эта функция запускается автоматически при запуске приложения @Override protectedvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //"Соединям" вид кнопки в окне приложения с реализацией redButton =(ToggleButton) findViewById(R.id.toggleRedLed); greenButton =(ToggleButton) findViewById(R.id.toggleGreenLed); //Добавлем "слушатель нажатий" к кнопке redButton.setOnClickListener(this); greenButton.setOnClickListener(this); //Включаем bluetooth. Если он уже включен, то ничего не произойдетString enableBT = BluetoothAdapter.ACTION_REQUEST_ENABLE; startActivityForResult(new Intent(enableBT), 0); //Мы хотим использовать тот bluetooth-адаптер, который задается по умолчанию BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); //Пытаемся проделать эти действияtry{//Устройство с данным адресом - наш Bluetooth Bee//Адрес опредеяется следующим образом: установите соединение//между ПК и модулем (пин: 1234), а затем посмотрите в настройках//соединения адрес модуля. Скорее всего он будет аналогичным. BluetoothDevice device = bluetooth.getRemoteDevice("00:13:02:01:00:09"); //Инициируем соединение с устройствомMethod m = device.getClass().getMethod("createRfcommSocket", newClass[]{int.class}); clientSocket =(BluetoothSocket) m.invoke(device, 1); clientSocket.connect(); //В случае появления любых ошибок, выводим в лог сообщение}catch(IOException e){ Log.d("BLUETOOTH", e.getMessage());}catch(SecurityException e){ Log.d("BLUETOOTH", e.getMessage());}catch(NoSuchMethodException e){ Log.d("BLUETOOTH", e.getMessage());}catch(IllegalArgumentException e){ Log.d("BLUETOOTH", e.getMessage());}catch(IllegalAccessException e){ Log.d("BLUETOOTH", e.getMessage());}catch(InvocationTargetException e){ Log.d("BLUETOOTH", e.getMessage());} //Выводим сообщение об успешном подключении Toast.makeText(getApplicationContext(), "CONNECTED", Toast.LENGTH_LONG).show(); } @Override publicboolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);returntrue;} //Как раз эта функция и будет вызываться @Override publicvoid onClick(View v){ //Пытаемся послать данныеtry{//Получаем выходной поток для передачи данныхOutputStream outStream = clientSocket.getOutputStream(); int value =0; //В зависимости от того, какая кнопка была нажата, //изменяем данные для посылкиif(v == redButton){ value =(redButton.isChecked()?1:0) 60;}elseif(v == greenButton){ value =(greenButton.isChecked()?1:0) 70;} //Пишем данные в выходной поток outStream.write(value); }catch(IOException e){//Если есть ошибки, выводим их в лог Log.d("BLUETOOTH", e.getMessage());}}}
Основная активность, сопряжение arduino и android
Наследуем класс от AppCompatActivity и объявляем переменные:
public class MainActivity extends AppCompatActivity {
private BluetoothAdapter bluetoothAdapter;
private ListView listView;
private ArrayList<String> pairedDeviceArrayList;
private ArrayAdapter<String> pairedDeviceAdapter;
public static BluetoothSocket clientSocket;
private Button buttonStartControl;
}
Метод onCreate() опишу построчно:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //обязательная строчка
//прикрепляем ранее созданную разметку
setContentView(R.layout.activity_main);
//цепляем кнопку из разметки
Button buttonStartFind = (Button) findViewById(R.id.button_start_find);
//цепляем layout, в котором будут отображаться найденные устройства
listView = (ListView) findViewById(R.id.list_device);
//устанавливаем действие на клик
buttonStartFind.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//если разрешения получены (функция ниже)
if(permissionGranted()) {
//адаптер для управления блютузом
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(bluetoothEnabled()) { //если блютуз включен (функция ниже)
findArduino(); //начать поиск устройства (функция ниже)
}
}
}
});
//цепляем кнопку для перехода к управлению
buttonStartControl = (Button) findViewById(R.id.button_start_control);
buttonStartControl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//объект для запуска новых активностей
Intent intent = new Intent();
//связываем с активностью управления
intent.setClass(getApplicationContext(), ActivityControl.class);
//закрыть эту активность, открыть экран управления
startActivity(intent);
}
});
}
Нижеприведенные функции проверяют, получено ли разрешение на использование блютуза (без разрешение пользователя мы не сможем передавать данные) и включен ли блютуз:
Bluetooth в arduino проектах
Нередко в проектах возникает необходимость дистанционного управления или передачи данных с телефона или другого устройства. Одним из самых популярных и удобных способов является обмен данных через Bluetooth. Для связи платы Ардуино и компьютера используется интерфейс UART (Serial).
Самыми популярными модулями являются устройства на основе чипа BC417. Эта серия называется HC. Модули HC-03 и HC-05 могут быть и сервером соединения, и клиентом, они обладают широким набором АТ команд.
Для подключения к ПК потребуются модуль Bluetooth, плата Ардуино, соединительные провода и компьютер. Скетч для управления платой Ардуино через смартфон и компьютер будет одинаковым, так как в обоих случаях данные в микроконтроллер буду поступать по протоколу UART.
При загрузке скетча нужно отключить Bluetooth-модуль, иначе будет появляться ошибка доступа к Ардуино. Также нужно установить на смартфон или планшет, поддерживающий ОС Android, приложение для отправки данных на модуль. После установки приложения нужно загрузить скетч и подключить модуль к плате Ардуино. Пример кода мигания светодиода:
int val; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход } void loop() { if (Serial.available()) // проверка поданных команд { val = Serial.read(); if (val == '1') {digitalWrite(13, HIGH);} // при 1 включается светодиод if (val == '0') {digitalWrite(13, LOW);} // при 0 выключается светодиод } }
Теперь нужно настроить соединение телефона и модуля. Для установки соединения нужно зайти в настройки телефона и включить Bluetooth. Как только устройство будет найдено, нужно ввести пароль – обычно это «1234» или «0000». После этого нужно зайти в приложение, нажать на кнопку «подключить Bluetooth» и выбрать нужное устройство. При успешном сопряжении на модуле светодиод начнет мигать медленнее, примерно 1 раз в 2 секунды.
В скетче светодиод включается и выключается при получении цифр «1» и «0». Кроме цифр также можно использовать буквы латинского алфавита с учетом регистра.
Аналогичным образом можно подключаться к модулю при помощи компьютера. Для этого существуют различные программы, которые подключатся к COM-порту. При запуске программы запрашивают номер порта, скорость и тип подключения. При успешном подключении на экране появится поле терминала, в которое нужно ввести с клавиатуры цифры/буквы, включающие светодиод.
Htc one: управление камерой с помощью bluetooth-гарнитуры
На презентации новой линейки One много говорилось о великолепных возможностях новых смартфонов. Особое внимание уделялось технологии улучшения звука Beats и новому модулю камеры с чипом Image Sense. Новая камера, по заявлению Питера Чоу, фотографирует быстрее и лучше того, что может предложить главный конкурент – iPhone 4S. Особенно разница заметна в снимках при тусклом освещении, хотя у обеих камер есть BSI-подсветка матрицы. Удивительно, но у камеры от HTC есть и некоторые недокументированные функции, о которых, возможно, не знают и инженеры компании.
На страницах китайского портала ePrice появилась информация о том, что новая фирменная камера HTC, которая применяется во всех смартфонах серии One, поддерживает удаленное управление с помощью подключенной к смартфону Bluetooth-гарнитуры. На примере One X было показано, что при множественном нажатии на некоторые клавиши у камеры срабатывает “спуск”. Интересно, что у разных гарнитур нажимаемые клавиши отличаются. Например, для снимка с помощью подключенной гарнитуры iTech нужно нажать на кнопку повышения громкости дважды. А вот Plantronics и Jabra запускают съемку при тройном нажатии на клавишу приема вызова.
Интересно, что данная функция работает далеко не со всеми гарнитурами, а то, что для ее использования нужно нажимать различные сочетания клавиш говорит о том, что она вряд ли документирована. Сначала стало известно, что подобное удаленное управление работает на флагмане линейки, но владельцы HTC One S подтвердили доступность указанной функции и на своих смартфонах.
Как можно использовать такую функцию? Любители скрытой съемки найдут данную возможность более чем интересной. Однозначно понравится она и тем, кто ходит с гарнитурой и хочет снять себя в компании с кем-то, а в настройках разбираться сложно. Впрочем, данная функция является своеобразной подсказкой для компании HTC о возможности выпуска пульта в качестве дополнительного аксессуара к уже имеющемуся штативу.
Беспроводное программирование arduino через bluetooth
один раз настроенный модуль и схема смонтирована , следующее, что нужно сделать, это беспроводное программирование Arduino через Bluetooth .
На этом этапе предполагается, что Модуль HC-05 уже был в паре с компьютером .
Таким образом, вам придется пройти процесс сопряжения, и таким же образом есть последовательный порт через Блютуз где он правильно отображается в диспетчере устройств. Процедура сопряжение устройства Bluetooth варьируется в зависимости от операционной системы.
Там виртуальные последовательные порты должны отображаться правильно, как это видно на изображении, которое мы представляем ниже:
- Следующее, что нужно будет открыть IDE Arduino и там вам нужно выбрать новый последовательный порт, который был создан, когда HC-05 имеет был связан с компьютером.
Загрузка программы должна продолжаться обычным образом до тех пор, пока программа не будет запущена. код, загруженный на Arduino начинать . Теперь, если возникает ошибка, возможно, это связано с тем, что был подключен плохой сигнал или полярность статусный пин не было выполнено правильно в конфигурации .
Если по какой-то причине эскиз не может быть сохранен в Arduino , тогда необходимо будет испытать емкость конденсатора , очень хорошей идеей для этого является увеличение его значения до тех пор, пока оно не будет гарантировать, что Arduino сбрасывается правильно при открытии последовательного порта на Блютуз , в этом случае рекомендуемые значения От 100 нФ до 1 мкФ .
Заготовка
Разработка для ОС Android ведется в среде разработки ADT, Android Development Tools. Которую можно скачать с портала Google для разработчиков.
После скачивания и установке ADT, смело его запускаем. Однако, еще рано приступать к разработке приложения. Надо еще скачать Android SDK нужной версии. Для этого необходимо открыть Android SDK Manager «Window → Android SDK Manager». В списке необходимо выбрать нужный нам SDK, в нашем случае Android 2.3.3 (API 10). Если телефона нет, то выбирайте 2.3.3 или выше; а если есть — версию, совпадающую с версией ОС телефона. Затем нажимаем на кнопку «Install Packages», чтобы запустить процесс установки.
После завершения скачивания и установки мы начинаем создавать приложение. Выбираем «File → New → Android Application Project». Заполним содержимое окна так, как показано на рисунке.
В выпадающих списках «Minimum Required SDK», «Target SDK», «Compile With» выбираем ту версию, которую мы скачали ранее.
Более новые версии SDK поддерживают графические темы для приложений, а старые нет. Поэтому в поле «Theme» выбираем «None».
Нажимаем «Next».
Снимаем галочку с «Create custom launcher icon»: в рамках данной статьи не будем заострять внимание на создании иконки приложения. Нажимаем «Next».
В появившемся окне можно выбрать вид «Activity»: вид того, что будет на экране, когда будет запущено приложение. Выбираем «Blank activity», что означает, что мы хотим начать всё с чистого листа. Нажимаем «Next».
В нашем приложении будет всего одно Activity, поэтому в появившемся окне можно ничего не менять. Поэтому просто жмем на «Finish».
Все, наше приложение создано.
Как получить доступ к камере через bluetooth? oh! android
Короткий ответ:
Таким образом, вы не можете получить прямой экземпляр. То есть вы не получите объект камеры, который вы сможете использовать нормально. Вместо этого вам придется подделать его на справедливую сумму.
Длительный ответ:
Вам нужно будет установить связь между клиентом и хостом bluetooth между двумя устройствами. После того, как вы это сделали, вы настроите его как «контрольный» аспект этих отношений, а другой – как камеру. Мы будем называть их 1 и 2.
1 будет иметь пользовательский интерфейс (возьмите кнопку изображения и т. Д.). При нажатии кнопки команда будет перемещаться по линии до 2.
2 затем выполнит запрос команды и передаст некоторые данные обратно в 1.
В случае съемки:
Пользовательские нажатия снимают кнопку изображения в 1. 1 Отправляет команду «взять снимок» на 2. 2, затем использует эту команду, чтобы сделать фотографию согласно вашей инструкции. 2 затем отправляет результат файла этого изображения поверх Bluetooth.
Для выполнения предварительного просмотра изображения – это то, что изображение до того, как вы на самом деле щелкнете «захват» – я не думаю, что у вас будет много удачи. Вы можете сделать это в соответствии с приведенным выше шаблоном, но я сомневаюсь, что это будет гладкий опыт.
РЕДАКТИРОВАТЬ:
После некоторого обсуждения с Алексом в комментариях, и некоторые думают об этом, у меня есть несколько идей для предварительного просмотра.
проблемы:
Если вы можете получить около 10-15 кадров в секунду от 2 до 1, вы можете получить предварительный просмотр. В зависимости от ваших потребностей / использования еще менее возможно.
Вам необходимо реализовать
Camera.PreviewCallback: onPreviewFrame(byte[] data, Camera camera); :
http://developer.android.com/reference/android/hardware/Camera.PreviewCallback.html#onPreviewFrame (byte [], android.hardware.Camera) и зарегистрируйте свой обратный вызов с помощью
камера
setPreviewCallback(Camera.PreviewCallback cb)
Вам нужно понизить размер (вероятно, я не уверен в размерах того, что предусмотрено в onPreviewFrame), чтобы поддерживать низкий размер контента.
4) Отправить.
Я не совсем уверен, что это сработает, поскольку я не проверял его, но это самый простой маршрут, который я вижу.
Другой вариант:
Пойдите в JNI и обработайте все это там. Вы почти наверняка могли бы сделать эту работу на таком уровне с точки зрения скорости. У меня есть смутные идеи о том, как это сделать, но это будет довольно существенное мероприятие.
Какие самые лучшие модули подключения bluetooth, которые мы можем использовать?
Одно из преимуществ возможности работать с Arduino в том, что он предлагает возможность создавать соединения с другими устройствами без кабелей , для этого он предлагает возможность сделать это через модули bluetooth , это позволит вам включить их в каждый из ваши проекты электроники и робототехники и таким образом получить лучшие результаты.
Вот как мы вам покажем какие модули подключения bluetooth самые лучшие что вы можете начать использовать на платформа Arduino.
Для этого следуйте списку, который мы вам покажем ниже:
Каковы преимущества использования bluetooth-соединений с arduino?
Без сомнения, возможность использовать это тип подключения в ваших проектах Arduino принесет вам определенные преимущества, главным образом потому, что это дает вам гораздо больше возможностей, когда создание и программирование .
Вот как мы собираемся показать вам основные преимущества, которые все это дает вам:
- Облегчает общение между мобильные компьютеры.
- Позволяет разрабатывать электронные проекты которым вы можете управлять с помощью своего мобильного устройства.
- ликвидировать любой подключение de кабель и разъемы .
- Это позволяет создавать маленький беспроводные сети и облегчить la синхронизация данные между персональные компьютеры.
- Это становится вариантом дополнительно для программисты Arduino и разработчики Projets .
- Bluetooth интегрирован в целом технологические устройства сегодня это позволит вам подключи свой проект Arduino с любым технологическим устройством, которое у вас под рукой.
Команды для настройки модуля hc-05
Также важно, чтобы вы приняли во внимание ряд очень важных команд для настройки в HC-05, которые мы покажем вам ниже:
- AT ORGL
- AT роль = 0
- AT POLAR = 1,0
- AT UART=115200,0,0,0
- АТ ИНИТ
Теперь построчно нужно выполнить следующие шаги для его настройки:
- Первое, что нужно сделать является восстановить заводские настройки .
- Теперь вам нужно его настроить en рабский режим , для этого он устанавливает прозрачный последовательный мост от ПК.
- Установите полярность от контакт 32 помечен как Состояние на модуле HC-05, от чтобы он стал слабым при подключении устройства к модулю.
- Следующее делать будет соответствовать скорость передачи à скорость загрузчика.
- Наконец-то ты должен бросить режим конфигурации и начать нормальную работу модуля HC-05 .
Метод loop() и дополнительные функции
В постоянно повторяющемся методе loop() происходит считывание данных. Сначала рассмотрим основной алгоритм, а потом функции, задействованные в нем.
void loop() {
//если хоть несчитанные байты
if(BTSerial.available() > 0) {
//считываем последний несчитанный байт
char a = BTSerial.read();
if (a == '@') {
//если он равен @ (случайно выбранный мною символ)
//обнуляем переменную val
val = "";
//указываем, что сейчас считаем скорость
readSpeed = true;
} else if (readSpeed) {
//если пора считывать скорость и байт не равен решетке
//добавляем байт к val
if(a == '#') {
//если байт равен решетке, данные о скорости кончились
//выводим в монитор порта для отладки
Serial.println(val);
//указываем, что скорость больше не считываем
readSpeed = false;
//передаем полученную скорость в функцию езды
go(val.toInt());
//обнуляем val
val = "";
//выходим из цикла, чтобы считать следующий байт
return;
}
val =a;
} else if (a == '*') {
//начинаем считывать угол поворота
readAngle = true;
} else if (readAngle) {
//если решетка, то заканчиваем считывать угол
//пока не решетка, добавляем значение к val
if(a == '#') {
Serial.println(val);
Serial.println("-----");
readAngle = false;
//передаем значение в функцию поворота
turn(val.toInt());
val= "";
return;
}
val =a;
}
//получаем время последнего приема данных
lastTakeInformation = millis();
} else {
//если несчитанных байтов нет, и их не было больше 150 миллисекунд
//глушим двигатели
if(millis() - lastTakeInformation > 150) {
lastTakeInformation = 0;
analogWrite(angleSpeed, 0);
analogWrite(speedRight, 0);
analogWrite(speedLeft, 0);
}
}
}
Получаем результат: с телефона отправляем байты в стиле “@скорость#угол#” (например, типичная команда “@200#60#”. Данный цикл повторяется каждый 100 миллисекунд, так как на андроиде мы установили именно этот промежуток отправки команд. Короче делать нет смысла, так как они начнут становится в очередь, а если сделать длиннее, то колеса начнут двигаться рывками.
Все задержки через команду delay(), которые вы увидите далее, подобраны не через физико-математические вычисления, а опытным путем. Благодаря всем выставленным задрежам, машинка едет плавно, и у всех команд есть время на отработку (токи успевают пробежаться).
В цикле используются две побочные функции, они принимают полученные данные и заставляют машинку ехать и крутится.
void go(int mySpeed) {
//если скорость больше 0
if(mySpeed > 0) {
//едем вперед
digitalWrite(dirRight, HIGH);
analogWrite(speedRight, mySpeed);
digitalWrite(dirLeft, HIGH);
analogWrite(speedLeft, mySpeed);
} else {
//а если меньше 0, то назад
digitalWrite(dirRight, LOW);
analogWrite(speedRight, abs(mySpeed) 30);
digitalWrite(dirLeft, LOW);
analogWrite(speedLeft, abs(mySpeed) 30);
}
delay(10);
}
void turn(int angle) {
//подаем ток на плюс определителя угла
digitalWrite(pinAngleStop, HIGH);
//даем задержку, чтобы ток успел установиться
delay(5);
//если угол 150 и больше, поворачиваем вправо
//если 30 и меньше, то влево
//промежуток от 31 до 149 оставляем для движения прямо
if(angle > 149) {
//если замкнут белый, но разомкнуты черный и красный
//значит достигнуто крайнее положение, дальше крутить нельзя
//выходим из функции через return
if( digitalRead(pinWhite) == HIGH && digitalRead(pinBlack) == LOW && digitalRead(pinRed) == LOW) {
return;
}
//если проверка на максимальный угол пройдена
//крутим колеса
digitalWrite(angleDirection, HIGH);
analogWrite(angleSpeed, speedTurn);
} else if (angle < 31) {
if(digitalRead(pinRed) == HIGH && digitalRead(pinBlack) == HIGH && digitalRead(pinWhite) == HIGH) {
return;
}
digitalWrite(angleDirection, LOW);
analogWrite(angleSpeed, speedTurn);
}
//убираем питание
digitalWrite(pinAngleStop, LOW);
delay(5);
}
Поворачивать, когда андроид отправляет данные о том, что пользователь зажал угол 60, 90, 120, не стоит, иначе не сможете ехать прямо. Да, возможно сразу не стоило отправлять с андроида команду на поворот, если угол слишком мал, но это как-то коряво на мой взгляд.
Миниатюрный bt-пульт для камеры смартфона / 2023 hottest 10m camera shutter for smart phone android and ios
Доброго дня!
Сегодня на почте получил сразу несколько пакетов, и в одном из них были вот такие «штучки».
Это — универсальный bluetooth-пульт для смартфонов, в первую очередь позиционируемый как пульт дистанционного управления камерой смартфона («спуск»/zoom).
Кратко: пульт работает, есть «нюансы по кузову».
Подробности по cut’ом.
Я приобрёл «на пробу» два устройства разного цвета (чёрного и зелёного), пришли они в стандартном пакете, каждое было упаковано в коробочку:
В комлекте только само устройство, и инструкция.
Качество исполнения среднее: при довольно качественном материале корпуса (пластмассе) на поверхности видны царапины, на зелёном — длинные параллельные поперечные, на чёрном — мелкие (как будто валялись в коробке с другими без упаковки, как, видимо, и было), да еще и отпечаток пальца:
Кнопки резиновые, верх покрыт глянцевый прозрачным (лаком? силиконом?), делающим «антискользящее покрытие», на них нанесёно изображение камеры и надписи: на несколько меньшей — «Android», на большей — iOS. Однако, как гласит инструкция, в Android с «неродной» камерой (в инструкции указана «Camera360») можно использовать и бóльшую кнопку.
Сбоку есть механический выключатель (на корпусе шелкографией подписано «On» и «Off»), спереди над кнопками — синий светодиод (со световодом), указывающий режим работы.
Включенное устройство находится телефоном как «A Shutter 3», подключается без PIN-кода:
Как видим, Android советует использовать родную клавиатуру («системную») для работы bluetooth-клавиатуры, но работает и с практически любой другой. При этом нажатие на кнопку «Android» воспринимается как нажатие кнопки «Enter» (с соответствующей реакцией в любом приложении), а нажатие на «iOS» — «Громкость ». Вот, собственно, и вся разница. Соответственно, приложения-камеры, умеющие делать снимок по нажатию кнопки «Громкость » (как рекомендованное производителем приложение «Camera360»), будут работать и с «неродной» кнопкой.
Нажатие же в «штатном» камере кнопки «iOS» («Громкость ») увеличивает зум.
А вот для уменьшения зума (вернее, для «штатного» управления им) нужно нажать и удерживать кнопку «iOS» три секунды (светодиод мигнёт три раза), после чего зум уменьшаться будет кнопка «Android», а увеличивать — по-прежнему «iOS». Выход в основной режим — таким же нажатием.
Само фотографирование отличается только тем, что нельзя (не прикасаясь к экрану) навести фокус на произвольную точку, в остальном всё так же, как и при нажатии «кнопки» камеры: фокусировка, снимок.
В любых других приложениях нажатия кнопок в зависимости от режима воспринимаются как «Enter», «Громкость », «Громкость-». Кнопка «Android» («Enter») умеет «будить» смартфон и разблокировать (после включения экрана по второму нажатию) его (если стоит режим разблокировки «Провести по экрану»).
Питается устройство от одной батарейки CR-2032 (в комплекте), которая размещается за сдвижной крышкой. По словам производителя, одной батарейки хватает на «about 6 months under working in 10 times a day», т. е. «на 6 месяцев при 10 срабатываниях в день», что, конечно, очень условно.
Размеры: 46 мм x 28 мм x 10 мм
Вес: «около 8 г» (из инструкции)
Протокол: Bluetooth 3.0
Корпус «брелка» собран на защёлках, разобрать мне удалось вообще без инструмента. Фото внутренностей под спойлером.
Вот, собственно, и всё, что можно сказать про эти безделицы.
В хозяйстве пригодятся. 🙂 А как подарок не пойдут из-за дефектов корпуса.
Модуль bluefruit ez-key
Блюфрут EZ-Key используется для создания того, что из контроллеры клавиатуры беспроводной именно поэтому этот модуль считается довольно быстрым и простым в обращении.
Он также имеет в общей сложности 12 входных контактов , нажатие одной из его кнопок автоматически отправит набор текста на компьютере .
Таким образом, Блюфрут EZ-Key стал идеальным вариантом для всех проекты arduino где нужна клавиатура.
Модуль hc-05 и hc-06
Оба модули bluetooth которые можно использовать для коммуникации различных проектов Arduino с этим беспроводное соединение , по сути, это два наиболее часто используемых модуля для этого вида деятельности.
В настоящее время большинство людей думают, что этот тип подключение устаревшая технология , но правда в том, что благодаря ему можно разработать множество очень важных действий и действий.
Необходимо учитывать, что в случае Модуль HC-06, он ведет себя как подчиненное устройство, то есть постоянно ждет запросов на соединение. Следовательно, если устройство подключено, модуль HC-06 ему передает все данные, полученные от Ардуино и наоборот .
Также следует отметить, что HC-06 работает как ведомый, а HC-05 как ведущий и ведомый , в этом случае HC-05 имеет в общей сложности 6 контактов, в то время как HC-06 имеет всего 4 контакта .
Монтажная схема arduino для программирования bluetooth
На этом этапе необходимо подключите контакты TX и RX Bluetooth к Контакты Arduino RX и TX соответственно , имейте в виду, что они пересекаются.
В случае контакта статуса Bluetooth, он будет работать как сброс и должен быть подключен к пин сброса arduino через керамический конденсатор емкостью 100 нФ.
В этом случае резисторы, показанные на схеме, должны уменьшить напряжение вывода TX (выход 5 вольт) Arduino к чему-то близкому 3,3 вольта, это наиболее логичный уровень, поддерживаемый Модуль Bluetooth .
В этом случае соединения должны быть такими, как показано на следующем изображении:
- Когда цепь уже поставлена на охрану, это можно увидеть на экране следующим образом. модель.
- После этого, материал готов попробовать выполнить Программирование Arduino через bluetooth .
Настройка модуля hc-05 для беспроводного программирования arduino через bluetooth
Следует иметь в виду, что до того, как этот модуль начнет функционировать как программист arduino , вам необходимо настроить его так, чтобы он вел себя так, как вы хотите.
Для этого важно, чтобы HC-05 имел следующие параметры:
- Для Arduino Uno с Optiboot: UART установлен на 115200 бод, 8 бит, 1 стоповый бит, без остановки.
- Чтобы Arduino Duemilanove/Diecimila: UART установлен на 56700 бод, 8 бит, 1 стоповый бит, без остановки.
- Определяет полярность из переворотом от брошь для правильной полярности.
Настройка оборудования
Чтобы использовать модуль HC05, просто подключите VCC к выходу 5V на выводе Arduino, GND to Ground, RX to TX Arduino и наоборот. (Примечание редактора: Вывод RX официально не поддерживается на 5 В, он рассчитан на сигналы 3, 3 В. Arduino генерирует сигнал 5 В, поэтому вы должны использовать делитель напряжения или логический уровень, чтобы гарантировать, что сигнал Arduino не повредите HC05.)
Если вы используете модуль BTBee со щитом, установите перемычки на доске, чтобы штырьки DOUT и D0 были закорочены, а штифты DIN и D1 закорочены. Это делается потому, что вывод RX на Arduino – Pin 0, а вывод TX – Pin 1. Вы можете использовать любые другие контакты в качестве RX и TX Pins, но вам нужно будет использовать SoftwareSerial Library of Arduino для включения что.
Подключение модуля HC05
Перемычка, подключенная к контактам 0 и 1 на шине BTBee
Если модуль используется в первый раз, вам нужно будет изменить имя, пароль и т. Д. Для этого модуль должен быть установлен в режим команд. Подключите контактный штырь к любому контакту на Arduino и установите его на высокий, чтобы модуль запрограммировался.
Если вы используете BTBee, это немного сложно. В то время как официальная вики говорит, что кнопка режима должна удерживаться, чтобы изменить ее в командном режиме, и отпустите ее, она вернется в режим данных, это происходит не так: вместо этого удерживайте кнопку «Режим», затем быстро нажмите и отпустите Кнопка сброса. Вы заметите, что индикатор состояния мигает медленнее, чем обычно.
Для программирования модуля используется набор команд, известных как AT-команды. Вот некоторые из них:
В | Проверьте состояние соединения. |
AT NAME | Задайте имя устройства |
AT ADDR | Проверить MAC-адрес |
AT UART | Проверить Baudrate |
AT UART = “9600” | Устанавливает Baudrate до 9600 |
AT PSWD | Проверить пароль по умолчанию |
AT PSWD = “1234” | Устанавливает код доступа до 1234 |
Все команды набора возвращают «ОК», когда они выполняются успешно.
Вот код для изменения имени. Перемычки подключены к 4 и 5, потому что ответ от модуля будет напечатан на последовательном мониторе. Полный код доступен в конце этой статьи в кнопке «код загрузки».
//If youre not using a BTBee connect set the pin connected to the KEY pin high #include <SoftwareSerial.h> SoftwareSerial BTSerial(4, 5); void setup() { String setName = String("AT NAME=MyBTBeern"); //Setting name as 'MyBTBee' Serial.begin(9600); BTSerial.begin(38400); BTSerial.print("ATrn"); //Check Status delay(500); while (BTSerial.available()) { Serial.write(BTSerial.read()); } BTSerial.print(setName); //Send Command to change the name delay(500); while (BTSerial.available()) { Serial.write(BTSerial.read()); }} void loop() {}
Немного теории
Беспроводные сети давно вошли в нашу жизнь, делая более мобильным управление различными данными. Приход беспроводных стандартов Wi-Fi и Bluetooth в сферу фотографии был лишь вопросом времени, и сегодня это явление уже стало массовым.
Первыми фотоаппаратами со встроенным модулем Wi-Fi считаются камеры Nikon Coolpix P1 и P2, которые вышли аж в 2005 году. Но в то время мир не нуждался в подобных технологиях, так как бум социальных сетей только начинался.
Сегодня, как правило, многие камеры оснащаются встроенным модулем для беспроводной передачи данных. Даже на устаревшую модель можно установить дополнительный выносной модуль и пользоваться всеми преимуществами беспроводных сетей.
Базовые возможности беспроводных интерфейсов довольно просты и предсказуемы, но при этом весьма удобны и экономят наше с вами время. К примеру, вы можете загружать фотографии сразу с фотоаппарата на мобильные устройства, делиться снимками в социальных сетях без использования проводов.
Также возможно дистанционно управлять фото- или видеосъёмкой с мобильного устройства. Приложение SnapBridge, при помощи которого осуществляется передача снимков, позволяет расставлять геометки, которые поставляет GPS-модуль вашего мобильного устройства.
В таблице ниже показано, в каких камерах Nikon есть встроенный модуль Wi-Fi и Bluetooth.
Wi-Fi | Bluetooth | |
Nikon D850 | ||
Nikon D750 | – | |
Nikon D500 | ||
Nikon D5600 | ||
Nikon D3400 | – | |
Nikon B700 | ||
Nikon B500 | ||
Nikon A900 | ||
Nikon A300 | ||
Nikon W100 | ||
Nikon W300 | ||
Nikon D850 |
Давайте рассмотрим беспроводные возможности камеры Nikon D850.
Начнём с того, что Wi-Fi и Bluetooth отвечают в камерах за разные функции. Wi-Fi использует диапазон радиочастот от 2.4 ГГц до 5 МГц; расстояние, на котором может работать Wi-Fi, — примерно 300 метров от беспроводного узла сети на открытой местности и 100 метров в закрытых помещениях.
В фотокамерах Nikon Bluetooth отвечает за сопряжение с камерой и передачу миниатюрных снимков (2 мегапикселя). Эта технология менее энергозатратна, экономит заряд батареи на телефоне и камере. Есть возможность сопрягать несколько устройств.
Беспроводной интерфейс Wi-Fi отвечает за удалённое управление камерой, а именно за такие функции, как режимы съёмки (P, S, A, M), выдержка, значение диафрагмы, коррекция экспозиции, чувствительность ISO и баланс белого. Настройки подтверждаются вашим смартфоном в режиме реального времени.
Функция загрузки изображений на мобильное устройство реализована достаточно просто. При подключении Bluetooth передаются уменьшенные копии фотографий (2 мегапикселя), через Wi-Fi же есть возможность загрузки изображений в полном разрешении.
Также вы можете привязать учётную запись к NIKON IMAGE SPACE, что позволит загружать и хранить ваши фотографии в облаке. Осуществляется эта функция через смартфон. Сегодня существуют два тарифных плана, один из которых — бесплатный базовый.
Один из самых главных и неоспоримых бонусов — это удалённое управление камерой. Вы можете со смартфона выставить все необходимые характеристики и снимать. Это актуально как для автопортрета, так и для группового семейного снимка: режим видоискателя поможет вам в реальном времени изменить композицию в кадре.
Разумеется, удалённая съёмка требуется не только в портретном жанре, но и при работе с ночными сценами, когда необходимо, чтобы камера находилось в состоянии покоя. Раньше применялись проводные пульты для спуска затвора, сейчас же вы можете сделать это с телефона, не потревожив вашу камеру.
Все основные настройки доступны из приложения. Удалённо можно настроить выдержку, диафрагму, ISO, баланс белого. Доступен не только ручной режим съёмки, но и полуавтоматические.
Все фотографии постепенно загружаются на ваше мобильное устройство. Вы можете просматривать их с телефона или планшета, делиться снимками с вашими друзьями или заказчиками, а также сразу опубликовать наиболее удачные кадры в социальных сетях.
Беспроводные интерфейсы делают работу фотографа более удобной, позволяют добиваться хороших результатов без посторонней помощи. К тому же отпадает необходимость в дополнительных аксессуарах (проводной или даже беспроводной пульт для спуска затвора), ведь мобильный телефон всегда под рукой.
Кроме того, удобна интеграция с социальными сервисами и возможностью облачного хранения ваших фотографий. Мобильный телефон не всегда может справиться с поставленной задачей. Так, снять красивое HDR-фото заката с контролируемой экспозицией и без большого количества шумов — это удобнее и проще сделать с помощью зеркального фотоаппарата.
В следующей статье я расскажу, как настроить приложение SnapBridge для активации вашей беспроводной силы.
Необходимые материалы
Для этой процедуры Модуль Bluetooth HC-05 будет использовано , поскольку этот модуль продается с печатной платой, на которой “Статус”, это штифт, который позволяет настроить его на низкий уровень, когда подключение открыто к последовательному порту Bluetooth, который предполагает, что сброс настроек является активированный и другие запустить загрузчик Arduino .
В соответствии с этим, вот оборудование, которое вам понадобится для выполнения этой процедуры:
- Модуль Bluetooth ХК-05.
- Ардуино Уно R3 .
Подключение к устройству
Сначала проверьте наличие Bluetooth-адаптера.
BluetoothAdapter bluetoothAdapter=BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter == null) { Toast.makeText(getApplicationContext(), "Device doesnt Support Bluetooth", Toast.LENGTH_SHORT).show(); }
Если он присутствует, проверьте, включено ли оно. Если он не включен, попросите разрешения пользователя включить его.
if(!bluetoothAdapter.isEnabled()) { Intent enableAdapter = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableAdapter, 0); }
Устройство должно быть сопряжено до того, как приложение сможет его использовать. Подробнее о том, как подключить модуль BT и телефон, см. Ниже. Теперь, когда адаптер включен, проверьте наличие парных / связанных устройств. Используя команды AT из вышеприведенного раздела, введите соответствующее имя для устройства. Также узнайте его MAC-адрес. Здесь MAC-адреса сравниваются для соответствия, потому что имена могут часто меняться.
Set bondedDevices = bluetoothAdapter.getBondedDevices();if(bondedDevices.isEmpty()) { Toast.makeText(getApplicationContext(), "Please Pair the Device first", Toast.LENGTH_SHORT).show();} else { for (BluetoothDevice iterator : bondedDevices) { if(iterator.getAddress().equals(DEVICE_ADDRESS)) //Replace with iterator.getName() if comparing Device names. { device=iterator; //device is an object of type BluetoothDevicefound=true;break; } } }
После получения BluetoothDevice сокет должен быть создан для обработки исходящего соединения. Здесь используется сокет RFCOMM. RFCOMM – также известный как Serial Port Profile – по существу является протоколом Bluetooth для эмуляции кабеля RS232.
socket = device.createRfcommSocketToServiceRecord(PORT_UUID); socket.connect();
Затем получите входные и выходные потоки сокета.
outputStream=socket.getOutputStream();inputStream=socket.getInputStream();
Подключение через wi-fi
Рассмотрим пример беспроводного подключения с помощью программы DroidCam X. Это один самых проверенных и универсальных вариантов соединения любого гаджета на базе Android. Итак, следуем пошаговой инструкции:
- Запустить приложение DroidCam на смартфоне. Если приложение запросит права на доступ к камере и интернет-подключению, то следует разрешить данное действие.
- Установить клиент DroidCam на ПК.
- В программе на компьютере выбрать иконку подключения через Wi-Fi. На главном экране приложения на смартфоне появится IP-адрес камеры вашего телефона (Browser IP Cam Access).
- В строке Device IP на ПК вписать адрес камеры и отметить чекбоксами параметры Audio и Video, чтобы вещать звук и видеопоток. Нажать Start.
Можно использовать и более простой способ, где не нужно заморачиваться с IP-адресами и настраивать какие-либо параметры. С помощью приложения EpocCam можно добиться автоматического сопряжения ПК и камеры смартфона/планшета. Это очень удобно, когда вам нужна веб-камера здесь и сейчас.
Достаточно установить приложение EpocCam на телефон и соответствующий клиент на компьютер. Затем происходит настоящая «магия». Запустите обе программы, и вы увидите, как подключение устройств произойдёт автоматически!
Пошагово узнайте, как подключить свой проект arduino к bluetooth и синхронизировать его с другими устройствами.
Учитывая все вышесказанное в статье, следующее, что нужно сделать, – это научиться подключите свой проект Arduino к bluetooth и синхронизируйте его с другими устройствами , это позволит вам загружайте свои программы на карту без необходимости использовать для этого кабели или разъемы .
Этот тип технологии идеально подходит для программ, в которых ардуино должен быть вне досягаемости или должны использоваться с управление или мобильное устройство .
В соответствии со всем этим ниже мы покажем вам, как выполнить эту процедуру просто и быстро:
Проводное подключение
Подключение через USB может потребовать некоторых затрат нервных клеток. Применяйте этот способ только когда у вас нет интернета на телефоне или компьютере т.к. здесь придется повозиться с включением режима откладки на смартфоне. Также нам понадобится кабель micro USB или Type-C.
Пример подключения рассмотрим на примере DroidCam X. Далее следуем пошаговому руководству.
- Подключить смартфон к ПК с помощью кабеля.
- Запустить приложение DroidCam на смартфоне.
- Установить клиент DroidCam на ПК
- Включить режим «Отладка по USB» для стабильной работы. Сделать это можно в меню «Для разработчиков». Находим его по пути: «Настройки» – «О телефоне» – «Номер сборки». Далее необходимо 7 раз «тапнуть» по пункту «Номер сборки», после чего откроется «Меню Разработчика». Находим строку с режимом отладки и активируем его. Здесь вы можете найти подробные инструкции о включении этой и других стандартных настроек на телефонах Android.
- В программе на компьютере выбрать иконку подключения через USB.
- Поставить галочки напротив Audio и Video и нажать Start.
После нажатия кнопки Start на экране появится видеопоток с камеры. В дальнейшем вы можете использовать камеру по любому назначению, выбирая ее среди списка доступных устройств в других программах на компьютере.
Сравнение модулей bluetooth hc 05 и hc 06
Модули HC 05 и HC 06 являются наиболее используемыми, их чаще остальных можно найти в продаже. Принцип действия этих модулей схож, оба модуля основаны на одинаковом чипе, но есть и важные отличия. В первую очередь, модуль HC 05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).
Оба модуля представляют собой две спаянные платы. Одна из них – заводская с микросхемой, другая нужна для самодельных устройств, она оснащена ножками GPIO со стандартным шагом 2,54 мм и стабилизатором напряжения.
Модуль HC-05 стоит несколько дороже, но он имеет большее количество полезных рабочих функций.
Распиновка модуля HC-05:
- EN – управление питанием;
- Питание VCC;
- GND;
- RX, TX;
- STATE – индикация;
- KEY – активирует режим управления при помощи АТ-команд. При KEY=0 – передача данных, при KEY=1 – АТ-команды.
Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.
Основные характеристики HC-05:
- Рабочие частоты 2,4 – 2,48 ГГц;
- Мощность передачи 0,25 – 2,5мВт;
- Дальность 10 м;
- Максимальная скорость обмена данными 115200 бод;
- Питание 3,3В;
- Ток 30-40 мА;
- Рабочие температуры от -25С до 75С.
Подключение обоих модулей к плате Ардуино одинаково.
Вариант подключение модуля с использованием делителя.Представлен вариант для Arduino Nano, но он подойдет и к плате Uno.
Умный холодильник
Если вы один из тех людей, у кого есть холодильник на колесиках для экскурсии или поездки и, таким образом, возможность загрузить свои напитки и другие продукты, тогда вы можете начать давать жизнь, чтобы она могла самостоятельно ходить туда, куда она хочет, чтобы вы пошли, чтобы избежать необходимости загружать ее самостоятельно.
Для этого вам просто понадобится плата arduino , Из соединение Bluetooth, смартфон и мобильный подвал или холодильник. Запрограммировав все это и превратив в шикарный винный погреб, вы можете контролировать это через ваш смартфон через соединение bluetooth , таким образом, он будет следовать за вами, куда бы вы ни пошли.