amobbs.com 阿莫电子技术论坛

标题: 超_市_存_包_柜,开源之。虽然将要商业应用,但是无所谓了,天天在这里学习,还是回馈一下 [打印本页]

作者: drinker    时间: 2011-4-25 07:41
标题: 超_市_存_包_柜,开源之。虽然将要商业应用,但是无所谓了,天天在这里学习,还是回馈一下
恩,这个控制器,应该也算门禁的一种吧。我要控制48个门呢,不过是储物柜上的小门。
本次开源原理图与pcb,不是我不开源源程序,实在是因为还没有写完呢。
eagle画的哦ourdev_633350KGOYK8.zip(文件大小:162K) (原文件名:eagle.zip)

左边的是控制电子锁的,右边的是主控 (原文件名:Screenshot.png)
恩,虽然是多年的嵌入式工作者了。
但是这是:第一次用stm32,第一次用eagle,第一次开源,几乎是第一次布线,恩很多第一次呢。
等把程序写完了,也发上来
对了,忘记介绍一下了:
板子是储物柜控制器,按存键,产生条码并打印,同时开一个门供存包。
在扫描器上扫描条码,就开门,简单。
对了,是在jlc打的板子,估计今天明天的就到了吧。布完线我才发现,几乎把stm32的所有资源都引出来了,这个板子甚至可以做个简单的开发板呢。
这是商业应用,不过呢,恩,没有什么不过,既然开源就不唧唧歪歪了。
我要去爬山遛狗去了,一会回来,欢迎大家交流,批评指正。不需打脸。
作者: wjd40    时间: 2011-4-25 07:49
沙发 支持楼主
作者: mcusun2000    时间: 2011-4-25 07:54
支持
作者: sfq2008    时间: 2011-4-25 07:58
MARK
作者: redbat_228    时间: 2011-4-25 08:02
支持
作者: armok    时间: 2011-4-25 08:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: skynet    时间: 2011-4-25 08:07
请楼主同学传个PDF版本的吧,好像很多同学没有装eagle的说
作者: skynet    时间: 2011-4-25 08:09
按存键,产生条码并打印,同时开一个门供存包。
在扫描器上扫描条码,就开门,
这个部分很感兴趣噢,不知道是啥原理

总舵主
这个没源程序不知道能不能置酷阿,好像按照规矩要有图有码才可以好像?
作者: jjj206    时间: 2011-4-25 08:09
支持!
作者: 823032003    时间: 2011-4-25 08:27
支持LZ
作者: huzcmail    时间: 2011-4-25 08:30
顶顶更健康
作者: jdh99    时间: 2011-4-25 08:34
支持,LZ在ubuntu下画的PCB?
作者: liumaojun_cn    时间: 2011-4-25 08:41
mark
作者: chaled    时间: 2011-4-25 08:46
mark
作者: zhanghua315    时间: 2011-4-25 08:52
MARK,希望有PDF的
作者: wwwdege    时间: 2011-4-25 08:53
顶楼主,先占个位
作者: lionliu    时间: 2011-4-25 08:55

作者: lang1437    时间: 2011-4-25 08:59
回复【11楼】jdh99
-----------------------------------------------------------------------

又见11楼 真细心哈哈。。。ubuntu下的PCB软件 怎么装 是不是用wine?!
楼主强人!
作者: coslight_dt    时间: 2011-4-25 09:00
有兴趣
作者: linghu2    时间: 2011-4-25 09:03
前排,学习ING
作者: chishangpiao    时间: 2011-4-25 09:09
继续期待
作者: vermon    时间: 2011-4-25 09:09
只有在这里才有这样好的学习的气氛
作者: drinker    时间: 2011-4-25 09:21
响应大家要求,传pdf。另外,代码没有完成,就传一段ps/2协议读扫描枪的代码吧。
内含单片机主板和一个继电器控制板的pdf原理图与pcb图。同时含ps2代码ourdev_633361CQ6OHA.zip(文件大小:339K) (原文件名:eagle.zip)
细心的同学发现了,我用ubuntu。不用windows好多年了。呵呵,只是网络银行的时候,痛苦一些罢了。平时写代码,也是在ubuntu下,vim+gcc+openocd+insight。还是很好用的。(linux下和谐eagle,本网站就有帖子啊)
有没有更细心的同学发现我给出的图片是直接按下PrtScr键生成的呢?所以图片名字叫screenshot.png.
还有没有更细心的同学发现我配置了双屏,画图编程爽歪歪呢?

