Как создать интерактивный рабочий стол. Интерактивный рабочий стол для WinXP. Компьютерный мультитач-стол - Ideum Pro Lab

I2C это последовательная асимметричная шина для связи между интегральными схемами внутри электронных приборов. Тоесть данный протокол связи был разработан для внутренней связи внутри коробки устройства или внутри щита. Перед ним не ставилось задание передавать данные на большие расстояния, поэтому ходит множество мифов о максимальной дальности связи - у кого-то плохо работает уже при 50см, у кого-то при 2м.

На шине I2C может сидеть до 128 устройств. Адреса от 0 до 127.

В контроллерах Arduino заложена физическая коммуникация I2C, которая позволяет по двум информационным проводам подключать к ним как различные датчики, расширители дискретных входов-выходов, цифро-аналоговые и аналого-цифровые преобразователи, так и другие контроллеры.

О скорости передачи на сайте производителя не пишут. Но по общей документации на протокол она должна составлять как минимум 100 кбит/с


Теперь хотелось бы потестировать на сколько действительно хороша шина I2C, и на сколько сложно по ней обмениваться данными между несколькими контроллерами Arduino

Я возьму три контроллера , объединю их шиной I2C, и разберусь, как по ней обмениваться данными. Первый контроллер будет выполнять роль ведущего, а остальные два - роль ведомого.

Для отображения данных буду использовать LCD-индикатор 1602 с модулем I2C, который будет подключен на ту же коммуникационную шину.

Ведущий контроллер будет последовательно опрашивать второго и третьего контроллера. Принятые данные первый контроллер должен выводить на индикатор. Опрос ведомых Arduino Nano будет проводиться с частотой 1 раз/сек.

Схема подключения

Четыре провода от каждого из 4-х устройств нужно соединить параллельно. Вывод А4 платы Arduino Nano - это шина SDA протокола I2C, а А5 - это SCL.

Я буду использовать монтажные шилды под контроллеры Nano для удобства соединений.

Питание будет подаваться просто на один из контроллеров через mini USB вход.

У LCD адрес в сети I2C по умолчанию 27. У второго контроллера установим адрес 2 и у третьего 3. У ведущего первого контроллера адрес не нужен.

Программа контроллера - мастера.

#include #include // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); int nano1=0; int nano2; int nano3; void setup() { Serial.begin(9600); // initialize the LCD lcd.begin(); // Turn on the blacklight and print a message. lcd.backlight(); } void loop() { lcd.setCursor(0, 0); lcd.print(nano1); Wire.requestFrom(2, 2); // request 6 bytes from slave device #8 int i=0;nano2=0; while (Wire.available()) { // slave may send less than requested byte c = Wire.read(); // receive a byte as character Serial.print(c); if (i==0) nano2 = ((c & 0xff) << 8); else nano2 = nano2 | c; i++; } Serial.println(""); Serial.println(nano2); lcd.setCursor(9, 0); lcd.print(nano2); delay(100); Wire.requestFrom(3, 2); // request 6 bytes from slave device #8 i=0;nano3=0; while (Wire.available()) { // slave may send less than requested byte c = Wire.read(); // receive a byte as character Serial.print(c); if (i==0) nano3 = ((c & 0xff) << 8); else nano3 = nano3 | c; i++; } lcd.setCursor(0, 1); lcd.print(nano3); delay(100); nano1++; delay(800); }

Первый контроллер изменяет свою переменную типа integer и выводит ее значение на индикатор. Так же он поочереди опрашивает слейв со 2-м и 3-м адресом. Запрашивает у них два байта информации, преобразовывает их в переменную integer. В результате в первом контроллере крутятся три переменные с трёх Nano и он может вывести их на индикатор.

Программа второго контроллера

#include int nano2=0; byte high; void setup() { Wire.begin(2); // join i2c bus with address #8 Wire.onRequest(requestEvent); // register event } void loop() { delay(1000); nano2--; } // function that executes whenever data is requested by master // this function is registered as an event, see setup() void requestEvent() { high = (nano2 >>

