Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Raspberry Pi
  3. Кнопка выключения

Кнопка выключения

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

    У меня появилась проблема - необходимо организовать штатное выключение малины с помощью кнопки на GPIO, Т.К МНЕ ЧАСТО ПРИХОДИТЬСЯ ВЫКЛЮЧАТЬ ЕЕ ПУТЕМ ВЫДЕРГИВАНИЯ ИЗ СЕТИ, ЧТО ОБЫЧНО ПРИВОДИТ К ОШИБКАМ НА SD - КАРТЕ. ВЫКЛЮЧЕНИЕ ЧЕРЕЗ ПРОГРАММЫ НА ТЕЛЕФОНЕ НЕ ПРЕДЛАГАТЬ - ТЕЛЕФОН НЕ ВСЕГДА ПОД РУКОЙ. ПОЖАЛУЙСТА ИЗВЕНИТЕ ЗА CAPSLOCK - ЗАЛИП.

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

      На счет кнопки не знаю. Ну а выключать можно с помощью команды "sudo halt", это на Raspbian. Этот способ получше будет, чем выдергивание Raspberry Pi из сети.

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

        Я имею ввиду, что у меня часто нет дотупа к консоле (стоит как сервер), а вводить команду sudo init 0 через ssh каждый раз - неудобно.

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

          простой вариант, ищем здесь статью "GPIO для чайников" и вешаем на кнопку poweroff
          более правильный вариант, повесить на кнопку обработчик прерываний, http://www.raspberrypi.org/phpBB3/viewtopic.php?f=44&t=7509

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

            Мне кажется, что обработчик прерываний нужен только для уменьшения нагрузки на процессор - это так ?
            Тогда с тем - же успехом можно как - то использовать команду nice .
            P.s. "вешаем на кнопку poweroff" - КАК ?

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

              Пожалуйста, kukabu, сделайте инструкцию.

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

                Ну тогда не знаю. Нужно подключить кнопку и написать программу или скрипт. Ничего конкретнее подсказать не могу 😞

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

                  инструкции нет, читайте статьи "GPIO для чайников", пишите сами

                  nice не снимет нагрузки с проца, в случае поллинга, ваш демон будет просыпаться в любом случае чтоб проверить состояние gpio, в случае прерываний, демон проснётся только когда поступит это самое прерывание, для подробностей гуглим polling vs interrupt

                  "вешаем на кнопку poweroff" - КАК ? типа вот так system("poweroff"); остальной код есть в статьях

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

                    Отлично! Куда проще сказать пишите сами...
                    Я даже не знаю, как это вообще программно может выглядеть...

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

                      Ну позвольте, все же это система. Винду ведь вы на-горячую из розетки не выдергивате? Надо поменять идеологию. Это не мс-дос. Завершайте работу корректно. Или смиритесь с ошибками.

                      Что-то вроде "корректное завершение работы при исчезновении питания" действительно придется писать самому, да еще аккумулятор потребуется. Но за то это будет готовое продаваемое решение.

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

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

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

                          Меня просто напрягает политика kukabu ...

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

                            Ну, скорее всего, это будет отдельный блок, к которому подключается питание. Он будет обрабатывать падение питания, при этом поддерживая питание пирожка конденсатором или аккумулятором. Пирожок будет получать команду на завершение работы и делать sudo halt. После этого уже не важно, выдернем мы сей блок из пирожка или оставим все как есть, пока аккум/кондер не разрядится. Понятно, что такое устройство нужно прописать в системе.

                            Некий аналог smartUPS на нынешних виндах. По крайней мере, я так это вижу. Отмечу, если блок получится компактным и легким в установке, с удовольствием куплю или повторю поделку сам. Ведь оно может даже отправить сообщение типа "На Raspberry Pi #12 пропало напряжение" и потом не придется тупить, почему пирожок перестал пинговаться.

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

                              http://www.masterkit.ru/info/magshow.php?num=693
                              А вот готовое решение. 590 рублей)))

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

                                dimonoid,

                                1. готового решения я не видел, видел бы кинул линк
                                2. я довольно полно указал возможности решения вашей проблемы, полному чайнику на пару часов работы + опыт
                                3. что вы от меня хотите? чтоб я сел и сделал за вас? извините, такого не будет.

                                Anton, как то излишне сложно, да и дорого 🙂

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

                                  Ладно, спасибо хотя-бы за идею.

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

                                    Интересная идея, надо подумать. Мне бы до платформы пригодилась. К примеру АКБ садится он сам едет по пропитанной команде на док станцию, как то так. Или информирует меня как то.

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

                                      Код для кнопки выключения. Кнопка подключается к портам Р1_5 и Р1_6.

                                      #include 
                                      #define PIN_IN RPI_V2_GPIO_P1_05
                                      int main()
                                      {
                                      if (!bcm2835_init())
                                       return 1;
                                      bcm2835_gpio_fsel(PIN_IN, BCM2835_GPIO_FSEL_INPT);
                                      while(bcm2835_gpio_lev(PIN_IN))
                                      {
                                      }
                                      system("poweroff");
                                      return (bcm2835_close ());
                                      }
                                      

                                      Компиляция

                                      gcc -o имя_проги имя_проги.c -lrt -lbcm2835
                                      

                                      Запуск програмки

                                      sudo ./имя_проги
                                      
                                      1 ответ Последний ответ
                                      0
                                      • piP Не в сети
                                        piP Не в сети
                                        pi
                                        написал в отредактировано
                                        #19

                                        Только проц на 100% грузит)

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

                                        • Войти

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

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