注册 登录
查看: 8816|回复: 90

[K60] 【山外线性CCD】上位机显示例程和超广角采集效果

  [复制链接]
发表于 2014-10-15 13:00:19 | 显示全部楼层 |阅读模式
上位机下载地址:
【多功能调试助手V1.0】串口、摄像头、GSM... - 智能车资料区 - 山外论坛 http://vcan123.com/forum.php?mod=viewthread&tid=5988&ctid=27


例程中选择一个线性CCD,烧写例程后可以看到图像效果:
这里用 的是超广角镜头所采集的图片效果


这里同时采集3个线性CCD,但只发送一个CCD的图像到 上位机:

  1. //定义存储接收CCD图像的数组
  2. uint8 CCD_BUFF[TSL1401_MAX*3][TSL1401_SIZE];

  3. void PIT0_IRQHandler();


  4. void vcan_sendccd(uint8 *ccdaddr, uint32 ccdsize);

  5. /*!
  6. *  @brief      main函数
  7. *  @since      v5.0
  8. *  @note       山外 线性CCD 测试实验
  9.                 修改 PIT0 的定时时间即可修改曝光时间
  10. */
  11. void  main(void)
  12. {
  13.     uint8 time = 20;
  14.     Site_t site1={0,0};                         //显示图像左上角位置
  15.     Site_t site2={0,70};                        //显示图像左上角位置
  16.     Site_t site3={0,140};                        //显示图像左上角位置

  17.     Size_t imgsize={TSL1401_SIZE,1};            //图像大小
  18.     Size_t size={TSL1401_SIZE,30};              //显示区域大小

  19.     LCD_init();                                 //初始化

  20.     //初始化 线性CCD
  21.     tsl1401_set_addrs(TSL1401_MAX,(uint8 *)&CCD_BUFF[0],(uint8 *)&CCD_BUFF[1],(uint8 *)&CCD_BUFF[2]);
  22.     tsl1401_init(time);                         //初始化 线性CCD ,配置 中断时间为 time

  23.     //配置 中断函数 和 使能中断
  24.     set_vector_handler(PIT0_VECTORn,PIT0_IRQHandler);
  25.     enable_irq(PIT0_IRQn);

  26.     while(1)
  27.     {
  28.         //采集 线性CCD 图像
  29.         tsl1401_get_img();

  30.         vcan_sendccd((uint8 *)&CCD_BUFF[0],1*TSL1401_SIZE);       //这里仅发送一个CCD图像数据到上位机,因此上位机需要选择一个CCD

  31.         //LCD 显示图像
  32.         LCD_Img_gray_Z(site1,size,(uint8 *)&CCD_BUFF[0],imgsize);
  33.         LCD_Img_gray_Z(site2,size,(uint8 *)&CCD_BUFF[1],imgsize);
  34.         LCD_Img_gray_Z(site3,size,(uint8 *)&CCD_BUFF[2],imgsize);
  35.     }
  36. }

  37. //发送图像到上位机显示
  38. //不同的上位机,不同的命令
  39. void vcan_sendccd(uint8 *ccdaddr, uint32 ccdsize)
  40. {
  41. #define CMD_CCD     2
  42.     uint8 cmdf[2] = {CMD_CCD, ~CMD_CCD};    //开头命令
  43.     uint8 cmdr[2] = {~CMD_CCD, CMD_CCD};    //结尾命令

  44.     uart_putbuff(VCAN_PORT, cmdf, sizeof(cmdf));    //先发送命令

  45.     uart_putbuff(VCAN_PORT, ccdaddr, ccdsize); //再发送图像

  46.     uart_putbuff(VCAN_PORT, cmdr, sizeof(cmdr));    //再发送命令
  47. }

  48. /*!
  49. *  @brief      PIT0中断服务函数
  50. *  @since      v5.0
  51. *  @note       由于 TSL1401_INT_TIME 配置 为 PIT0 ,因而使用 PIT0
  52. */
  53. void PIT0_IRQHandler()
  54. {
  55.     tsl1401_time_isr();
  56.     PIT_Flag_Clear(PIT0);
  57. }


本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2015-12-7 02:08:16 | 显示全部楼层
我写过上位机的山外程序 成功了呦  有需要的可以私戳我
回复 支持 1 反对 0

使用道具 举报

发表于 2014-10-16 08:46:01 | 显示全部楼层
顶一个。。。
回复 支持 反对

使用道具 举报

发表于 2014-10-16 12:26:02 | 显示全部楼层
视角不错啊,赛道占了1/3而已,不知道反光情况下黑线会不会太细?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-16 12:27:14 | 显示全部楼层
逑贝莉 发表于 2014-10-16 12:26
视角不错啊,赛道占了1/3而已,不知道反光情况下黑线会不会太细?

反光情况下,是有可能会细一些,视角大,可以安装低一些,从而加粗黑线,也能降低重心
回复 支持 反对

使用道具 举报

发表于 2014-10-16 12:32:02 | 显示全部楼层
支持山外大哥的作品!
回复 支持 反对

使用道具 举报

