M5BALA로 라인 트레이스 (적외선 라인 검출 센서편)

4921 단어 M5BalaM5stack

개요



M5BALA + M5Stack FIRE 에 적외선의 라인 검출 센서를 접속해 라인 트레이스를 시켜 보았습니다.
  • M5Stack FIRE에 적외선 라인 감지 센서 연결
  • 선을 감지하여 좌우 회전을 제어하여 선 추적을 수행합니다

  • 환경


  • M5BALA + M5Stack FIRE
  • M5UI.Flow (Firmware 0.8.2에서 확인)
  • 라인 감지 센서 Seeed Studio Grove Line Finder v1.1

  • 라인 감지 센서 구현



    라인 감지 센서를 PORT B에 연결하고 고무 고무로 고정. 센서의 가중치로 전의 척이 되기 때문에 뒤에도 부속의 레고의 부품으로 밸런스를 취했습니다.


    실행 예



    균형을 잡으면서 너무 복잡한 선의 추적은 어렵기 때문에 간단한 과정입니다.

    M5BALA로 라인 트레이스, 전회보다 조금 어렵게 (단순한 타원이 병변형이 된 정도입니다만) 해 보았습니다만, 프로그램은 심플한 것입니다. 좌우의 움직임의 파라미터의 조정이 미묘한 곳. M5BALA에서 라인 트레이스 htps // t. 코 / C ㎉ klcL n fH #M5Stack #M5BALA 피 c. 라고 r. 코 m / 에 2 히 0 2 에오 m


    M5BALA 제어용 프로그램



    M5UI.Flow에서 다음 프로그램을 실행했습니다.




    m5bala_line_trace.py

    from m5stack import *
    from m5bala import M5Bala
    import i2c_bus
    import machine
    
    m5bala = M5Bala(i2c_bus.get(i2c_bus.M_BUS))
    
    # ライン検出センサーを PORT B に接続
    ir_rx = machine.Pin(36, machine.Pin.IN)
    
    # スレッドを使うと不安定(途中で止まってしまう)だったので
    # スレッドを使わずに動かしました。
    #m5bala.start(thread=True)
    
    # 左右の動き&前進のためのパラメータは実際の動きに合わせて要調整。
    line_trace = [15, 50]
    
    while True:
        # センサーの値が 1 (反射無し=黒線上)
        # センサーの値が 0 (反射有り=黒線から外れた)
        # センサーが黒線上にあれば左へ、黒線から外れたら右へ
        # 黒線の左側に沿って進む仕組みです
        rx = ir_rx.value()
        if rx == 1:
            m5bala.left  = line_trace[0]
            m5bala.right = line_trace[1]
        else:
            m5bala.left  = line_trace[1]
            m5bala.right = line_trace[0]
    
        m5bala.balance()
    


    좋은 웹페이지 즐겨찾기