乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

使用Python语言进行硬件开发

发表于 2023-04-03

前言

cool-admin V6.0开始接入了物联网开发,默认集成了MQTT服务。在这个万物互联的时代,我们多掌握一种技能就多一分优势。

Show

选型

目前市面上大多数开发物联网的都是c系列的语言,但是随着硬件性能的提升其实我们对编程语言的选择已经慢慢趋向于考虑好用、方便、简单,而不是性能。

对于没接触过c语言的开发者,他们大部分习惯用java、php、go、python等比较上层的语言,学c的话花的时间可能比较久。因此综合cool的粉丝和其他考虑,我们选用 MicroPython来作为我们开发物联网的语言,使用起来和python几乎无差别。

python做为一门工具语言,是很多开发着需要去掌握的!!!

MicroPython

MicroPython是一种基于Python的精简版嵌入式操作系统,它能够在小型的嵌入式系统中运行Python解释器。MicroPython支持各种硬件平台,包括单片机,Wi-Fi模块,以及其他各种嵌入式设备。

MicroPython被设计成轻量级的、高效的,并且可以非常容易地与各种传感器、执行器和其他外部硬件设备进行通信。它支持许多标准Python库,同时还具有一些专门为嵌入式设备设计的库和工具。

MicroPython的目标是提供一个方便的Python环境,可以让开发人员在嵌入式设备上轻松地编写代码,并且可以直接在设备上运行代码,而不需要在外部计算机上编译或调试代码。

MicroPython可以通过串口或者Wi-Fi连接进行编程和调试,还可以使用MicroPython的交互式REPL环境(Read-Eval-Print-Loop)来进行快速原型开发。同时,MicroPython还支持Python 3语法,并且具有自动垃圾回收功能,这使得编写代码更加简单和高效。

硬件设备

对比了市面上很多种设备,最终选用Esp32,来作为我们的硬件设备,它有以下特点(看不懂的同学不要着急,大概了解就行):

  1. 高性能:ESP32拥有两个Tensilica LX6内核,主频高达240MHz,能够提供高性能的计算能力,可以处理复杂的算法和任务。
  2. 低功耗:ESP32的功耗非常低,它具有多种节能模式,可以延长电池寿命,从而使其成为无线传感器、物联网设备和移动设备的理想选择。
  3. 内置Wi-Fi和蓝牙:ESP32具有内置的Wi-Fi和蓝牙模块,支持多种无线协议和标准,可以实现快速、稳定的网络通信,从而扩展了应用场景。
  4. 丰富的外设:ESP32集成了多个外设,包括多个通用输入输出口、ADC、DAC、PWM、SPI、I2C、UART、定时器等,可以满足不同应用的需求。
  5. 安全性:ESP32支持多种安全特性,包括加密算法、安全引导和安全存储,可以保证系统的安全性。
  6. 易于开发:ESP32可以使用Arduino、MicroPython、JavaScript等多种编程语言进行开发,同时还有丰富的开发工具和社区支持,可以方便快速地进行原型设计和开发。

总的来说,ESP32硬件具有高性能、低功耗、内置无线通信、丰富的外设、安全性高和易于开发等优点,可以满足各种物联网和嵌入式应用的需求。

Eps32

资源

  • 一个模拟开发板的网站,支持Esp32和MicroPython:https://wokwi.com/open in new window
  • 一个入门学习错的教程:https://doc.itprojects.cn/0006.zhishi.esp32/02.doc/index.html#/open in new window
  • 制作定制电路板:https://www.jlc.com/open in new window

附加

除了MicroPython之外, 目前还有pikapython

具体文档: 点击进入

本文转载自: COOL-JS

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

AI和硬件开发

发表于 2023-04-02

前言

国内有不少已经接入ChatGPT相关API并做成了独立Web形式的网站, 比如

https://talkai.cc/

image-20230404145647933

想尝鲜的可以体验一下

AI和硬件

AI归根结底还是一个软件, 未来必须结合硬件才能大展拳脚, 更进一步

所以硬件开发在接下来的时间里会有一个迅速的进步

以前我们所谓的智能家居, 其实还是相对简陋了一些, 只不过是从原来的机械控制转变成了数字控制, 但实际操作还是离不开人

未来有AI的参与, 那智能家居才算是真正意义上的智能, AI就是生活管家

硬件开发

关于硬件开发 涉及的技术点不少 比如单片机知识 汇编语言 C语言等等

在20年的时候有幸录过一套汇编语言相关的视频, 该套视频全部上传至B站供大家免费观看

《程序员进阶之三大架构汇编语言入门视频教程-胖薯出品》

  • 录制时间 2020年12月14日
  • B站:点击跳转
  • 网易云课堂: 点击跳转

更多教程可前往 有瓣杂货铺

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

临时手机号&邮箱大合集

发表于 2023-04-01

前言

最近ChatGPT大火, 很多小伙伴都想尝一尝鲜, 可惜国内账号无法注册, 只能借助国外手机号

考虑到个人的隐私安全, 我们可以使用一些临时的手机号或者邮箱进行使用

其中有收费和免费的 不用多想 收费的肯定要稳定好用一些

临时手机号

  1. sms-activate

    收费接码平台 稳定好用

    image-20230404141409473

    官网: 点击进入

  2. 阿里小号

    阿里推出的虚拟手机号平台, 可绑定真实手机号, 保护个人隐私

临时邮箱

  1. temp-mail

    免费临时邮箱

    有了它, 不用再担心垃圾邮件,广告邮件,黑客和机器人攻击。让您真实的邮箱保持干净和安全。Temp Mail提供临时、安全、匿名、免费的一次性电子邮件地址。

    image-20230404141741513

    网站: 点击进入

  2. 24mail

    国内临时邮箱服务站

    image-20230606102623501

    网站: 点击进入

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