Программа третьего Arduino Nano

#include int nano2=0; byte high; void setup() { Wire.begin(3); // join i2c bus with address #8 Wire.onRequest(requestEvent); // register event } void loop() { delay(1500); nano2--; } // function that executes whenever data is requested by master // this function is registered as an event, see setup() void requestEvent() { high = (nano2 >> 8); high = (nano2 & 0xff); Wire.write(high); // respond with message of 2 bytes Wire.write(high); }

Отличаются последние две программы просто адресом в функции Wire.begin(3); и частотой изменения переменной.

Эти программы постоянно изменяют переменную integer и ожидают запроса от мастера. При запросе эта переменная раскладывается на два байта и отправляется как ответ на запрос ведущему контроллеру.

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

Выводы

Прекрасно все работает - цифры на дисплее меняются. Я попробовал удлиннять шлейф проводов между вторым и третьим контроллерами Arduino. Проверил работу шины связи при длине 3 м - без притензий. Длиннее не пробовал, но многие мне утверждали, что I2C не работает дальше 0,5 ... 2 м и меня воодушевила длина 3 м.

Для себя я уже вижу, где применю такую связь именно между тремя Nano.

Я здесь ещё не попробовал передачу данных от мастера слейву. Если попробуете - отпишитесь.

Недостатков здесь на небольших расстояниях ощутимо меньше чем превосходств.

Протокол обмена данными I2C в свое время был разработан компанией Philips. Название I2C произошло от английского Iner-IC управления или по другому межмикросхемного управления, Inter-IC,IIC (I2C) -название одного и того же протокола.

Данный протокол или интерфейс обеспечивате качественный прием и передачу информации (данных) от нескольких различных устройств, к примеру можно измерять температуру и одновременно управлять цифровым потенциометром. Общение происходит програмно, алгоритм общения с датчиком по протоколу I2С записывается в программу Arduino (скетч).

Существуют специальные переходники которые позволяют подключать другие устройства, к примеру имея переходник можно по двум проводом подключить arduino дисплей 1602 (16x2) LCD по протоколу i2c. По запросу LCD i2c на просторах интернета куча информации, вот пример того как должен выглядить переходник под дисплей http://www.ebay.com/itm/310565362720

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

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

Устройство подключенное к шине I2C имеет свой уникальный адрес. Именно по этому адресу осуществляется обращения ведущего устройства.

Пример подключения датчиков по протоколу I2C

Подключение осуществляется по двум проводам: SCL- сигнала тактирования или тактового сигнала и SDA - сигнала данных. При этом к шине I2C можно подключать любое количество различных датчиков (ведомых устройств), имеющие свои уникальные id.

Знакомство начинается со специально написанной для этих целей библиотеки, имя которой Wire. Перед началом работы ее необходимо импортировать в проект,она имеет специальные команды или методы для "общения" с устройствами.

Для обмена данными с устройствами нужно знать их id. Различные устройства могут иметь разную длину адреса (id) 8 или 7 бит.В библиотеке Wire используется 7-ми битная адресация.

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

  • UNO - A4(SDA), A5(SCL);
  • Mega - 20(SDA), 21(SCL);
  • Leonardo- 2(SDA), 3(SCL);
  • Due - 20(SDA), 21(SCL),SDA1,SCL1;

Пример код программы для управления цифровым потенциометром при помощи библиотеки Wire

Данный пример показывает как устанавливать определенное значение сопротивление в цифровом потенциометре при помощи библиотеки Wire. Установка определенного значения осуществляется при помощи переменной val.

#include void setup() { Wire.begin(); // join i2c bus (address optional for master) } byte val = 0; void loop() { Wire.beginTransmission(44); // transmit to device #44 (0x2c) // device address is specified in datasheet Wire.write(byte(0x00)); // sends instruction byte Wire.write(val); // sends potentiometer value byte Wire.endTransmission(); // stop transmitting val++; // increment value if (val == 64) // if reached 64th position (max) { val = 0; // start over from lowest value } delay(500); }