回7楼,说白了就是个密码锁,按存键,单片机产生密码,并以条码的形式打印出来。
而客户拿着条码扫描的时候,相当于输入密码,单片机控制开锁就是了。

回17楼,不用wine,我喜欢linux下原生的东东,wine是不用的。如果一个程序没有linux版本,我就不用。基本上。windows能干的事情,linux都能干,并且更好。
恩,上述观点是个人喜好,勿争执。
作者: wuha    时间: 2011-4-25 09:28
linux也能用的这么爽啊?感觉linux下可用的太少了!
作者: watch1030    时间: 2011-4-25 09:38
学习~~~~~~~~
作者: yuzr    时间: 2011-4-25 09:40
mark
作者: skynet    时间: 2011-4-25 09:53
楼主,没有源码没关系,其实说原理我觉得更好,毕竟大家来论坛都是学习了,抄作业这种事情还是少做,没钱途的.
我说说设备和原理你看看对不对
首先,来个人,
按1下存包键  -  MCU键盘扫描,这个很多例子了,经典例程参考马老的
MCU生成条码  -  这个用啥子搞好?当前时间+?????
控制小票打印机出凭条 - 打印机怎么驱动?没弄过
开门,同时保存此条码信息 这个要1个EEPROM之类的来弄吧?

取包
扫描枪扫描 - 这个相当于PS2键盘输入,读取输入值?是这样吧?
与EEPROM中信息比对,正确了开门,错误不管.
正确了还要删除这条信息,否则就重复开门了

大概就这样了吧??至于语音阿,LCD显示阿都是其次了

以上个人猜测,请楼主指正
作者: lsw0136    时间: 2011-4-25 09:53
mark
作者: seaso    时间: 2011-4-25 10:12
顶楼主,楼主做东西开源,用的系统和工具也是开源的,是一个开源爱好者了
作者: flyhouse    时间: 2011-4-25 10:18
不错。条码器有意思。
作者: jamiedu    时间: 2011-4-25 10:35
马克
作者: albert_w    时间: 2011-4-25 10:49
回复【17楼】lang1437  瘸腿狼
回复【11楼】jdh99
-----------------------------------------------------------------------
又见11楼 真细心哈哈。。。ubuntu下的pcb软件 怎么装 是不是用wine?!
楼主强人!
-----------------------------------------------------------------------

eagle的话,直接装,有linux版本
作者: albert_w    时间: 2011-4-25 10:51
回复【26楼】skynet  青青草原
楼主,没有源码没关系,其实说原理我觉得更好,毕竟大家来论坛都是学习了,抄作业这种事情还是少做,没钱途的.
我说说设备和原理你看看对不对
首先,来个人,
按1下存包键  -  mcu键盘扫描,这个很多例子了,经典例程参考马老的
mcu生成条码  -  这个用啥子搞好?当前时间+?????
控制小票打印机出凭条 - 打印机怎么驱动?没弄过
开门,同时保存此条码信息 这个要1个eeprom之类的来弄吧?
取包
扫描枪扫描 - 这个相当于ps2键盘输入,读取输入值?是这样吧?
与eeprom中信息比对,正确了开门,错误不管.
正确了还要删除这条信息,否则就重复开门了
大概就这样了吧??至于语音阿,lcd显示阿都是其次了
以上个人猜测,请楼主指正
-----------------------------------------------------------------------
还有个门的状态检测

