树莓派小车笔记(书)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42136833/article/details/102540100

参考 王进德,Raspberry Pi 入门与机器人实战,北京大学出版社,2018.07,TP316.85 229.

第六章 Python摄像头控制

  • webcam网络摄像头。
  • pi支持USB的网络摄像头,也有专门为相机预留的接口CSI(Camera Serial Interface)。
  • 安装摄像头(lsusb指令查看当前USB口使用情况)
  • 安装用于捕捉影像的工具fswebcam
    $ sudo apt-get install fswebcam
    使用举例:
    创建output目录:
    $ mkdir /home/pi/output
    捕捉影像:
    $ fswebcam -r 1280*960 --no-banner ~/output/camtest.jpg
  • 可以用crontab指令创建循环工作制度,指令格式为:
    min hour day month week /location/command 2>&1
    编辑调度:
    $ crontab -e
    设置举例:(每一分钟和每五分钟,配合下方时间戳脚本食用)
    * * * * * /home/pi/output/timelapse.sh 2>$1
    */5 * * * * /home/pi/output/timelapse.sh 2>$1
  • 撰写时间戳脚本:
    编写脚本程序:
    $ sudo nano timelapse.sh
    输入脚本程序内容:
    #!/bin/bash
    DATE=$(date "+%Y-%m-%d_%H%M")  # 获取当前系统时间
    fswebcam -r 1280*960 --no-banner /home/pi/output/img_$DATE.jpg  # 捕捉影像
    
    离开nano编辑器,更改文件权限:
    $ chmod -x timelapse.sh
    运行脚本的指令:
    $ ./timelapse.sh
  • 查看图片用xdg-open指令。
  • 录制视频用avconv工具,安装:
    $ sudo apt-get install libav-tools
    使用举例:
    $ avconv -f video4linux2 -r 25 -s 1280*960 -i /dev/video0 ~/output/test.avi
  • 播放视频用omxplayer软件(Raspbian自带),比如:
    $ omxplayer ~/output/test.avi
  • Pygame包含一系列Python模块,可用来编写影音游戏。
    import pygame
    import pygame.camera
    
  • 连接Pi相机模块
    用针软线连至CSI端口(断电连接)。
    安装问题可参考网址:
    https://www.raspberry.org/help/camera-module-setup/
    随后在设置中启用相机模块,并重启Pi。
  • 用raspistill捕捉影像,比如(查看指令参数可用–help):
    $ raspistill -o ~/output/cam_module.jpg
    在其后加-hf -vf参数,可将图像水平和垂直翻转;
    加-t 2000 选项,可设置延时捕捉影像时间;
    加-w 1024 -h 768指令,是分辨率约束(默认以最大分辨率捕捉)。
  • 用raspivid用来录制视频,比如(捕捉5s):
    raspivid -o ~/output/test.h264 -t 5000
  • 缩时摄影

第七章 伺服马达控制

  • 伺服马达,舵机,servo motor。

第十章 直流马达控制

  • DC motor
    • 转速特性。单位:r/min或rad/s。
      r/min * 0.10472 = rad/s
      rad/s * 9.54929 = r/min
      
    • 转矩特性。单位牛顿米Nm或千克重·厘米kgf·cm。
      kgf·cm * 0.0980665 = Nm
    • 电压特性。可以在额定电压50%~125%之间运行。
  • 马达驱动芯片L298N
    • 可驱动两个直流马达或一个步进马达。

    • 驱动电压7~12V。内置78M05稳压芯片(JP1短接时启用)。

    • 用INT和INT控制Motor A的控制逻辑:

      ENA IN1 IN2 功能
      H L H 右转
      H H L 左转
      H H H 停止
      H L L 停止
      L X X 停止
    • 若要控制直流马达的转速,将PWM信号输入ENA脚即可。

  • 其他马达驱动板比如RaspiRobot board V3,含周边组件。

猜你喜欢

转载自blog.csdn.net/weixin_42136833/article/details/102540100