![Аналого-цифровое преобразование для начинающих. AVR](https://i2.wp.com/radiokot.ru/circuit/digital/pcmod/54/02.png)
Аналого-цифровое преобразование для начинающих. AVR
Карта России со спутника
, как много в этом предложении!
А если вам интересен вид со спутника в реальном времени?
Давным-давно мы привыкли к процессу глобализации и интернету.
Мы можем общаться с любым человеком посредством всемирной паутины.
Но не так давно прогресс в этом направлении шагнул вперед.
В данной статье вы найдете карту России со спутника в реальном времени
онлайн
(так же на карте можете найти любые города, допустим ) и карту вебкамер России.
Если вы хотите посмотреть на Планету Земля в РЕАЛЬНОМ ВРЕМЕНИ как будто бы со спутника, используйте Google Earth, предоставленный ниже.
Для увеличения-уменьшения масштаба пользуйтесь колесиком мыши. Если у вас нет Гугл Планета Земля – вам предложат сделать это. Если вы зашли через браузер Opera – просмотр невозможен. Лучше всего это делать в браузерах Firefox и Google Chrome.
Введите любой интересующий вас объект в окошко и нажмите «Вперед!»:
Осуществилась мечта многих фантастов о «видофоне», таких как братья Стругацкие, например. Теперь Россия в реальном времени доступна любому человеку, который имеет доступ к интернету. Мы можем общаться друг с другом не просто посылая сообщения безликому человеку на ту сторону монитора, а еще и видеть и слышать его.
Живое общение трудно переоценить. И это здорово. Теперь, купив вэб-камеру, любой желающий человек может показать себя всему миру и соотечественникам в частности. Все таки гораздо приятнее общаться на родном языке, чем пытаться перевести иностранный язык в режиме онлайн. Это уже не каждому дано. Россия в реальном времени – чудо науки и техники.
Открыв такой сайт, как нижеприведенный, к примеру, любой может увидеть другой город, посмотреть что происходит сейчас за несколько тысяч километров.
Теперь расстояние – не помеха для общения. Мы можем найти все вебкамеры России
, подключится к этой трансляции и наблюдать, слушать, разговаривать и передавать свои эмоции собеседнику. Думается, что все согласны с тем, что веб-камеры это великолепно!
И ещё один способ лицезреть вид со спутника в прямом эфире, это замечательная программа для отображения полной трехмерной модели нашей планеты, видно даже рельеф местности, горы высокие, вода в морях колышется, а особые культурные памятники представлены в режиме - Гугл Планета . Если у вас нет Гугл Планета Земля – вам предложат сделать это. Если вы зашли через браузер Opera – просмотр невозможен. Лучше всего это делать в браузерах Firefox и Google Chrome.
По мнению сайта, эти статьи так же могут быть вам интересны
Вы можете перейти в конец и оставить комментарий. Уведомления сейчас отключены.Навигационные карты могут понадобиться в самых разных ситуациях. То ли вы заблудились в лесу, то ли ищете необходимую улицу в городе. Сервис, который может помочь вам справиться с этим – это Карты Гугл. Он состоит из пары приложений. А именно: из сайта Google Maps и Гугл Транзит (программа для прокладки маршрута). Благодаря тому, что Гугл передает данные непосредственно со спутника, с помощью этих карт можно узнать подробную схему маршрута, номера домов, названия улиц, а также как можно пройти пешком или проехать (на машине, автобусе, велосипеде) к пункту назначения.
Этот сервис является большим справочником, охватывающим многие сферы жизни: от путешествия до планирования прогулки или выезда на отдых.
Внешний вид
Карта для пользователей может отображаться в двух вариантах:- традиционно (топографическая карта, аналог Меркатора);
- спутниковых снимков (не в онлайн режиме, а сделанные некоторое время назад).
Родственный проект к Гугл Мапс – Гугл Планета (соответствует глобусу) дополняет сервис снимков полюсов Земли.
Особенности
Не все страны раскрывают информацию о расположении своих объектов. Поэтому места на карте, где имеются засекреченные районы, заштрихованы . К ним относятся, например, Белый Дом, Капитолий.Разное разрешение на карте имеют разные участки земли. Чем меньше плотность заселения территории, тем меньше о ней известно деталей. Некоторые места на карте бывают скрытыми под облаками. Хотя не все объекты были сняты со спутника. Изображения некоторых из них получились благодаря аэрофотосъемке с высоты 300 метров и больше. В таких местах детализация местности достигает высоких значений.
Интерфейс сервиса
Карты Гугл очень просты в управлении. Это приложение было сделано для людей и так оно и работает. В левой стороне находится кнопка переключения внешнего вида карт (топографические или вид со спутника ). А справа на экране пользователь может найти кнопки изменения масштаба (увеличение и уменьшение ).Система позволяет ее пользователям ввести адрес или название объекта и получить информацию о его месторасположении, адресе, координатах, внешнему виду. Для некоторых зон доступна услуга узнавания «что там», при этом Гугл Карты покажут, какой объект (автозаправка, музей, магазин, театр) там находится.
Гугл онлайн-карты очень широко используют сервис javascript. Новые участки карты отображаются на странице, когда пользователь передвигает ее по экрану. Если был введен адрес конкретного объекта, то страница перезагружается и расположение искомого места отображается на карте динамическим красным значком-маркером.
Чтобы карту могли разместить у себя владельцы других сайтов, компания Гугл анонсировала бесплатный сервис: Карты API (Application Programming Interface) в 2005 году. Эту карту можно добавить в любую область сайта. Их на данный момент насчитывается более 350 тысяч по всему миру.
О Google Картах
По данным на 2011 год корпорация Гугл объявила, что она предоставляет свой картографический сервис для более чем 150 миллионов клиентов. Это делает сервис одним из самых больших и грандиозных навигационных Интернет-услуг.Интерактивные Карты Гугл – это бесплатная служба, любезно предоставленная корпорацией Гугл, которая не содержит рекламы, а только предоставляет качественную и проверенную информацию о расположении и назначении объектов по всему миру.
"Сукисод" или простой USB АЦП на PIC
Душевно поздравляю Радиокота с его 8-летием. Долгих лет тебе жизни. Очень люблю этот сайт, в котором провожу много времени.
В интернетах можно встретить много примочек, для измерения всяческих параметров. Вот и я, наконец, созрел для создания своего регистратора и показать вам. Я собрал целый зоопарк программаторов и отладчиков по типовым схемам и решил, что пора сделать что-то своё. Нет ничего лучше, чем удовольствие от работы девайса, сделанного своими руками.
Сукисод - это имя моего кота. Мы взяли котенка и назвали Сукиса, полагая, что это кошка. Кошка очень хорошо отзывалась на эту кличку. А чуть позднее выяснилось, что это кот. Так и получился Сукисод. Ну ладно, рассмотрим моё устройство.
Поскреб я у себя в закромах и обнаружил пучок PIC16F1455. Железка мне досталась в качестве сэмпла. Халява конечно, но в DIP корпусе. Решил её использовать - не пропадать же добру. Это микроконтроллер от Microchip Technology с полноскоростным интерфейсом USB 2.0. PIC16F1455 имеет внутренний источник тактовых импульсов, работающий с точностью 0.25%, что необходимо для функционирования порта USB.
В общем судьба её работать с USB. Полистал даташит и сделал такой рисунок платы:
Схему не рисовал, т.к. всё примитивно по рисунку платы. Разъем USB не использовал. Край платы будет разъемом. Толщина текстолита 1,5-2 мм.
Для справки распиновка USB:
Теперь это добро надо как-то прикрутить к компу. Будем использовать старый добрый Delphi. USB подключение обрабатывается через JvHidController библиотеки "Jedi". Скриншот окна приложения
При подключении железка обнаруживается как HID устройство и не требует драйверов. Чуть позднее выложу софт под Android. Отдельное спасибо за поддержку HHIMERA.
Так сложилось, что основной МК с которым я работаю постоянно и на котором делаю подавляющее большинство задач это ATTiny2313 — он популярен, а, главное, это самый дешевый контроллер из всей линейки AVR с числом ног более 8. Я их брал числом около трех сотен за 18, чтоль, рублей штучка. Но вот западло — у него нет АЦП . Совсем нет. А тут он понадобился — нужно замерить сигнал с датчика. Засада. Не переходить же из-за такой фигни на более фаршированную ATTiny26 — она и стоит дороже и фиг где купишь у нас, да и что тогда делать с той прорвой ATTiny2313 что уже закуплена? Пораскинул мозгами…
А почему бы не сварганить АЦП последовательного сравнения? Конечно, быстродействие и точность будет не фонтан, зато, не меняя тип МК и всего с двумя копеечными деталями дополнительного обвеса, я получу полноценный, хоть и тормозной, 8ми разрядный АЦП, вполне удовлетворяющий моим скромным запросам!
Как работает АЦП последовательного сравнения.
Что у нас есть в ATTiny2313
аналогового? Правильно — . Теперь достаточно подать на его вход замеряемый сигнал и методично сравнивать с опорным напряжением, линейно изменяя величину опорного напряжения. На каком из опорных напряжений произойдет сработка компаратора, тому и примерно равен измеряемый сигнал +/_ шаг изменения опорного.
Осталось получить переменное опорное напряжение, а чем, из сугубо цифрового выхода контроллера, можно вытянуть аналоговый сигнал? ШИМом! Предварительно его проинтегрировав. Для интеграции используем простейший RC фильтр. Конденсатор у нас будет интегрировать заряд, а резистор не даст сдохнуть порту при зарядке кондера. Результатом прогона ШИМ’а через подобный фильтр станет достаточно стабильное постоянное напряжение.
Осталось только прикинуть номиналы фильтра. Частота среза — частота, начиная с которой, фильтр начинает глушить переменную составляющую, у Г образного RC фильтра равна обратной величине из его постоянной времени w=1/RC . Я воткнул кондер на 0.33Е-6 Ф и резистор на 470 Ом, получилось что w=6447 рад/c . Поскольку угловая частота нам никуда не уперлась, то делим ее на 2pi = 6.28 получили около килогерца, 1026.6 Гц, если быть точным. Раз частота ШИМ а у нас запросто может быть порядка десятков килогерц, то на выходе будет гладенькая такая постоянка, с незначительными пульсациями.
Теперь заворачиваем эту ботву на вход компаратора, на второй пускаем наш измеряемый сигнал и начинаем развлекаться с кодом. Получилась вот такая схема, собранная , что и . Тут, правда, не ATTiny2313, а Mega8 у которой АЦП есть, но мы пока забудем о его существовании. Красными линиями нарисован наш фильтр.
Код будет простецкий, чтобы не заморачиваться выложу и отдельные исходники в виде файлов:
- — Головной файл
- — Таблица векторов прерываний
- — Инициализация периферии
- и — Макросы и макроопределения
Прокомментирую лишь главную функцию Calc
.
При вызове процедуры Calc
у нас первым делом:
- Конфигурируется аналоговый компаратор и, главное, активизируются его прерывания.
- Затем в сканирующий регистр (R21) закидывается начальное значение сканирования 255.
- После чего это значение забрасывается в регистр сравнения ШИМ OCR1AL . ШИМ был заранее, в разделе init.asm сконфигурирован и запущен, так что сразу же на его выходе появляется сигнал скважностью (скважность это отношение длительности сигнала к периоду этого сигнала) 1 т.е., фактически, пока это просто единица.
- Выжидаем в функции Delay некоторое время, чтобы закончился переходный процесс (конденсатор не может мгновенно изменить свое напряжение)
- Уменьшем значение сканирующего регистра (что при загрузке в OCR1AL уменьшит скважность на 1/255), проверяем не стало ли оно нулю. Если нет, переходим на пункт 3.
Как видно, вверху есть некоторый срез. Это связано с тем, что максимальное напряжение, которое может выдать нога МК, с учетом падений на всех резисторах, порядка 4.7 вольта, а с задающего потенциоматера я могу и все 5 выкрутить. Ну еще и верхушки заваливаются чуток. Если понизить частоту, то диапазон несколько расширится.
Вот так, применив немного смекалки, а также две дополнительные детали общей суммой в один рубль и десяток строк кода, я сэкономил кучу бабла =)
Микросхема PCF8591 обладает следующими возможностями:
Единственный источник питающего напряжения;
- сохранение работоспособности в диапазоне питающих напря-жений от 2,5 до 6 В;
- низкий ток потребления;
- три вывода задания slave-адреса;
- четыре аналоговых входа с возможностью программирования включения (прямое и дифференциальное);
- использование A/D преобразования с последовательным при-ближением и 8-разрядным диапазоном чисел;
- мультиплексированный D/A преобразователь с одним аналого-вым выходом.
Данная микросхема выполнена по технологии КМОП, имеет 4 аналоговых входа и 1 аналоговый выход, управляемые посредством задания данных на шине I2C. Биты А2...А0 в slave-адресе микросхемы задаются внешними сигналами по традиционному способу: подключением соответствующих выводов либо к общему проводу, либо к напряжению питания. Это позволяет использовать до 8 однотипных микросхем. В составе PCF8591 имеется только один A/D преобразователь , но использование методов мультиплексирования расширяет входные возможности микросхемы. Вход АЦП последовательно подключается к 4 сигнальным входам, и происходит считывание информации с них. К сожалению, мультиплексирование нельзя использовать для D/A преобразования, поэтому аналоговый выход только один. Максимальная скорость преобразования данных ограничена максимальным быстродействием шины I2C.
Рисунок 1. Расположение выводов микросхемы PCF8591
Рисунок 2. Блок-схема, отражающая внутреннее устройство и взаимодействие элементов микросхемы
Таблица 1. Назначение выводов PCF8591
Символ | Вывод | Описание |
AIN0 | 1 | Аналоговый вход (A/D) |
AIN1 | 2 | Аналоговый вход (A/D) |
AIN2 | 3 | Аналоговый вход (A/D) |
AIN3 | 4 | Аналоговый вход (A/D) |
А0 | 5 | Адресный вход 0 |
A1 | 6 | Адресный вход 1 |
A2 | 7 | Адресный вход 2 |
Vss | 8 | Общий провод микросхемы (питание) |
SDA | 9 | Линия SDA шины I2C |
SCL | 10 | Линия SCL шины I2C |
OSC | 11 | Вывод подключения внешнего генератора |
EXT | 12 | Внешний/внутренний генератор |
AGND | 13 | Аналоговая «земля» |
Vref | 14 | Опорное напряжение |
AOUT | 15 | Аналоговый выход (D/A) |
Vdd | 16 | Напряжение питания«+» |
Slave-адрес микросхемы задается, как показано на рис.3. Он содержит фиксированную часть (биты 7...4) и изменяемую часть (биты 3...1). Бит 0, как всегда, несет в себе признак «R/W» (чтение/запись).
Рисунок 3. Slave-адрес микросхемы
Второй байт, следующий за slave-адресом, носит название байта контроля и управления. Этот байт конфигурирует микросхему под задачи пользователя. Во-первых, с его помощью можно включить аналоговый выход или отключить его. Во-вторых, возможно настро-ить аналоговые входы как в прямом, так и в дифференциальном включении. В-третьих, возможна установка (двумя битами) номера канала A/D, в котором будет происходить преобразование. Если ус-тановлен флаг автоинкремента, после каждого A/D преобразования номер входного канала будет увеличиваться на единицу. Режим ав-тоинкремента наиболее рационально использовать совместно с внут-ренним генератором, поскольку в таком режиме он будет работать непрерывно. Как сказано в документации, задержка пуска генератора при переключении каналов ведет к ошибкам преобразования данных. Рекомендуется также отключать аналоговый выход (переводить его в Z-состояние), если он не используется. Эта мера позволит сократить ток потребления микросхемы. На рис. 4 показаны возможные со-стояния байта контроля и управления.
Рисунок 4. Со-стояния байта контроля и управления
D/A преобразование
Третий байт, который должна получать микросхема PCF8591, - это байт данных для цифроаналогового преобразователя. Естественно, в этом случае в байте контроля и управления (рис. 4) должен быть активизирован аналоговый выход.
Физически D/A преобразователь состоит из резисторной матрицы, показанной на рис. 5. Точки соединения резисторов образуют ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выходное напряжение (L)AC out) подается затем на усилитель с автоматаческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управления), либо переведен в высокоимпедансное (2) состояние выхода.
Рисунок 5. D/A преобразователь
Важно отметить, что D/A преобразователь используется также в процедуре A/D преобразования по методу последовательного приближения. Данный метод подробно описан в литературе, и возвращаться к нему в рамках этой книги нет смысла.
Рисунок 6. Процедура D/A преобразования
Процедура D/A преобразования показана на рис. 6. Любая точка на графике в диапазоне 00h...FFh может быть определена по формуле:
где VA0UT - выходное напряжение D/A преобразователя; VREF - опорное напряжение; VAGND - потенциал аналоговой «земли»; D - соответствующий разряд байта данных.
Обратите внимание также на рис. 7. Возможна работа с микросхемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент выдачи сигнала АСК, подтверждающего прием байта контроля и управления (рис. 4) на выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания предыдущего цикла работы микросхемы.
Рисунок 7.
Чтобы выполнить A/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осуществить считывание данных согласно рис. 8.
Рисунок 10. Дифференциальный режим измерения
Чтобы обеспечить стабильность A/D и D/A преобразований, необходим специальный источник опорного напряжения, подключаемый к выводам Vref и AGND микросхемы. Встроенный генератор не-обходим для обеспечения цикла преобразования A/D и для корректировки буферного усилителя с автоматической подстройкой нуля.
Чтобы задействовать внутренний генератор, вывод ЕХТ должен быть замкнут к Vss. Тогда на выводе OSC появится сигнал частоты преобразования, который можно проконтролировать. Если вывод ЕХТ подключить к VDD, внугренний генератор перейдет в высокоимпедансное состояние и на вывод OSC можно подавать сигнал от внешнего генератора.
Литература:
Б. Ю. Семенов, «ШИНА I2C В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ»