По воздуху то будет работать, а в воду не засунете!
Лучшие сообщения pi
-
RE: Ультразвуковой глубиномер
-
Обновление форума
Форум обновился.
Старые сообщения удалось перенести, но информация об авторах сообщений утеряна.
Поэтому у всех старых сообщений один и тот же автор -
RE: Ввод ключевого слова для выхода из цикла
@Sailwork#6598 Есть у кого какие-нибудь идеи реализации такого алгоритма
Да какие тут идеи?! Ситуация обсосанная тысячу раз. Без привязки к языку программирования:
- Создаём переменную, управляющую повторением цикла и присваиваем ей значение TRUE
- Создаём нить, которая висит на ожидании ввода с клавиатуры. По нажатию Enter проверяется, что введено. Если это команда остановки, то переменной цикла присваиваем FALSE и завершаем нить.
- Запускаем основной цикл, который крутится пока управляющая переменная TRUE
-
RE: О реальном времени
Не совсем понятно, что есть «двухпортовая память».
Наверно разумно говорить: «память должна быть подключена к контроллеру и малине так что бы малине обеспечивался прямой доступ к памяти».
Но зачем?
В большинстве контроллеров есть достаточный объём встроенной памяти что бы организовать буфер для хранения данных пока они не будут переданы малине и достаточное быстродействие что бы успевать передавать накопленные данные через параллельный интерфейс.
То есть логика работы получается такая:
Контроллер в прерываниях обрабатывает события, вычисляет приход события с точностью до 1 одного своего такта, например, используя таймер, полученный результат записывает в буфер организованный в его памяти по принципу FIFO, а в моменты, когда прерываний нет отдаёт малине данные из буфера.
Если данные 8 бит, то потребуется всего 10 линий связи: 0...7=DATA, 8=RD, 9=READY.
Алгоритм передачи например такой:
Малина ставит лог1 на RD и ожидает на READY появление лог1, как только есть такое то считывает данные с линий DATA, сбрасывает RD в лог0 что является сигналом для контроллера перейти к следующей ячейке буфера, как только это сделано READY сбрасывается в лог0, далее процесс повторяется.
Если данных в буфере нет, то линия RD будет установлена в лог1 а линия READY так и будет с уровнем лог0, как только придёт первый же байт данных в буфер то READY будет установлена и данные будут считаны.Банальные AVR контроллеры обладают быстродействием под 16МГц и даже 20МГц, если и этого мало то можно применить STM32F103R8T6 а это 72МГц, то есть можно фиксировать события с точностью 1/72 000 000 секунды. Если и этого нехватает, то тогда да, потребуется применить DRAM и сделать всё на ПЛИС, тогда можно и 700МГц.
Возможно (зависит от задачи) есть вариант и более простого решения: зачем мучить малину, применять RAM, контроллеры, когда например событие происходит относительно редко — можно обойтись высокочастотным генератором и высокоскоростным счётчиком который засчёлкивается по событию и имеет некий интерфейс (I2C или SPI или параллельный) для считывания результата счёта, достаточно лишь будет по появлению события считывать результат с счетчика, сбрасывать его и далее пусть считает время до события хоть с точностью 1/5000 000 000 секунды (за это время электрический импульс в проводе успеет пробежать лишь 6 сантиметров). Подходящие счётчики можно найти в составе некоторых микросхем синтезаторов частоты.
Недавние сообщения pi
-
Rock Pi X - одноплатный компьютер с x86 процессором и полноценной поддержкой Windows 10
Китайская компания Radxa разработала одноплатник Rock Pi X похожий на Raspberry Pi, но с x86 процессором Intel Atom x5-Z8350, а значит на нём можно запускать любую операционную систему, как на классическом персональном компьютере, включая Windows 10.Стоимость базовой модели с 2Gb оперативной памяти и 16Gb встроенной памяти eMMC составляет 59$. Также доступны более дорогие модификации:
4GB RAM/32GB eMMC - $75 4GB RAM/64GB eMMC - $85 4GB RAM/128GB eMMC - $99
Intel’s Atom 5-Z8350 4-ядерный, 4-поточный процессор с энергопотреблением 2Вт, выпущенный в 2016 году, частота 1.44 GHz / 1.84 GHz (в турборежиме), GPU - Intel Gen8 HD graphics @ 500 MHz. Особой производительностью данный процессор не отличается, поэтому не ждите скорости работы обычного персонального компьютера. Но поскольку он обладает архитектурой X86, то на нём можно запускать любые приложения для классических x86 ПК
Согласно спецификации Rock Pi X на борту имеется выход HDMI 2.0 с поддержкой 4K 30 fps, а также
- Аудиовыход 3.5mm jack с микрофоном, HD кодек поддерживает аудио 24-bit/96KHz
- WiFi 5, Bluetooth 4.2, вход для подключения внешней антенны
- 1 x USB 3.0 OTG, 3 x USB 2.0 HOST
- 1 x GbE LAN с поддержкой Power over Ethernet (требуется дополнительный модуль)
- 40-pin GPIO
- 2 x UART
- 2 x SPI
- 2 x I2C
- 1 x PCM/I2S
- 1 x SPDIF
- 2 x ШИМ
- 1 x АЦП
- 6 x GPIO
- Габариты 85мм x 54мм
-
Raspberry Pi 400
Что такое Raspberry Pi 400?
Это компьютер с процессором от Raspberry Pi 4 и 4Гб оперативной памяти, выполненный в форм-факторе стандартной компьютерной клавиатуры. Купить можно по цене в 70$
Габариты устройства - 286 x 122 x 23 мм
В комплект с Raspberry Pi 400 также входит:
- Оригинальная USB мышь
- Оригинальный блок питания
- Карта памяти с предустановленной операционной системой
- Кабель microHDMI-HDMI
- Руководство для начинающих
Плата устройства оригинальная (внутри корпуса клавиатуры не Raspberry Pi 4, а полностью оригинальная плата на основе её процессора Broadcom BCM2711)
По портам всё идентично Raspberry Pi 4 (за исключением того, что количество USB портов у "проекта 400" уменьшилось на 1) и отсутствует порт CSI-2 для подключения родной камеры с аппаратным ускорением
Увеличенная частота процессора
Через весь корпус устройства проходит радиатор, который эффективно охлаждает процессор и равномерно рассеивает отведённое тепло. Благодаря этой системе охлаждения процессор RasPi 400 имеет увеличенную до1.8GHz частоту (1.5 у Raspberry Pi 4).
Кнопка включения/выключения
В отличии от других моделей RasPi 400 можно включать/выключать нажатием кнопки
Для выключения нужно зажать кнопки Fn+F10 на пару секунд. Выключение программное (после нажатия в Linux уходит команда вроде poweroff)
Для включения нужно нажать F10
Локализация
В настоящий момент на клавишах клавиатуры нет русских букв, но разработчики обещают постепенно выпустить локализации для всех популярных языков
P.S
А помните компьютер СЮБОР (по сути Dandy в форме клавиатуры)? Там ещё был обучающий картридж для программирования на BASIC
-
RE: GPIO для чайников (часть 6)
Подскажите пожалуйста, поставил скрипт python в автозагрузку, скрипт с бесконечным циклом, но теперь при загрузке не стартуют SSH и web-сервер, выйти из скрипта не могу Ctrl+X и Ctrl+D не помогают, наверно потому что не прописывал пользователя… Как можно еще при загрузке не давать запуститься скрипту?
-
RE: GPIO для чайников (часть 6)
У автора опечатка, из-за этого автозапуск и не работает:
sudo update-rc.d autostart.sh defaults - в конце надо дописать s. Лично у меня из-за этого не работало.
Также при изменении файла autostart.sh, надо все время выполнять:sudo chmod 755 /etc/init.d/autostart.sh
Если у вас написано на python то нужно писать в файле:
export USER='pi' sudo python /home/и т.д. exit 0
-
RE: GPIO для чайников (часть 6)
вместо перчаток проканали 10 салфеток из ростикса, сложенные в четверо, между ними вилка, трогаю ей порт p1-05 -- работает-переключает. THOUCH RASPBERRY Pi XD
-
RE: GPIO для чайников (часть 6)
ЗЫ: кстати без вилки не работает, может вилка заземляет? попробую вилку в перчатках взять
-
RE: GPIO для чайников (часть 6)
короче, кнопка для переключения даже не требуется, можно переключать аля сенсор: к P1_05 цепляем железную тарелку, и при каждом прикосновении станция переключается. Открытие сделано следующим образом: кнопки нет, хотел замкнуть не мытой вилкой, прикасаюсь к выводу P1_05 и видать заземляю его телом, канал переключается. ВСЕ
-
RE: GPIO для чайников (часть 6)
Ура ододел и все работает автоматом. Rn6ljk по твоей инструкции все работает. Сам я сначала недопонял. Просто надо класть в автостарт так сказать ярлык.
-
RE: GPIO для чайников (часть 6)
Однако сделать так, чтобы программа автозапускалась у меня не получилось никаким образом. Скрипт написал (sudo /home/pi/Myprog/./radio) он рабочий и руками спокойно запускается. Поместил его в /etc/init.d. Сделал ссылку на него в /etc/rc.2 и так далее rc.5. Сделать так как написал блоггер под ником "rn6ljk" тоже не получилось. Прошу помощи. Дайте совет чайнику.
-
RE: GPIO для чайников (часть 6)
После долгих изысканий я понял, что за ошибки выдает при компиляции. Строки
char *station1={"http://listen2.myradio24.com:9000/8304", NULL}; char *station2={"http://89.208.99.16:8088/zvezda_128", NULL}; char *station3={"http://imgradio.pro/MegaRadio", NULL}; char *station4={"http://imgradio.pro/RusHit", NULL};
Надо писать так
char *station1[]={"http://listen2.myradio24.com:9000/8304", NULL}; char *station2[]={"http://89.208.99.16:8088/zvezda_128", NULL}; char *station3[]={"http://imgradio.pro/MegaRadio", NULL}; char *station4[]={"http://imgradio.pro/RusHit", NULL};
Теперь процитирую автора: "Прячем наш RPI в изящную коробочку, выводим на панель нашу кнопочку, подключаем колонки и ставим на холодильник готовое устройство, наслаждаемся проделанной работой под музычку, играемую нашим RPI-интернет-радио."