爱板网论坛

查看: 781|回复: 2

[大赛作品提交] 【进阶三】家庭陪伴小机器人遥控小车功能实现

[复制链接]

主题

好友

132

积分

童生

  • TA的每日心情
    开心
    2018-1-18 13:49
  • 签到天数: 6 天

    连续签到: 3 天

    [LV.2]偶尔看看I

    发表于 2018-1-3 00:06:25 |显示全部楼层
    本帖最后由 ky123 于 2018-1-31 14:10 编辑

       感谢E络盟提供的助赛基金。  年底项目比较忙,没有能安装计划进行,大赛会截止了才发现很多东西没有完成,赶了几个通宵完成了部分功能,就这部分功能与大家分享下,期间也趟过好几个坑,也借鉴了很多大神的代码和思想。一直觉得有句话很有道理“不要认为自己是软件工程师,其实我们是技术的搬运工,我们是应用工程师”,linux的世界是开放的世界,他的好处就是不重复造轮子!

    切入正题,本章讲解项目中小车的遥控的实现过程;

    硬件部分:
    亚克力板搭建小车框架,左边的两个电机由一个L298N控制,右边的两个电机由一个L298N控制,由于同侧的两个轮子运动方向相同,因此单侧的两个电机工用一组GPIO,小车运动控制部分共用4个GPIO口!分别为使用了物理GPIO 19/21/22/24,wringpi GPIO12/13/6/10;

    电机使用的GPIO

    电机使用的GPIO

    电机驱动逻辑

    电机驱动逻辑


    软件部分:
    操作系统:raspbian jessie
    编程语音:Python

    1.电机驱动部分(参考了王恒的博客)
    主要根据实际需求修改GPIO即可!
    1. vim ~/car/piCar/server/pi_car/view.py
    复制代码
    1. def ctrl_id():
    2.         if request.method == 'POST':
    3.                 id=request.form['id']
    4.                 GPIO.setmode(GPIO.BOARD)
    5.                 GPIO.setwarnings(False)
    6.                 GPIO.setup(19,GPIO.OUT)
    7.                 GPIO.setup(21,GPIO.OUT)
    8.                 GPIO.setup(22,GPIO.OUT)
    9.                 GPIO.setup(24,GPIO.OUT)

    10.                 if id == 't_left':
    11.                         t_left()
    12.                         return "left"
    13.                 elif id == 't_right':
    14.                         t_right()
    15.                         return "right"
    16.                 elif id == 't_up':
    17.                         t_up()
    18.                         return "up"
    19.                 elif id == 't_down':
    20.                         t_down()
    21.                         return "down"
    22.                 elif id == 't_stop':
    23.                         t_stop()
    24.                         return "stop"

    25.         return redirect(url_for('show_index'))

    26. def t_stop():
    27.         GPIO.output(19, False)
    28.         GPIO.output(21, False)
    29.         GPIO.output(22, False)
    30.         GPIO.output(24, False)
    31.         #  os.system(/usr/local/bin/mjpg_streamer -i "input_uvc.so -y -f 5 -r 640x480" -o "output_http.so -w /usr/local/www"z)

    32. def t_up():
    33.         GPIO.output(19, True)
    34.         GPIO.output(21, False)
    35.         GPIO.output(22, True)
    36.         GPIO.output(24, False)

    37. def t_down():
    38.         GPIO.output(19, False)
    39.         GPIO.output(21, True)
    40.         GPIO.output(22, False)
    41.         GPIO.output(24, True)

    42. def t_left():
    43.         GPIO.output(19, False)
    44.         GPIO.output(21, True)
    45.         GPIO.output(22, True)
    46.         GPIO.output(24, False)

    47. def t_right():
    48.         GPIO.output(19, True)
    49.         GPIO.output(21, False)
    50.         GPIO.output(22, False)
    51.         GPIO.output(24, True)
    复制代码
    2.web版http server程序
    根据需求修改为个人实际IP地址
    1. ~/car/piCar/server/pi_car/config.py
    复制代码
    1. class Config(object):
    2.   BASEDIR = os.path.abspath(os.path.dirname(__file__))
    3.   DATABASE = BASEDIR+'/var/pi.db'
    4.   SECRET_KEY = os.urandom(24)
    5.   USERNAME = 'admin'
    6.   PASSWORD = 'default'
    7.   DEBUG = True
    8.   HOST = '192.168.1.105'
    9.   PORT = 2000
    10. class Development(Config):
    11.   pass
    12. class Production(Config):
    13.   DEBUG = False
    14.   HOST = '192.168.1.105'
    15.   PORT = 8080
    复制代码
    完成以上步骤,执行sudo python server.py,然后输入树莓派IP:2000即可实现对小车的控制!

    小车控制界面

    小车控制界面

    3.添加开机自启动配置
    完成以上步骤还不够,为保证小车开机就可以控制,还需要添加自启动!
    添加过程如下:
    1. sudo vim /etc/rc.local
    复制代码
    添加以下代码:
    1. sudo python /home/pi/car/piCar/server/server.py
    复制代码
    重启后即可实现开机自启动小车远程控制!
    回复

    使用道具 举报

    主题

    好友

    1576

    积分

    进士

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 149 天

    连续签到: 13 天

    [LV.7]常住居民III

    发表于 2018-1-3 17:14:21 |显示全部楼层
    树莓派再加上Python语言是真的简单易用~再加上模块化的电机控制板,打造一个小车也是简简单单充满了乐趣~
    回复

    使用道具 举报

    主题

    好友

    6780

    积分

    状元

  • TA的每日心情
    郁闷
    2 小时前
  • 签到天数: 618 天

    连续签到: 39 天

    [LV.9]以坛为家II

    发表于 2018-1-3 22:00:18 |显示全部楼层
    我也喜欢这玩意
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|爱板网

    GMT+8, 2018-6-19 02:44 , Processed in 0.110495 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部