Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Блоги сообщества Raspberry Pi
  3. GPIO для чайников (часть 6)

GPIO для чайников (часть 6)

Запланировано Прикреплена Закрыта Перенесена Блоги сообщества Raspberry Pi
35 Сообщения 2 Posters 531 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано
    #14

    Спасибо за разъяснение работы индикатора загрузки. Я не заядлый любитель линукс, но чисто визуально мне показалось, что при индикации полной загрузки процессора другие приложения прихрамывают, но это видимо отдельная тема.
    Что касается второго вопроса о графической оболочке, то Вы видимо меня не совсем поняли. Я предложил иной способ загрузки прогаммы интернет радио в отличии от Вашего, т.к. Ваша методика у меня не сработала. Т.е. при описанном мною способе программа так же как и Вас загружается при включении RPI без клавы, мыши и пр.. Включил и получил радио, управляемое кнопкой. Ну так у меня получилось и не надо меня ругать. Это работает. Просто я имел в виду, что при таком способе сохраняется возможность полноценно применять графическую оболочки, при условии, что это необходимо. Еще раз повторюсь, что окна программы не видно. но кнопка работает. Может изложил сумбурно, но все это работает именно так как описано в Ваших техусловиях.

    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано
      #15

      Еще раз про загрузку программ из графической оболочки.
      Как я понял есть программы, которые необходимо запускать именно при работаещей графике. Я столкнулся с этим при экспериментах с радиолюбительской программой WSPR. Все попытки загрузить эту прогу без графической оболочки у меня провалились. Это видимо от незнания и непонимания, но тем не менее результат был достигнут и прога стала загружаться автономно, т.е. при включении питания RPI. И я не вижу ничего зазорного при таком подходе. Может кому и пригодится.

      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано
        #16

        Ну дак а я вас и не ругаю. Способ, который описал я, является стандартным способом автозапуска приложений в Линуксе. Это не моё изобретение. Почему он у вас не сработал, я ничего сказать не могу, т.к. тоже в Линуксе чайник и сам с ним разбираюсь потихоньку.

        1 ответ Последний ответ
        0
        • piP Не в сети
          piP Не в сети
          pi
          написал в отредактировано
          #17

          Х-сервер (который запускается при старте графической оболочки LXDE, либо другой) требуют программы, которые для отображения графики используют его API. Грубо говоря, если интерфейс этих программ выглядит в виде типичного окна со стандартными кнопочками, то разумеется, просто в терминале такая программа не заработает. Есть программы, которые с графикой работают напрямую. Им LXDE тоже ненужен. В основном это либо игрушки, либо всякие демки с красивыми визуальными эффектами. А есть программы с псевдографическим интерфейсом, это когда графика рисуется в терминале печатными символами. Им тоже LXDE без надобности.

          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано
            #18

            ОК!
            Будем работать над ошибками.
            Мой респект Вам!

            1 ответ Последний ответ
            0
            • piP Не в сети
              piP Не в сети
              pi
              написал в отредактировано
              #19

              Куда уж подробнее. И так всё разжёвано

              1 ответ Последний ответ
              0
              • piP Не в сети
                piP Не в сети
                pi
                написал в отредактировано
                #20

                Здравствуйте!
                А не могли бы рассмотреть работу RPI и датчика температуры DS18B20?

                1 ответ Последний ответ
                0
                • piP Не в сети
                  piP Не в сети
                  pi
                  написал в отредактировано
                  #21

                  У меня нет такого датчика. Создайте тему в форуме. Не я, так кто-нить другой подскажет.

                  1 ответ Последний ответ
                  0
                  • piP Не в сети
                    piP Не в сети
                    pi
                    написал в отредактировано
                    #22

                    Привет всем!
                    По поводу кода возник следующий вопрос:
                    В какое место кода добавить write(); чтобы передать работающему дочернему процессу кнопку ENTER сразу после открытия станции? и как правильно передать нажатие этой кнопки? в ascii?
                    Пробую с другими плеерами ибо omx не установился на archlinux.

                    1 ответ Последний ответ
                    0
                    • piP Не в сети
                      piP Не в сети
                      pi
                      написал в отредактировано
                      #23

                      в случае с mocp плеером можно запустить один раз в начале сервер
                      execlp("mocp", "mocp", "-S", NULL);
                      а затем каждую радиостанцию скармливать ему с параметром -l
                      вот только после запуска сервера программа завершает свою работу.
                      что тут можно придумать?

                      1 ответ Последний ответ
                      0
                      • piP Не в сети
                        piP Не в сети
                        pi
                        написал в отредактировано pi
                        #24

                        У меня вылазят ошибки при компиляции

                        radio.c:32:1: warning: excess elements in scalar initializer [enabled by default]
                        radio.c:32:1: warning: (near initialization for ‘station1’) [enabled by default]
                        radio.c:33:1: warning: excess elements in scalar initializer [enabled by default]
                        radio.c:33:1: warning: (near initialization for ‘station2’) [enabled by default]
                        radio.c:34:1: warning: excess elements in scalar initializer [enabled by default]
                        radio.c:34:1: warning: (near initialization for ‘station3’) [enabled by default]
                        radio.c:35:1: warning: excess elements in scalar initializer [enabled by default]
                        radio.c:35:1: warning: (near initialization for ‘station4’) [enabled by default]
                        radio.c: In function ‘play_station’:
                        radio.c:91:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                        radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                        radio.c:92:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                        radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                        radio.c:93:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                        radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                        radio.c:94:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                        radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                        

                        в чем причина?

                        1 ответ Последний ответ
                        0
                        • piP Не в сети
                          piP Не в сети
                          pi
                          написал в отредактировано
                          #25

                          Спасибо за интересную и полезную статью! Хорошая статья и ее реализация! Только вот у меня не компилируется кнопка, а об этой программе вообще нет смысла говорить... надо разобраться с работой кнопки...

                          1 ответ Последний ответ
                          0
                          • piP Не в сети
                            piP Не в сети
                            pi
                            написал в отредактировано pi
                            #26

                            Код копирую - вставляю... и десяток ошибок при компиляции... ничего не пойму... как так может быть... что не так...

                            radio.c:32:1: warning: excess elements in scalar initializer [enabled by default]
                            radio.c:32:1: warning: (near initialization for ‘station1’) [enabled by default]
                            radio.c:33:1: warning: excess elements in scalar initializer [enabled by default]
                            radio.c:33:1: warning: (near initialization for ‘station2’) [enabled by default]
                            radio.c:34:1: warning: excess elements in scalar initializer [enabled by default]
                            radio.c:34:1: warning: (near initialization for ‘station3’) [enabled by default]
                            radio.c:35:1: warning: excess elements in scalar initializer [enabled by default]
                            radio.c:35:1: warning: (near initialization for ‘station4’) [enabled by default]
                            radio.c: In function ‘play_station’:
                            radio.c:91:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                            radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                            radio.c:92:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                            radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                            radio.c:93:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                            radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                            radio.c:94:17: warning: passing argument 1 of ‘do_child’ from incompatible pointer type [enabled by default]
                            radio.c:43:6: note: expected ‘char **’ but argument is of type ‘char *’
                            /tmp/ccbV3SwR.o: In function `main':
                            radio.c:(.text+0x1fc): undefined reference to `forkpty'
                            /usr/local/lib/libbcm2835.a(bcm2835.o): In function `bcm2835_delayMicroseconds':
                            /home/pi/myprog/bcm2835-1.17/src/bcm2835.c:364: undefined reference to `clock_gettime'
                            /home/pi/myprog/bcm2835-1.17/src/bcm2835.c:374: undefined reference to `clock_gettime'
                            collect2: ld returned 1 exit status
                            

                            (((((((((((((((((((((

                            1 ответ Последний ответ
                            0
                            • piP Не в сети
                              piP Не в сети
                              pi
                              написал в отредактировано
                              #27

                              Здравствуйте все! Автор - ты лучший)) Сейчас пытаюсь добавить кнопок для работы omxplayer. Но выходит не очень. Проблемы с кнопкой "p" (то бишь, пауза). Срабатывает только один раз (а хотелось бы n раз), а включение опроса второй кнопки в цикл, само собой, не позволяет пройти основной программе (для работы "q"). Помогите, пожалуйста.
                              Может, нужно для опроса этой кнопки создать ещё один параллельный процесс? Как он тогда будет выглядить?

                              1 ответ Последний ответ
                              0
                              • piP Не в сети
                                piP Не в сети
                                pi
                                написал в отредактировано pi
                                #28

                                После долгих изысканий я понял, что за ошибки выдает при компиляции. Строки

                                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-интернет-радио."

                                1 ответ Последний ответ
                                0
                                • piP Не в сети
                                  piP Не в сети
                                  pi
                                  написал в отредактировано
                                  #29

                                  Однако сделать так, чтобы программа автозапускалась у меня не получилось никаким образом. Скрипт написал (sudo /home/pi/Myprog/./radio) он рабочий и руками спокойно запускается. Поместил его в /etc/init.d. Сделал ссылку на него в /etc/rc.2 и так далее rc.5. Сделать так как написал блоггер под ником "rn6ljk" тоже не получилось. Прошу помощи. Дайте совет чайнику.

                                  1 ответ Последний ответ
                                  0
                                  • piP Не в сети
                                    piP Не в сети
                                    pi
                                    написал в отредактировано
                                    #30

                                    Ура ододел и все работает автоматом. Rn6ljk по твоей инструкции все работает. Сам я сначала недопонял. Просто надо класть в автостарт так сказать ярлык.

                                    1 ответ Последний ответ
                                    0
                                    • piP Не в сети
                                      piP Не в сети
                                      pi
                                      написал в отредактировано
                                      #31

                                      короче, кнопка для переключения даже не требуется, можно переключать аля сенсор: к P1_05 цепляем железную тарелку, и при каждом прикосновении станция переключается. Открытие сделано следующим образом: кнопки нет, хотел замкнуть не мытой вилкой, прикасаюсь к выводу P1_05 и видать заземляю его телом, канал переключается. ВСЕ 🙂

                                      1 ответ Последний ответ
                                      0
                                      • piP Не в сети
                                        piP Не в сети
                                        pi
                                        написал в отредактировано
                                        #32

                                        ЗЫ: кстати без вилки не работает, может вилка заземляет? попробую вилку в перчатках взять 🙂

                                        1 ответ Последний ответ
                                        0
                                        • piP Не в сети
                                          piP Не в сети
                                          pi
                                          написал в отредактировано
                                          #33

                                          вместо перчаток проканали 10 салфеток из ростикса, сложенные в четверо, между ними вилка, трогаю ей порт p1-05 -- работает-переключает. THOUCH RASPBERRY Pi XD

                                          1 ответ Последний ответ
                                          0

                                          • 1
                                          • 2
                                          • Войти

                                          • Нет учётной записи? Зарегистрироваться

                                          • Login or register to search.
                                          • Первое сообщение
                                            Последнее сообщение
                                          0
                                          • Категории
                                          • Главная
                                          • Документация
                                          • Последние
                                          • Пользователи