不小心关闭谷歌浏览器怎么恢复(快速恢复所有被关闭的网页)

发表于 2023-03-09

前言

在使用浏览器访问网页的时候,有没有遇到因一时手残关闭所有浏览器网页的情况?

打开的网页有点多还能恢复吗?不要着急,下面就给大家分享四种恢复谷歌浏览器已经关闭的网页的方法。

不小心关闭谷歌浏览器怎么恢复(快速恢复所有被关闭的网页)

第一种方法:快捷键

很多人不知道Chrome浏览器撤销关闭页面的快捷键是什么,其实这是一个组合键,即Crtl+Shift+T。对于习惯使用快捷键的朋友,这是最快的恢复chrome已关闭网页的方法。

第二种方法

从历史浏览记录里选取已关闭网页。打开历史记录的方法是从“菜单”选择“历史记录”,或者使用快捷键Ctrl+H。还有一个快捷方法是,长按或者往下拉“后退键”,即可打开Chrome历史浏览页面。所谓的“后退键”在浏览器页面左上角,找到一个形状为向左的箭头,就是它了。

第三种方法:标签页右键点击

其实这个方法也是属于从历史浏览记录中恢复已关闭网页,不同是的,单手即可操作。在任意标签页上点击右键,可以看到菜单中一个选项“重新打开关闭的标签页”,点击之即可自动在新标签页中打开前面一个刚关闭的页面。

第四种方法:使用插件

对于插件党而言,一切的方法都可以使用万能的插件来解决。恢复已关闭页面的Chrome插件有很多,类似Sexy Undo Close Tab,Simple Undo Close等等,可以直接去Chrome网上应用商店搜索安装即可使用。

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android开发之图片取色工具

发表于 2023-01-06

前言

我们在开发过程中经常会遇到需要对图片进行取色的情况

如果你也嫌弃下载取色软件麻烦

那么有一些顺手的工具可以满足我们的取色需求

使用Android Studio自带取色工具

在VCS版本管理关卡页面, 有一个取色工具

image-20230106102842956

image-20230106102709895

使用Chorme浏览器自带取色工具

进入控制台, 随便点击一个色块, 会弹出取色工具

image-20230106103019125

image-20230106103118581

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Go语言性能为何还无法赶上C语言

发表于 2022-10-01

解答

Go语言也能生成二进制可执行文件, 然而性能之所以还不如C 主要还是因为GC功能拖慢了运行速度, 但凡是带有GC的语音 性能都不可能超过C

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Godot游戏开发之角色动画

发表于 2022-09-30

介绍

在Godot中角色动画我们通常会使用AnimationPlayer这个节点去实现, 该节点支持关键帧

image-20220930172408017

image-20220930173110937

关于动画的一些注意事项

  1. 通常我们会让动画在运动帧开始, 然后在闲置帧结束,

    如此一来 当玩家按下按钮时 不管时间有多短 都能看到明显的动画, 而不是你已经移动了 然而角色的脚却还没动

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Godot游戏开发之Node和Node2d节点的区别

发表于 2022-09-30

介绍

Node2D节点继承自Node节点, 功能比Node丰富 这个不必多说, 从Godot右侧面板上可以很清晰地看清它们之间的继承关系, 以及暴露出来可供修改的属性:

image-20220930164400556

在实际开发中我们通常会使用Node2d节点, 从开发角度上它有以下优势:

  • 当我们将子场景拖拽进入Node节点中时, 自场景物体会自定移动到原点位置, 而Node2d则不存在该问题
  • 通过移动Node2d节点位置, 我们可以将整个场景进行移动, 然而Node节点不具备移动属性, 因此无法实现该效果

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Godot游戏开发之如何将图片铺满整个背景

发表于 2022-09-30

需求

当前素材库中只有一张小草地图片, 如下:

GrassBackground

如何将其铺满整个背景, 得到如下效果:

image-20220930152341903

我们可能第一时间会想到使用Tilemap, 不过手动绘制相对来说有些费时间, 在Godot中我们有更好的方法可以实现

实现方式一

使用Sprite+图片repeat的方式实现

  1. 首先创建一个Sprite节点

  2. 将草地图片添加至该节点的Texture属性上

    image-20220930153243013

  3. 启用Region属性

    image-20220930153318292

  4. 在纹理区域框选需要进行repeat的区域

    image-20220930153401635

  5. 选中草地文件 然后在导入面板开启重复功能, 最后点击重新导入

    image-20220930153526042

  6. 此时我们在纹理区域拉伸选框, 则可以对草地小图片进行重复并铺满整个背景

    image-20220930153638246

实现方式二

使用TextureRect+Tile实现

  1. 创建TextureRect节点

  2. 将图片拖拽至该节点的Texture属性上

    image-20220930154030277

  3. Stretch Mode属性选择Tile

    image-20220930154057353

  4. 此时拉伸图片则自动重复

    image-20220930154121259

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

使用brew安装程序是提示No such file or directory @ rb_sysopen

发表于 2022-09-29

原因一

使用国内镜像而该镜像未完全同步 导致包找不到

解决方法:

临时去除镜像即可:

1
export HOMEBREW_BOTTLE_DOMAIN=''

原因二

依赖程序缺失

解决方法:

需要进行单独安装, 比如报错Error: No such file or directory @ rb_sysopen - xxxxxxxc–jasper, 此时单独安装jasper:

1
brew install jasper

安装完后 再次运行之前的安装之前的指令即可

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1…91011…50

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

491 日志
143 标签
RSS
© 2025 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%