【智控万物】树莓派四驱车

2021-08-114.9万
精华项目
AI 快速预览详细 收起
本文介绍了如何制作一个带屏幕的树莓派四驱车,包括车身制作、硬件配置及程序代码。项目使用9节锂电池供电,6节用于给四个轮子供电,3节用于给树莓派供电,确保动力强劲。通过详细的步骤和代码示例,帮助用户轻松实现四驱车的前进、后退、左转、右转等功能。适合家长与孩子一起动手实践,无需复杂的编程基础。


【智控万物】树莓派四驱车图18
带屏幕的四驱车

【智控万物】树莓派四驱车图15
可触摸控制的四驱车

【智控万物】树莓派四驱车图14

9节锂电池供电,动力强劲。
(这个四驱车用了9节锂电池,6节用于给四个轮子供电,3节用于给树莓派供电。)

【制作车身】

【智控万物】树莓派四驱车图2

驱动电机

【智控万物】树莓派四驱车图1
固定电机

【智控万物】树莓派四驱车图3

【智控万物】树莓派四驱车图5
安装电机驱动

【智控万物】树莓派四驱车图4
安装电池

【智控万物】树莓派四驱车图6


【智控万物】树莓派四驱车图8
增加双层结构
【智控万物】树莓派四驱车图7

【智控万物】树莓派四驱车图9

【智控万物】树莓派四驱车图10
增加降压模块给树莓派供电

【智控万物】树莓派四驱车图11

【智控万物】树莓派四驱车图12

【智控万物】树莓派四驱车图13

【特色硬件】

【智控万物】树莓派四驱车图17

树莓派扩展板

【智控万物】树莓派四驱车图16

电机驱动

【程序代码】
  1. import RPi.GPIO as GPIO
  2. import time
  3. import tkinter as tk
  4. from tkinter import *
  5. from PIL import Image, ImageTk
  6. GPIO.setmode(GPIO.BCM)
  7. GPIO.setwarnings(False)
  8. GPIO.setup(3,GPIO.OUT,initial = GPIO.LOW)#M1
  9. GPIO.setup(4,GPIO.OUT,initial = GPIO.LOW)#E1
  10. GPIO.setup(5,GPIO.OUT,initial = GPIO.LOW)#M2
  11. GPIO.setup(6,GPIO.OUT,initial = GPIO.LOW)#E2
  12. GPIO.setup(7,GPIO.OUT,initial = GPIO.LOW)#M3
  13. GPIO.setup(8,GPIO.OUT,initial = GPIO.LOW)#E3
  14. GPIO.setup(9,GPIO.OUT,initial = GPIO.LOW)#M4
  15. GPIO.setup(10,GPIO.OUT,initial = GPIO.LOW)#E4
  16. p=[0,1,2,3,4,5,6,7,8,9,10,11]
  17. v=30
  18. def forward():
  19.    global p,v
  20.    if v<=100:
  21.     for i in range(3,11,2):
  22.      GPIO.output(i, GPIO.LOW)   
  23.      p[i].start(v)
  24. def left():
  25.    global p,v
  26.    if v<=100:
  27.     ml=[5,7]
  28.     mr=[3,9]
  29.     for i in ml:
  30.      GPIO.output(i, GPIO.LOW)
  31.     for i in mr:
  32.      GPIO.output(i, GPIO.HIGH)
  33.     for i in range(3,11,2):
  34.      p[i].start(v)
  35. def right():
  36.    global p,v
  37.    if v<=100:
  38.     ml=[5,7]
  39.     mr=[3,9]
  40.     for i in ml:
  41.      GPIO.output(i, GPIO.HIGH)
  42.     for i in mr:
  43.      GPIO.output(i, GPIO.LOW)
  44.     for i in range(3,11,2):
  45.      p[i].start(v)
  46. def back():
  47.    global p,v
  48.    if v<=100:
  49.     for i in range(3,11,2):
  50.      GPIO.output(i, GPIO.HIGH)  
  51.      p[i].start(v)
  52. def stop():
  53.      global p
  54.      for i in range(3,11,2):
  55.       p[i].stop()
  56. def setV():#设置车速
  57.     global v
  58.     val=int(E1.get())
  59.     if val>=30 and val<=200:
  60.         v=val         
  61. for i in range(3,11,2):
  62.    p[i]= GPIO.PWM(i+1, 200)
  63. #生成窗体,布置相应文本框和按钮
  64. top = tk.Tk()
  65. top.title('控制窗口')
  66. top.geometry('800x480')
  67. image_width = 800
  68. image_height = 480
  69. canvas = Canvas(top,bg = 'white',width = image_width,height = image_height )#绘制画布
  70. canvas.pack()
  71. img = Image.open('bg.jpg')
  72. bg = ImageTk.PhotoImage(img)
  73. bgid = canvas.create_image(0, 0, image=bg, anchor='nw')
  74. canvas.place(x = 0,y = 0)
  75. #产生标签文本背景透明效果
  76. txtid=canvas.create_text(300,20, fill = 'red',font=("黑体", 35),anchor="nw")
  77. canvas.insert(txtid,1,"树莓派四驱车")
  78. E1 = Entry(top, bd =5)
  79. E1.pack(side = RIGHT)
  80. E1.place(x=20,y=80)
  81. wx=20
  82. hy=130
  83. #生成按钮,并指定相应功能
  84. left = tk.Button(top,text='左转',height=2,width=15,command=left)
  85. left.place(x=wx,y=hy+100)
  86. forward = tk.Button(top,text='前进',height=2,width=15,command=forward)
  87. forward.place(x=wx+150,y=hy)
  88. right = tk.Button(top,text='右转',height=2,width=15,command=right)
  89. right.place(x=wx+300,y=hy+100)
  90. back = tk.Button(top,text='后退',height=2,width=15,command=back)
  91. back.place(x=wx+150,y=hy+200)
  92. stop = tk.Button(top,text='停止',height=2,width=15,command=stop)
  93. stop.place(x=wx+150,y=hy+100)
  94. wx=450
  95. hy=130
  96. setV = tk.Button(top,text='设速',height=2,width=15,command=setV)
  97. setV.place(x=wx+150,y=hy+100)
  98. while True:
  99.   top.update()
  100.   top.after(100)
  101. top.mainloop()  
复制代码



【演示视频】




跑得太快,抓不住!

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(6)
133830306636783
133830306636783
你好,小车上的洞洞板是哪里购买的,麻烦推荐一下,多谢
许培享
许培享
学习学习
Amos Young
Amos Young
非常好的项目分享
Amos Young
Amos Young
学习好教程
云天
云天
作者
好,你的建议是我迭代的方向
帅猫
帅猫
我觉得吧,用绕线管把先理理更好。
看你的电机带霍尔测速,纠正一下偏航?
既然用了树莓派,可不可以考虑改成语音控制的?
- 没有更多了 -