Видео работы I2C и Arduino. Часть 1

Решил я сделать текстовую панель оператора(HMI) и подключить ее по «квадратной» шине I2C к Arduino. Для этого разработал на основе микросхемы PCF8574P плату клавиатуры из 5 кнопок.

PCF8574P это расширитель портов, корпус DIP, работает по шине I2C. Приобрел я партию из двух таких микросхем за 0.94$ с бесплатной доставкой из Китая, таким образом одна штука стоит 0.47$. Покупка выгодная, так как в местных магазинах эти же микросхемы стоят больше 2 долларов за штуку.

Дисплеем HMI будет стандартный экранчик 1602, так же через платку FC-113 работающий по квадратной шине.

PCF8574P выслали, дали трек-номер и через 2 недели я их уже получил на почте.


Извлекаем из пластиковой трубки, вроде бы все нормально.


Однако, снизу на корпусе одной из микросхем есть следы загадочных термомеханических воздействий.


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

Долго думал над этой загадкой, пока меня не осенило.
Просто на склад продавца пробрался Люк Скайуокер, вдруг уменьшившийся до микроскопических размеров. Там он приметил один из расширителей портов, спутал с имперским шагоходом и принялся рубить его световым мечем. Тут зашла комплектовальщица, увидела эту картину и такая говорит: «Прекрати, Люк Скайуокер! Это не имперский шагоход, это микросхема PCF8574P, за которую уже уплочено из Запорожья».

Хорошо хоть, обе микросхемы при проверке оказались рабочими.

Приступаем к созданию самой клавиатуры по такой схеме.


В Layout 6.0 нарисовал одностороннюю плату.


Скачать файл с платой можно .

Плату травил перекисью водорода и лимонной кислотой.

В сети много рецептов травления платы перекисью.
Я делал такой раствор: 100 мл перекиси водорода 3%, 50 г лимонной кислоты, 3 чайные ложки соли. Баночку с перекисью подогрел в кастрюле с водой.

Погружаем плату в раствор рисунком вниз, как рекомендуют при травлении перекисью.

Пшшшшшш! Сначала процесс идет бурно.


Пс… Потом заметно стихает. Переворачиваем, смотрим на рисунок.


Красота.


Готовая плата выглядит так.




Адресные ножки микросхемы подключены на GND, поэтому адрес платы на шине будет 0x20.

Пишем программу для Ардуино.

#include
#include

#define led 13
#define ADDR_KBRD 0x20
#define ADDR_LCD 0x27

String str;
byte dio_in;
bool b;
bool key;

LiquidCrystal_I2C lcd(ADDR_LCD,16,2); // Устанавливаем дисплей

Void setup()
{
pinMode(13, OUTPUT);
lcd.init();
lcd.backlight();// Включаем подсветку дисплея
Wire.begin();

Wire.beginTransmission(ADDR_KBRD);
Wire.write(B11111111);
Wire.endTransmission();
Serial.begin(9600);
}
void loop()
{
Wire.requestFrom(ADDR_KBRD,1);
while (!Wire.available());
byte dio_in = Wire.read(); //читаем состояние портов PCF8574P
byte mask=1;
for(int i=0; i<5;i++)
{
key[i]=!(dio_in & mask);
mask=mask<<1;
}

Str=String(dio_in, BIN); //
Serial.println(str);

B=!b;
digitalWrite(led, b);

//
lcd.setCursor(0, 0);
lcd.print(String(key)+" "+
String(key)+" "+
String(key)+" "+
String(key)+" "+
String(key)+" "
);
delay(100);
}


Загружаем программу в Ардуино и подключаем его к созданной клавиатурной плате и дисплею.

Включаем, работает!


Мой HMI будет работать не просто с Arduino, а с ардуино-совместимым ПЛК . Если будет вдохновение и интерес читателей, напишу и про него как-нибудь.

Плюсы PCF8574P:
1. Минимальная обвязка.
2. Прост в работе.

