Подскажите ребята.

ren2033
Offline
Зарегистрирован: 08.12.2014

Добрый час Ребята.

Вопрос таков я новечег в этом деле но навыки в програмирование немнога есть.

Сама суть, есть моно блок с одним интерфейсом USB можно подключать клаву или флеш карту

Есть консольное окно с OS Linux 

Хочу сделать ввод через андроид клавиатуры на консоль этого моно блок по средствам arduino + Bluetooth

Или готовые команды при нажатии кнопки через буфер в самом коде .

Еще есть вариант с Андроид приложением которое будет отправлять так же по Блютузу или же просто через юсб нужные мне коменды .

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

Зарания спасибо за ответы. p/s Извиняюсь если что то то подобное бобсуждалось искал до 47 страници не чего не нашел ( 

xorkrus
Offline
Зарегистрирован: 22.09.2013

Ардуина тут никаким боком от слова совсем. Андроид-девайс и пк вполне самостоятельные, самодостаточные и мощные устройства.

раз два три

ren2033
Offline
Зарегистрирован: 08.12.2014

Наверно не так поняли меня, на этом моно блоке если подключиться просто как телефон толку не будет ) а мне надо открыть консоль на линуксе и посылать команды.

Вообще можно реализовать такое что если я подключу ардуин леонардо  например к нотбуку, он его определить как HID устройсто ввода (клавиатуру) то если я подключу еще к ардуин клавиатуру то он будет работать как клавиатура.

P/s если я подключу просто телефон на андрюши к моноблоку он будет его просто заряжать. а мне надо как устройство ввода

An25
Offline
Зарегистрирован: 19.09.2014

Нихуиa не понятно. Кто на ком стоял?

ren2033
Offline
Зарегистрирован: 08.12.2014

что именно не понятно =) я сам запутался - Кто на ком стоял7 - ))) 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Впринципе можно. Главное знания.

ren2033
Offline
Зарегистрирован: 08.12.2014

NeiroN пишет:

Впринципе можно. Главное знания.

Ммм ну вот как раз знаний по arduino нету только начинаю ,  можно подсказать откуда начать или что то подобное кто то делал

An25
Offline
Зарегистрирован: 19.09.2014

Наверно стоит начать с http://arduino.ru. Потом ознакомиться с http://www.atmel.com/images/doc8161.pdf. И дело будет в шляпе!

ren2033
Offline
Зарегистрирован: 08.12.2014

An25 пишет:

Наверно стоит начать с http://arduino.ru. Потом ознакомиться с http://www.atmel.com/images/doc8161.pdf. И дело будет в шляпе!

Спасибо arduino уже учу =) микроконтролером тож займусь 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Для отправки на ардуино по блютусу - на самом андроиде должна быть програмка - с текстовым полем и слушающая ввод с клавиатуры и посылающая его по блютус по нажатию кнопки Энтер(к примеру).

Ардуина принимает коды кнопок по блютусу и отправляет их как нажатия кнопок HID клавиатуры.

#define bufSize 255
void setup(){
Serial1.begin(115200);
}
void loop(){
   char buf[bufSize];
   size_t  c = Serial1.readBytesUntil('\n', buf, bufSize); //читает пачку даннных и возвращает сколько принято
   if (c > 0){ //если там что-то есть
      Keyboard.print(buf); //передаем в клавиатуру
      Keyboard.print('\n'); //на всякий случай
   }
}

Код превращает данные принятые по аппаратному порту леонардо в нажатия соответвующих кнопок.

ren2033
Offline
Зарегистрирован: 08.12.2014

Тема Актуальна если что пишите свои думки или предложения буду рад 

ren2033
Offline
Зарегистрирован: 08.12.2014

NeiroN пишет:

Для отправки на ардуино по блютусу - на самом андроиде должна быть програмка - с текстовым полем и слушающая ввод с клавиатуры и посылающая его по блютус по нажатию кнопки Энтер(к примеру).

Ардуина принимает коды кнопок по блютусу и отправляет их как нажатия кнопок HID клавиатуры.

#define bufSize 255
void setup(){
Serial1.begin(115200);
}
void loop(){
   char buf[bufSize];
   size_t  c = Serial1.readBytesUntil('\n', buf, bufSize);
   if (c > 0){ 
      Keyboard.print(buf);
      Keyboard.print('\n');
   }
}

Код превращает данные принятые по аппаратному порту леонардо в нажатия соответвующих кнопок.

Вот оно ) а по синтаксису тоже на arduino-ru искать или сразу на com идти=)  мне вот интересно откуда ты скетч этот взял ну что бы я знал куда копать =) или это все есть на офф сайте . А так Спасибо большое уже что то ) 

xorkrus
Offline
Зарегистрирован: 22.09.2013

Вообще оригинально. Подключать к компу ардуину, чтобы подключить к ардуине клавиатуру... нахренаж? Сразу клаву в пк не катит?

P/s если я подключу просто телефон на андрюши к моноблоку он будет его просто заряжать. а мне надо как устройство ввода

Я привел ссылки - изучи внематочно. По ним ты найдешь софт, который ставится:

1. на телефон и на пк. При спаривании - телефон становится клавиатурой, мышкой, кошкой, ножкой от стола и пятым колесом калины.

2. на телефон. При спаривании с пк - пк видит блюпуп клаву.

Ну а если шило есть в известном месте, то смотри сюда и сюда . В этом раскладе ардуина какбе контроллер клавы. Т.е. сколько кнопок прилепишь - столько и будет.

Ну и последний вариант - если надо ардуину к компу а к ардуине клаву, то купи для PS/2 клавы это:

или для USB клавы это:

ren2033
Offline
Зарегистрирован: 08.12.2014