非常赞同skynet的说法,开口就要源代码的人,我真的不怎么看得上眼。
作者: skynet    时间: 2011-4-25 11:16
门状态检测就用开关量信号就可以了,高或者低,不过那么多门,不能直接接GPIO了,用74HC之类的扩展1下了
作者: _yuming    时间: 2011-4-25 11:43
mark一下,听课中、、、、
作者: drinker    时间: 2011-4-25 11:44
skynet 青青草原,说的太有道理了。原理就是你说的那个样子的。eeprom就不加了,直接用stm32的flash,并且只是在检测到系统掉电的时候保存密码和状态。其他时间都在内存里面。打印机驱动?简单,小票打印机都支持esc/pos指令。直接串口发指令。
门状态检测,我的锁上面直接带个开关的。相当于键盘。我没有扩74什么的,把所有的io都用上了。呵呵。所以我的板子把所有的io都引出来了,可以当开发扳用的说。jlc今天应该给我发板子了。
开源,必须的,说实话,我们还有什么可以藏着掖着的东西么?我们没有cpu(不要给我提什么中国芯),我们没有操作系统(别提麒麟了),我们没有toolchain,我们没有eda,我们只是做个application,应用级别的东西,还做不好。作为工程师,想想我们基础材料不过关,想想我们没有自己的好数控,想想,,,惭愧!不敢上天涯,看到那些负面的东西,就想移民。哥们现在住在山上,天天挖野菜吃!恩,过几天山上的野蘑菇就要出来了,我会准备个冰箱,储存我采下的野蘑菇。另外,手头代码完成,我就去买几只小鸡养着,房东已经答应他家的鸡棚借给我用。哈哈,越说越跑题了。。。
作者: gaoyukun    时间: 2011-4-25 11:49
mark,一下:)
作者: lm78l05    时间: 2011-4-25 11:51
mark
作者: yyj_sd    时间: 2011-4-25 12:13
LZ潇洒,住在世外桃源?
哥们现在住在山上,天天挖野菜吃!恩,过几天山上的野蘑菇就要出来了,我会准备个冰箱,储存我采下的野蘑菇。另外,手头代码完成,我就去买几只小鸡养着,房东已经答应他家的鸡棚借给我用。哈哈,越说越跑题了。。。
作者: zhuyi25762    时间: 2011-4-25 12:16
等待……
作者: drinker    时间: 2011-4-25 12:30
回复【39楼】yyj_sd  
-----------------------------------------------------------------------

呵呵,北京,香山。
作者: wenxusun    时间: 2011-4-25 12:33
对读条码和打印表示感兴趣
作者: drinker    时间: 2011-4-25 12:54
打印简单的很。。。。
#include <string.h>
#include <stdio.h>
#include "stm32f10x_conf.h"
#include "stm32f10x.h"
#include "printer.h"
#include "uart.h"

void prn_init()
{
       
        USART1_Configuration();
        uart1_send("\x1b\x40",2);   //初始化打印机;
        uart1_send("\x10\x14\x08\x01\x03\x20\x01\x06\x02\x08",10);  //clear buffer
}

void prn_info(int cab,int box)
{
       
        char temp[128];
        sprintf(temp,"箱位:%d柜%d箱\x0a\x00",cab,box);
        uart1_send(temp,strlen(temp));
}
void prn_barcode(const char *barcode,int len)
{

        uart1_send("密码:",6);
        //uart1_send("\x0a\x0a",2);
        uart1_send(barcode,len);
        uart1_send("\x0a",1);
        //uart1_send("\x1b\x61\x01",3);  //中间对齐
        uart1_send("\x1d\x48\x02"   , 3);
        //uart1_send("\x1d\x66\x00"   , 3);
        uart1_send( "\x1D\x68\x52",3);             
        uart1_send("\x1d\x77\x03" , 3);
        uart1_send("\x1d\x6b\x0"   , 3);
        uart1_send(barcode,len);         
        uart1_send("\x0a",1);
}
void prn_cutpaper(void)
{
        uart1_send("\x0a\x0a",2);
        uart1_send("\x0a\x0a",2);//进纸

        uart1_send("\x1d\x56\x42\x00",4); //切纸指令
       
}
作者: Bicycle    时间: 2011-4-25 12:58
踩进来了
作者: cargle    时间: 2011-4-25 13:01
mark
作者: kbdcj2000    时间: 2011-4-25 13:08
mark
作者: skynet    时间: 2011-4-25 13:38
原来打印就是向小票打印机发送ECP码阿,这个需要是串口的,有的小票打是并口的
还有需要MAX232转1下吧???
作者: afei8856    时间: 2011-4-25 14:22
mark
作者: maleon    时间: 2011-4-25 16:06
好巧,这款也是偶们的产品之一。

LZ目前尚在商业化进程中。做设计和成熟的商业化产品中间还尚有一个过程。很多东西做设计的都能做出来。

看了下LZ的线路板图,那么多接线孔眼,自己做当然是没问题的,但是还是要考虑到生产上工人的便利性易操作性,布线的隐蔽性和美观性,以及产品以后的售后的易维护性,因为这个东西体积巨大,全国各地的都卖,出了问题,救火都来不及。

偶一开始就是因为使用了国产假冒的美信串口芯片,导致初始的很多产品在使用了数个月后出现与打印机的通信故障,还好当时力排众议,坚决一次性投入数万元,订做各种颜色的信号线,同一块线路板上尽量使用不同PIN数的端子座,实在避免不了的,譬如开锁的那些端口,接口排线都有不同颜色区分,再辅以详细点的接线图,所以客户维护更换也比较方便。

开锁那端偶是用的LM324做比较器,控制IRF530通断,偶用的是24V/1.5A的电磁铁,通电时间就半秒左右,一开始也加了二极管反向保护,其余的都是贴片代工了,就IRF530和反向二极管,后来看看焊接的工作量太大,就取消了,目前尚未发生过问题。目前申请了IRFR024的贴片装,因为电磁铁工作时间短,且电流也不大,过阵子试试看换参数小点的NMOS管有无问题,去年以来墨西哥原装进口的IR管子价格涨了不少。

另外这是机电结合类的产品,电控部分做的再好,机械加工那头如果没做好,那也够呛,这个箱子体积较大,一台2、300斤,好多喷涂厂先期除油,磷化时,都会把你的箱体弄伤,因为很多喷涂厂都是些老头老太负责产品的除油磷化等预处理工序,再加上晾晒,进喷房粉末喷涂,喷好后还要运输拉到你那,所以磕磕碰碰都很难免,千叮咛,万嘱咐都没用,所以现在这个工序偶们都是自己做。

商业化后还要考虑到回款问题,很多超市欠款蛮厉害的,尤其是一些新开的超市,很多都要你先押款,注意风险。另外柜子体积较大,物流运输很关键,一定要妥善解决箱子的包装,找一家比较可靠的物流商合作,初期偶也是吃了不少苦头。
作者: chenqi    时间: 2011-4-25 16:42
mark
作者: mimanging    时间: 2011-4-25 16:49
顶14楼的经验!
作者: sonna    时间: 2011-4-25 16:50
路过超市存物机时候还真想过看看它内部设计,呵呵。
作者: skynet    时间: 2011-4-25 16:54
请教50楼大侠,为什么在这个地方,控制继电器要用MOS呢,不能用三极管呢?或者达林顿阵列,这样成本不是低1点吗?
作者: drinker    时间: 2011-4-25 17:17
回复【50楼】maleon  
-----------------------------------------------------------------------

顶热心的maleon。谢谢提醒呢。
对了,我用的电磁铁是12v,1.3a左右的。通电时间很短的呢。几十毫秒就可以了。我做了大量的实验的,虽然我原理图上标注的是irf530,其实我是用的小功率的mos管。你看pcb封装就知道了。我的磁铁上有个开关,门锁开的时候,开关闭合,我判断开关闭合后,就停止给磁铁供电了。
我的板子今天下午已经到了,很小的板子,你看pcb的尺寸就知道了。:)

回54楼,其实用三极管是可以的,成本还低。用mos管,是放大了设计余量的,用mos管,10a,8a的不是问题。
作者: yhyf_heart    时间: 2011-4-25 17:22
mark!
作者: caep1986    时间: 2011-4-25 18:04
LZ四川人吗?听口气像
作者: qiushui    时间: 2011-4-25 20:35
学习先
作者: maleon    时间: 2011-4-25 20:41
回复【54楼】skynet 青青草原
-----------------------------------------------------------------------

用大电流的三极管,譬如TIP42C什么的也是可以的,当时偶的出发点考虑也是和LZ的差不多,余量放大点,另外偶测试的时候不是按照正常工作条件测试的,是按照比较苛刻的条件,周期为1秒那种的反复通断,后来还发现安装时固定螺丝会接触到电磁铁的外围线圈(现在通过重新开电磁铁的模具解决了),导致短路,偶在24V总电源那加了个TIP42C,通过程序来控制开锁时上电,然后再选通打开某一路的电磁铁。

