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

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

Запланировано Прикреплена Закрыта Перенесена Raspberry Pi
19 Сообщения 1 Posters 171 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • 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
                                    • Категории
                                    • Главная
                                    • Документация
                                    • Последние
                                    • Пользователи