Друг мой хорший если бы все было все так просто , мне надо не просто клавиатуру ) там промышленный моноблок только один вход , для снятия информации или подключения клавиатуры ))  смысл не втом. мне надо что бы я через андроид мог нажимать кнопки примерно как бинд нажал зеленую кнопку отправилась команда на ввод .  или же через буфер у меня есть что то вроде пульта , я нажимаю кнопку один и он отправляет команду ! а ардуино уже отправляет моноблоку как будто это на клавеатуре набирают или вставили )) как ctrl+c ))) 

xorkrus
Offline
Зарегистрирован: 22.09.2013

Вот с последнего сообщения я вообще завис. Либо я дурак, либо лыжи не едут.

один вход - см. самый последний пункт моего предыдущего ответа - будет 4 входа.

чем не устроил вариант где ардуина - контроллер клавиатуры? Там хоть последовательность символов отправляй по одной кнопке.

P.S. А можно в моноблок воткнуть усб-хаб, в хаб воткнуть блютуз-свисток к которому припарить андроид-телефон в качестве клавиатуры, в хаб воткнуть усб-клавиатуру, в хаб воткнуть усб-мышку, в хаб воткнуть арудину с 10 кнопками готовых команд, профит!

 

ren2033
Offline
Зарегистрирован: 08.12.2014

Ребят сижу кумекаю над кодом на arduion вот что получается:

void setup() {
    pinMode(2, INPUT_PULLUP);
    Keyboard.begin();
}
//--=== ПРОВЕРКА МОДУЛЯ  ===---//
   if (digitalRead(2)== LOW){
        //отправляем сообщение
        Keyboard.println("cd /mnt/cf/modul");
        delay(1000);
        Keyboard.println("chmod a+rx ae72_ctrl");
        delay(1000);
        Keyboard.println("ae72_ctrl -d /dev/i2c-14 -a 12 -D");
        delay(500);
        Keyboard.press(ctrlKey);
        Keyboard.press('c');
        Keyboard.releaseAll();
     }

Терь надо на 13 кнопок посадить по задачи еще я на каждую кнопку делаю по два действия с помощью счетчика I++ .

но по прежнему остаеться загадкай как сделать так что бы arduion понимала в дальнейшем что я нажимаю кнопки не реальные на плате ) а отправляю их по блютузу через андрюху )) 

P/s У Дмитрия Осипова нашел вот такой код включает диоды черз програмку, Кнопки в програмке можно менять под себя, может можно как то переделать чуть и заточить код не под диоды а отправку сообщений как у меня вот код .ino

int ledPin_1 = 9;
int ledPin_2 = 10;
int ledPin_3 = 11;
int ledPin_4 = 12;
int ledPin_5 = 13;

void setup() {
  Serial.begin(9600);

  pinMode(ledPin_1, OUTPUT);
  pinMode(ledPin_2, OUTPUT); 
  pinMode(ledPin_3, OUTPUT);
  pinMode(ledPin_4, OUTPUT); 
  pinMode(ledPin_5, OUTPUT);
}

void loop() {

  if (Serial.available() > 0) {   
    int i = Serial.read()-48;
    if (i == 1)digitalWrite(ledPin_1, !digitalRead(ledPin_1)),Serial.println(" ledPin_1 !digitalRead ");
    if (i == 2)digitalWrite(ledPin_2, !digitalRead(ledPin_2)),Serial.println(" ledPin_2 !digitalRead ");
    if (i == 3)digitalWrite(ledPin_3, !digitalRead(ledPin_3)),Serial.println(" ledPin_3 !digitalRead ");
    if (i == 4)digitalWrite(ledPin_4, !digitalRead(ledPin_4)),Serial.println(" ledPin_4 !digitalRead ");
    if (i == 5)digitalWrite(ledPin_5, !digitalRead(ledPin_5)),Serial.println(" ledPin_5 !digitalRead ");
  }
}

 

ren2033
Offline
Зарегистрирован: 08.12.2014

Всем спасибо, за помощь и советы, почитал посмотрел вроде начал делать. Поже выложу что получилось если что =) 

ren2033
Offline
Зарегистрирован: 08.12.2014
Ну вот как то так получилось )) 
считываем данные с синего зуба и отправляем на HID.

#include <SoftwareSerial.h>
// --=== передача RX - TX по 10 - 11 пину ===-- //
SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
  {
    Serial.begin(57600);
    mySerial.begin(9600);
    Keyboard.begin();
  }
void loop()
{  

  if (mySerial.available())
  {
    char command = mySerial.read();
    switch (command)
    {        
  // -=== Case Telnet 1 ===-- //
      case 'q':
            Keyboard.println("telnet 199.1.1.1");
            delay(1000);
            //отправляем сообщение в consol
            Keyboard.println("root");
            delay(1000);
            Keyboard.println("root");
            delay(1000);
            Keyboard.println("date");
            Keyboard.releaseAll();
        break;
        // -=== END Case  ===-- //
    }
  }
}

Вот вот что для андроида получилось 

ren2033
Offline
Зарегистрирован: 08.12.2014

Ребята еще вот такой вопрос, если я подключу флешку к ардуино , и к компу попрошу командоми что бы ардуино скачал с деректории какой нибуть файл на флешку такое можно сделать?? или наоборот сказать компу что бы он зашел на флешку и скачал от туда файл.

Правда размер файла доходит от 25kb до 150mb MAX. 

 

Radjah
Offline
Зарегистрирован: 06.08.2014

Моде тетбе ардуину на малину заменить? Оно всяко быстрее получится.

ren2033
Offline
Зарегистрирован: 08.12.2014

можно по подробней , главный вопрос вообще ээто можно реализовать кто нибуть дела что то подобное ))

Radjah
Offline
Зарегистрирован: 06.08.2014

http-сервер и скрипты на том же php.