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

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

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

                                        У автора опечатка, из-за этого автозапуск и не работает:
                                        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
                                        
                                        1 ответ Последний ответ
                                        0
                                        • piP Не в сети
                                          piP Не в сети
                                          pi
                                          написал в отредактировано
                                          #35

                                          Подскажите пожалуйста, поставил скрипт python в автозагрузку, скрипт с бесконечным циклом, но теперь при загрузке не стартуют SSH и web-сервер, выйти из скрипта не могу Ctrl+X и Ctrl+D не помогают, наверно потому что не прописывал пользователя… Как можно еще при загрузке не давать запуститься скрипту?

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

                                          • 1
                                          • 2
                                          • Войти

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

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