发表于 2014-10-23 21:14:55 | 显示全部楼层
请问你们的线性CCD就这一款吗?比赛开始后还会有别的CCD吗?这个CCD没有硬件滤波,放大器增益不可调.想求一个这样的CCD.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-23 22:21:43 | 显示全部楼层
693618760 发表于 2014-10-23 21:14
请问你们的线性CCD就这一款吗?比赛开始后还会有别的CCD吗?这个CCD没有硬件滤波,放大器增益不可调.想求一 ...

是有硬件滤波的,但不可用,需要去掉(比赛规则规定)。
回复 支持 反对

使用道具 举报

发表于 2014-11-1 09:33:50 | 显示全部楼层
恩恩 替换掉就好了,上位机就能看了,对于新手   山外大哥还是例程写好放进去吧,不然都不知道怎么替换的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-1 10:12:08 | 显示全部楼层
秦时明月94 发表于 2014-11-1 09:33
恩恩 替换掉就好了,上位机就能看了,对于新手   山外大哥还是例程写好放进去吧,不然都不知道怎么替换的:d ...

后面会有弄好的例程,只不过上位机发布不久,所以没加。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-11-2 01:52:55 | 显示全部楼层
山外哥,命令是用来和上位机匹配的吗,能不发送命令吗
回复 支持 反对

使用道具 举报

发表于 2014-11-20 16:25:20 | 显示全部楼层
期待例程的出现。。。等不急了
回复 支持 反对

使用道具 举报

发表于 2014-11-20 16:27:06 | 显示全部楼层
洲洲0228 发表于 2014-11-20 16:25
期待例程的出现。。。等不急了

大概什么时候能够出例程呀,山外哥?
回复 支持 反对

使用道具 举报

发表于 2014-11-29 15:36:42 | 显示全部楼层
山外哥,那我刚买的CCD有没有硬件滤波,有的话改哪里呀
回复 支持 反对

使用道具 举报

发表于 2014-11-29 15:37:01 | 显示全部楼层
山外メ雲ジ 发表于 2014-11-1 10:12
后面会有弄好的例程,只不过上位机发布不久,所以没加。

山外哥,那我刚买的CCD有没有硬件滤波,有的话改哪里呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-29 15:38:30 | 显示全部楼层
小楠 发表于 1417246602
山外哥,那我刚买的CCD有没有硬件滤波,有的话改哪里呀
应该说是 陀螺仪和加速度模块 才有硬件滤波。

我们的线性CCD是有原始信号和放大信号两种输出。没有硬件滤波这样说法。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2014-12-14 13:02:53 | 显示全部楼层
请问一下 为什么我CCD数据在串口助手显示正确,但是CCD波形显示不了,完全没反应
回复 支持 反对

使用道具 举报

发表于 2014-12-14 13:06:39 | 显示全部楼层
C:\Users\w\Desktop
回复 支持 反对

使用道具 举报

发表于 2014-12-14 13:07:35 | 显示全部楼层
图片如下。。。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-12-20 16:16:36 | 显示全部楼层
山外哥哥,有没有野火k60芯片的CCD的历程,就是收集的数据可以传到上位机上的。
回复 支持 反对

使用道具 举报

发表于 2014-12-21 09:45:02 | 显示全部楼层
这是怎么了。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-12-22 13:44:54 | 显示全部楼层

没有定义吧
回复 支持 反对

使用道具 举报

发表于 2014-12-23 09:51:56 | 显示全部楼层
秦时明月94 发表于 2014-11-1 09:33
恩恩 替换掉就好了,上位机就能看了,对于新手   山外大哥还是例程写好放进去吧,不然都不知道怎么替换的:d ...

怎么修改啊,大神求教,我用的是野火的开元ccd
回复 支持 反对

使用道具 举报

发表于 2014-12-25 18:53:45 | 显示全部楼层
山外哥,有没有现成已经好的CCD程序啊,与你这个上位机配套的,求开源啊,买的是你们的K60FX芯片和补光CCD
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-25 19:46:37 | 显示全部楼层
申继鹏 发表于 2014-12-25 18:53
山外哥,有没有现成已经好的CCD程序啊,与你这个上位机配套的,求开源啊,买的是你们的K60FX芯片和补光CCD

直接把这样代码复制提供主函数就可以了。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-8 14:22:35 | 显示全部楼层
山外メ雲ジ 发表于 2014-12-25 19:46
直接把这样代码复制提供主函数就可以了。

哥FIRE_PORT没定义啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-8 15:04:32 | 显示全部楼层
zycheng 发表于 2015-1-8 14:22
哥FIRE_PORT没定义啊

新版本,改成 VCAN_PORT 这个名字
回复 支持 反对

使用道具 举报

发表于 2015-1-8 15:07:37 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-8 15:04
新版本,改成 VCAN_PORT 这个名字

多谢
回复 支持 反对

使用道具 举报

发表于 2015-1-27 12:30:55 | 显示全部楼层
山外メ雲ジ 发表于 2014-11-1 10:12
后面会有弄好的例程,只不过上位机发布不久,所以没加。

山外哥  能讲一下怎么替换么?真的是没看懂。。
回复 支持 反对

使用道具 举报

