산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

기록 가능한 판지 로봇 암

구성품 및 소모품

Arduino UNO
× 1
보통 크기의 서보
× 3
SG90 마이크로 서보 모터
× 1
브레드보드(일반)
× 1
5V 전원 공급 장치
× 1

필요한 도구 및 기계

뜨거운 글루건(일반)

앱 및 온라인 서비스

Arduino IDE
파이썬

이 프로젝트 정보

이것은 위치를 기록하고 재생할 수 있는 간단한 로봇 팔입니다. 판지나 핫 글루와 같이 쉽게 구할 수 있는 재료로 만들어졌기 때문에 쉽게 만들 수 있습니다.

팔을 제어하는 ​​Arduino에 데이터를 보내는 컴퓨터의 그래픽 인터페이스를 사용하여 팔을 제어합니다. 각 서보를 제어하는 ​​슬라이더와 위치를 기록하고 기록을 재생하는 버튼이 있습니다. 과거 녹음을 저장하고 열 수도 있습니다.

다음은 실제 데모입니다.

지침

1.) 페이지 하단의 맞춤형 부품 및 인클로저 섹션에서 Cardboard Cutout Template을 다운로드하여 인쇄합니다. 이 템플릿을 사용하여 판지 부분을 잘라냅니다.

2.) 위의 영상을 참고하여 Arm 부분을 조립합니다. 빌드는 동영상 0분 22초부터 시작됩니다.

3.) 페이지 하단의 회로도를 기반으로 회로를 구성합니다.

4.) 두 번째 탭의 코드 섹션에서 페이지 하단의 "로봇 암 Arduino 코드"를 다운로드합니다. 그런 다음 이를 팔에 업로드합니다.

5.) 첫 번째 탭의 코드 섹션에서 페이지 하단의 "Python 사용자 인터페이스" 코드를 다운로드합니다. 그런 다음 엽니다. 실행하려면 Python이 설치되어 있어야 하며 https://www.python.org/

에서 다운로드할 수 있습니다.

Python용 PySerial 라이브러리(https://pypi.org/project/pyserial/)도 필요합니다. "pip install pyserial"을 실행하여 설치할 수 있습니다.

6.) 암을 연결하고 "Python 사용자 인터페이스" 코드를 실행한 다음 Arduino의 COM 포트를 입력합니다(Windows의 장치 관리자에서 찾을 수 있음). 이제 사용할 준비가 되었습니다!