Минусы PCF8574P:
У самой микросхемы не обнаружил, хотя и советую покупать у другого продавца.

На этом обзор микросхемы PCF8574P заканчиваю.
Но как опытный уже обозреватель, заранее отвечу на вопросы, которые обязательно зададут:

Почему в DIP корпусе? SOIC лучше.
При прочих равных, я предпочитаю DIP, мне с ними проще.

DIP и выводные элементы ставят только ламеры, все специалисты используют SOIC и SMD. Вот я паяю исключительно SMD и вообще я молодец.
Вы молодец.

Почему бы просто не купить на алиэкспрессе готовый модуль с дисплеем 1602 и клавиатурой 5 кнопок? Он тоже работает по I2C.
Его цена от 11 $.
Я же потратил:
Дисплей 1602 - 1.3 $
Плата FC-113 - 0.55 $
Микросхема PCF8574P - 0.47 $
Кнопки и колпачки - 0.7 $
Реактивы для травления платы - 0.3 $
Текстолит, резисторы и прочая мелочевка - бесплатно, из старых запасов.
Итого: 3.32 $
Но главное- на своей плате я поставил кнопки с квадратным толкателем что бы одеть на них красивые цветные колпачки.

Ого, всего одна микросхема PCF8574P стоит почти как целая плата FC-113!
Да уж…

Вы сделали все неправильно. Неправильно рисовали, неправильно травили в неправильном растворе и поставили неправильные кнопки. Я бы на вашем месте сделал все правильно.
Вы молодец.

Почему пятая кнопка так далеко от остальных?
Это специально так, они функционально различны. Те четыре это влево, вправо, отмена, ввод, а пятая будет SETUP.

Я ждал более захватывающую историю про Люка Скайуокера, вы меня обманули!
Я молодец.

Скачать 3D рабочий стол вы можете в данном разделе нашего сайта.

Приветствую вас в категории 3D Рабочий стол. В мире с развитием компьютерных технологий и выходом все новых программ и оболочек для операционных систем, появляются все новые и интересные программы. Программистами написано много различных программ, которые придают рабочему столу или интерфейсу Windows неповторимый вид. Превращение пространства вашего рабочего стола в трехмерную модель осуществляется особыми программами. Этих программ не так много, а многие из них просто не работают, как заявляют разработчики.

Честно сказать данную категорию сделал для ознакомления. Здесь будут публиковаться материалы превращающий рабочий стол в трехмерное виртуальное пространство или программы, придающие особые трехмерные эффекты. Все рабочие столы выглядят красиво и интересно, но, на мой взгляд, не совсем удобно, а может просто непривычно, но как говориться на вкус и цвет товарищей нет. Скачать 3D Рабочий стол можете бесплатно и без регистрации, просто кликнув мышкой по кнопке скачать.3D рабочий стол выглядит очень необычно и непривычно, но именно это и придаст ему неповторимый вид и привлечет внимание. Также советую скачать для придания красочности вашего рабочего стола Темы для Windows XP , Windows 7,иконки ну и в качестве фона. А так сами можете поэкспериментировать, что с 3D столом наиболее совместимо и гармонично смотрится.

Представляю вам программу Real Desktop, которая превратит ваш рабочий стол в трехмерное виртуальное пространство - в 3D рабочий стол. У данной программы очень много настроек по дизайну иконок, цветовой схеме самого рабочего стола, работа с тенями, а также с самой конфигурацией отображения трехмерности.

Скачать 3D Рабочий стол Real Desktop вы можете, кликнув по архиву, расположенному ниже картинки.

Представляю необычный 3D Рабочий стол, получаемый с помощью программы Looking Glass 3D. Он действительно очень необычный, работает на основе технологии Java. Чего-то больше сказать не могу это надо пробовать самим. Скачайте, установите себе и поэкспериментируйте с настройками.


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

1. Новый необычный концепт рабочего стола - Apple iDesk