另外密码存储在EEPROM里短期内是没问题的,但是EEPROM的擦写次数毕竟比较低,偶是用的铁电,每个对应箱号的固定存储密码的地址字节反复擦写数十亿次以上都是没问题的。
作者: fetchkai    时间: 2011-4-26 10:15
真的是好贴,顶一下!
作者: Bati-Gol    时间: 2011-4-26 10:24
mark
作者: drinker    时间: 2011-4-28 19:40
回复【57楼】caep1986  
-----------------------------------------------------------------------
楼主不是四川人,楼主老婆是四川人。:)
回复【59楼】maleon  
-----------------------------------------------------------------------
我想铁电应该比较贵。
所以我的锁状态和密码是存在ram中的。只要不停电,无所谓啊。(不过要考虑看门狗复位的情况)
系统检测到掉电,才保存到flash中,我考虑到一般情况下,一年停电也没有几次,所以写flash的次数也不多。
另外,这种柜子,我有个可选项目,就是让客户加蓄电池了。停电了也能开柜子。

楼主调试电路中,正郁闷的不行。。。。上来逛逛。
作者: wxws    时间: 2011-4-29 08:59
读PS2条码枪,这个方法好,便宜呀。

搞个现成的模式,死贵

LZ这种锁 哪有卖的?一个大概多少钱
作者: shouzhou    时间: 2011-4-29 10:04
MARK ,满好玩的啊!
作者: zjn8888    时间: 2011-4-29 10:35
楼主是个好人
作者: mk205    时间: 2011-5-2 23:48
不错,值得学习。
作者: hongyao    时间: 2011-5-3 01:02
MARK
作者: durable    时间: 2011-5-3 05:52
mark
作者: wpnx    时间: 2011-5-3 07:22
mark 学习
作者: plc_avr    时间: 2011-5-3 07:50
mark。。。。。。。
作者: abutter    时间: 2011-5-3 08:18
支持一下,呵呵。很不错。
作者: nome    时间: 2011-5-16 12:15
超市那个柜子 每次看见都想原理 终于有人开源了 来看看
作者: luck851    时间: 2011-5-16 12:24
mark
作者: xiaowu191    时间: 2011-5-16 12:31
这个有兴趣,谢谢楼主
作者: jielove2003    时间: 2011-5-16 12:37
mark
作者: hyzqq    时间: 2011-5-16 21:36
了解下,学习。
作者: youpeng    时间: 2011-5-16 23:49
必须支持啊,lz加油!
作者: l4969    时间: 2011-5-18 17:54
谢谢楼主
作者: littlepig    时间: 2011-5-18 22:33
good
作者: lovely-teddy    时间: 2011-5-18 22:54
m
作者: miminzhang    时间: 2011-5-19 10:17
好!
作者: rjinglan    时间: 2011-5-19 10:25
mark
作者: jackwang99    时间: 2011-5-19 10:29
mark 无法下载
作者: Eiman    时间: 2011-5-19 10:39
mark
作者: jinqiankun    时间: 2011-5-19 11:24
mark
作者: ansai0089    时间: 2011-5-19 11:33
标记下
作者: xunpianzhen    时间: 2011-5-19 15:10
mark之
作者: i387DX    时间: 2011-6-23 03:06
顶楼主,学习下……
作者: zqd311107    时间: 2011-6-23 09:12
顶楼主,学习下……
作者: qdshen    时间: 2011-6-23 09:20
对生成、打印条码的感兴趣
作者: diyer_zhou    时间: 2011-6-23 10:26
学习
作者: ouyj_0210    时间: 2011-6-23 16:53
标记
作者: R28FA    时间: 2011-6-23 17:01
mark
作者: johnwjl    时间: 2011-6-23 17:12
必mark!
作者: pvliao    时间: 2011-6-23 17:58
好贴,支持,必须要顶起
作者: au730    时间: 2011-6-23 19:10
mark
作者: aureole    时间: 2011-6-23 19:33
看了这个帖子,深深的感觉到,楼主的那么多第一次就这样奉献出去了
作者: kexiao    时间: 2011-6-23 20:46
好东西,学习了
作者: comway    时间: 2011-6-23 20:58

作者: charley    时间: 2011-7-3 00:13
mark,先学习了。
作者: cuit4017    时间: 2011-7-3 11:32
这个讨论帖很好,虽然不是完全懂,但还是学了一点东西。逛超市的时候也想过它的原理,嘿嘿。




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4