кассетник

Новая жизнь старого кассетника

Завалялся у меня старый проигрыватель дисков, кассет и т.д. – старый стал, лазер подсел, даже на максимальном токе диски уже не читал. Да и морально устарел – ни тебе MP3, ни USB. Но сделан был добротно, посему и выкинуть жалко было. Валялся в подвале, место занимал. Но благодаря гениально-простому применению ARM-а английскими инженерами, наличию свободного времени в связи с отсутсвием загрузки в проектах, решил я вдохнуть жизнь с железяку, безмолвно просившую меня открытой  крышкой дископриемника.

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

  Проигрыватель был успешно принесен из подвала и разобран для идентификации нужных входов/выходов. А нужно мне было не много – 5В и вход стерео на усилитель мощности. В принципе, это заняло найбольшую часть времени, потраченного на конструирование – без осцилографа при помощи одного только мультиметра ... Но, метод научного тыка доказал свою эффективность и необходимые входы были найдены. Правда вместо необходимых 5 В нашел только 13В, посему пришлось ставить КРЕН на 5В/1А, соответственно  лишние 4..8Вт пришлось рассеивать, благо под рукой оказался радиатор из старого блока питания. Ну, зато дёшево

Дополнительно поставил релюшку – 13 вольт брались непосредственно с блока питания и в стендбае не отключались. Итак, привод  диска – на выкинштейн.  Плату управления – туда-же. Освобождаем место под радиатор. Закрепляем «малинку» винтами к корпусу. Между делом паяем блок управления и индикации (во как), состоящее из одного светодиода и двух кнопок, подтягиваем к +3.3В, чтобы противостоять наводкам от ВиФи (в «GPIO для чайников» все подробно описано). 

   За основу программногообеспечения берем примерчик из 5го урока и модифицируем следующим образом:    

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

 Б) добавляем обработку второй кнопки (одна кнопка щелкает каналы вперед, другая – назад) 

int do_parent (int fd, pid_t p, int n)

{

    signed char key_pressed =0;

    

    while(!key_pressed)

    {

      if (bcm2835_gpio_lev(KEY_UP)) key_pressed = INCREASE_STATION;

      if (bcm2835_gpio_lev(KEY_DN)) key_pressed = DECREASE_STATION;

      if (key_pressed) printf("Key : %d\n", key_pressed);

    }

В) Когда переключаемся на другой канал – гасим светодиод . В случае успешного захвата канала – зажигаем светодиод. Достаточно тривиально.    

Г) для автостарта пришлось вводить искусственную задержку в пару секунд – я подозреваю, что вайфаю нужно пару секунд, чтобы законектиться. Если в это время стартует плеер, программа подвисает.

Тэги:

 

Автор:

Комментариев: 3

  • OPERATOR2
    16.07.2013 в 10:13 ответ

    Замечательная работа! А я как-то свои две малины забросил, времени на хобби совсем нет...

  • Timofey3
    02.08.2013 в 19:19 ответ

    Я только не понял про "пятый урок"

    • kulixbulix3
      05.08.2013 в 18:43 ответ

      http://raspberrypi.ru/readblog/135/

Ваш комментарий

Авторизуйтесь для отправки комментария

© Сообщество пользователей RaspberryPi 2021