# 树莓派与Python仿真
> 树莓派是一款基于 ARM 的微型电脑主板,以 SD/MicroSD 卡为内存硬盘,卡片主板周围有 1/2/4 个 USB 接口和一个 10/100 以太网接口 (A 型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和 HDMI 高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有 PC 的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。它是一系列为编程教育而设计的只有信用卡大小的微型电脑(单板计算机),拥有丰富的硬件接口,能够安装任何ARM平台的操作系统,比如Linux的一些发行版、Android、Windows IoT等。
> 运用树莓派,可以快速的部署IOA的虚拟控制终端、图像处理终端,为IOA虚拟仿真引擎的部署提供所有必须的运算资源。同时,树莓派的使用贴近真实的工业场景,能够在仿真完成后快速部署到工业场景的实体产线当中,能够大大加速开发效率。
![](https://img.kancloud.cn/1f/d9/1fd9fbe730118015fc1b4becd25e5bc4_1570x428.png)
> *本教程适用于已经对树莓派和linux操作系统有一定了解的用户,若没有树莓派使用经验,可参照以下链接了解树莓派的基础使用方法:*
> [树莓派镜像烧写与开机](https://zhuanlan.zhihu.com/p/363463625)
> [Linux基础教程](https://www.runoob.com/linux/linux-tutorial.html)
## 软件需求
>* [IOA虚拟仿真软件(Windows端)](http://www.ioaol.com/)
>* Python解释器(树莓派端)
> * [[Python驱动库]](//down.ioaol.cn/004C54B39E870007)
## 工作原理
>IOA虚拟仿真引擎将场景内虚拟相机实时捕获的图像信息利用tcp协议发送出去,python程序接收该信息后对图像进行处理,得到处理结果后利用tcp协议控制场景内虚拟控制器
## 软件安装
>* 在树莓派端打开一个新的终端,并输入
```
sudo apt install python3
sudo apt install python3-pip
pip install modbus_tk imutils opencv-python
```
## 测试工程——视觉
> 1. 打开IOA软件![](https://img.kancloud.cn/fd/7a/fd7ad35b20f9a770d484b227229059e2_82x99.png =100x100)
> 2. 从素材库中拖出一个**视觉相机**![](https://img.kancloud.cn/0f/fc/0ffcb9a153a3a2ed8fb03c43d26bc926_102x127.png =100x100)
> 3. 从素材库中拖出一个**矮紫色块**(也可以是其他物体,用于检测视觉相机是否能看到图像)![](https://img.kancloud.cn/3a/f2/3af286d9d39171ee9b423db33c35c469_79x105.png =100x100)
> 4. 将两个物体移动至合适位置,使视觉相机能够看到目标物体
> ![](https://img.kancloud.cn/48/d8/48d8d3f80a66ca9290f4d8f5ea1557a8_1915x1030.png)
> 5. 在树莓派端打开python文件,并修改IP地址为PC端IP地址
>![](https://img.kancloud.cn/ac/cb/accbb887fea4ef862205106dfcc451d8_525x364.png)
> 6. 在文件所处目录下打开终端并运行即可看到摄像头捕捉的结果
> `python3 filename.py`
> ![](https://img.kancloud.cn/30/f2/30f2c95e38d381535cc0e072fc6adf12_800x800.png)
```
注意:在获取img后,可以使用Opencv、numpy等多种api对图像进行处理,也可以利用tensorflow、pytorch等深度学习推理框架对该图片进行深度学习推理
```
## 测试工程——虚拟控制器
> 1. 打开IOA软件![](https://img.kancloud.cn/fd/7a/fd7ad35b20f9a770d484b227229059e2_82x99.png)
> 2. 点击**控制器**, **添加**, 控制器类别选择**自定义控制器**,点击**确定**
> ![](https://img.kancloud.cn/55/85/5585daafa47f76cfcf90dc1292413a06_1027x142.png)
> 3. 修改红色框位置IP地址为树莓派IP地址与端口![](https://img.kancloud.cn/5b/ba/5bbad1fc5666e1106f3bdb21e9a14d87_1039x137.png)
> 4. 在树莓派端打开代码,修改红色框位置IP地址为树莓派端IP![](https://img.kancloud.cn/1e/99/1e996d247a76407c02228bd8015448b8_556x197.png)
> 5. 在树莓派端运行![](https://img.kancloud.cn/33/df/33df1a39bb49cdea61210325b449f1be_34x28.png)该程序,在IOA软件内**控制器**界面点击**连接**![](https://img.kancloud.cn/9f/56/9f5611589575581490cf052576334e38_60x28.png)
> 6. 在场景内拖出一个LED灯,并将其配线至自定义控制器DO00管脚,可看到LED灯闪烁![](https://img.kancloud.cn/53/48/53485a9252b265f0aadad50a0b839a6c_293x189.png)![](https://img.kancloud.cn/3e/06/3e062adee2769baf2b4568655acb3685_346x219.png)
- IOA-更新与安装
- 软件注册与安装
- 软件使用协议
- 注册与使用
- (一)、认识IOA基础界面功能
- UI界面与设置
- 软件环境设置
- 三维导航操作
- 3D导航球使用
- 快捷键与仿真
- IOA开发工具下载汇总
- (二)、三维场景搭建
- 坐标及旋转
- 模型树与拼接
- 从SolidWorks到IOA放置的模型自制
- IOA辅助工具
- (三)、虚拟电气与调试
- (三)、虚实控制与编程
- 西门子PLC的仿真与控制
- 实体S7-1200控制器的添加
- 虚拟S7-1200控制器的添加
- 西门子PLCS7-1512控制器的添加
- 三菱PLC的仿真与控制
- 三菱PLC仿真器的使用说明
- 三菱PLC的添加与说明
- 工业机器人(纳博特)仿真
- 工业机器人(KEBA)仿真
- 工业机器人(埃夫特)仿真
- 协作机器人(遨博)仿真
- 运动控制(ZMC308)正运动仿真
- 机器视觉(VPLC516)正运动仿真
- 微型机器人(开塔)仿真
- 开塔机器人使用教程
- IOA与开塔机器人仿真
- 工业机器人(ABB)仿真
- Py-teach快速编程仿真
- Py-teach与IOA仿真
- Py-teach语法与编程
- Python编程与仿真
- Python与IOA仿真方法
- Python编程API说明
- 树莓派与IOA仿真
- EAIDK610与IOA仿真
- 单片机接入与仿真控制
- Mixly与IOA
- ArduinoIDE
- Mixly-MEGA_S虚拟工厂SDK
- Mixly-UNO_S虚拟工厂SDK
- Mixly-ESP32虚拟工厂SDK
- (四)、自定义控制器添加
- modbus-tcp自定义控制器