Дизайнер Адам Бентон создал свой новый концепт функционального рабочего стола с интерактивной поверхностью под названием - iDesk . Новинка будет функционировать под операционной системой Mac OS и сможет взаимодействовать со всеми гаджетами компании Applе. Управление девайсом осуществляется с помощью сенсорной клавиатуры, которая находится на панели стола. После выхода в продажу iDesk сумеет осуществлять звонки, назначать встречи и отправлять письма. К сожалению более подробные технические характеристики пока что отсутствуют.

2. Интерактивный столик для ресторанов


В лондонском ресторане азиатской кухни под названием Inamo находятся первые новые интерактивные столики для клиентов. Данная модель способна полностью заменить обычное бумажное меню и существенно облегчить работу официанта. Стоит всего лишь выбрать блюдо и заказ автоматически будет оформлен. Также главной особенностью этой новинки является то, что можно наблюдать за тем как готовится заказанная еда благодаря камере, которая находится в кухне заведения.

3. Интерактивный стол для детей - SMART Table 442i


Новый развивающий учебный стол под названием - SMART Table 442i создан с целью заинтересовать детей младшего возраста в обучении. Благодаря новинке они смогут совмещать игру и учебу, развивая тем самым навыки совместного решения поставленных задач. Данная модель очень проста в эксплуатации и не требует дополнительного вмешательства учителей.

4. Новый функциональный стол с возможность подзарядки мобильных девайсов


Аргентинский дизайнер Sebastian Lara Dris создал новый стол, позволяющий заряжать девайс компании Apple в наиболее удобном для владельца положении. В верхней части встроены платформы для размещения iPod и iPhone, а в основании каждой из них имеется разъем, через который осуществляется подзарядка гаджета. Главной особенностью данной модели является то, что отсеки для смартфона и планшета можно скрыть и тогда поверхность стола будет абсолютно ровной.

5. Компьютерный мультитач-стол - Ideum Pro Lab


Компания Ideum создала свой новый мощный компьютерный стол-мультитач под названием - Pro Lab . Данный девайс оснащен: четырех ядерным процессором Intel Core i7-4790 с тактовой частотой 3,6Ггц, оперативной памятью 32 гигабайта, 55-дюймовым дисплеем с разрешением 3840 × 2160 пикселей и графическим ускорителем NVIDA Quadro K620 с 2 Гб. В эту модель можно устанавливать одновременно до трех съемных жестких дисков объемом до 8 терабайт. Новинка также имеет Blu-ray рекордер и беспроводные технологии передачи данных, такие как Wi-Fi 802.11a/b/g/n и Bluetooth 4.0. Размеры гаджета составляют 1281 × 881 × 751 сантиметров, а весит он 100 килограмм. Также стоит отметить, что стол находится под управлением операционной системы Windows 8 Professional. Стоит Pro Lab около 24 тысяч долларов США.

6. Новый концепт сенсорного стола для заказа пиццы - Pizza Hut


Заказ пиццы в пиццерии - довольно длительный процесс и почти всегда занимает много времени. Сначала необходимо дождаться официанта, потом изучить меню, договориться с друзьями, какую же пиццу выбрать. Но от всего этого решила избавить своих посетителей сеть пиццерии Pizza Hut установившая в своих заведениях функциональный сенсорный стол для быстрого заказа. Это изобретение может существенно облегчить выбор блюда и сократить время его ожидания.

7. Необычная концепция стола со встроенным дисплеем - Sharetable


Швейцарские дизайнеры из компании ReMago совместно с CloudProject Generation создали свой новый концепт настольного компьютера под названием - Sharetable . Все комплектующие обычного ПК встроены в столешницу девайса. Новинка оснащена 21,5-дюймовым мультитач-дисплеем с разрешением 1920 × 1080 пикселей и 7-дюймовым сенсорным экраном. Благодаря чему два человека смогут одновременно работать над своим проектом. Также в нем имеется 3G/LTE модуль, пять USB портов и один HDMI.

А любителей необычных девайсов, наверняка заинтересуют эти



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: