搜索
bottom↓
回复: 56

03 作业时间到:墨水屏终端原理图及PCB第一版作业

[复制链接]

出10入18汤圆

发表于 2020-7-10 22:11:47 | 显示全部楼层 |阅读模式
第一版原理图、PCB已经绘制完毕。第一次使用这么多的IO,很多IO不是特别确定,查了很多资料。有问题欢迎指正。
PDF原理图
PCB预览请移步嘉立创的平台https://oshwhub.com/YICHIOT/epd_driver_demo

PCB预览图如下:



本帖子中包含更多资源

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

x

出10入18汤圆

 楼主| 发表于 2020-7-10 22:21:06 | 显示全部楼层
最终版的外观也重新发一下,如下图。



本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2020-7-10 22:43:32 | 显示全部楼层
漂亮,预定一套

出0入0汤圆

发表于 2020-7-10 22:48:58 | 显示全部楼层
老哥,需要有人帮你写下服务端那几个接口吗?需要的话我乐意参与进来,技术栈主要是node.js

出10入18汤圆

 楼主| 发表于 2020-7-10 22:51:41 | 显示全部楼层
lnso 发表于 2020-7-10 22:43
漂亮,预定一套

去预订贴里面回复呀。

出10入18汤圆

 楼主| 发表于 2020-7-10 22:52:07 | 显示全部楼层
happyhls 发表于 2020-7-10 22:48
老哥,需要有人帮你写下服务端那几个接口吗?需要的话我乐意参与进来,技术栈主要是node.js ...

最近搞硬件,没顾得上服务器呢。

出0入0汤圆

发表于 2020-7-10 22:52:52 | 显示全部楼层
qtechzdh 发表于 2020-7-10 22:52
最近搞硬件,没顾得上服务器呢。

嗯哪,那到时候再说~

出0入4汤圆

发表于 2020-7-11 00:03:45 | 显示全部楼层
感光传感器可以换成
https://www.sparkfun.com/datasheets/Sensors/Imaging/TEMT6000.pdf

出0入0汤圆

发表于 2020-7-11 06:29:04 来自手机 | 显示全部楼层
arduino的?那没什么兴趣

出10入18汤圆

 楼主| 发表于 2020-7-11 07:38:23 来自手机 | 显示全部楼层
lnso 发表于 2020-7-11 06:29
arduino的?那没什么兴趣

只需要一个小时时间,就可以改成STM32或者其他CPU做主控。

出30入12汤圆

发表于 2020-7-11 16:15:40 | 显示全部楼层
很漂亮,孙工神速啊

出12610入4088汤圆

发表于 2020-7-12 02:43:08 来自手机 | 显示全部楼层
打赏!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏
https://www.amobbs.com/thread-5735948-1-1.html

出0入0汤圆

发表于 2020-7-12 09:31:28 | 显示全部楼层
多谢楼主分享资料。

出0入302汤圆

发表于 2020-7-12 10:16:56 | 显示全部楼层
本帖最后由 Himem 于 2020-7-12 11:33 编辑

齐纳二极管这里看着有点怪?不知是否满足了最低稳定电流要求

电流过低时总感觉输出会过压,建议先试验下?

出0入302汤圆

发表于 2020-7-12 11:49:10 | 显示全部楼层
本帖最后由 Himem 于 2020-7-12 11:51 编辑

光敏伸长转90°放侧面会不会更好些
终端平放在桌面时就完全遮住了

出10入18汤圆

 楼主| 发表于 2020-7-12 13:09:29 来自手机 | 显示全部楼层
Himem 发表于 2020-7-12 11:49
光敏伸长转90°放侧面会不会更好些
终端平放在桌面时就完全遮住了

焊接的时候可以调整,也可以焊更小体积的光敏三极管

出0入0汤圆

发表于 2020-7-13 11:59:46 | 显示全部楼层
漂亮,每天都上来看看进度,期待成品

出130入30汤圆

发表于 2020-7-13 12:52:02 | 显示全部楼层
立创的开源平台不错!!!

出0入0汤圆

发表于 2020-7-13 14:52:13 | 显示全部楼层
楼主这个没有留tf卡接口吗

出10入18汤圆

 楼主| 发表于 2020-7-13 15:10:45 | 显示全部楼层
QuietE 发表于 2020-7-13 14:52
楼主这个没有留tf卡接口吗

看原理图 ,IO 几乎用完了。

出0入0汤圆

发表于 2020-7-13 20:30:33 | 显示全部楼层
本帖最后由 hansdau 于 2020-7-13 20:32 编辑

刚注册的,不会发图。2017的时候zephray 在http://www.github.com/zephray/NekoCal,开源了一个 基于stm32 6寸屏(ED060SC4)的EPD项目。后来我根据这个开源项目做了基于sim800c 2G模块 mqtt通讯的EPD,用于日历提醒和ERP报表。

出10入18汤圆

 楼主| 发表于 2020-7-13 20:31:48 来自手机 | 显示全部楼层
hansdau 发表于 2020-7-13 20:30
刚注册的,不会发图。2017的时候NekoCal 在http://www.github.com/zephray/NekoCal,开源了一个 基于stm32 6 ...

厉害厉害

出0入0汤圆

发表于 2020-7-13 20:34:19 | 显示全部楼层

现在是4G了,可以考虑更换4G模块。我这边也有成熟的商用MQTT方案,已经过大范围长时间的市场考验。

出0入0汤圆

发表于 2020-7-13 20:35:27 | 显示全部楼层

需要MQTT通讯,请和我联系,我可以贡献相关代码和服务端。

出10入18汤圆

 楼主| 发表于 2020-7-13 20:53:23 来自手机 | 显示全部楼层
hansdau 发表于 2020-7-13 20:34
现在是4G了,可以考虑更换4G模块。我这边也有成熟的商用MQTT方案,已经过大范围长时间的市场考验。 ...

4G考虑用air724的方案 24*24mm的CAT1 Lte。

出0入0汤圆

发表于 2020-7-13 20:58:23 | 显示全部楼层
qtechzdh 发表于 2020-7-13 20:53
4G考虑用air724的方案 24*24mm的CAT1 Lte。

尽量用移远的模块吧。

出10入18汤圆

 楼主| 发表于 2020-7-13 21:37:40 | 显示全部楼层
hansdau 发表于 2020-7-13 20:58
尽量用移远的模块吧。

air724可以lua 编程,主要是这一点。
不是最求可靠性的工业设备。air724足够了

出0入0汤圆

发表于 2020-7-13 21:39:38 | 显示全部楼层
qtechzdh 发表于 2020-7-13 21:37
air724可以lua 编程,主要是这一点。
不是最求可靠性的工业设备。air724足够了 ...

外壳是开的模具还是3D打印的?

出0入0汤圆

发表于 2020-7-13 21:42:47 | 显示全部楼层
qtechzdh 发表于 2020-7-13 21:37
air724可以lua 编程,主要是这一点。
不是最求可靠性的工业设备。air724足够了 ...

4G模块注意,开机电流2A以上。

出10入18汤圆

 楼主| 发表于 2020-7-13 21:45:21 | 显示全部楼层
hansdau 发表于 2020-7-13 21:39
外壳是开的模具还是3D打印的?

正在和模具厂沟通,开一个模具。
打印了几套样品。测试一下结构。高精度的还没拿到,拍几张PLA材料的。


本帖子中包含更多资源

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

x

出0入302汤圆

发表于 2020-7-13 21:54:51 | 显示全部楼层
qtechzdh 发表于 2020-7-13 21:45
正在和模具厂沟通,开一个模具。
打印了几套样品。测试一下结构。高精度的还没拿到,拍几张PLA材料的。

脑子里开始响起BGM了

出0入0汤圆

发表于 2020-7-13 22:07:04 | 显示全部楼层
不错,期待中....

出0入0汤圆

发表于 2020-7-13 22:09:09 | 显示全部楼层
Himem 发表于 2020-7-13 21:54
脑子里开始响起BGM了

开模具需要多久啊?  真羡慕你们可以做3D的。这块我不懂。

出0入0汤圆

发表于 2020-7-13 22:30:39 | 显示全部楼层
qtechzdh 发表于 2020-7-13 21:45
正在和模具厂沟通,开一个模具。
打印了几套样品。测试一下结构。高精度的还没拿到,拍几张PLA材料的。


之前的板

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2020-7-14 00:00:31 | 显示全部楼层
qtechzdh 发表于 2020-7-13 15:10
看原理图 ,IO 几乎用完了。

可以和屏的spi复用

出10入14汤圆

发表于 2020-7-14 08:50:04 | 显示全部楼层
  看着还挺不错的......

出0入0汤圆

发表于 2020-7-14 09:03:51 | 显示全部楼层
如果IO口不够用了,可以考虑复用端口,只要在时间上相互没有冲突即可。

出0入0汤圆

发表于 2020-7-14 23:06:50 | 显示全部楼层
hansdau 发表于 2020-7-13 20:30
刚注册的,不会发图。2017的时候zephray 在http://www.github.com/zephray/NekoCal,开源了一个 基于stm32 6 ...

当时好像是2016我也买了一块 Zephray大神的这个项目板子,后面他的个人网页好像关闭了 一直没找到他了  通过你发的链接 今天才发现他github  哈哈 谢谢

出0入0汤圆

