Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
W
Wiki
  • Project
    • Project
    • Details
    • Activity
    • Cycle Analytics
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • FPT
  • Wiki
  • Wiki
    • Hisafuru
  • robot_start_button

robot_start_button

Last edited by Kota Hisafuru Dec 02, 2021
Page history

プログラム起動用ボタン

概要

FPT2021がオンラインでの開催となり,ロボットのスタート方法としてsshなどが使えずボタン1つのみでスタートする必要が生じたため,arduinoを使いボタン1つで起動プログラムを呼び出す方法をメモしておく.

使用したもの

  • Arduino Micro
  • LED
  • 抵抗(10kΩ)
  • タクトスイッチ

回路構成

作成した回路を以下に示す.

回路はプログラム起動用ボタンと停止用ボタンで構成される.プログラムの起動中はLEDが点灯する.起動用ボタンは10番のピン,停止用ボタンは9番のピン,LEDは11版のピンが割り当てられている.本デバイスはキーボードとして認識されるためArduino MicroとUltra96等をUSBで接続しておく必要がある.

プログラム

作成したプログラムを以下に示す.

#include <Keyboard.h>

const int START_PIN =9;
const int STOP_PIN =10;
const int LED_PIN =11;
bool start_on = false;
bool stop_on = false;
void setup(){
    Keyboard.begin();
    pinMode( START_PIN, INPUT_PULLUP );
    pinMode( STOP_PIN, INPUT_PULLUP );
    pinMode( LED_PIN, OUTPUT);

    Serial.begin( 115200 );
}

void loop(){
    int value;
    
    value = digitalRead( START_PIN );
    if(value == 1 && start_on == true){
      Keyboard.print("touch /root/keyboard\n");
      Keyboard.releaseAll();
      digitalWrite(LED_PIN, HIGH);
      start_on = false;
    }else if(value == 0 && start_on == false){
      start_on = true;
    }

    value = digitalRead( STOP_PIN );
    if(value == 1 && stop_on == true){
      Keyboard.print("stop\n");
      Keyboard.releaseAll();
      digitalWrite(LED_PIN, LOW);
      stop_on = false;
    }else if(value == 0 && stop_on == false){
      stop_on = true;
    }
}

本デバイスはOSからはキーボードとして認識される.起動ボタンが押された時,"s\n"という文字列が入力される.そのため,起動したいプログラムをエイリアスで"s"として登録しておく必要がある.

エイリアスの例

alias=s='python3 test.py'

停止ボタンが押されると,"ctrl+c"が入力され起動しているプログラムが停止する.

CUI起動の設定

PYNQのCUI起動方法

sudo systemctl disable pynq-x11.service
sudo systemctl set-default multi-user.target
sudo systemctl edit getty@tty1

getty@tty1には以下を記述

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin xilinx --noclear %I 38400 linux

その後リスタート

sudo shutdown -r now
Clone repository

Home

home

議事録

  • 議事録① 5/26
  • 議事録② 6/9
  • 議事録③ 6/23 (議事録とっていません...)
  • 議事録④ 7/7
  • 議事録⑤ 7/21
  • 議事録⑥ 8/11
  • 議事録⑦ 11/25
  • 議事録⑧ 12/22

Ultra96 メモ

  • セットアップ
  • GPIO

個人メモ

高崎

  • メモ
  • 方針
  • Camera
  • DYNAMIXEL Wheel Drive

若泉

  • 若泉 メモ

久古

  • BNNの実装方法
  • 起動ボタン実装
More Pages

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.