TRIGGERcmd
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Tentando Executar um Script python no terminal LX com o TriggerCMD mas não estou conseguindo

    Raspberry Pi
    2
    80
    5.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • RussR
      Russ @Antonio Francisco S.Santos
      last edited by Russ

      @Antonio-Francisco-S-Santos, Google translated that as, "... cannot close the Script when executed by TriggerCMD, if you run it inside Debian in Terminal and open another terminal with the Kill command you can close it."

      So I think you're saying this kill command only kills the Pegar_Objeto.sh script when you run the Pegar_Objeto.sh script manually, but not if you run it via TRIGGERcmd?

      kill -9 $(pgrep -f "/bin/bash /home/pi/TonyPi/Extend/Pegar_Objeto.sh")
      

      If you look at the pgrep command's help, you'll see that the -f parameter specifies the full process name, but I found that you can specify a partial process name.

      $ pgrep --help
      Usage:
       pgrep [options] <pattern>
      
      Options:
       -d, --delimiter <string>  specify output delimiter
       -l, --list-name           list PID and process name
       -a, --list-full           list PID and full command line
       -v, --inverse             negates the matching
       -w, --lightweight         list all TID
       -c, --count               count of matching processes
       -f, --full                use full process name to match
      

      So please try this instead:

      kill -9 $(pgrep -f Pegar_Objeto.sh)
      

      In your commands.json it would look like this:

      "offCommand": "kill -9 $(pgrep -f Pegar_Objeto.sh)",
      

      Russell VanderMey

      Antonio Francisco S.SantosA 1 Reply Last reply Reply Quote 0
      • Antonio Francisco S.SantosA
        Antonio Francisco S.Santos
        last edited by

        Executei esse comando manualmente mas não reve efeito:
        kill -9 $(pgrep -f "/bin/bash /home/pi/TonyPi/Extend/Pegar_Objeto.sh")

        Coloquei tambem o endereço do código principal:
        kill -9 $(pgrep -f "/bin/bash /home/pi/TonyPi/Extend/ApriltagTrack.py")
        Mesmo assim não fechou o Script

        Antonio Francisco S.SantosA 1 Reply Last reply Reply Quote 0
        • Antonio Francisco S.SantosA
          Antonio Francisco S.Santos @Russ
          last edited by

          @Russ said in Tentando Executar um Script python no terminal LX com o TriggerCMD mas não estou conseguindo:

          kill -9 $(pgrep -f Pegar_Objeto.sh)

          Agora colando dessa forma no terminal ele consegue fechar:
          kill -9 $(pgrep -f ApriltagTrack.py)

          Ainda não testei esse comando la no TriggerCMD

          1 Reply Last reply Reply Quote 0
          • Antonio Francisco S.SantosA
            Antonio Francisco S.Santos @Antonio Francisco S.Santos
            last edited by

            @Antonio-Francisco-S-Santos Testei esse comando no TriggerCMD, funcionou perfeitamente só um Script que ficou dando esse erro:
            64e7dafc-1627-45ad-acba-6d3c72549238-2023-06-03-211559_1920x1080_scrot.png

            RussR Antonio Francisco S.SantosA 2 Replies Last reply Reply Quote 0
            • RussR
              Russ @Antonio Francisco S.Santos
              last edited by

              @Antonio-Francisco-S-Santos, that kill command requires root access, so if you prefix that command with sudo it should work. You could also run the script with sudo like this:

              sudo /home/pi/TonyPi/Extend/Stop_Caminhar.sh
              

              Russell VanderMey

              1 Reply Last reply Reply Quote 0
              • Antonio Francisco S.SantosA
                Antonio Francisco S.Santos @Antonio Francisco S.Santos
                last edited by

                @Antonio-Francisco-S-Santos Professor Você é um gênio os Comandos agora funcionaram perfeitamente, com o sudo no inicio como você mencionou. Obrigado meu irmão.
                Agora uma outra dúvida:
                Como saber o nível da bateria que alimenta o Raspberry pi pelo Trigger CMD? Seria isso mais ou menos:
                battery_monitor

                RussR 1 Reply Last reply Reply Quote 0
                • RussR
                  Russ @Antonio Francisco S.Santos
                  last edited by

                  @Antonio-Francisco-S-Santos, awesome! I'm glad it's all working now.

                  About monitoring your battery - I don't think the Raspberry Pi can monitor its input power voltage without an external circuit, maybe like this HAT:
                  https://www.elecrow.com/wiki/index.php?title=Current/Voltage/Power_Monitor_HAT_for_Raspberry_Pi

                  Russell VanderMey

                  1 Reply Last reply Reply Quote 0
                  • Antonio Francisco S.SantosA
                    Antonio Francisco S.Santos
                    last edited by

                    Professor, Tenho outra dúvida, esse código .py abrindo ele na IDE Thoony Python ele funciona normal mas se criar um Script .sh ele reconhece o Giroscópio e o Acelerómetro mas não faz nenhuma ação. aparece esse erro:
                    latin-1' codec can't encode character '\uff01' in position 12: ordinal not in range(256)

                    Aqui estar o Código:
                    import time
                    import hiwonder.Board as Board

                    print('''


                    功能:幻尔科技TonyPi扩展板,PWM舵机控制例程



                    Official website:http://www.hiwonder.com
                    Online mall:https://huaner.tmall.com/

                    以下指令均需在LX终端使用,LX终端可通过ctrl+alt+t打开,或点
                    击上栏的黑色LX终端图标。

                    Usage:
                    python3 BusServoMove.py

                    Version: --V1.2 2021/07/03

                    Tips:

                    • 按下Ctrl+C可关闭此次程序运行,若失败请多次尝试!

                    ''')

                    while True:
                    # 参数:参数1:舵机接口编号; 参数2:位置; 参数3:运行时间
                    Board.setPWMServoPulse(2, 1500, 500) # 2号舵机转到1500位置,用时500ms
                    time.sleep(0.5) # 延时时间和运行时间相同

                    Board.setPWMServoPulse(2, 1800, 800) #舵机的转动范围0-180度,对应的脉宽为500-2500,即参数2的范围为500-2500
                    time.sleep(0.5)
                    
                    Board.setPWMServoPulse(2, 1500, 300)
                    time.sleep(0.2)
                    
                    Board.setPWMServoPulse(2, 1800, 800)  
                    Board.setPWMServoPulse(1, 1800, 800)
                    time.sleep(0.5)
                    
                    Board.setPWMServoPulse(2, 1500, 800)  
                    Board.setPWMServoPulse(1, 1500, 800)
                    time.sleep(0.5)
                    
                    Antonio Francisco S.SantosA 1 Reply Last reply Reply Quote 0
                    • Antonio Francisco S.SantosA
                      Antonio Francisco S.Santos @Antonio Francisco S.Santos
                      last edited by

                      @Antonio-Francisco-S-Santos Erro.png Equilibrio.png

                      Antonio Francisco S.SantosA 1 Reply Last reply Reply Quote 0
                      • Antonio Francisco S.SantosA
                        Antonio Francisco S.Santos @Antonio Francisco S.Santos
                        last edited by

                        @Antonio-Francisco-S-Santos Desculpe, O Código que me refiro é esse aqui:

                        #!/usr/bin/python3

                        coding=utf8

                        import sys
                        import time
                        import math
                        import hiwonder.Mpu6050 as Mpu6050
                        import hiwonder.ActionGroupControl as AGC
                        import hiwonder.Board as Board

                        mpu = Mpu6050.mpu6050(0x68)#启动Mpu6050
                        mpu.set_gyro_range(mpu.GYRO_RANGE_2000DEG)#设置Mpu6050的陀螺仪的工作范围
                        mpu.set_accel_range(mpu.ACCEL_RANGE_2G)#设置Mpu6050的加速度计的工作范围

                        count1 = 0
                        count2 = 0

                        def standup():
                        global count1, count2

                        try:
                            accel_date = mpu.get_accel_data(g=True) #获取传感器值
                            angle_y = int(math.degrees(math.atan2(accel_date['y'], accel_date['z']))) #将获得的数据转化为角度值
                            
                            if abs(angle_y) > 105: #y轴角度大于160,count1加1,否则清零
                                count1 += 1
                            else:
                                count1 = 0
                        
                            if abs(angle_y) < 85: #y轴角度小于10,count2加1,否则清零
                                count2 += 1
                            else:
                                count2 = 0
                        
                            time.sleep(0.1)
                            
                            if count1 >= 1: #往前倒了一定时间后起来
                                count1 = 0  
                                print("equilibrio_1!")#打印执行的动作名
                                AGC.runActionGroup('equilibrio_1')#执行动作
                                Board.setPWMServoPulse(1, 1300, 700)
                                Board.setPWMServoPulse(2, 1500, 700)
                                time.sleep(0.8)
                                AGC.runActionGroup('stand') 
                            
                            elif count2 >= 1: #往后倒了一定时间后起来
                                count2 = 0
                                print("equilibrio_2!")#打印执行的动作名
                                AGC.runActionGroup('equilibrio_2')#执行动作            
                                Board.setPWMServoPulse(1, 1500, 700)
                                Board.setPWMServoPulse(2, 1500, 700)
                                time.sleep(0.8)
                                AGC.runActionGroup('stand') 
                            
                        except BaseException as e:
                            print(e)
                        

                        if name == 'main':
                        print("Fall_and_Stand Init")
                        print("Fall_and_Stand Start")
                        while True : #循环检测机器人的状态
                        standup()
                        key = time.sleep(0.1)
                        if key == 27:
                        break

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post