发表于 2015-1-27 12:35:55 | 显示全部楼层
山外メ雲ジ 发表于 2014-12-25 19:46
直接把这样代码复制提供主函数就可以了。

复制到野火直立初级篇的主函数里??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 12:38:41 | 显示全部楼层
板正的 发表于 2015-1-27 12:35
复制到野火直立初级篇的主函数里??

这里有main函数和相关的代码,你把我们例程的main函数删掉,换成上面的即可。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-27 12:44:00 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-27 12:38
这里有main函数和相关的代码,你把我们例程的main函数删掉,换成上面的即可。

只要是5.2的例程就可以对么?不需要用野火直立初级篇的例程吧
回复 支持 反对

使用道具 举报

发表于 2015-1-27 12:51:58 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-27 12:38
这里有main函数和相关的代码,你把我们例程的main函数删掉,换成上面的即可。

我试了  有错误  好几个未定义
回复 支持 反对

使用道具 举报

发表于 2015-1-27 14:37:39 | 显示全部楼层
板正的 发表于 2015-1-27 12:51
我试了  有错误  好几个未定义

有错误是正常的,把错误发上来看看。

有可能有的版本修改了变量名。
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:19:21 | 显示全部楼层
hqrlspgdba 发表于 2015-1-27 14:37
有错误是正常的,把错误发上来看看。

有可能有的版本修改了变量名。

这个是5.2版本的
我是用的山外哥第九章作为例程,把main.c里的文件删掉复制上的代码,这样复制对么?还是需要用野火直立初级篇的那个例程?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:20:41 | 显示全部楼层
hqrlspgdba 发表于 2015-1-27 14:37
有错误是正常的,把错误发上来看看。

有可能有的版本修改了变量名。

麻烦帮忙看看吧   我直立程序也是自己写的  没有用山外哥的例程。现在没头绪了  想调CCD,没有上位机观察感觉没法调  用示波器可以么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 15:21:18 | 显示全部楼层
板正的 发表于 1422343161
这个是5.2版本的
我是用的山外哥第九章作为例程,把main.c里的文件删掉复制上的代码,这样复制对么?还是需要用野火直立初级篇的那个例程?
用书后例程!
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:24:13 | 显示全部楼层

是轻松玩转ARM这本书么?哪一章的例程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 15:27:55 | 显示全部楼层
板正的 发表于 2015-1-27 15:24
是轻松玩转ARM这本书么?哪一章的例程

你阅读一下解压代码时自动打开那个pdf文档。

第x章节的内容,都不是完整库,都是逐步添加的例程,所以没有线性CCD驱动等相关代码。
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:32:44 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-27 15:27
你阅读一下解压代码时自动打开那个pdf文档。

第x章节的内容,都不是完整库,都是逐步添加的例程,所以 ...

自动打开的pdf文档?  我找了以前5.2的文件夹里 有一个《书外的参考例程》文件夹  里面有   LCD_线性CCD  例程   请问是这个么
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:33:08 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-27 15:27
你阅读一下解压代码时自动打开那个pdf文档。

第x章节的内容,都不是完整库,都是逐步添加的例程,所以 ...

恩恩   我加上之后有几个未定义的错误。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 15:34:55 | 显示全部楼层
板正的 发表于 1422343988
恩恩   我加上之后有几个未定义的错误。
直接说错误吧。你说有误,那我不知道是什么错的。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:37:57 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-27 15:34
直接说错误吧。你说有误,那我不知道是什么错的。

这个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 15:39:37 | 显示全部楼层
板正的 发表于 1422344277
这个
这些是 线性CCD的函数接口,底层有带的。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 15:40:01 | 显示全部楼层
板正的 发表于 1422344277
这个
是否漏了添加头问题?
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:42:53 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-27 15:40
是否漏了添加头问题?

恩恩  加上了
#include"common.h"
#include"include.h"


然后就是直接复制的开头的代码。我用那个LCD_线性CCD的例程试一下
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:50:33 | 显示全部楼层
本帖最后由 板正的 于 2015-1-27 15:57 编辑
山外メ雲ジ 发表于 2015-1-27 15:40
是否漏了添加头问题?

可以了山外哥,我用的LCD_线性CCD这个例程,然后根据你楼上说的改了个名,就没有错误了   还没有用上位机检测  先把工程传上来吧  大家可以直接用的。


文件太大没法传上来   链接
http://pan.baidu.com/s/1pJI8JgR
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:51:34 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-27 15:40
是否漏了添加头问题?

额  文件太大了、、
回复 支持 反对

使用道具 举报

发表于 2015-3-10 14:20:46 | 显示全部楼层
山外哥,为什么我用的库里没有  VCAN_PORT  这个
回复 支持 反对

使用道具 举报

发表于 2015-3-10 14:22:21 | 显示全部楼层
longwan205 发表于 2015-3-10 14:20
山外哥,为什么我用的库里没有  VCAN_PORT  这个

老版本的库,是用 FIRE_PORT ,新版本的改名了 VCAN_PORT
回复 支持 反对

使用道具 举报

发表于 2015-3-10 17:05:17 | 显示全部楼层
不知道为什么是这样的情况

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回列表 返回顶部