작동하지 않으면 Python 코드의 20행에서 time.sleep(0.15)를 0.2 또는 0.3과 같이 더 높은 값으로 늘리십시오.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • Python 사용자 인터페이스
  • 로봇 암 Arduino 코드
  • 파이썬 사용자 인터페이스파이썬
    <사전>tkinter에서 가져오기 *tkinter에서 가져오기 파일에서 가져오기dialogimport serialimport timeport_opened=Falsedef set_port():global port_opened,arduino com_port=port_input.get() arduino=serial.Serial(com_port,9600) port_opened=True 인쇄("COM 포트가 다음으로 설정됨) :"+com_port)def send_positions(위치):메시지 ="{0:0=3d}".format(position[0])+"{0:0=3d}".format(position[1])+" {0:0=3d}".format(위치[2])+"{0:0=3d}".format(위치[3])+"{0:0=3d}".format(위치[4 ])+"\n" arduino.write(str.encode(message)) print(message, end='') time.sleep(0.2)saved_positions =[]def save_positions():stored_positions.append([servo1_slider.get (),servo2_slider.get(),servo3_slider.get(),servo4_slider.get(),servo5_slider.get()]); print("저장된 위치:"+str(saved_positions))def play_positions():저장된 위치의 위치:print("재생 중:"+str(위치)) send_positions(position); time.sleep(1)def clear_all_positions():global stored_positions stored_positions =[] print("모든 위치 삭제")def clear_last_positions():global stored_positions 제거됨 =stored_positions.pop() print("제거됨:"+str(제거됨) ) print("저장된 위치:"+str(saved_positions))def open_file():전역 저장 위치 파일 이름 =filedialog.askopenfilename(initialdir ="/", 제목 ="파일 선택", 파일 유형 =(("텍스트 파일", "*.txt*"),("모든 파일","*.*"))) file =open(filename, "r") data=file.read() stored_positions=eval(data) file.close() print("열림:"+파일 이름)def save_file():save_file =filedialog.asksaveasfile(mode='w', defaultextension=".txt") save_file.write(str(saved_positions)) save_file.close() print(" 저장된 파일")def instructions():print("1.) Arduino의 COM 포트를 설정하고 Enter를 클릭하십시오. 이것은 Windows의 장치 관리자에서 찾을 수 있습니다.") print("2.) 슬라이더를 사용하여 팔의 서보를 이동하십시오") print("3.) 위치를 기록하려면 위치 기록을 클릭하십시오.") print("4.) 기록된 위치를 재생하려면 위치, 재생 위치를 클릭하십시오.") print("\n녹화한 내용을 저장하려면 파일> 파일 저장으로 이동하십시오.") print("이전에 저장한 파일을 열려면 파일> 파일 열기로 이동하십시오.")window =Tk()window.title("로봇암 컨트롤러 2")window.minsize(355,300)port_label=Label(window,text="포트 설정:");port_label.place(x=10,y=10);port_input=Entry(window)port_input.place(x=10,y=35)port_button=Button(window, text="Enter", command=set_port)port_button.place(x=135,y=32)servo1_slider =Scale(창, from_=180, to=0)servo1_slider.place(x=0, y=100)servo1_label=Label(window,text="서보 1")servo1_label.place(x=10, y=80)servo2_slider =Scale(창 , from_=180, to=0)servo2_slider.place(x=70, y=100)servo2_label=Label(window,text="서보 2")servo2_label.place(x=80, y=80)servo3_slider =Scale( 창, from_=180, to=0)servo3_slider.place(x=140, y=100)servo3_label=Label(window,text="Servo 3")servo3_label.place(x=150, y=80)servo4_slider =스케일 (창, from_=180, to=0)servo4_slider.place(x=210, y=100)servo4_label=Label( window,text="서보 4")servo4_label.place(x=220, y=80)servo5_slider =Scale(창, from_=180, to=0)servo5_slider.place(x=280, y=100)servo5_label=Label (window,text="서보 5")servo5_label.place(x=290, y=80)save_button=Button(window, text="기록 위치", command=save_positions)save_button.place(x=10,y=220 )clear_button=Button(window, text="마지막 위치 지우기", command=clear_last_positions)clear_button.place(x=120,y=220)clear_button=Button(window, text="모든 위치 지우기", command=clear_all_positions)clear_button .place(x=120,y=255)play_button=Button(window, text="Replay Positions", command=play_positions, height=3)play_button.place(x=250,y=220)menubar =메뉴(창) filemenu =메뉴(메뉴바, 떼어내기=0)filemenu.add_command(label="파일 열기", command=open_file)filemenu.add_command(label="파일 저장", command=save_file)menubar.add_cascade(label="파일", menu=filemenu)editmenu =Menu(menubar, tearoff=0)editmenu.add_command(label="마지막 위치 지우기", command=clear_last_positions)editmenu.add _command(label="모든 위치 지우기", command=clear_all_positions)menubar.add_cascade(label="Edit", menu=editmenu)helpmenu =Menu(menubar, tearoff=0)helpmenu.add_command(label="사용 방법(인쇄된 in console)", command=instructions)menubar.add_cascade(label="Help", menu=helpmenu)window.config(menu=menubar)while True:window.update() if(port_opened):send_positions([servo1_slider.get (),servo2_slider.get(),servo3_slider.get(),servo4_slider.get(),servo5_slider.get()])
    로봇 암 Arduino 코드Arduino
    #include 서보 서보1;서보 서보2;서보 서보3;서보 서보4;서보 서보5;int servoPositions[5];void setup() { Serial.begin(9600); 서보1.attach(3); 서보2.부착(5); 서보3.부착(6); 서보4.부착(9); 서보5.attach(10);} 무효 루프() { while(Serial.available()){ 문자열 입력 =Serial.readStringUntil('\n'); 서보포지션[0] =input.substring(0,3).toInt(); 서보포지션[1] =input.substring(3,6).toInt(); 서보포지션[2] =input.substring(6,9).toInt(); 서보포지션[3] =input.substring(9,12).toInt(); 서보포지션[4] =input.substring(12,15).toInt(); } 서보1.write(servoPositions[0]); 서보2.write(servoPositions[1]); 서보3.write(servoPositions[2]); 서보4.write(servoPositions[3]); 서보5.write(servoPositions[4]); 지연(500);}

    맞춤형 부품 및 인클로저

    회로도


    제조공정

    1. Arduino 디지털 주사위
    2. MeArm 로봇 암 - 로봇 - V1.0
    3. 아이언맨
    4. 나를 찾기
    5. Arduino 3D 인쇄 로봇 팔
    6. Arduino 가습기 제어
    7. MobBob:Android 스마트폰으로 제어되는 DIY Arduino 로봇
    8. Arduino 제어 피아노 로봇:PiBot
    9. Littlearm 2C:3D 인쇄 Arduino 로봇 팔 제작
    10. Arduino 조이스틱