发表于 2020-7-29 17:48:58 | 显示全部楼层
hansdau 发表于 2020-7-13 20:30
刚注册的,不会发图。2017的时候zephray 在http://www.github.com/zephray/NekoCal,开源了一个 基于stm32 6 ...

ERP提醒功能有介绍吗?

出0入0汤圆

发表于 2020-8-6 08:57:17 | 显示全部楼层
开起来挺好的

出0入0汤圆

发表于 2020-8-6 09:31:50 | 显示全部楼层
不知道怎么预定,之前的帖子已经回复预定,但是没有收到回复信息。

出0入0汤圆

发表于 2020-8-6 23:26:23 | 显示全部楼层
分辨率多少的。什么平台的cpu

出0入0汤圆

发表于 2020-8-7 10:05:27 | 显示全部楼层
qtechzdh 发表于 2020-7-10 22:51
去预订贴里面回复呀。

预定帖子在哪

出0入46汤圆

发表于 2020-8-12 09:47:17 | 显示全部楼层
楼主做的咋样了呢,最近都没更新了

出0入0汤圆

发表于 2020-8-13 11:28:52 | 显示全部楼层
看起来很不错

出0入0汤圆

发表于 2020-8-31 08:52:44 | 显示全部楼层
期待楼主的大作

出0入0汤圆

发表于 2020-9-29 15:48:52 | 显示全部楼层
不错,期待成品

出0入0汤圆

发表于 2020-10-15 12:45:42 | 显示全部楼层
好久没看到更新了。

出10入18汤圆

 楼主| 发表于 2020-10-15 13:20:28 来自手机 | 显示全部楼层
motata2006 发表于 2020-10-15 12:45
好久没看到更新了。

最后一步,正在搞Unicode转GB2312显示网络传送过来的汉字。
外壳3D打印的质量也不是很好,正在想办法处理

出0入302汤圆

发表于 2020-10-15 14:57:03 | 显示全部楼层
qtechzdh 发表于 2020-10-15 13:20
最后一步,正在搞Unicode转GB2312显示网络传送过来的汉字。
外壳3D打印的质量也不是很好,正在想办法处理 ...


整体内部处理包括字库都直接用unicode应该更好处理

出0入0汤圆

发表于 2020-10-15 17:47:58 | 显示全部楼层
期待楼主的大作

出0入0汤圆

发表于 2020-11-19 11:27:42 | 显示全部楼层
设计的挺不错的,哪里有卖的?

出0入0汤圆

发表于 2020-11-24 22:58:22 | 显示全部楼层
本帖最后由 hansdau 于 2020-11-24 23:10 编辑

给你个思路,可以上位机取汉字字模,网络直接传输字模数据,下位机直接显视就好,以节省单片机宝贵的硬件资源。 下面是用于生产环境的C#相关代码。请参考。

#region 下位机字模相关
        public static string GetHZK12String(string Source)
        {
            if (Source!=null&&Source.Length<4&&Source.Length>0)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < Source.Count() ; i++)
                {

                    //获取汉字的信息
                    sb.Append(GetHex(GetByte( Source.Substring(i,1))));
                }
                var s = sb.ToString();
                return s.Substring(0, s.Length - 1);
            }
            else
            {
                var temp = "未实名";
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < temp.Count(); i++)
                {

                    //获取汉字的信息
                    sb.Append(GetHex(GetByte(temp.Substring(i, 1))));
                }
                var s = sb.ToString();
                return s.Substring(0, s.Length - 1);
            }
           
        }

        #region HZK12
        private static byte[] GetByte(string s)
        {
            byte[] b_gbk = new byte[1];
           // String ss = s.Substring(i, i + 1);
            // Log.i("hzkTest--->>>", ss);
            try
            {
                b_gbk = System.Text.Encoding.GetEncoding("GBK").GetBytes(s); //ss.getBytes("GBK");//必须转为GBK编码
                //Log.i("hzkTest--->>>", "Length=" + b_gbk.length);
            }
            catch (Exception e)
            {
                throw e;
            }
            return b_gbk;
        }

        private static string GetHex(byte[] data)
        {
            int size = 12;//字模的size
            int sum = (size * size / 8);
            byte iHigh, iLow;
            iHigh = data[1];
            iLow = data[0];
            // Log.i("hzkTest--->>>", "h=" + iHigh + ",l=" + iLow);
            int IOffset;//偏移量
            IOffset = (94 * (iLow - 161) + (iHigh - 161)) * 24;//+256防止byte值为负   汉字字模在字库中的偏移地址
                                                               //Log.i("hzkTest--->>>", "IOffset=" + IOffset);@"..\Data\test.txt"
            byte[] iBuff;
            using (FileStream cutFileStream = new FileStream(@"..\3PartyResource\HZK12", FileMode.Open))
            {
                //二进制读取器
                using (BinaryReader cutFileReader = new BinaryReader(cutFileStream))
                {
                    using (BinaryWriter tempWriter = new BinaryWriter(cutFileStream))
                    {
                        //cutBytes = cutFileReader.ReadBytes(1,2);
                        byte[] temp = cutFileReader.ReadBytes(IOffset);//先读取偏移量
                        iBuff = cutFileReader.ReadBytes(size * 2);
                        //  CRC = OtherHelper.ToModbusCRC16(cutBytes, false);
                        tempWriter.Write(iBuff);


                    }
                }
            }



            return getBinary(iBuff);

        }

        private static string getBinary(byte[] iBuff)
        {
            StringBuilder stringBuffer = new StringBuilder();
            int i, j, k;
            for (i = 0; i < 12; i++)
            {
                for (j = 0; j < 2; j++)
                    for (k = 0; k < 8; k++)
                    {
                        if ((iBuff[i * 2 + j] & (0x80 >> k)) >= 1)
                        {
                            stringBuffer.Append("1");
                        }
                        else
                        {
                            stringBuffer.Append("0");
                        }
                    }
            }
            // Log.i("hzkTest--->>>", stringBuffer.toString());

            //把 0 1 按照共阴极逆向式列行式取码方式输出
            return getRowLineReverseCode(stringBuffer);


        }

        private static string getRowLineReverseCode(StringBuilder sb)
        {
            //得到前8行16列 128个
            String pre128 = sb.ToString().Substring(0, 128);
            StringBuilder result = new StringBuilder();
            //  Log.i("hzkTest--->>>", "pre128--->>" + pre128);


            //得到后4行16列 64个
            String las128 = sb.ToString().Substring(128, 64);
            // Log.i("hzkTest--->>>", "las128--->>" + las128);
            //取出每16列的8个数据
            for (int i = 0; i < 16; i++)
            {
                if (i < 12)
                {
                    StringBuilder sb1 = new StringBuilder();
                    for (int j = 0; j < 128;)
                    {
                        String s = pre128.Substring(i + j, 1);
                        sb1.Append(s);
                        j += 16;
                    }
                    result.Append("0x" + (string.Format("{0:x}", Convert.ToInt32(sb1.ToString(), 2)).Length < 2 ? "0" + string.Format("{0:x}", Convert.ToInt32(sb1.ToString(), 2)) : string.Format("{0:x}", Convert.ToInt32(sb1.ToString(), 2))) + ",");
                }
                if (i < 12)
                {
                    StringBuilder sb2 = new StringBuilder();
                    for (int j = 0; j < 64;)
                    {
                        String s = las128.Substring(i + j, 1);
                        sb2.Append(s);
                        j += 16;
                    }
                    result.Append("0x" + (string.Format("{0:x}", Convert.ToInt32(sb2.ToString() + "0000", 2)).Length < 2 ? "0" + string.Format("{0:x}", Convert.ToInt32(sb2.ToString() + "0000", 2)) : string.Format("{0:x}", Convert.ToInt32(sb2.ToString() + "0000", 2))) + ",");
                }
            }
            return result.ToString();
        }
        #endregion

出10入18汤圆

 楼主| 发表于 2020-11-24 23:24:48 | 显示全部楼层
hansdau 发表于 2020-11-24 22:58
给你个思路,可以上位机取汉字字模,网络直接传输字模数据,下位机直接显视就好,以节省单片机宝贵的硬件资 ...

谢谢 用的unicode字库,给了5M的空间,支持12和16号汉字字库和多种英文分辨率。

出0入0汤圆

发表于 2020-11-25 11:08:03 | 显示全部楼层
本帖最后由 hansdau 于 2020-11-25 11:25 编辑
qtechzdh 发表于 2020-11-24 23:24
谢谢 用的unicode字库,给了5M的空间,支持12和16号汉字字库和多种英文分辨率。 ...


那上位机,一个命令把编码转好发下来就可以了。思路打开,灵活使用,不要走极端,想着什么功能都由某个点一起实现了。既然做联网的功能,就要善于使用上位机具有生产力的高级语言,首先是工具好用,其次各种类库功能完备,再次,硬件资源不受限。
如果请求的是自己的资源,上面的思路就好。如果请求的是第三方资源(如天气),可以使用webapi,用自己的服务器做下中间的转码实现,几行代码,几分钟的事。

例如下面的C#语言,一个函数就可以把编码转换:

System.Text.Encoding.GetEncoding("Unicode").GetBytes(message);

出0入0汤圆

发表于 2020-11-25 23:58:20 | 显示全部楼层
不错不错!这种屏的工作温度范围是多少,可以在-20度下工作吗?

出0入0汤圆

发表于 2021-1-17 23:03:27 来自手机 | 显示全部楼层
预定一套,有上车链接吗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-7-3 05:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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