关于raspberry-pi:上海晶珩EDATEC工业树莓派Netwrok-Manager-使用介绍

Network Manager在Network Manager中,默认设置以太网优先级高于WiFi优先级,4G优先级最低,如果有非凡利用场景能够手动批改优先级在Network Manager中为了网络安全,WiFi的MAC地址由软件随机生成,如果不心愿随机生成MAC地址可依照下文敞开随机MAC地址操作 敞开随机WiFi MAC地址 创立/etc/NetworkManager/conf.d/wifi_rand_mac.conf,在文件中退出以下内容 [device]wifi.scan-rand-mac-address=noNetwork-Manager-gnomeNetwork-Manager-gnome是Network-Manager的桌面工具,能够在屏幕右上角看到一个网络图标,如下图所示 设置动态IP右键点击图标,抉择编辑连贯选项抉择须要批改的连贯名称,点击下方齿轮批改,左侧+`-`别离是增加和删除连贯切换到IPV4.Settings界面,先将Method改为手动,而后在下方Addresses抉择右侧增加,输出固定的ip,子网掩码和网关后保留即可,DNS可依据集体需要填写优先级桌面插件未提供设置优先级的接口,可参照下文中应用nmcli命令设置优先级 设置路由规定右键点击图标,抉择编辑连贯选项!抉择须要批改的连贯名称,点击下方齿轮批改切换到IPV4.Settings界面,点击下方routes,抉择点击增加,输出网段、子网掩码、网关和优先级保留即可,其中网关为可选项增加WiFi网络左键点击图标,间接创立WiFi连贯即可 拨号4G列表抉择创立一个新的4G连贯列表抉择运营商国家,挪动联通电信抉择中国列表抉择卡的运营商列表如果有APN就输出APN,没有就下一步列表实现创立nmcli 命令nmcli是Network Manager的命令行工具,应用nmcli能够实现各种操作 nmcli c本命令能够显示以后所有连贯,能够看到此时连贯只有一个,下方操作在此连贯根底上配置 设置动态IP设置连贯Wired connection 1的动态IP为192.168.168.230,子网掩码为24 sudo nmcli connection modify Wired\ connection\ 1 ipv4.addresses 192.168.168.230/24# 如果还须要设置网关能够应用以下命令sudo nmcli connection modify Wired\ connection\ 1 ipv4.gateway 192.168.168.1# 如果还须要设置DNS能够应用以下命令sudo nmcli connection modify Wired\ connection\ 1 ipv4.dns 114.114.114.114设置优先级设置连贯Wired connection 1的优先级为200 sudo nmcli connection modify Wired\ connection\ 1 ipv4.route-metric 200设置路由规定为连贯Wired connection 1增加路由规定,拜访网段192.168.10.0/24的信息从此连贯收回,因为此连贯是应用eth0接口,所以所有符合要求的信息都会从eth0收回 sudo nmcli connection modify Wired\ connection\ 1 ipv4.routes 192.168.10.0/24增加WiFi网络增加WiFi网络能够应用nmtui工具 主菜单增加网络连接抉择网络连接的类型配置WiFi返回保留拨号4G应用命令行创立4G连贯。连贯名为mobilegsm(可随便批改),间接输出以下命令即可 ...

September 20, 2023 · 2 min · jiezi

关于raspberry-pi:上海晶珩EDATEC工业树莓派raspiconfig-常用配置介绍

raspi-config应用raspi-config能够非常不便的配置一些树莓派零碎罕用配置,下文介绍其中一些罕用的配置 sudo raspi-config零碎设置设置WiFi::: tip此项配置仅作用于应用dhcpcd的用户,应用Network Manager有效!!!::: 1 System options -> S1 Wireless LAN 如果还未设置国家,会弹出要求抉择国家的选项,在此处抉择中国的国家代码CN 依照要求输出SSID,即WiFi的用户名,而后输出PASSWORD,即WiFi明码 批改明码1 System options -> S3 Password 批改用户明码 批改Hostname1 System options -> S4 Hostname 能够在此处间接批改Hostname,保留重启后失效 接口设置使能SSH3 Interface Options -> I2 SSH 抉择yes使能SSH 使能VNC3 Interface Options -> I3 VNC 抉择yes使能VNC 使能SPI3 Interface Options -> I4 SPI 抉择yes使能SPI 使能I2C3 Interface Options -> I5 I2C 抉择yes使能I2C 使能调试串口3 Interface Options -> I6 Serial Port 抉择no而后抉择yes使能调试串口 地区个性化配置时区设置默认为规范国内工夫,国内工夫须要批改 5 Localisation Options -> L2 Timezone 抉择Asia而后抉择shanghai或者其余国内城市,设置后保留退出,此时工夫即调整为北京工夫 ...

September 11, 2023 · 1 min · jiezi

关于raspberry-pi:上海晶珩EDATEC工业树莓派如何检查-4G-网络

网络查看4G网络步骤确认4G天线是否装置正确确认SIM卡状态是否失常输出sudo busybox microcom /dev/ttyUSB2,输出at,如果返回值是OK代表模块辨认失常输出at+csq查看信号强度,第一个值为99阐明没有信号输出at+qsimstat=1,at+qsimstat?查看sim卡状态,第二位为1阐明SIM曾经筹备结束4G模组重启raspi-gpio set 10 pdraspi-gpio set 10 op dlsleep 0.5raspi-gpio set 10 dhsleep 0.5raspi-gpio set 10 dl查看4G网络步骤

August 28, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATECHDMI配置大全

HDMI配置在绝大多数状况下,只需应用规范HDMI电缆将装备HDMI的显示器插入设施即可主动应用显示器反对的最佳分辨率。对于迷你HDMI端口和微型HDMI端口,您须要一个迷你HDMI和微型HDMI到全尺寸HDMI引线或适配器来连贯每个显示器。 咱们的设施HDMI显示分辨率最高能够达到4k,刷新率为60Hz。您必须通过在config.txt中设置hdmi_enable_4Kp60=1标记来启用4Kp60输入。也能够在桌面环境中应用"Raspberry Pi Configuration"工具设置此标记。 如果您正在运行3D图形驱动程序(也称为FKMS驱动程序),则在"Preferences"菜单中,您将找到一个用于设置规范显示(包含多显示设置)的图形应用程序。 HDMI组和模式HDMI有两个常见的组:CEA(Consumer Electronics Association,电视机应用的规范)和DMT(Display Monitor Timings,显示器通常应用的规范)。每个组颁布一组特定的模式,这些模式形容输入的分辨率、帧速率、时钟速率和纵横比。 注 CEA HDMI组用数字1示意,DMT HDMI组用数字2示意。查看设施反对反对的模式您能够应用命令行上的tvservice应用程序来确定设施反对哪些模式,以及其余有用的数据: tvservice -s显示以后HDMI状态,包含模式和分辨率tvservice -m CEA列出了所有反对的CEA模式tvservice -m DMT列出了所有反对的DMT模式如果您应用的设施是带有多个HDMI显示接口,则须要告知tvservice向哪个设施询问信息。您能够应用以下办法获取所有连贯设施的显示ID: tvservice -l您能够通过在tvservice命令中增加-v <display id>来指定tvservices应用的显示器,例如: #列出了显示器ID 7的所有反对的CEA模式tvservice-v 7-m CEA,设置特定HDMI模式设置特定模式能够在config.txt中通过批改hdmi_group和hdmi_mode条目。group条目在CEA或DMT之间进行抉择,mode抉择分辨率和帧速率。您能够在config.txt视频配置局部找到模式表,但您应该应用下面形容的tvservice命令来确定设施反对哪些模式。 指定HDMI端口,将索引标识符增加到config.txt中的hdmi_group或hdmi_mode条目,例如hdmi_mode:0或hdmi_group:1。 配置要应用的HDMI组应用CEA组 hdmi_group=1应用DMT组 hdmi_group=2配置分辨率CEA显示分辨率模式 hdmi_modeResolutionAspect RatioRefresh RateNotes1640×4804:360hz 2720×4804:360hz 41280×72016:960hz 161920×108016:960hz 161920×108016:960hz 161920×108016:960hz 953840×216016:930hzRaspberry Pi 4 Only. Use this when dealing with two 4k displays.973840×216016:960hzRaspberry Pi 4 Only. To use this hdmi_enable_4kp60=1 must be set in /boot/config.txt.DMT显示分辨率模式 hdmi_modeResolutionAspect RatioRefresh Rate2480p4:360hz9800×6004:360hz161024×7684:360hz851280×72016:960hz351280×10245:460hz511600×12004:360hz821920×108016:960hzhdmi_mode=[your hdmi mode]重启失效应用新的分辨率,须要重启设施失效 ...

July 6, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATECrpiupdate-与-系统升级

系统升级rpi-update是一个命令行应用程序,能够将您的Raspberry Pi操作系统内核和VideoCore固件更新到最新的预公布版本。 ::: tip软件的预公布版本不保障可能工作。除非Raspberry Pi工程师倡议,否则不要在任何零碎上应用rpi-update。它可能会使你的零碎不牢靠,甚至齐全解体。它不应作为任何惯例更新过程的一部分。::: rpi-update 应用rpi-update将下载linux内核的最新预公布版本、其匹配模块、设施树文件以及最新版本的VideoCore固件。而后,它会将这些文件装置到SD卡上的相干地位,笼罩任何以前的版本。 rpi-update应用的所有源数据都来自rpi-firmware repository。该存储库仅蕴含来自官网固件存储库的数据子集,因为并不需要来自该存储库的所有数据。 运行rpi-update 如果您确定须要应用rpi-update,建议您首先备份以后零碎,因为运行rpi-update可能会导致系统无奈启动。 rpi-update 须要以root用户身份运行。更新实现后,您须要重新启动。 sudo rpi-updatesudo reboot它有许多选项记录在rpi-update repository中。 还原版本如果您曾经实现了rpi-update,但事件并不像您心愿的那样工作,如果您的Raspberry Pi依然是可疏导的,您能够应用以下命令返回到稳固版本: sudo apt-get updatesudo apt install --reinstall libraspberrypi0 libraspberrypi-{bin,dev,doc} raspberrypi-bootloader raspberrypi-kernel您须要重启您的Raspberry Pi以使这些更改失效。 WX公众号:上海晶珩电子

June 30, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC-树莓派音频视频播放

播放音频aplay music.mp3如果不心愿打印信息能够应用以下命令aplay -q music.mp3aplay文档 播放视频桌面零碎能够在左上角的开始菜单中找到vlc播放器<img :src="$withBase('/assets/RaspberryPiOS/Playing-Audio-Video/vlc.png')">vlc ./test.h264vlc文档 文档omxplayer是目前树莓派官网推出的一款音视频播放软件,反对硬件解码,目前曾经反对debian10及更早的零碎,如果应用debian11临时还举荐应用VlC播放器 omxplayer应用办法 WX:上海晶珩电子

June 21, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩树莓派在openwrt系统中如何使用4G网络

ec20增加USB辨认增加配置到config.txtecho -e "enable_uart=1 \notg_mode=1" >> /boot/config.txt也能够在Windows上,间接批改boot分区下的config.txt 装置ipk包opkg updateopkg install usb-modeswitch kmod-mii kmod-usb-net kmod-usb-wdm kmod-usb-net-qmi-wwan uqmi可选ipk包ADD SUPPORT FOR MBIM DEVICESkmod-usb-net-cdc-mbim Kernel module for MBIM Devicesumbim MBIM modem utility opkg updateopkg install kmod-usb-net-cdc-mbim umbimADD SUPPORT FOR PC INTERFACE (TTYUSB0) - YOU NEED IT IF YOU WANT TO SEND AT COMMANDS, FOR EG. TO CHECK YOUR BALANCE BY USSD. kmod-usb-serial-optionkmod-usb-serialkmod-usb-serial-wwan opkg updateopkg install kmod-usb-serial-option kmod-usb-serial kmod-usb-serial-wwan查看设施是否存在装置lsusb命令,可不装 opkg install usbutils重启设施利用驱动程序 lsusbBus 002 Device 001: ID 1d6b:0003 Linux 5.10.161 xhci-hcd xHCI Host ControllerBus 001 Device 003: ID 0424:9e00Bus 001 Device 006: ID 2c7c:0125 Quectel EC25-EUXBus 001 Device 002: ID 1a40:0201 USB 2.0 Hub [MTT]Bus 001 Device 001: ID 1d6b:0002 Linux 5.10.161 xhci-hcd xHCI Host Controller此时曾经能够查看到EC25 ...

June 14, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC如何在-树莓派4-上安装-openwrt

openwrtOpenWrt镜像:https://archive.openwrt.org/releases/22.03.2/targets/bcm27xx/...OpenWrt工具链:https://archive.openwrt.org/releases/22.03.2/targets/bcm27xx/...版本:22.03.2 装置At the PC:#unzip the Image gzip -d openwrt-21.02.0-bcm27xx-bcm2708-rpi-squashfs-factory.img.gz# insert SD-card and check the name, alternatively check dmesglsblk# copy the Image 1:1 to the SD-cardsudo dd if=openwrt-21.02.0-bcm27xx-bcm2708-rpi-squashfs-factory.img of=/dev/mmcblk0 bs=1M conv=fsync扩大文件系统SSH INTO THE RASPBERRY PI: opkg install kmod-usb-storage kmod-usb-ohci kmod-usb-uhci e2fsprogs fdisk resize2fsfdisk /dev/mmcblk0(also see the less finicky way by @SemperEnim below):To make it clear what I entered, here the complete session of fdisk. Please note how the first sector remains unaltered:Welcome to fdisk (util-linux 2.36.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Command (m for help): pDisk /dev/mmcblk0: 14.99 GiB, 16096690176 bytes, 31438848 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x5452574fDevice Boot Start End Sectors Size Id Type/dev/mmcblk0p1 * 8192 139263 131072 64M c W95 FAT32 (LBA)/dev/mmcblk0p2 147456 360447 212992 104M 83 LinuxCommand (m for help): dPartition number (1,2, default 2): 2Partition 2 has been deleted.Command (m for help): nPartition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions)Select (default p): pPartition number (2-4, default 2): 2First sector (2048-31438847, default 2048): 147456Last sector, +/-sectors or +/-size{K,M,G,T,P} (147456-31438847, default 31438847): Created a new partition 2 of type 'Linux' and of size 14.9 GiB.Partition #2 contains a squashfs signature.Do you want to remove the signature? [Y]es/[N]o: nCommand (m for help): pDisk /dev/mmcblk0: 14.99 GiB, 16096690176 bytes, 31438848 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x5452574fDevice Boot Start End Sectors Size Id Type/dev/mmcblk0p1 * 8192 139263 131072 64M c W95 FAT32 (LBA)/dev/mmcblk0p2 147456 31438847 31291392 14.9G 83 LinuxCommand (m for help): wThe partition table has been altered.Syncing disks.REBOOT AND LOG IN AGAINThe device usage and sizes are now as follows (my SD-card is 16 GB in size). The size needs still needs to be adjusted: ...

June 7, 2023 · 3 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC天价树莓派的替代品

提到嵌入式开发板,很多人首先想到树莓派,当初说它是开发板可能不太适合,因为它当初有了一个新的身份-理财产品。 如果两年前你有幸购入一块树莓派,两年后你会发现,常识学到了,工作也找到了,转手卖掉可能还要再赚一笔。过来买树莓派4B只须要从每个月的生活费中挤一点进去就行,当初这钱也就摸摸3B的门槛。 官网说受寰球芯片短缺影响,呈现了重大的产能有余,然而除此之外,有些对行业比拟相熟的商家,当时囤了大量现货芯片,加剧市场芯片紧缺,加上近几年国内关系动荡,各国之间都在互相制裁。然而即便跌价了,树莓派依然是处于仍旧供不应求状态,那么用树莓派的人这么多,难道就没有代替的产品吗? 现阶段国产的开发板性能其实都都还不错,例如这个 睿莓1(REIMEI1),价格大略是现阶段树莓派4B的三分之一,可用于代替现阶段的溢价的树莓派。这个睿莓1(REIMEI1)性能优异、玲珑紧凑的,并且极具性价比,实用于物联网、智能网关、工业管制以及创客开发等诸多畛域。 睿莓1具备一个 micro-USB 连接器,仅作为整板系统供电的输出接口,不提供数据传输性能。为了保障整板牢靠地工作,请务必确认提供供电的适配器或者内部电源具备至多 5V 2A 的输入能力。 睿莓1具备丰盛的接口,一个规范的 HDMI A 型接口,它反对 CEC 性能,并且反对最大 4Kp75 分辨率的 HDMI2.1 视频输入。一个规范的 RJ-45 接口,它不仅反对 10M/100M 通信速率的以太网,而且反对 PoE 输出,在板上预留了一个 2.54mm 间距 2X2P 的排针,能够通过此排针外接一个 PoE HAT 实现 PoE 供电的性能。 睿莓1具备一个 USB2.0 A 型接口和一个 USB3.0 A 型接口,整板可同时为这两个接口的外设提供总共 5V 1.1A 的输入能力。USB2.0 接口可提供最高 480Mbps 的数据传输速率,USB3.0 接口可提供最高 5Gbps 的数据传输速率。 睿莓1有一个 2.54mm 间距 2X20P 的排针,将主控芯片的 28 个 GPIO 引出,用户可通过软件去管制这些 GPIO,或者将局部 GPIO 复用为其余性能,例如 I2C、UART 或者 SPI 等等。 ...

June 5, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC在-Raspberry-Pi上安装-QT

Qt开发环境1.同步更新源sudo apt-get update2.装置qt5开发环境sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools注 最新的Raspbian OS零碎基于Debian 11 (bullseye”),原来的sudo apt-get install qt5-default命令不可用,会提醒E: Package ‘qt5-default’ has no installation candidate。3.装置qtcreatorsudo apt-get install qtcreator4.装置其它的依赖库依据您的应用软件须要,能够须要装置某些特定库: 装置qml开发环境sudo apt-get install qtdeclarative5-dev 装置QtMultimediasudo apt-get install qtmultimedia5-dev 装置Qtserialportsudo apt-get install libqt5serialport5-dev 装置opengl的开发环境sudo apt-get install libgles2-mesa-dev 装置QtMySQLsudo apt-get install libqt5sql5-mysql提醒 如果在运行程序时报短少某个库的谬误,可用如上形式替换成对应库名进行装置。装置实现后咱们通过显示屏来关上Qt Creator软件配置Qt1.关上 Qt Creator 就能够进入集成开发环境2.配置qmake编译器抉择菜单栏Tools下Options选项,关上右边的Kits菜单,选中Kits标签页下的Desktop,选中Compilers的下拉列表,依据你的理论状况配置对应的C和C++编译器。如果你须要增加非凡的编译器,能够在Compilers标签页中进行配置或增加WX:上海晶珩电子转载:https://rpideveloper.com/topic/35/qt-%E5%AE%89%E8%A3%85

May 26, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC在树莓派64位上安装TensorFlow

介绍本页将领导您在Raspberry Pi 4 64位操作系统Bullseye 上装置 TensorFlow 2.10.0 或更早版本。TensorFlow是一个专门为深度学习开发的大型软件库。它耗费大量资源。你能够在Raspberry Pi 4上执行TensorFlow,但不要指望奇观。它能够运行您的模型,如果不是太简单,但它将无奈训练新模型。它也不能执行所谓的迁徙学习。除了运行事后构建的深度学习模型外,您还能够应用该库将所谓的解冻 TensorFlow 模型转换为 TensorFlow Lite 立体缓冲区模型。如果你只是想对深度学习有一些印象,请思考装置TensorFlow Lite。它的速度要快得多,应用的资源要少得多,因为它是为Raspberry Pi等小型计算机设计的。您能够应用许多现成的生成模型。在此处查看咱们的 64 位 Raspberry 装置指南。路线图TensorFlow持续增长。每个新版本都须要更多的资源、支持软件和库。它越来越多地给你的树莓派带来了惨重的累赘。它解释了为什么最新版本在具备“过期”操作系统的“旧”Raspberry Pis上不能很好地运行。另一方面,不倡议在最新的Bullseye上装置十分旧的TensorFlow版本。您将被迫降级某些零碎库,这将阻止其他软件运行。这里最好遵循:“顺其自然”。以下是概述。绿色复选标记示意有版本可用。空的绿色盒子意味着没有版本,但依然能够装置。灰色框指定不容许“失常”装置的硬件或软件限度。提醒通常,咱们会收到一个问题,如果咱们有一个带有预装框架和深度学习示例的 Raspberry Pi 4 的 SD 图像。咱们很乐意恪守这一要求。请在咱们的GitHub页面上找到一个残缺的Raspberry Pi 4,专门用于深度学习。 从咱们的GDrive网站下载zip文件,解压缩并在16 GB SD卡上刷新图像,而后开始吧!咱们探讨了两个装置,一个用于 Python 3,一个用于 API 库C++。 可怜的是,没有官网的 aarch64 pip3 轮可用于 2.7、2.6 或 2.5 版本。然而,为了您的不便,咱们应用 Bazel 创立了咱们的轮子并将它们放在 GitHub 上。本指南的最初一部分探讨了Keras的装置。筹备NumpyTensorflow在最新版本的numpy中遇到了问题。将 TensorFlow 移植到 numpy 1.20 变得十分艰难。当初,随着TensorFlow版本2.8.0的呈现,它终于胜利了。最初,装置TensorFlow时不再有numpy版本抵触。然而,TensorFlow 2.7.0依然报告了一些问题。为了平安起见,请应用 numpy 版本 1.19.5为了TF 2.7.0 以确保一切正常。libclang 9.0.1TensorFlow 2.7.0 依赖于 libclang 9.0.1。没有实用于 Debian 10 的发行版。这就是为什么只有TensorFlow 2.7装置在Debian11Bullseye上,。你能够从头开始在Buster RPi上装置libclang 9.0.1,这样你就能够装置TensorFlow了。请留神,clang构建须要大量资源,超过5 GB。最好切换到Bullseye,并在半小时内启动并运行TensorFlowProtobuffer 4.21最新版本的Protobuffer 4.21.0与以前的版本3.20.1相比有一些重大改良。然而,TensorFlow尚不反对这些更改。为了使 TensorFlow 失常工作,如果您装置了4.21 ,则须要将 Protobuf 降级到 3.20版本。无关如何降级的更多信息,请拜访咱们的 GitHub 页面。Tensorflow-io-gcs-filesystem所有依赖项都能够只用一个命令装置,除了 tensorflow-io-gcs 文件系统。因为没有 aarch64 机器的发行版,咱们必须从头开始构建 tensorflow-io-gcs 文件系统。整个过程能够在上面找到,应该在装置TensorFlow自身之前实现。如果让TensorFlow装置io-gcs,它将抉择谬误的版本并且不起作用。# get a fresh start ...

May 15, 2023 · 9 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATECGPIO-功能及复用功能表

GPIO板上有两个5V引脚和两个3.3V引脚,以及一些不可配置的接地引脚(0V)。其余引脚都是通用3.3V引脚,意味着输入设置为3.3V,输出为3.3V容差。 OUTPUTS指定为输入引脚的GPIO引脚能够设置为高电平(3.3V)或低电平(0V)。 INPUTS指定为输出引脚的GPIO引脚能够读取为高电平(3.3V)或低电平(0V)。应用外部上拉或下拉电阻更容易做到这一点。引脚GPIO2和GPIO3具备固定的上拉电阻,但对于其余引脚,这能够在软件中配置。 MORE除了简略的输出和输出设备,GPIO引脚还能够用于各种代替性能,有些可用于所有引脚,有些可用于特定引脚。PWM (脉冲宽度调制) Software PWM available on all pinsHardware PWM available on GPIO12, GPIO13, GPIO18, GPIO19SPI SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)I2C Data: (GPIO2); Clock (GPIO3)EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)Serial TX (GPIO14); RX (GPIO15)无关GPIO引脚高级性能的更多信息,请参见interactive pinout diagram raspi-gpioraspi-gpio是一个在树莓派上应用的GPIO管制工具,能够获取GPIO状态以及设置GPIO 装置sudo apt -y install raspi-gpio 应用阐明 性能及复用功能表 转载来自:https://rpideveloper.com/topic/34/gpio

May 9, 2023 · 1 min · jiezi

关于raspberry-pi:上海晶珩EDATEC2023-年使用树莓派和替代品进行深度学习

介绍此页面可帮忙您在Raspberry Pi或Google Coral或Jetson Nano等替代品上构建深度学习模式。无关深度学习及其限度的更多个别信息,请参阅深度学习。本页更多地介绍个别准则,因而您能够很好地理解它的工作原理以及您的网络能够在哪个板上运行。无关软件装置的分步办法,请参见 Raspberry Pi 4 和替代品的深度学习软件。 Tensor一个宽泛应用的深度学习软件包是TensorFlow。让咱们从名称开始。什么是tensor?你能够有一个数字列表。这在数学中称为向量。如果向此列表增加维度,则会失去一个矩阵。例如,通过这种形式,您能够显示黑白图像。每个值代表一个像素值。行数等于高度,列数与图像的宽度匹配。如果你再次向矩阵增加一个额定的维度,你会失去一个tensor。彼此重叠的 2D 矩阵堆栈。或者换句话说,一个矩阵,其中各个数字被一个向量所取代,一个数字列表。例如 RGB 图片。每个独自的像素(矩阵中的元素)由三个元素组成;一个 R、G 和 B 重量。 这是tensor(n维数字数组)的最简化定义。TensorFlow和数学中的张量之间的定义存在轻微差别。在数学中,tensor不仅仅是矩阵中的数字汇合。在这里,tensor必须恪守某些变换规定。这些规定与在不扭转其后果的状况下扭转tensor所在的坐标系无关。大多数tensor都是 3D 的,并且具备与 Rubric 立方体雷同数量的元素。每个独自的立方体通过一组正交向量预测物理对象在应力(tensor)下将如何变形。如果观察者在事实世界中占据另一个地位,物体自身的变形不会扭转;显然,它依然是同一个对象。然而,给定此新地位,所有向量或公式都将更改。它们将以变形的后果放弃不变的形式发生变化。能够把它设想成两座塔顶之间的间隔。无论你站在哪里,这都不会扭转。然而,从你的地位到这些顶部绘制矢量会依据你的地位、你的原点而变动。在tensor的上下文中,甚至还有第三个含意,即神经tensor网络。这个非凡神经网络中的tensor在两个实体之间建设了关系。狗有尾巴,狗是哺乳动物,哺乳动物须要氧气等。最初两个定义只是为了残缺起见而给出的。许多人认为TensorFlow与这些解释之一无关。事实并非如此。 分量矩阵TensorFlow和其余深度学习软件最重要的构建块是n维数组。本节介绍这些数组的用法。每个深度学习应用程序都由给定的神经节点拓扑组成。每个神经节点通常结构如下。每个输出乘以一个权重并相加。与偏差一起,后果进入激活函数。这能够是简略的步进运算,也能够是更简单的函数,例如双曲正切。输入是网络中下一层的输出。网络能够由许多层组成,每层都有数千个独自的神经元。如果您查看一个层,则雷同的输出数组能够利用于不同的权重数组。每个都有不同的后果,以便能够从单个输出中提取各种特色。在下面的网络中,四个输出(黄色)都齐全连贯到第一层的四个神经元(蓝色)。它们连贯到下一层的五个神经元。追随另一个由六个神经元组成的内层。通过间断两层四层和三层后,达到具备三个通道的输入(橙色)。这样的计划导致向量矩阵乘法。这里,四个值(x,y,z,w)的输出层与权重矩阵相乘。x 输出的权重 a,b,c,d,导致输入端呈现 x'。y' 输入的权重 e,f,g,h 等。还有其余办法能够形容这种乘法,例如,其中 v 是输出向量 (x,y,z,w),v' 是输入 (x',y',z')。 向量矩阵乘法是 TensorFlow 中执行最多的操作之一,因而得名。GPU在将所有点放在一起之前,首先在 GPU 硬件中绕道而行。 GPU代表图形处理单元,一种最后设计用于将 CPU 从爽朗的屏幕渲染工作中解放出来的设施。 多年来,GPU变得更加弱小。现在,它们领有超过21亿个晶体管,可能执行大规模的并行计算。 特地是在计算屏幕上每个像素的游戏中,须要这些计算能力。 挪动查看器的地位时,例如,当英雄开始运行时,必须从新计算所有顶点。而这每秒25次以取得平滑过渡。每个顶点都须要旋转和平移。公式为:这里 (x,y,z,w) 是 3D 中的初始像素地位,(x',y',z',w') 是矩阵运算后的新地位。如您所见,这种类型的算术与神经网络雷同。还有另一个趣味点。当你看x'时,它是四个乘积(ax+by+cz+dw)的总和。另一方面,y' 也是一个求和 (ex+fy+gz+hw)。然而要计算y',不须要晓得决定x'(a,b,c和d)的值。它们彼此无关。您能够同时计算 x'和 y'。还有 z' 和 w' 就此而言。实践上,与其余后果没有关系的每个计算都能够同时执行。因而,GPU 的十分并行的架构。当今(2023 年)最快的 GPU 每秒可能达到惊人的 125 TFLOP。这就是 GPU 减速背地的整个想法。将所有张量传输到 GPU 内存,并让设施在破费 CPU 的一小部分工夫内执行所有矢量矩阵计算。如果没有令人印象粗浅的GPU计算能力,深度学习简直是不可能的。 ...

May 5, 2023 · 2 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATECRaspberry-Pi-镜像如何备份

这是一个用于备份Raspberry Pi操作系统的脚本,由leomichalski编写,储存库的链接是 https://github.com/leomichalski/drone-delivery/tree/0bf5d975d7672ac6221276f42e54ecfa2ecad3b8 如何应用这个脚本它须要一张SD卡或一个存储设备。在带有桌面的操作系统中,设施可能会主动装置到/media/。 当初请从/media/pi/59EB-E8DO卸载sda1.sudo umount /media 留神:不须要格式化存储设备,ext4的最大文件大小是16TB,而vfat的最大文件大小是4GB留神:我不倡议应用vfat,因为台式机的操作系统大小可能超过4GB。 而后将sda1挂载到/mnt或/media目录。sudo mount /dev/sda1 /mnt 克隆存储库。git clone https://github.com/RayXxxxxx/raspberrypi-image-backup.git 将图像备份脚本复制到存储设备装置的目录中。sudo cp raspberrypi-image-backup/image-backup /mnt 为图像备份增加执行权限。sudo chmod +x /mnt/image-backup 备份开始备份Raspberry Pi OSsudo /mnt/image-backup 第一个问题是 "要创立的图像文件? 输出你想保留图像文件的地位,并设置图像文件的名称。Image file to create?/mnt/backup.img 第二个问题是 "初始图像文件ROOT文件系统的大小(MB)[1784]? 输出后持续。Initial image file ROOT filesystem size (MB) [1784]? 第三个问题是 "缩减后为增量更新减少的空间(MB)[0]? 输出后持续。Added space for incremental updates after shrinking (MB) [0]? 第四个问题是'Create /mnt/backup.img (y/n)? 输出'y' 。Create /mnt/backup.img (y/n)? y 期待命令完结,而后你会在/mnt中找到img文件。ls /mnt/backup.img 转载来自Raspberry Pi 镜像如何备份

April 25, 2023 · 1 min · jiezi

关于raspberry-pi:上海晶珩EDIPC2010工业计算机-x-树莓派4B

工业计算机是一种加固的增强型集体计算机,它能够作为一个工业控制器在工业环境中牢靠运行。利用的比拟宽泛的如上海晶珩电子的工业计算机。 树莓派作为单片机电脑,被大家所相熟,然而树莓派理论自身并不容易利用到工业利用中。坚固耐用的工业计算机被设计用于在顽劣条件和环境中牢靠、高效地工作。例如,强烈的振动、多尘或湿润的环境以及极其的温度。坚硬的嵌入式计算机能够接受内部外壳、冷却安装和外部组件的顽劣条件。所有坚硬的工业计算机必须满足特定的要求,能力在工业环境中发挥作用。 1.可能抵挡顽劣环境:工业计算机应该可能耐受工厂、车间、机器人、推土机等的顽劣环境。它应该须要防尘、防水、防振、防震、防电磁干扰等。这也是工业计算机与一般消费者计算机的区别之一。2.高可靠性: 工业计算机应该可能保障 24 小时不间断稳固运行,防止工夫和生产压力上的品质损失。3.严格的安全性要求: 工业计算机通常用于生产过程中,因而必须具备更高的保密性和控制能力以确保数据的完整性和安全性。4.可扩展性和可适配性: 工业计算机须要有多样的接口和规范的扩大接口,以不便不同的工作实现,如 I/O 接口、串口、网口等,同时也须要反对多种操作系统和软件平台。5.备件易用: 工业计算机在运行过程中,如果有损坏,须要尽快更换。因而,备件应该易于应用,并且容易找到、培修、更新和降级。 其次树莓派4B固定的接口,对于接口需要各异的工控行业来说,过于难堪。为了解决下面的这些问题,上海晶珩EDTAEC设计制作了既能齐全笼罩CM4 NANO V1所有性能,又具备超强扩大能力的新一代树莓派工业计算机ED-IPC2010(CM4 NANO V2)。 那么问题来了,IPC2010和树莓派有什么分割? 有什么不同?首先,ED-IPC2010是基于Raspberry Pi Compute Module 4(简称CM4)面向工业利用设计的嵌入式计算机,ED-IPC2010提供 2x规范USB3.0接口 、1x规范USB2.0接口、1x规范HDMI Type A 接口,及千兆网口、DSI 和CSI接口、40pin规范扩大连接器等。ED-IPC2010为了满足工业利用,在如下几方面晋升了零碎的可靠性:1.电源可靠性宽范畴输出9-28V,电源接口采纳DC Jack,选配凤凰端子接口,相比拟偏差于个人消费电子用品的Type-C电源接口,这种电源接口更可靠。2.散热设计ED-IPC2010 为CM4模块定制大面积CNC散热片,良好的散热性保障设施以及整个零碎在低温环境下也能牢靠工作。3.外置天线提供更牢靠的无线通讯连贯ED-IPC2010采纳外置天线,具备更强的网络连接传输能力,相较于有线网络连接部署更灵便,客户能够依据我的项目需要灵便选用不同长度的天线。相同,树莓派应用的是PCB天线,面积小,灵敏度较低,且因被搁置在金属壳内,容易被屏蔽,造成信号强劲,不能稳固迅速连贯设施。4.零碎代码存储在eMMC,更加牢靠ED-IPC2010反对双存储,即应用eMMC存储系统文件,同时应用SD 卡扩充存储空间,不便贮存零碎采集的数据。5.更宽工作温度范畴ED-IPC2010采纳工业级器件,保障计算机在温度-25℃-60℃的环境中牢靠地工作。 具体的参数对照表 数据手册和用户手册下载作为新一代工业计算机,ED-IPC2010 能够说是进一步解决树莓派在工业畛域可靠性的问题。

April 23, 2023 · 1 min · jiezi

关于raspberry-pi:上海晶珩EDATEC在-Raspberry-Pi-64-位-OS-上安装-OpenCV-45

介绍Raspberry Pi正在向64位操作系统倒退。在一年左右的工夫内,32位操作系统将被更快的64位版本齐全取代。树莓基金会最近公布了一个不仅仅是功能性的测试版。装置阐明可在此处找到。本指南是领导在Raspberry Pi 4上的64位操作系统上装置OpenCV 4.5.x。您能够在OpenCV的GitHub页面上找到4.5.x版本的发行阐明。OpenCV Lite寻找更小的 OpenCV ?咱们的OpenCV Lite装置可能正是您所须要的。只是很根本的装置,为您节俭了大量内存。OpenCV 4.5.12020年 12月 22 日,OpenCV 公布了 5.1.4 版本。 此版本中最重要的改良是G-API框架和RISC-V端口。两者都不会影响Raspberry Pi。这就是为什么咱们没有此版本的非凡装置指南。如果您心愿应用4.5.0 以上版本,请在下载过程中随便抉择版本号从 4.5.0 到4.5.1 。OpenCV 4.5.22021 年 4 月 2 日,OpenCV 公布了 4.5.2 版本。在此处的日志文件中查找版本重大变更。在 imgproc、videoio 和 DNN 模块中进行了重要更改。在下载过程中,请随便将版本号从 4.5.0 更改为4.5.2。OpenCV 4.5.32021 年 7 月 5 日,OpenCV 公布了 4.5.3 版本。除了各种谬误修复和改良外,最重要的变动是DaSiamRPN跟踪器,这是一个GPU FFmpeg后端,用于CUDA后端中的videoio和MatMul反对。更多信息在这里。OpenCV 4.5.42021 年 10 月 11 日,OpenCV 公布了 4.5.4 版本。次要变动是 DNN 模块的继续改良。当然,还有谬误修复和改良。更多信息在这里。OpenCV 4.5.52021 年 12 月 25 日,OpenCV 公布了 4.5.5 版本。同样,最大的变动是对 DNN 模块的改良。当然,还有谬误修复和改良。更多信息在这里。您应该晓得有一个问题。Python3 装置脚本批改不正确。它会将所有库放在谬误的目录中,Python 找不到它们。通过将 -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages 增加到构建中,库就会存储在正确的文件夹中。问题解决后,咱们将删除此解决办法。这是GitHub上的错误报告。OpenCV 4.6.02022 年 7 月 7 日,OpenCV 公布了 4.6.0 版本。除了对 DNN 库的更改和改良之外,最重要的更改是对 GCC 15 和 Clang 5 编译器的反对。同样值得注意的是对FFmpeg 5.0的反对。咱们必须应用额定的行 -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages。从 Python 3.12 开始,dist-packages 文件夹中的装置被弃用,取而代之的是site-package文件夹。 ...

April 12, 2023 · 7 min · jiezi

关于raspberry-pi:上海晶珩EDATEC在-Raspberry-Pi-4-上-USB-启动

为什么树莓派爱好者在议论 USB 启动时会感到兴奋?因为它使树莓派显著更快。或者,更精确地说,内存随闪存 (ROM) 传输。RPi 启动速度更快,尤其是在 64 位操作系统中,因为它是一个未压缩的内核。或者将页面从缓存加载到 Chromium 中。因而,任何应用闪存传输大量数据的货色都会更快。然而,例如,深度学习应用程序不会运行得更快,因为它们次要应用 RAM。你也不会更好地传输YouTube流;这与您的互联网带宽无关,与您的闪存卡无关。USB启动如此受欢迎的另一个起因是,应用过的SSD卡比拟小的SD卡磨损得更少。 硬件USB 启动须要专用硬件。一个简略的USB 3.0盘能够实现这项工作,但传输速度与SD卡雷同,约为80-100MB / s。网络,它会更糟一些,因为在初始化RPi板上的USB控制器时大概有0.5秒的开销。只有应用疾速 SSD 驱动器(400 MB/s 或更高),您能力从 USB 启动中充沛受害。这些 SSD 驱动器不作为 USB 设施提供。须要一个额定的USB 3.0适配器将其连贯到树莓。确保应用适宜 UASP 传输的适配器。它是USB 3.0反对的新的,最快的协定。最初要思考的一点是功耗。绝对较小的SSD驱动器能够通过USB端口供电。这是首选,因为否则,您还须要额定的电源。一个绝对便宜的组合是金士顿240GB A400 SATA 3(32欧元)和Inateck 2.5硬盘盒(15欧元)。 树莓派 4 USB启动树莓派奇妙地启动。启动后,位于EEPROM中的小程序立刻仅加载I/O的驱动程序。这就是为什么,例如,即便没有插入SD卡,您依然会看到诊断屏幕。而后,该程序尝试在树莓派中加载操作软件。实现后,它将控制权转移到树莓派,并在其余工夫放弃闲暇状态。到目前为止,启用USB启动的最简略办法是应用Raspberry Pi Imager。 从 1.6 版开始,您能够找到实用于 USB 启动的专用 EEPROM 设置。看看上面的幻灯片。在PC中插入(小型)SD卡,而后烧录您抉择的EEPROM镜像。能够应用启动程序首先是SD卡,其次是USB,或者在幻灯片中抉择的启动程序,USB优先,SD卡其次。应用树莓派 4 和 EEPROM 更新中新闪存的 SD 卡启动。屏幕变为绿色后,您的EEPROM已准备就绪。您始终能够通过简略地应用不同的设置反复上述过程来更改启动程序。其余过程与第一段中所述的规范SD卡装置雷同。应用imager在 USB 设施上烧录树莓派 64 操作系统,从树莓派 4 中取出 SD 卡,而后将 USB 设施插入(蓝色)USB 3.0 连接器。当初,依照通常的装置程序进行操作。亲密关注 USB 设施的功耗。一个SSD卡没有问题,但更多的就须要一个独自的电源集线器。 故障 排除最常见的故障起因是 USB 到 SATA(SSD 卡)适配器不反对 UASP 协定。UASP代表USB Attached SCSI Protocol,Raspberry Pi应用的一种极快的数据传输协定。一些适配器,如风行的JMicron,在某些UASP命令上会有问题。您会看到性能迟缓、频繁断开连接或错误报告。即便连贯到USB 2.0也无奈解决问题,因为Linux内核在看到USB 3.0设施时依然应用UAS命令。惟一的解决方案是在启动后立刻应用命令禁用 UASP 传输。在command.txt文件中,您须要提供 USB 驱动器的硬件 ID。您能够通过将SSD驱动器连贯到仍在SD卡上工作的Raspberry Pi的USB来取得它。`# Get the verdor and product ID$ lsusb`找到的数字在命令 usb-storage.quirks=xxxx:yyyy:u 中作为参数给出此命令必须设置为 /boot/cmdline.txt 中找到的长行中的第一个参数。在 USB 文件夹的启动局部找到该文件。请参阅上面的屏幕转储,从惯例SD卡启动的RPi。启动后连贯 USB 设施。你也能够应用nano编辑器 ...

April 4, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC如何在树莓派4上安装64位操作系统

本文将帮忙您在树莓派 4 上装置树莓派 64 位操作系统。尽管该指南是为树莓派 4编写的,但该指南在未进行任何批改的状况下也能够在树莓派 3上应用。树莓派2 和 1 是 32 位 CPU,因而无奈运行 64 位操作系统。为什么不应用 Ubuntu?Ubuntu也是OK的。Raspberry Imager甚至能够抉择装置不同的Ubuntu版本。然而,Ubuntu 是一个成熟的操作系统,实用于各种处理器,并不是您所说的轻量级。例如,Ubuntu桌面至多须要4 GB的RAM。新的64位Raspberry操作系统在速度方面系统地优于Ubuntu。特地是在咱们的深度学习利用中。这就是咱们抉择运行64位Raspberry OS的起因。 Raspberry Pi Zero 2对于Raspberry Pi Zero 2,咱们编写了一个独自的指南。如果要在此主板上装置 64 位操作系统,请应用本指南。此处介绍的指南将给出与Raspberry Pi Zero 2一起应用时的问题。 Bullseye2022 年 1 月 22 日,树莓基金会公布了第一个官网 64 位 Bullseye 操作系统。您能够在本文中浏览无关它的所有内容。 最重要的变动之一是新的相机驱动程序。Bullseye应用规范的Linux libcamera API,并放弃了以前的Userland视频引擎。这意味着任何为“旧”Raspberry Pi Buster OS编写的相机软件都很可能会进行工作。为了加重苦楚,12月2日,树莓基金会用旧版的树莓派Buster操作系统复原了一些“旧”相机性能。版本已解冻且不受反对。您能够应用 raspi-config 工具装置此插件。在此处查找更多信息。 在适当的时候,大多数软件将被移植到libcamera。 另一个须要理解的重要事件是齐全删除 Python2。从 Python2 到 Python3 的过渡曾经继续了一段时间。但当初Raspberry Pi和Ubuntu 20.04一样,也移除了Pyhton2。 这意味着,例如,您无奈再进行pip装置。从当初开始,您必须应用 pip3 装置。然而,如果你有很多专门用 Python2 编写的软件,你可能依然想应用 Buster 版本。最初,Python3降级到3.9版本。在为 TensorFlow 或 PyTorch 抉择适合的装置时,请记住。 ...

March 31, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC工控机和水产养殖

背景:鱼类养殖是非常广泛的养殖我的项目,但因其肉类鲜美,养分丰盛、品种繁多,养鱼业不仅没被泛滥水产养殖业淘汰,反而呈现出倒退回升的态势。随着自然环境的扭转,很多珍惜鱼类濒临灭绝。人工养殖渔业不仅成为满足市场需求的做法,更是保留物种多样性的最佳形式。然而传统的水产养殖大量应用人工,节约人力,减少老本。或者因为信息采集不及时和完好,导致能源应用的节约。 解决方案与建设指标:水产养殖智能监测系统配置有温度传感器、光照强度传感器,水体溶解氧、PH值、氨氮含量、亚硝酸盐含量、水温探头等,用于监测水域影响鱼类成长的各类信息参数(光照、余氯、PH值、溶解氧、浊度、盐度、氨氮含量等),通过对采集数据的剖析,及时的通过主动控制系统做出反馈(水口电磁阀、增氧泵、天窗主动开启和敞开)。从而达到省电、减产的指标。CM4 Sensing边缘计算网关性能1.数据采集:边缘网关基于MQTT,MODBUS,OPC-UA,REQUEST,CAN,OCPP,XMPP及自定义协定的数据采集。2.多种网络性能:反对以太网、WiFi以及4G网络连接功能,具备全天候全环境的工作能力。3.实时边缘计算:集成边缘计算能力,更快的获取、解决数据,升高云服务老本,缩小流量损耗,实现硬件层面的平安保障。CM4 Sensing边缘计算网关应用树莓派CM4外围板扩大而来,反对高解决能力,反对泛滥扩大能力,反对AI计算扩大。◆ ARM A72 1.5Ghz,4核,64位◆ 内存1/2/4/8GB,eMMC 8/16/32GB◆ 4G/wifi/以太网等多种通信形式◆ RS232/RS485/CAN等多种工业现场协定反对 水产养殖智能监测零碎带来的效益:随着科技的倒退,物联网养殖呈现,采纳无线传感技术、网络化治理等先进治理办法对养殖环境、水质、鱼类成长情况、药物应用、废水处理等进行全方位治理、监测,具备数据实时采集剖析、食品溯源、生产基地近程监控等性能。在保证质量的根底上大大提高了产量。https://www.edatec.cn/cn/ 微信搜寻:树莓派开发者 理解更多信息

March 29, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC智能光伏和工控机

背景:随着寰球能源危机以及“碳达峰、碳中和”的时代主题,大力发展可再生能源已成为寰球能源反动和应答气候变化的主导方向和统一口头。近年来,光伏发电作为重要的可再生能源发电技术获得了疾速倒退,在很多国家已成为清洁、低碳并具备价格竞争力的能源模式。随着光伏产业的大规模倒退,而且又大都在户外,为了保障光伏发电零碎的失常运行,通过采集逆变器的工作状态和发电状况对于光伏发电零碎进行长期有效的监控变得十分的重要。 解决方案和建设指标:光伏逆变器数据采集器是将光伏电站中的光伏并网逆变器、汇流箱和电表等设施的数据通过下接RS485、RS232等通信协定收集起来,并用以太网、wifi、4G等上传到数据库的设施。其不仅能够监测单台设施,也能够通过RS485总线形式监测大规模光伏电站中的多台设施,监测对象包含:逆变器、环境检测仪、光伏汇流箱、电表等。数据采集器同时具备接管和执行网络调度指令的性能。CM4 Sensing边缘计算网关应用树莓派CM4外围板扩大而来,反对高解决能力,反对泛滥扩大能力,反对AI计算扩大。◆ ARM A72 1.5Ghz,4核,64位◆ 内存1/2/4/8GB,eMMC 8/16/32GB◆ 4G/wifi/以太网等多种通信形式◆ 反对多路RS485接口,与逆变器、电表或其余光伏设施通信◆ 预留CAN接口总线,便于扩大储能治理或其余CAN总线接口光伏设施 智能光伏零碎在线监测的作用:智慧光伏平台提供弱小的数据反对,光伏零碎的实时状态以及历史数据都能以图表形式出现,直观、清晰易懂。用户还能够自定义故障报警形式,通过实时推送及时理解零碎的异样及故障情况。真正帮忙用户实现随时随地监控光伏零碎,极大地简化了运维工作。www.edatec.cn/cn 微信搜寻:树莓派开发者 理解更多信息

March 23, 2023 · 1 min · jiezi

关于raspberry-pi:树莓派上海晶珩EDATEC你可曾听说过这个工业AI摄像机

INFORMATIONED-AIC2000是一款高度集成的工业AI摄像机,装备了固定或液体镜头、LED照明、工业级图像传感器和树莓派Compute Module 4(CM4)。ED-AIC2000装备了变焦镜头和LED照明,大大减少了装置和保护工作。因为预装了QT、Python、OpenCV SDK和AI算法演示应用程序,它能够大大放慢AI视觉利用的开发和部署。ED-AIC2000是一款多合一、紧凑和坚硬的工业AI相机,是各种AI视觉利用的现实抉择。 ED-AIC2000是一款多合一、紧凑和坚硬的工业AI相机,是各种AI视觉利用的现实抉择。◆ 基于Raspberry Pi计算机模块4设计的 1GB/2GB/4GB/8GB DDR和8GB/16GB/32GB eMMC可选200万像素全局快门,500万像素滚动快门CMOS图像传感器可选固定或液体镜头可选内置LED照明;反对内部光源1x 10/100/1000M以太网,带M12连接器1x PWR / IO M12连接器,带4个隔离的GPIO和1个RS232预装OpenCV 4.5.4, Python 3.7和QT反对YOLO V5和V8,以及Halcon、AVS等第三代机器视觉库◆ 铝合金外壳由CNC制作,IP67防水◆ 抗冲击性:EN 60068-2-27◆ 抗震性:EN 60068-2-6 SPECIFICATIONS 微信搜寻:树莓派开发者 理解更多信息 www.edatec.cn

March 16, 2023 · 1 min · jiezi

关于raspberry-pi:让我们来细说那些树莓派Raspberry-Pi常用命令

树莓派官网举荐的操作系统是Raspbian,这是一款收费的基于Debian Linux的操作系统,上面是一些罕用的Linux命令。 关上零碎自带的终端,或者远程登陆树莓派后,显示内容如下:默认的命令提示符如下:pi@raspberrypi:~ $表明以后主机:raspberrypi,用户:pi,并且正处在“pi”用户的主目录(/home/pi)。当然,你也能够应用超级管理员“root”用户登录,命令提示符将如下所示:pi@raspberrypi:~ $ sudo base //或者 sudo -sroot@raspberrypi:~ #命令提示符 #,表明这是“root”用户,树莓派默认状况下并不会启用root账户。如果要root权限,请应用 sudo 命令sudo apt-get update ls 列出当前目录下的文件root@raspberrypi:~ # ls -latotal 24drwx------ 3 root root 4096 Feb 1 09:50 .drwxr-xr-x 19 root root 4096 Feb 22 08:46 ..-rw------- 1 root root 723 Feb 21 10:45 .bash_history-rw-r--r-- 1 root root 3106 Oct 15 2021 .bashrc你能够尝试间接输出ls命令而后按回车,以及输出 ls -l命令再按回车之间有什么区别。不言而喻,加上 -l 参数后目录下的文件以清单模式展示,你能够清晰的看到文件的类型、所属用户、创立工夫等信息。其中第一列你会看到如下信息:drwxr-xr-x第一个字母 d 这示意该文件是一个目录(directory)文件,如果是一般文件第一个字母的地位将显示连字符“ - ”。剩下9个字符以3个为一组,每一组各示意文件对于不同用户的权限,第一组 rwx 示意该文件所属的用户具备读(read)、写(write)和执行(execute)该文件的权限,第二组 r-x 示意同用户组的用户具备读和执行的权限(“ - ”示意不具备相干权限),第三组 r-x 示意其余用户具备读和执行的权限。当然还有ls -a列出包含暗藏文件在内的所有文件,Linux 的暗藏文件名以 “ . “开始。 ...

March 3, 2023 · 2 min · jiezi

关于raspberry-pi:EDATEC智慧水务大数据管理系统树莓派都让开让我来

现阶段智慧水务倒退仍处于初级阶段,存在较多问题,然而智慧水务作为智慧城市建设的重要环节,其在将来施展的作用将越来越凸显,进步企业经营管理效率,晋升城市居民生存幸福品质,置信在不久的未来,智慧水务市场空间将出现爆发式增长。然而即使如此,在这个阶段也有着不少的痛点和挑战: 站点多、难治理站点数量泛滥、地理位置笼罩广不集中,对立集中管理难度大。老本高、效率低站点设施泛滥,本地业余技术人员短缺,难以做到无人值守和定期维护,专人看管老本高。成果差、不直观日常经营须要通过多个平台进行治理,数据之间不能互通,难以造成高效的数据分析机制。平台多、数据散公开设施无奈直观治理,污水梳理工艺多、逻辑简单,污水实时处理流程难以直观查看和治理。为了解决这些问题,基于调研提出了以下解决方案和建设指标。基于物联网、AI、大数据和云平台技术,建设智慧水务大数据经营治理平台,对扩散于不同地区的水处理厂、泵站进行集中管理,通过边缘计算网关实现站点数据的收集和剖析上传到地方服务器,从而实现全面的数字化治理。 这个计划中须要实现的至多3大性能:1、数据接入:反对多种品牌PLC的数据传输、10W+级的物联网数据传输能力,100%的数据真实性,99.9%的接入稳定性。2、多种网络性能:反对以太网、WiFi以及4G网络连接功能,具备全天候全环境的工作能力。3、实时边缘计算:集成边缘计算能力,更快的获取、解决数据,升高云服务老本,缩小流量损耗,实现硬件层面的平安保障。 其中基于树莓派CM4外围板扩大而来的CM4 Sensing边缘计算网关起到了至关重要的作用。ARM A72 1.5Ghz,4核,64位;内存1/2/4/8GB,eMMC 8/16/32GB;4G/wifi/以太网等多种通信形式;RS232/RS485/CAN等多种工业现场协定反对。参考信息:https://www.edatec.cn/cn/ 对于企业来说,智慧水务可能升高企业经营老本,节俭大量人力、物力、财力,升高事变危险隐患,及时对异常情况进行预警,疾速响应解决,实现信息数据之间的联动,买通各个业务流程环节,实现各个系统之间的数据共享,实现企业智慧决策,深度开掘水务数据,施展数据智慧决策能力,为企业业务管理提供疾速、无效的决策撑持。 对于城市来说,智慧水务可能提供水务工作效率,促成城市水务工作高效发展,提供便当的民生服务,进步居民用水平安和供水品质,促成智慧城市建设,可能为智慧城市节约环保、生态宜居提供根底保障,推动社会谐和倒退,进步人民的生存品质,推动社会稳固倒退以及构建和谐社会。

March 1, 2023 · 1 min · jiezi

关于raspberry-pi:Raspberry-Pi-树莓派EDATEC-CM4-Industrial-工业设计应用的好玩意

CM4 Industrial是一款基于 Raspberry Pi / 树莓派 Compute Module 4,由EDATEC面向工业利用设计的嵌入式计算机设计的工业嵌入式计算机。零碎能够依据不同的利用配置成1GB/2GB/4GB/8GB 的 RAM 和8GB/16GB/32GB 的 EMMC,反对 SD 卡启动。 SPECIFICATIONS处理器 Broadcom BCM2711 quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHzH.265 (HEVC) (up to 4Kp60 decode), H.264 (up to 1080p60 decode, 1080p30 encode)OpenGL ES 3.1, Vulkan 1.0内存 1GB / 2GB / 4GB / 8GB LPDDR4-3200 SDRAM贮存 Onboard 0GB / 8GB / 16GB / 32GB eMMC1x microSD Card Slot for system boot when choosing 0GB(CM4 Lite) eMMCOnboard 32Mbits / 4MBytes SPI Flash显示 1x standard HDMI Out (Type A)1x FPC HDMI Touch Display1x FPC DSI Touch Display摄像头 1x FPC CSI, Support Raspberry Pi Official 5M & 8M Cameras有线接口 1x Gig-Ethernet (10/100/1000M), Support PoE (with Raspberry Pi PoE HAT)1x Fast-Ethernet (10/100M)2x USB 2.0 Type-A1x USB micro-B for eMMC Flashing (Inside the case)无线 Optional 2.4 GHz, 5.0 GHz IEEE 802.11 b/g/n/ac wireless and Bluetooth 5.0, BLE with external antennaOptional 4G LTE with optional GPS support, 1x Standard-SIM card slot, external antenna工业接口 2x RS485, 6-pin Terminal Block1x RS232, 3-pin Terminal Block3x 12-bits ADC Channels, 4-pin Terminal Block2x isolated DI, Support Dry / Wet Contact1x SPDT Relay, 6-pin Terminal Block1x RTC with CR1220 backup1x adjustable speed fan control, 3-pin wafer connector1x Buzzer扩大接口 1x mini-PCIe slot with 1-lane PCIe and 1x USB 2.0, Support 4G Module1x standard Raspberry Pi 40-PIN GPIO1x Serial(TTL), 4-pin DIP connector2x USB 2.0, 4-pin DIP connector1x non-isolated IO, 2-pin DIP connector电源输出~ 36V DC*DC Jack or optional 2-pin Terminal Block指示灯 1x Power Indicator with Red LED1x Status Indicator with Green LED1x 4G network indicator with Blue LED (Inside the case)按键 1x System Reset Button1x User Button工作温度 -25~ 50°C操作湿度 10% - 60%外壳 Metal Case, 2 Antenna Holes尺寸 147(L) x 119(W) x 28(H) mm装置形式 DIN-mountWall-mount操作系统 Pre-installed with 32-bit Raspberry Pi OS with Desktop in eMMC(if choosing eMMC variants)Compatible with Origin Raspberry Pi OS, support 32-bit and 64-bit OS, support Lite and Desktop versionsSupport BSP online install / upgrade with APT tool ...

February 20, 2023 · 2 min · jiezi

关于raspberry-pi:Raspberry-Pi-树莓派小小工控机担起大大责任

CM4 Sensing是一款基于Raspberry Pi / 树莓派 计算模块4(简称CM4),由 EDATEC 为物联网和数据采集利用而设计的工业计算机。它充分利用了CM4的构造灵活性,解决了CPU、无线模块和PMU的散热问题。外置天线进步了无线通信的可靠性。 SPECIFICATIONS解决能力 Broadcom BCM2711 4核Cortex A72 1.5GHz (ARM v8) 64-bit CPU反对H.265 (HEVC) (最高反对4Kp60解码), H.264 (最高反对1080p60解码, 1080p30编码) OpenGL ES 3.0 graphics内存 1GB/2GB/4GB/8GB LPDDR4-3200 SDRAM可选存储 8GB / 16GB / 32GB eMMC可选1 x micro SD 卡座(用于拓展用户数据存储)eMMC和micro SD可同时启动 显示 1 x CSI接口,反对Raspberry Pi官网5M & 8M像素摄像头模组1 x HDMI接口1 x DSI 接口,反对Raspberry Pi官网显示屏有线接口 1 x 反对PoE供电10/100M/1000以太网(需配官网PoE HAT)2 x USB3.0(外置)1 x USB3.0(内置)1 x USB2.0无线通讯 1 x 2.4G/5.8G WiFi 兼容IEEE 802.11 b/g/n/ac 规范1 x Bluetooth 5.0 BLEWiFi/BLE外置天线和PCB天线可选 工业接口与性能 ...

February 16, 2023 · 1 min · jiezi

关于raspberry-pi:一篇文章让你摸透这个基于Raspberry-Pi-树莓派而设计的工业计算机

CM4 Sensing是一款基于Raspberry Pi / 树莓派 计算模块4(简称CM4),由 EDATEC 为物联网和数据采集利用而设计的工业计算机。它充分利用了CM4的构造灵活性,解决了CPU、无线模块和PMU的散热问题。外置天线进步了无线通信的可靠性。 SPECIFICATIONS解决能力Broadcom BCM2711 4核Cortex A72 1.5GHz (ARM v8) 64-bit CPU反对H.265 (HEVC) (最高反对4Kp60解码), H.264 (最高反对1080p60解码, 1080p30编码)OpenGL ES 3.0 graphics内存1GB/2GB/4GB/8GB LPDDR4-3200 SDRAM可选8GB/16GB/32GB eMMC可选内存1GB / 2GB / 4GB / 8GB LPDDR4-3200 SDRAM可选存储8GB / 16GB / 32GB eMMC可选1 x micro SD 卡座 (用于拓展用户数据存储)eMMC和micro SD可同时启动显示1 x HDMI接口1 x DSI 接口,反对Raspberry Pi官网显示屏1 x HDMI FPC软排线接口有线接口1 x 10/100M/1000以太网2 x USB2.0(外置)1 x Micro USB2.0(编程)无线通讯1x 4G/LTE module1 x 2.4G/5.8G WiFi 兼容IEEE 802.11 b/g/n/ac 规范1 x Bluetooth 5.0 BLERaspberry Pi官网WiFi/BLE外置天线工业接口与性能4 x RS4851 x CAN1 x RS2321 x带备份电池的RTC1 x LED电源批示,1 x LED零碎工作状态批示1 x 蜂鸣器可扩大接口Mini PCIe座子反对规范的1 x PCIe Gen2 1x 设施扩大,反对4G模组2针的WTB连接器,反对树莓派官网7‘''触摸屏电源输出8 ~ 28V DC*凤凰端子输出接口(可选)指示灯1x Power Indicator with Red LED1x Status Indicator with Green LED1x 4G network indicator with Blue LED (Inside the case)工作温度-25 ~ 60°C工作湿度10% - 60%外壳金属外壳,整面铝合金散热片,2个天线孔尺寸103(L) x 73(W) x 32(H) mm装置形式DIN装置墙式装置软件环境预装Raspberry Pi Raspbian OS反对近程在线降级镜像 ...

February 15, 2023 · 1 min · jiezi

关于raspberry-pi:MacBook-Linux-树莓派raspberrypi安装Golang环境

集体还是比拟喜爱用go语言开发,比java开发效率高,当前会继续更新golang相干的博客 MacBook装置golang环境官网下载地址: https://golang.google.cn/dl/官网下载Mac对应版本 tar.gz包 OS macOS 版本 x86-64 #解压tar -zxvf xxx.tar.gz #配置环境变量vim ~/.zshrc #文件最初退出export GOROOT=/Users/liang/software/go1.15.6export GO_HOME=$GOROOTexport GOPATH=/Users/liang/ideaWorkspace/goexport PATH=$GO_HOME/bin:$PATH# 启用 Go Modules 性能export GO111MODULE=on# 配置 GOPROXY 代理的环境变量export GOPROXY=https://goproxy.io#使配置失效 source ~/.zshrc#/Users/liang/software/go1.15.6 解压包的门路#/Users/liang/ideaWorkspace/go go我的项目工程门路#查看版本go versiongo version go1.15.6 darwin/amd64Linux装置golang环境官网下载地址: https://golang.google.cn/dl/官网下载对应版本 tar.gz包 OS Linux 版本 x86-64 #解压tar -zxvf xxx.tar.gz #配置环境变量vim .bashrc 或者 vim /etc/profile#文件最初退出export GOROOT=/home/liang/software/go1.15.6export GO_HOME=$GOROOTexport GOPATH=/home/liang/ideaWorkspace/goexport PATH=$GO_HOME/bin:$PATH# 启用 Go Modules 性能export GO111MODULE=on# 配置 GOPROXY 代理环境变量export GOPROXY=https://goproxy.io#使配置失效 source .bashrc#/home/liang/software/go1.15.6 解压包的门路#/home/liang/ideaWorkspace/go go我的项目工程门路#查看版本go versiongo version go1.15.6 linux/amd64树莓派装置golang环境官网下载地址: https://golang.google.cn/dl/官网下载对应版本 tar.gz包 OS Linux 版本 ARMv6 ...

August 29, 2022 · 1 min · jiezi

关于raspberry-pi:raspberrypi加入kubeedgeCgroup-subsystem-not-mounted-memory

树莓派raspberrypi上先装置好Docker树莓派4B raspberrypi离线装置Docker 树莓派4B raspberrypi在线装置Docker 华为云arm架构轻松装置kubeedge 树莓派raspberrypi当边缘节点在线退出kubeedge集群kubeedge官网下载keadm: https://github.com/kubeedge/k...树莓派是arm架构的,留神不是arm64位, 下载包: keadm-v1.5.0-linux-arm.tar.gz #查看树莓派内核版本uname -r Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux#或者应用 uname -a#在cloudcore主机上,即k8s master节点, 获取kubeedge的token, 执行命令获取token./keadm-v1.6.1-linux-arm64/keadm/keadm gettoken# 树莓派上执行,解压tar -zxvf keadm-v1.5.0-linux-arm.tar.gz #退出kubeedge集群治理./keadm-v1.5.0-linux-arm/keadm/keadm join --cloudcore-ipport=192.168.0.5:10000 --cgroupdriver=systemd --edgenode-name=raspberrypi --kubeedge-version=1.5.0 --token=3cca11140cab1c229d9cfcb9fec5b56fc46d8a61d5607e6d28a1df949d228136.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTI0MjMxNzF9.lW1VhW-II45HZ9Hx3cROi2Q2zp8MNEcjmgh1I4jZZY0#须要期待, 它会在线装置mosquitto MQTT, 而后从github下载kubeedge的包,拜访github比较慢,前面的博客我会讲到离线部署kubeedge--cloudcore-ipport=192.168.0.5:10000 cloudcore主机IP和端口 --cgroupdriver=systemd 应用systemd驱动, 在/etc/docker/daemon.json配置文件中增加: "exec-opts": ["native.cgroupdriver=systemd"] --edgenode-name=raspberrypi 节点名称 --kubeedge-version=1.5.0 kubeedge版本 --token 在cloudcore主机上获取的token 解决error: system validation failed - Following Cgroup subsystem not mounted: [memory]#下面退出kubeedge集群治理, 报错: Failed to start container manager, err: system validation failed - Following Cgroup subsystem not mounted: [memory]E0125 16:42:09.131414 1655 edged.go:291] initialize module error: system validation failed - Following Cgroup subsystem not mounted: [memory]#解决问题#批改/boot/cmdline.txtsudo vim /boot/cmdline.txtcgroup_enable=memory cgroup_memory=1增加在同一行的最初面,接着内容后空格后增加, 留神:不要换行增加#重启机器配置失效reboot配置edgecore开机自启动服务#查看edgecore启动状况ps aux|grep edgecore#查看启动状态sudo systemctl status edgecore#查看docker开机启动状态 enabled:开启, disabled:敞开systemctl is-enabled edgecore#设置开机自启动systemctl enable edgecore

August 23, 2022 · 1 min · jiezi

关于raspberry-pi:树莓派4B-raspberrypi在线安装Docker

Docker在线装置#官网脚本:会自动检测以后的零碎和版本后,装置docker,只须要在联网状况下,急躁期待sudo curl -fsSL https://get.docker.com | sh#或者这样装置curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo apt-get update#查找可用版本apt-cache madison docker-ce#装置最新版本sudo apt-get install docker-ce #装置指定版本sudo apt install docker-ce=5:19.03.1~3-0~raspbian-buster#查看docker版本docker version#查看docker信息docker info配置Docker开机自启动服务#启动Dockersystemctl start docker#查看docker启动状态systemctl status docker#查看启动中的容器docker ps#设置开机自启动systemctl enable docker.service#查看docker开机启动状态 enabled:开启, disabled:敞开systemctl is-enabled docker.service

August 20, 2022 · 1 min · jiezi

关于raspberry-pi:树莓派实战微信机器人itchat实现

背景楼主有一台树莓派4B开发板(8G内存版),是目前的顶配机型。这一年来的业余时间,除了写Java、架构方面的文章,也陆续折腾了不少树莓派上的好玩小我的项目,在此新开一个树莓派实战的文章系列,分享给粉丝和读者。 什么是树莓派?树莓派是一个信用卡大小的单板计算机,ARM架构CPU,低功耗,能够7×24跑Linux服务器,连贯各种扩大硬件,所以施展想象力,就能做很多有意思的事件。 需要你有没有想过,领有一个微信机器人,能够主动回复、AI聊天、定时发送天气预报、管制摄像头等等。应用树莓派+开源库itchat,就能实现上述所有需要。为什么强调要用树莓派呢?因为它能7×24在线,能够把itchat客户端当作一个不停服的server。特地阐明:本文仅供学习用,请勿用于任何商业和其它用处。 itchat简介itchat是一个开源的微信集体号接口,应用不到三十行的代码,就能够实现一个可能解决所有信息的微信机器人。github地址:https://github.com/littlecode... 你肯定对原理感到好奇。其实能够概括为一句话:itchat实质上是一个微信网页版客户端,它实现了微信网页版的协定/语义,通过http来通信。具体源码能够看components包里的文件。 上面分点介绍如何实现乏味的性能。 性能实现1、主动回复首先得注册音讯处理函数,即对不同类型的音讯做解决。微信音讯分为文本、图片、语音、视频、好友申请等,可通过itchat的Python语法糖来注册不同类型音讯的处理函数,有点相似Java里的注解。如果是文本音讯,能够辨认其中的关键字,不同的关键字对应不同的逻辑解决。默认是解决单聊的音讯,也能够解决群聊的音讯。运行程序后,会弹出一个二维码,扫码即可登录,而后itchat程序就跑起来了。另外需注意,发消息给本人是没用的,变通的方法是发消息给文件传输助手filehelper,成果等同于发消息给本人。上面给出一个demo,并加以正文。 import itchat, timefrom itchat.content import *# 注册音讯处理函数,回复文本、地图、名片、备注、分享类型的音讯@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])def text_reply(msg): # 回复以下音讯:音讯类型,音讯内容文本 itchat.send('%s: %s' % (msg.type, msg.text)) # 依据不同的关键字,回复不同的音讯 if '你好' in msg.text: itchat.send('你好啊') elif '拜拜' in msg.text: itchat.send('下次聊')# 注册音讯处理函数,当收到图片、语音、附件、视频类型的音讯时,下载内容@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])def download_files(msg): # 下载文件 msg.download(msg.fileName) typeSymbol = { PICTURE: 'img', VIDEO: 'vid', }.get(msg.type, 'fil') return '@%s@%s' % (typeSymbol, msg.fileName)# 注册音讯处理函数,解决好友申请音讯@itchat.msg_register(FRIENDS)def add_friend(msg): # 主动通过对方的好友申请 msg.user.verify() # 而后发送问候语 msg.user.send('Nice to meet you!')# 下面几个都是单聊,加上isGroupChat=True就能解决群聊音讯@itchat.msg_register(TEXT, isGroupChat=True)def text_reply(msg): # 当在群聊被at时才回复,个别都会加上此条件,否则可能回复群内所有音讯 if msg.isAt: # 回复时,也at对应的人音讯 msg.user.send(u'@%s\u2005I received: %s' % ( msg.actualNickName, msg.text))# 会弹出一个二维码,扫码即可登录itchat.auto_login(True)# 运行itchat客户端,debug=True会打印日志itchat.run(True)2、AI聊天有了第1步的根底,要实现AI聊天,就须要引入另外的AI本地库、或者在线API了,应用在线API更简略,只须要管制传参、解析响应即可。楼主应用了一个叫青云客的API,可收费应用(本人简略试用的前提下,非商用),带关键字命令的AI对话还是不错的,如果是自在对话,那大概率前言不搭后语。 ...

July 11, 2022 · 2 min · jiezi

关于raspberry-pi:树莓派控制调速以及关于PWM的思考

前情概要最近在寻思用树莓派管制电机速度,电机预估电压是24V,电流是10A,以这样的配置须要个无极调速控制器管制电机转速,看了下相干的控制器价格也不贵,十多块钱就能整一块。而后,相干的无极调速有提供PWM管制的。 而后说到调速管制这一块,一般来说,低功率电路,比方5V/1A,3V/1A这样的电路,通常间接接个电位器进行管制就行了,而对于大功率电路,比方100W,200W这样的,通常来说就须要个通过低电压管制高电压电路了。一般来说,间接通过一个大功率三极管就能通过低电压的无极电压电流调节从而管制高电压电流的电路。然而实际上的放大电路还是比较复杂的,我非科班出身,对于这块目前也没有做过深入研究其根本原因和原理,暂且不谈。另外就是数字电路来管制大功率电器,那么也须要低电压通过放大电路来进行管制。 以此为前提,那么就问题来了,数字电路怎么能做到管制电压电流大小。首先看物理电位器的调节原理就是控制电路中的电阻来管制整个电路中的电流和电压大小,这个好了解。而在数字电路中,则是通过PWM(Pulse width modulation),中文意思是脉冲宽度调制。 PWM从字面了解PWM,一开始看到其实是不太好了解的,我一开始也是弄得云里雾里的,这里用我本人所了解的形式进行梳理一下。 首先: 数字电路输入都是高/低电平,高电平能够假设为1,低电平假设为0,也就是低电平状况电路中没有电流电压流动。至于具体的这个高电平,对应的是多少电压,那么我这以树莓派为例,树莓派有好几个引脚,有的引脚输入的是3.3V电压,有的引脚输入的是5V,那么对应的相干高低电平就是:3.3:0,5:0。数字电路是有频率的,这个以我的了解,就是一个时钟周期(1秒)内电流分成多少次流动,也就是一个时钟周期内电流分成多少次传递,如10MHZ,那么就是一个时钟周期内把电流分成10M次进行传递。然亦有以上两点基础知识之后,那么就很容易了解PWM了。了解PWM之前,还须要了解个叫做空占比的概念。空占比的意思是在单位工夫内输入的低电平次数占所有电平次数(高电平输入次数+低电平输入次数)的比率,如10MHZ的电路,如果空占比为0.1,那么就有1M次是输入低电平的,9M次是输入高电平的。 PWM的理念就是,原本是5V/16MA的电路,那么,我在单位工夫内,原本10M次都是输入高电平,然而假如空占比为0.8,也就是说,相当于这10M次其中有8M=10M*0.8次是输入低电平。而后就不言而喻的可知,单位工夫内流过的电流为2M=10M-8M次,也就是理论在单位工夫内传送电流的工夫只占了0.2。也就是说,本来的5V/16MA的电路现在在单位工夫内就传送了5V/16MA*0.2=1V/3.2MA,从而达到了降压限流的目标了。 程序控制空占比如果说树莓派的话,自身是有几个接口能够调用零碎提供的库来间接输入PWM的,抛开这点不谈,如果说本人来解决的话,用程序来管制,相似于如下伪代码: 频率 = 10MHZ一个电平在单位工夫内的传送工夫 = 1 / 频率空占比 = 0.8while True: 输入高电平() 继续等到高电平输入工夫 = 一个电平在单位工夫内的传送工夫 * (1-空占比) 输入低电平() 继续等到低电平输入工夫 = 一个电平在单位工夫内的传送工夫 * 空占比实际上PWM的算法有很多,而在不同的电路管制中可能会有不同的限度,如最简略的例子,如LED灯管制,如果空占比为0.5,那么1秒内,如果后面0.5秒输入高电平,前面0.5秒输入低电平。尽管来说,单位工夫内均匀电压和电流为理论电压电流的一半,然而,人眼就非常明显的能感触到LED在闪动,因为人眼要能感触到画面不闪动,画面刷新率最起码要达到24HZ。所以,须要把高低电平在单位工夫内最起码还要拆分成24份,而后每一份工夫内,再依照空占比进行工夫拆分,再在本人的工夫内输入高电平和低电平。也就是说,把依照空占比输入的高/低电平作为一个根底操作的话,单位工夫内能做越多操作,电压和电流也就越稳固,当然,这里我也只是在树莓派上做了理论验证,对于理论的相干数学验证没有做过。 写在结尾集体对整套管制想法做下记录,后续在须要用到PWM管制的时候,间接用对应零碎硬件提供的操作进行管制就行了,次要就是理解了整套根底起因之后,事件就没有这么神秘了。

May 18, 2022 · 1 min · jiezi

关于raspberry-pi:树莓派系统备份及还原

背景介绍依据前文树莓派3b+ 装置node.js环境(1)-Ubuntu 20.04 LTS装置实现树莓派零碎装置后,本文将阐明树莓派零碎的备份及还原。 筹备工作备份笔记本装好树莓派零碎的SD卡(从树莓派中取下)SD卡读取器操作步骤在备份指标笔记本上关上Win32DiskImager软件在备份指标笔记本上创立一个空白的img后缀文件插入SD卡,并在Win32DiskImager中抉择该文件并且设施处抉择要备份SD卡的盘符点击读取或者read进行拷贝 期待读取实现即实现备份备份占用空间太大,是整卡备份,失去的IMG是卡的大小,只能还原到原卡或大于原卡的卡。备份还原备份复原:插入须要还原的SD卡,抉择备份文件以及SD卡的盘符,点击写入或Write期待即可

March 17, 2022 · 1 min · jiezi

关于raspberry-pi:制作树莓派Raspberry-PI镜像文件

Ref the website Raspberry PI softwareThis website includes some tools of images burning, various raspberry images. The tool is supported on mulit-platform, such as MAC-OS, Windows and Linux, and it is so easy to use to burn your images downloaded. The arm64 lite raspberry image is selected by me. There is no GUI deploied on this image to save so many resources. FAQ: The UART maybe no output when the image was burned.ANS: The enable_uart=1 is absence on the config.txt of boot folder of SD-CARD. ...

February 19, 2022 · 1 min · jiezi

关于raspberry-pi:树莓派-Raspberry-Pi-bullseye更换阿里云源方法

一、装置树莓派零碎首先下载树莓派的零碎,镜像官网(https://www.raspberrypi.com/)速度下载比较慢,举荐应用阿里云镜像站下载。 阿里云镜像站官网:https://developer.aliyun.com/mirror/ 阿里云树莓派零碎镜像地址:https://mirrors.aliyun.com/raspberrypi/ 而后咱们找到下载地址下载: https://mirrors.aliyun.com/raspberry-pi-os-images/raspios_full_arm64/images/raspios_full_arm64-2022-01-28/2022-01-28-raspios-bullseye-arm64-full.zip 基于Debian11,以后日期是2022-02-16,目前最新的零碎。 下载结束后解压,而后应用Win32DiskImager刷入内存卡,烧录零碎这里就不多说了。 把内存卡插入树莓派,通电开机,而后通过hdmi线接入显示器。就能够进入零碎了。 二、Raspberry Pi 更换阿里云源办法自带的源在海内,访问速度比较慢,更换成阿里云的源后装置软件速度会晋升很大。 阿里云raspberrypi 镜像源地址: https://developer.aliyun.com/mirror/raspberrypi?spm=a2c6h.13651102.0.0.5f851b11F6UTeG 其余源:http://www.raspbian.org/RaspbianMirrors 编辑 /etc/apt/sources.list 文件,这里举荐就用零碎自带的 nano 命令编辑,命令如下: sudo nano /etc/apt/sources.list进入编辑界面,删除原有的内容,粘贴如下内容: deb http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib rpideb-src http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib rpi更新软件索引清单 sudo apt-get update比拟索引清单更新依赖关系 sudo apt-get upgrade -y

February 18, 2022 · 1 min · jiezi

关于raspberry-pi:记录一次树莓派DNS解析失败的问题

最近翻出来了吃灰多年的一块树莓派3b,想来闲着也节约,要不组一个Nextcloud当网盘用。后果在应用的过程中不知为何总是域名解析失败,树莓派连的是家里路由器的WiFi。 首先我尝试批改vi /etc/resolv.conf文件,增加nameserver 114.114.114.114来解决,批改了之后确实解决了域名解析的问题,但最初发现在重启树莓派后会生效。 那有什么好方法能解决呢? 实际上须要批改resolved.conf文件 sudo vi /etc/systemd/resolved.conf而后删除DNS=那一行的正文符号,等号右面增加DNS服务器的地址即可,我这里以114.114.114.114为例,批改后就是: DNS=114.114.114.114保留后,再重启,察看DNS是否失效。 如果要批改其余的DNS服务器,如8.8.8.8,则对应批改即可。

February 13, 2022 · 1 min · jiezi

关于raspberry-pi:基于树莓派部署-codeserver

原文链接code-server 是 vscode 的服务端程序,通过部署 code-server 在服务器,能够实现 web 端拜访 vscode。进而能够达到以下能力: 反对跨设施(Mac/iPad/iPhone 等等)编程,同时保障多端编程环境对立。反对在 web 端提交 git 代码。解放背包分量。至于将 code-server 部署在树莓派上相比云端服务器益处是综合成本低,后续若要更换云服务器,只需更改内网映射端口即可,迁徙会非常便捷。 树莓派上部署 code-server参考 code-server 官网,在树莓派上其举荐应用 yarn 的形式来进行装置 code-server。 此外前置装置提到 node.js 版本须要与所下载的 VSCode's Electron 所依赖的版本统一。笔者下载的 code-server 版本为 code-server_3.12.0_arm64.deb,其须要 node.js 14.x 版本。执行如下命令进行前置装置: sudo apt-get install -y \ build-essential \ pkg-config \ python3npm config set python python3依照 yarn 官网 所述,在 Debian / Ubuntu 零碎中装置 yarn: curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.listsudo apt update && sudo apt install yarnyarn --version // 1.22.15执行 sudo vim .bashrc,将 yarn 全局装置命令的执行门路写入 .bashrc 文件。 ...

December 8, 2021 · 2 min · jiezi

关于raspberry-pi:树莓派4B记录

组装拆机后可不慌组装,能够在零碎烧入胜利后,最初再对立组装。 初始化下载镜像去树莓派官网下载,传送链接。因为没有键鼠,所以间接下载不带桌面的lite版本Raspberry Pi OS Lite。 下载镜像导入软件抉择官网的Raspberry Pi OS 镜像导入下面2个下载实现后,须要: 将镜像压缩包解压,失去一个后缀名为img的文件。装置Raspberry Pi OS。插上读卡器(装有存储卡)。OK后,操作步骤如下: 关上Raspberry Pi OS软件,点击CHOOSE OS抉择Use custom,抉择刚刚解压进去失去img文件Storage抉择插入的读卡器,抉择WRITE,开始期待。连贯网络镜像导入实现后即意味着有了零碎,前面如何连贯板子呢?PC和树莓派接入同一网络,而后通过SSH命令行连贯。那如何让树莓派连贯网络呢?两种方法: 网线直连路由口连贯WIFI咱们介绍第二种办法,即接入WIFI。须要在读卡器中新增2个文件,以便后续SSH连贯。新建如下2个新文件: ssh文件名即ssh,无后缀名,内容为空,只须要把文件创建进去即可。wpa_supplicant.conf内容如下,其中的wifi_name和wifi_password替换成本人的WIFI名称和明码。 country=CNctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid="wifi_name" psk="wifi_password" key_mgmt=WPA-PSK priority=1}实现后,可插入读卡器,将存储卡放回树莓派卡槽。接通电源,开启树莓派! SSH连贯ssh连贯之前,咱们须要晓得树莓派的IP地址。关上本地的路由器治理页面,查问刚刚接入的设施即可查问到。我这里IP为192.168.0.114。应用MobaXterm软件连贯 初始化用户名明码为: piraspberry连贯胜利!连贯胜利后,倡议批改默认的明码: sudo passwd pi #批改 pi 明码 sudo passwd root #设置 root 明码 su root #切换到 root 用户 su pi #切换到 pi 用户

December 4, 2021 · 1 min · jiezi

关于raspberry-pi:嵌入式AIraspberry-pi-安装树莓派系统-网络配置有线无线-换源-ssh与vscode远程

 欢送关注我的公众号 [极智视界],获取我的更多笔记分享 O_o >_<  o_O O_o ~_~ o_O   本文具体介绍了树莓派装置零碎、配置网络、换源与 ssh 近程的办法。 1 装置树莓派零碎  装置树莓派零碎次要操作是烧录零碎到 micro SD卡。 首先须要筹备一张 micro SD 卡(个别16G) 格式化 SD 卡 链接传送门:链接:https://pan.baidu.com/s/1JJTh... 提取码:6666 若SD卡大于32G,SD Formatter会默认以exFAT的格局进行格式化,而Raspberry Pi目前的机型都还不反对对该格局的辨认,因而才会无奈辨认大于32GB的卡 【解决办法】 将micro SD卡格局使用DiskGenius化成FAT格局就行。 更加弱小的格式化工具 DiskGenius,链接传送门:http://www.diskgenius.cn/down... 从树莓派官网下载 Raspberry Pi Imager链接传送门:https://www.raspberrypi.org/s...  在 Operating System处抉择零碎,在 Storage 处抉择要烧录到的SD卡。  点击 WRITE 期待烧录实现即可。 2 网络配置有线网络配置 批改配置文件 sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf_backupsudo vi /etc/dhcpcd.conf开端增加设置即可,其中192.168.128.100/24 ,24 代表 255.255.255.0 interface eth0static ip_address=192.168.128.100/24static routers=192.168.1.1static domain_name_servers=202.102.152.3 114.114.114.114 8.8.8.8无线网络配置 ...

October 31, 2021 · 1 min · jiezi

关于raspberry-pi:用Nextcloud在树莓派上布置你的个人网盘NAS

用Nextcloud在树莓派上安排你的集体网盘“NAS”这次用的是目前最新的 Raspbian Stretch 零碎,基于 Debian 9。 软件程序是 Nextcloud 12.0.4 因为只想在局域网上应用,所以应用最简布署形式,相当于是起码的配置。 所以,这份计划不倡议用在对外的服务器上,不够平安。 ·>>> 14/01/2018. 17:00 write. 1)下载程式镜像:参考命令: links https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip官网页面:传送门 2)装置依赖软件及安排文件系统:a) 装置依赖软件:因为我有其余的网站跑的 Nginx ,所以这里我也选用了 Nginx. 一是好一起治理,二是绝对 Apache2 来说比拟轻一点,毕竟派的性能就那么点。 Apache 计划的能够参考官网给的教程,相当容易就架上来了 Tutorial Page 参考命令: # 切成 root 用户, 不切换的话上面所有命令都要在后面加 sudosudo su# apt 装置所有依赖软件# nginx 计划要用 Php-Fpm, # Nextcloud 只能反对到 7.0 版本的 Phpapt install php7.0fpm nginxapt install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstringapt install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip# 装置 MySQL 相干apt install mysql-server# apt install mysql-client && sudo apt-get install libmysqlclient-dev# 这里第二句不必运行,因为发现在派上运行第一句时它会主动把全副都装好。# 而且都不必设置 root 明码了。再而且,它装的是 MariaDB 而不是 MySQL. 不过这不影响。b) 安排文件系统:留神:上面命令中的所有门路如果你用的不一样要留神替换 ...

July 3, 2021 · 3 min · jiezi

关于raspberry-pi:入手树莓派后要做的一些事

动手树莓派后要做的一些事始终以来都好懒,学的货色或者学习时查找的材料回头就不晓得再要去哪里找了。 趁这次动手了个树莓派就从当初开始记录点滴!不然回头又没了。。 这次我动手的是3B+的英国产的派(#腐国操持 斜眼笑) 用的是最新的官网零碎:2017-11-29-raspbian-stretch.img Download Page 用的是那个 RASPBIAN STRETCH WITH DESKTOP 那个镜像。 其余的更多的别的零碎能够在这里下载。Download Page ·>>> 14/01/2018. 03:17 AM write. 1)装置及其他硬件类:a) 步骤:略。 这个因为每个人的配件也不一样,货色也不难装,不要鼎力出奇观就没问题的。 b) 装置零碎:可能大部分人都是用的 Windows 零碎,那么间接跟着官网的教程做就行了 Installation Guide,Windows 上的可选计划有: NOOBSEtcherWin32DiskImager因为我是用的 Win32DiskImager,这里我简略说下 Win32DiskImager 的做法: 下面的镜像页面下载好镜像,完理解压失去 .img 文件。装置 Win32DiskImager.exe,始终下一步就行了。Download Page用读卡器关上 SD 卡,用 Win32DiskImager 加载并写入下面的镜像。将卡装到派上,搞定!c) 注意事项:因为我装的是桌面版,所以不太分明如果是 LITE 版会是怎么样的状况。桌面版这个零碎是 默认不开SSH 的,所以保障要有这些货色你能力动工: 反对HDMI的显示器及链接线键盘及鼠标接好货色后通电开机,进入桌面。上面的都是在零碎上操作了。 2)增加 Vim 及批改源:因为它零碎外面的自带的 vi 是不残缺的,就我而言齐全不能用,所以在改源前我先装了个失常的 Vim,完了再去批改它的 apt 源,如果你不必 Vim 则能够跳过这步。 a) 装置 Vim:参考命令: sudo apt install vimb) 更新源为中国源:参考命令: # 切成 root 用户, 不切换的话上面所有命令都要在后面加 sudosudo su# 备份文件 sources.listcp /etc/apt/sources.list /etc/apt/sources.list.copy# 批改:vi /etc/apt/sources.list# 用 “#” 正文掉原来的全部内容并增加上面内容进去:deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpideb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi# 留神:网址开端的 raspbian 反复两次是必须的。# 因为 Raspbian 的仓库中除了 apt 软件源还蕴含其余代码。# apt 软件源不在仓库的根目录,而在 raspbian 子目录下。 # 备份文件 raspi.listcp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.copy# 批改:vi /etc/apt/sources.list.d/raspi.list# 用 “#” 正文掉原来的全部内容并增加上面内容进去:deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main uideb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui# 完了执行上面的命令更新,实现更新改为中国源:apt-get update3)配置成不必显示屏等就能够用:因为它的默认不开 SSH,所以刚到手时用这个零碎是不可能间接 “盲SSH” 下来的。 ...

July 3, 2021 · 2 min · jiezi

关于raspberry-pi:树莓派aarch64编译静态的ffmpeg-可硬解h264hevc

零碎 openfans aarch64树莓派4Bdocker此办法特点不净化现有的零碎(编译在docker中), 因为各种依赖库会占用掉2G左右空间。 没有洁癖的能够参考作者上一篇文章: aarch64 零碎 编译最新的ffmpeg 并反对硬解h264编译进去的文件是动态的, 也就是无需装置任何依赖就能够运行在aarch64零碎上反对h264_v4l2m2m的GPU硬解输入, CPU占用极低, 解码速度也很快.如果应用同样的参数用CPU解码, 4核CPU均在40%~60%左右, 而v4l2m2m只须要1核的20% 省下很大的CPU用量在640x480的分辨率下, 上传至rtsp直播服务器端, 应用potplayer播放, 延时在200ms左右, 基本上叫同步解决了v4l2m2m2黑屏的BUG, 原git外面间接编译就有这个问题, https://johnvansickle.com/ffmpeg/下载的动态文件也有此BUG编译启动ubuntu洁净的容器docker run -u root -it --privileged -v /dev/:/dev/ ubuntu bash脚本为了保险起见, 须要一个块一个块的贴到控制台去执行 次要问题是局部文件网络无法访问, 须要自行设置代理export https_proxy=http://your.proxy. ip:portapt updateapt install -y ca-certificatesexport DEBIAN_FRONTEND=noninteractivecp /etc/apt/sources.list /etc/apt/sources.list.bakecho -e 'deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse\ndeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse\ndeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse\ndeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse' > /etc/apt/sources.listapt updateapt install -y build-essential cmake meson sudo pkg-config autopoint automake libtoolapt install -y libxvidcore-dev git wgetcd ~git clone --depth 1 --branch n4.4 https://github.com/FFmpeg/FFmpeg.gitcd FFmpegwget https://dl.dropboxusercontent.com/s/eja8vz5jh1felnp/patch.diffgit apply patch.diffcd ~git clone --depth 1 https://github.com/madler/zlib.gitmkdir ~/zlib/buildcd ~/zlib/buildcmake -DBUILD_SHARED_LIBS=OFF ..make -j$(nproc)make installcd ~git clone --depth 1 https://github.com/LuaDist/bzip2.gitmkdir ~/bzip2/buildcd ~/bzip2/buildcmake -DBUILD_SHARED_LIBS=OFF ..make -j$(nproc)make installcd ~git clone --depth 1 https://github.com/kobolabs/liblzma.gitcd liblzma./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~wget https://gmplib.org/download/gmp/gmp-6.2.1.tar.xztar xvf gmp-6.2.1.tar.xzcd gmp-6.2.1./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/LuaDist/libjpeg.gitmkdir ~/libjpeg/buildcd ~/libjpeg/buildcmake -DBUILD_SHARED_LIBS=OFF ..make -j$(nproc)make installcd ~git clone --depth 1 https://github.com/uclouvain/openjpeg.gitmkdir ~/openjpeg/buildcd ~/openjpeg/buildcmake -DBUILD_SHARED_LIBS=OFF ..make -j$(nproc)make installmkdir ~/openjpeg/build1cd ~/openjpeg/build1cmake -DBUILD_SHARED_LIBS=ON ..make -j$(nproc)make installcd ~git clone --depth 1 https://github.com/glennrp/libpng.gitcd libpng./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/mirrorer/giflib.gitcd giflib./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~wget https://www.openssl.org/source/openssl-1.1.1-latest.tar.gztar -zxvf openssl-*-latest.tar.gzcd `ls -d */ | cut -f1 -d'/' | grep openssl`./config --prefix=/usrmake -j$(nproc)make install_sw install_ssldirscd ~git clone --depth 1 https://github.com/GNOME/libxml2.gitcd libxml2./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/raspberrypi/userland ~/userlandcd userland./buildme --aarch64cd ~git clone --depth 1 https://code.videolan.org/videolan/dav1d.gitmkdir ~/dav1d/buildcd ~/dav1d/buildmeson -Ddefault_library=static ..ninja -j$(nproc)ninja installcd ~git clone --depth 1 https://github.com/mstorsjo/fdk-aac.gitcd fdk-aac./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~wget https://johnvansickle.com/ffmpeg/release-source/freetype-2.6.1.tar.xztar xvf freetype-2.6.1.tar.xzcd freetype-2.6.1./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/ultravideo/kvazaar.gitcd kvazaar./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~wget https://johnvansickle.com/ffmpeg/release-source/lame-3.99.5.tar.xztar xvf lame-3.99.5.tar.xzcd lame-3.99.5./configure --build=arm-linux --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/webmproject/libwebp.gitcd libwebp./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/mirror/x264.gitcd x264./configure --enable-shared --enable-static --disable-opencl --enable-picmake -j$(nproc)make install-lib-staticcd ~git clone --depth 1 https://github.com/videolan/x265.gitcd x265/build/aarch64-linuxcmake -DCMAKE_TOOLCHAIN_FILE="crosscompile.cmake" -G "Unix Makefiles" -DBUILD_SHARED_LIBS=OFF -DSTATIC_LINK_CRT:BOOL=ON -DENABLE_CLI:BOOL=OFF ../../sourcemake -j$(nproc)make installcd ~wget https://johnvansickle.com/ffmpeg/release-source/opencore-amr-0.1.3.tar.xztar xvf opencore-amr-0.1.3.tar.xzcd opencore-amr-0.1.3./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/webmproject/libvpx.gitcd libvpx./configure --disable-examples --disable-tools --disable-unit_tests --disable-docs --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/sekrit-twc/zimg.gitcd zimgsh autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~wget https://johnvansickle.com/ffmpeg/release-source/frei0r-plugins-1.4.tar.xztar xvf frei0r-plugins-1.4.tar.xzmkdir ~/frei0r-plugins-1.4/buildcd ~/frei0r-plugins-1.4/buildcmake -DBUILD_SHARED_LIBS=OFF .../configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~git clone --depth 1 https://github.com/xiph/opus.gitcd opus./autogen.sh./configure --enable-shared --enable-staticmake -j$(nproc)make installcd ~cd FFmpeg./configure \--extra-cflags="-I/usr/local/include" \--extra-ldflags="-L/usr/local/lib -L/usr/lib/aarch64-linux-gnu/" \--pkg-config-flags="--static" \--extra-libs="-lpthread -lm -lz -lx265" \--extra-ldexeflags="-static" \--enable-neon \--enable-hwaccels \--enable-version3 \--enable-gpl \--disable-shared \--enable-static \--disable-debug \--disable-ffplay \--disable-indev=sndio \--disable-outdev=sndio \--enable-frei0r \--enable-gmp \--enable-gray \--enable-libfreetype \--enable-libmp3lame \--enable-libopencore-amrnb \--enable-libopencore-amrwb \--enable-libopus \--enable-libopenjpeg \--enable-libkvazaar \--enable-libvpx \--enable-libwebp \--enable-libx264 \--enable-libxml2 \--enable-libdav1d \--enable-libxvid \--enable-nonfree \--enable-libzimg \--enable-libxml2 \--enable-openssl \--enable-omx \--enable-omx-rpi \--enable-hardcoded-tablesmake -j$(nproc)要害参数没有这2个参数是无奈编译出动态执行文件的 ...

June 6, 2021 · 2 min · jiezi

关于raspberry-pi:树莓派aarch64-系统安装opencv-并使用硬件加速

因为网络起因, 在国内编译Opencv十分的艰巨openfans 提供了opencv-4.5.1-org.pifan_20210116-1_arm64.deb, 能够间接下载, 百度盘门路在: /树莓派爱好者基地64位零碎2.0正式版/Debian-Pi-Aarch64-2.0-Release/Extra/OpenCV/筹备工作mkdir /root/opencv/cd /root/opencv/下载并解压下载源代码wget https://github.com/opencv/opencv/archive/refs/tags/4.5.2.zip -O opencv-4.5.2.zipwget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.2.zip -O opencv_contrib-4.5.2.zipunzip opencv-4.5.2.zipunzip opencv_contrib-4.5.2.zip下载必要文件因为这地址无法访问, 会卡在下载环节 face_landmark_model.datwget https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat -O face_landmark_model.datvim opencv_contrib-4.5.2/modules/face/CMakeLists.txt将https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/改为file:///root/opencv/ ippicv_2020_lnx_intel64_20191018_general.tgz这个树莓派无需下载/装置wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz -O ippicv_2020_lnx_intel64_20191018_general.tgzvim opencv-4.5.2/3rdparty/ippicv/ippicv.cmake将"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"改为file:///root/opencv/ 装置依赖apt -y remove x264 libx264-dev## Install dependenciesapt -y install build-essential checkinstall cmake pkg-config yasmapt -y install libjpeg8-dev libjasper-dev libpng12-devapt -y install libtiff5-devapt -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-devapt -y install libxine2-dev libv4l-devcd /usr/include/linuxln -s -f ../libv4l1-videodev.h videodev.hcd $cwdapt -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-devapt -y install libgtk+-3.0-dev libgtk2.0-dev libtbb-devapt -y install libatlas-base-devapt -y install libmp3lame-dev libtheora-devapt -y install libvorbis-dev libxvidcore-dev libx264-devapt -y install libopencore-amrnb-dev libopencore-amrwb-devapt -y install libavresample-devapt -y install x264 v4l-utils# Optional dependenciesapt -y install libprotobuf-dev protobuf-compilerapt -y install libgoogle-glog-dev libgflags-devapt -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen创立编译目录mkdir -p /root/opencv/opencv-4.5.2/build/cd /root/opencv/opencv-4.5.2/build/配置cmake \-D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/ \-D BUILD_SHARED_LIBS=ON \-D OPENCV_EXTRA_MODULES_PATH=/root/opencv/opencv_contrib-4.5.2/modules \-D BUILD_DOCS=OFF \-D BUILD_EXAMPLES=OFF \-D BUILD_TESTS=OFF \-D BUILD_PERF_TESTS=OFF \-D BUILD_opencv_java=NO \-D BUILD_opencv_python=NO \-D BUILD_opencv_python2=NO \-D BUILD_opencv_python3=NO \-D INSTALL_C_EXAMPLES=ON \-D INSTALL_PYTHON_EXAMPLES=ON \-D WITH_TBB=ON \-D WITH_V4L=ON \-D WITH_QT=OFF \-D WITH_OPENGL=OFF \-D ENABLE_NEON=ON \-D ENABLE_VFPV3=ON \-D WITH_JASPER=OFF \-D OPENCV_ENABLE_NONFREE=ON \-D CMAKE_SHARED_LINKER_FLAGS='-latomic' \-D OPENCV_GENERATE_PKGCONFIG=ON ..编译&装置make -j$(nproc)make install

May 30, 2021 · 1 min · jiezi

关于raspberry-pi:树莓派x64系统-编译最新的ffmpeg

零碎版本: openfans aarch64参考: https://gist.github.com/wildr...装置依赖惯例依赖apt -y install \ autoconf \ automake \ build-essential \ cmake \ doxygen \ git \ meson \ nasm \ pkg-config \ python3-dev \ python3-pip \ texinfo \ wget \ yasm \ zlib1g-dev 音频/视频/图片库apt -y install \ graphviz \ imagemagick \ libaom-dev \ libssl-dev \ libdav1d-dev \ libfdk-aac-dev \ libasound2-dev \ libass-dev \ libavcodec-dev \ libavdevice-dev \ libavfilter-dev \ libavformat-dev \ libavutil-dev \ libfreetype6-dev \ libgmp-dev \ libmp3lame-dev \ libopencore-amrnb-dev \ libopencore-amrwb-dev \ libopus-dev \ librtmp-dev \ libsdl2-dev \ libsdl2-image-dev \ libsdl2-mixer-dev \ libsdl2-net-dev \ libsdl2-ttf-dev \ libsnappy-dev \ libsoxr-dev \ libssh-dev \ libssl-dev \ libtool \ libv4l-dev \ libva-dev \ libvdpau-dev \ libvo-amrwbenc-dev \ libvorbis-dev \ libwebp-dev \ libx264-dev \ libx265-dev \ libxcb-shape0-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ libxcb1-dev \ libxml2-dev \ lzma-dev 苹果用的HEVCgit clone --depth 1 https://github.com/ultravideo/kvazaar.git ~/ffmpeg-libraries/kvazaar \ && cd ~/ffmpeg-libraries/kvazaar \ && ./autogen.sh \ && ./configure --prefix=/usr/ \ && make -j$(nproc) \ && sudo make installVP8 and VP9git clone --depth 1 https://github.com/webmproject/libvpx.git ~/ffmpeg-libraries/libvpx \ && cd ~/ffmpeg-libraries/libvpx \ && ./configure --prefix=/usr/ --disable-examples --disable-tools --disable-unit_tests --disable-docs \ && make -j$(nproc) \ && sudo make installzimggit clone --depth 1 https://github.com/sekrit-twc/zimg.git ~/ffmpeg-libraries/zimg \ && cd ~/ffmpeg-libraries/zimg \ && sh autogen.sh \ && ./configure --prefix=/usr/ \ && make -j$(nproc) \ && sudo make installAP1git clone --depth 1 https://aomedia.googlesource.com/aom ~/ffmpeg-libraries/aom \ && mkdir ~/ffmpeg-libraries/aom/aom_build \ && cd ~/ffmpeg-libraries/aom/aom_build \ && cmake -G "Unix Makefiles" AOM_SRC -DCMAKE_INSTALL_PREFIX=/usr/ -DENABLE_NASM=on -DPYTHON_EXECUTABLE="$(which python3)" -DCMAKE_C_FLAGS="-mfpu=vfp -mfloat-abi=hard" .. \ && sed -i 's/ENABLE_NEON:BOOL=ON/ENABLE_NEON:BOOL=OFF/' CMakeCache.txt \ && make -j$(nproc) \ && sudo make installAAC不须要装置 aarch64零碎中有libfdk-acc-dev ...

May 30, 2021 · 2 min · jiezi

关于raspberry-pi:树莓派安装opencv4

尽量应用最新的树莓派Raspbian镜像,执行上面的命令更新零碎库: sudo apt updatesudo apt install -y libatlas-base-dev libjasper-dev libqtgui4 python3-pyqt5 libqt4-test libhdf5-devpip3装置opencv4,只是特定几个版本的opencv能够装置 sudo pip3 install opencv-contrib-python==4.1.0.25# 或者sudo pip3 install opencv-contrib-python==4.4.0.46测试 python3 -c "import cv2;print(cv2.__version__)"

May 18, 2021 · 1 min · jiezi

关于raspberry-pi:x64树莓派系统使用CSI摄像头

如果是原生的32位零碎,不须要看此文章 OpenFans的x64零碎没有 raspistill,raspivid,所以无奈通过此命令来操作摄像头Python的操作类PiCamera须要libmmal.so, 然而此so没有x64的版本,所以无奈应用PiCamera 报错如下OSError: libmmal.so: cannot open shared object file: No such file or directory然而能够应用opencv/ffmpeg间接操作/dev/video0来失去视频/图片 设施树莓派 4BCSI摄像头 1.3 价值13元左右OpenFans的x64的树莓派零碎步骤插入CSI的摄像头蓝色那边在USB插口侧 批改配置因为此零碎没有raspi-config ,rpi-update等,所以须要本人批改/boot/config.txt来减少摄像头 start_x=1 # essentialgpu_mem=128 # at least, or maybe more if you wishdisable_camera_led=1 # optional, if you don't want the led to glow读取bcm2835-v4l2模块 modprobe bcm2835-v4l2配置开机主动加载echo 'bcm2835-v4l2' >> /etc/modules重启零碎重启后,会呈现一个/dev/video0的设施,执行下文命令不会报错即装置胜利 ls /dev/video0多路拜访此时,摄像头只能被一个过程拜访,如果心愿多过程同时拜访,能够执行以下步骤。没有此需要则跳过 参考起源:https://gist.github.com/brute...https://raspberrypi.stackexch...1. 装置回路驱动apt install v4l2loopback-dkms或者编译装置 apt install raspberrypi-kernel-headersgit clone https://github.com/umlaeute/v4l2loopbackcd v4l2loopbackmakesudo make install2. 创立/dev/video1此设施即多路拜访的设施 modprobe v4l2loopback video_nr=1配置开机主动创立echo 'options v4l2loopback video_nr=1' > /etc/modprobe.d/v4l2loopback.conf3. 流转向以下操作任意一个即可 ...

May 17, 2021 · 1 min · jiezi

关于raspberry-pi:Raspberry-Pi-安装-go-后提示错误-Exec-format-error

提醒的错误信息如下: -bash: /usr/local/go/bin/go: cannot execute binary file: Exec format error 问题和解决 呈现下面问题的起因可能是你下载了不必架构的版本。 Raspberry Pi 的 CPU架构为 ARM,如果你下载应用了 X86 架构的话,你的装置是没有方法运行的。 进入 go 的下载界面:https://golang.org/dl 而后选... ARM 架构版本。 而后运行上面的命令进行装置。 rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.4.linux-armv6l.tar.gz 在装置实现后,须要参考官网的文档设置门路。 能够编辑 $HOME/.profile 或 /etc/profile 文件,在这个文件的最初增加上面这句话: export PATH=$PATH:/usr/local/go/bin 而后再执行 source /etc/profile 命令,简略点,你也能够退出以后会话后从新登录。 遇到的坑 如果你的 Raspberry Pi 版本不是十分新,你须要确定下 CPU 的版本。 运行命令:cat /proc/cpuinfo 能够看到以后零碎的 CPU 版本,在当初这个版本的状况下,你须要下载的是 ARMv6 的编译包。 如果你下载并且应用了 ARMv8 的编译包的话,你同样也会遇到下面的谬误。 起因就是编辑的文件不反对以后的 CPU。 查看装置状况 当实现下面的配置后,运行命令: go version 如果你能看到显示的 go 的 version 版本的话,那么就示意 go 的运行环境曾经配置好了。 ...

May 16, 2021 · 1 min · jiezi

关于raspberry-pi:Python使用树莓派无源蜂鸣器播放铁血丹心

条件树莓派4B无源蜂鸣器3V: 3毛钱一个杜邦线: 2根语言: Python 3接线 蜂鸣器正极: 作者应用的是GPIO 1 也就是第28个接口,对于GPIO口没有要求,只有GPIO口都能够 GPIO 引脚图见: https://pinout.xyz/蜂鸣器负极: 任意GND接口 无源蜂鸣器发出声音想让无源蜂鸣器发出声音,其实就是继续输入PWM脉冲 import timeimport RPi.GPIO as GPIOGPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)GPIO.setup(1, GPIO.OUT) # 设置GPIO 1为输入pwm = GPIO.PWM(1, 4978) # 设置GPIO 1为PWM输入, 脉冲为4978Hzpwm.start(0)pwm.ChangeDutyCycle(50) # 继续收回脉冲电平time.sleep(0.5) # 继续0.5s声音pwm.stop()GPIO.cleanup()下面GPIO.PWM(1, 4978)就是GPIO 1的输入脉冲设置为4978Hz,即1秒有4978个输入周期pwm.ChangeDutyCycle(50) 不能为100,因为100等于没有振荡电流,设置为50即可音符对照表援用: https://shumeipai.nxez.com/20...其实上例中4978对应的音符是D8#,其它音符能够查看下图的 音符定义 频率 音名 简谱 开始编写歌曲所以,只有晓得了简谱,比照上表,就能够调用不同的PWM脉冲来收回不同的声音。 如果你要实现和弦,那就须要多个蜂鸣器铁血丹心的简谱 三个文件txdx.py # 简谱tone.py # 音符表main.pytxdx.py# 铁血丹心的简谱# 能够为2种格局# [音符名(string), 持续时间(s)]# [频率(int), 持续时间(s)]txdx_sheet = [ # 1 ['NOTE_A4', 1.5], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_A4', 1], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_E4', 0.5], # 3 # 2 ['NOTE_G4', 1], # 5 ['NOTE_D4', 3], # 2 # 3 ['NOTE_C4', 1.5], # 1 ['NOTE_A3', 0.5], # .6 ['NOTE_D4', 0.5], # 2 ['NOTE_E4', 0.5], # 3 ['NOTE_G4', 0.5], # 5 ['NOTE_F4', 0.5], # 4 # 4 ['NOTE_E4', 3], # 3 ['NOTE_E4', 0.5], # 3 ['NOTE_G4', 0.5], # 5 # 5 ['NOTE_A4', 1.5], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_A4', 1], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_E4', 0.5], # 5 # 6 ['NOTE_G4', 1], # 5 ['NOTE_D4', 3], # 2 # 7 ['NOTE_C4', 1.5], # 1 ['NOTE_A3', 0.5], # .6 ['NOTE_D4', 0.5], # 2 ['NOTE_E4', 0.5], # 3 ['NOTE_G3', 0.5], # .5 ['NOTE_B3', 0.5], # .7 # 8 ['NOTE_A3', 4], # .6 [0, 1], # 0 ['NOTE_E4', 0.5], # 3 ['NOTE_D4', 0.5], # 2 ['NOTE_C4', 1.5], # 1 ['NOTE_B3', 0.5], # .7 # ['NOTE_A3', 1.5], # .6 ['NOTE_E3', 0.5], # .3 ['NOTE_A3', 2], # .6 # ['NOTE_A3', 1], # .6 ['NOTE_A4', 0.5], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_E4', 1], # 3 ['NOTE_G4', 0.5], # 5 ['NOTE_D4', 0.5], # 2 ['NOTE_E4', 3], # 3 ['NOTE_E4', 0.5], # 3 ['NOTE_D4', 0.5], # 2 ['NOTE_C4', 1.5], # 1 ['NOTE_B3', 0.5], # .7 ['NOTE_A3', 1.5], # .6 ['NOTE_E3', 0.5], # .6 ['NOTE_A3', 2], # .6 [0, 1], # 0 ['NOTE_D4', 0.5], # 2 ['NOTE_C4', 0.5], # 1 ['NOTE_A3', 1], # .6 ['NOTE_C4', 0.5], # 1 ['NOTE_D4', 0.5], # 1 ['NOTE_E4', 3], # 3*/ ['NOTE_E4', 1], # 3 逐草四方 ['NOTE_A4', 1.5], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_A4', 1], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_E4', 0.5], # 3 ['NOTE_G4', 1], # 5 ['NOTE_D4', 3], # 2 ['NOTE_C4', 1.5], # 1 ['NOTE_A3', 0.5], # .6 ['NOTE_D4', 0.5], # 2 ['NOTE_E4', 0.5], # 3 ['NOTE_G4', 0.5], # 5 ['NOTE_FS4', 0.5], # #4 ['NOTE_E4', 3], # 3 ['NOTE_E4', 0.5], # 3 ['NOTE_G4', 0.5], # 5 ['NOTE_A4', 1.5], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_A4', 1.0], # 6 ['NOTE_G4', 0.5], # 5 ['NOTE_E4', 0.5], # 3 ['NOTE_G4', 1.0], # 5 ['NOTE_D4', 3], # 2 ['NOTE_C4', 1.5], # 1 ['NOTE_A3', 0.5], # .6 ['NOTE_D4', 0.5], # 2 ['NOTE_E4', 0.5], # 3 ['NOTE_G3', 0.5], # .5 ['NOTE_B3', 0.5], # .7 ['NOTE_A3', 3], # .6 [0, 1], # 0 ['NOTE_E4', 0.5], # 3 应知爱意似 ['NOTE_D4', 0.5], # 2 ['NOTE_C4', 1.0], # 1 ['NOTE_C4', 0.5], # 1 ['NOTE_B3', 0.5], # .7 ['NOTE_A3', 1.5], # .6 ['NOTE_E3', 0.5], # .3 ['NOTE_A3', 2.0], # .6 [0, 1], # 0 ['NOTE_A3', 0.5], # .6 ['NOTE_G3', 0.5], # .5 ['NOTE_E3', 1.0], # .3 ['NOTE_G3', 0.5], # .5 ['NOTE_D3', 0.5], # .2 ['NOTE_E3', 3.0], # .3 [0, 1], # 0 ['NOTE_E4', 0.5], # 3 身经百劫也 ['NOTE_D4', 0.5], # 2 ['NOTE_C4', 1.0], # 1 ['NOTE_C4', 0.5], # 1 ['NOTE_B3', 0.5], # .7 ['NOTE_A3', 1.5], # .6 ['NOTE_E4', 0.5], # 3 ['NOTE_D4', 2.0], # 2 [0, 1], # 0 ['NOTE_D4', 0.5], # 2 ['NOTE_C4', 0.5], # 1 ['NOTE_A3', 1.0], # .6 ['NOTE_B3', 0.5], # .7 ['NOTE_G3', 0.5], # .5 ['NOTE_A3', 3.0], # .6]tone.py 文件TONE = { 'NOTE_B0' : 31, 'NOTE_C1' : 33, 'NOTE_CS1': 35, 'NOTE_D1' : 37, 'NOTE_DS1': 39, 'NOTE_E1' : 41, 'NOTE_F1' : 44, 'NOTE_FS1': 46, 'NOTE_G1' : 49, 'NOTE_GS1': 52, 'NOTE_A1' : 55, 'NOTE_AS1': 58, 'NOTE_B1' : 62, 'NOTE_C2' : 65, 'NOTE_CS2': 69, 'NOTE_D2' : 73, 'NOTE_DS2': 78, 'NOTE_E2' : 82, 'NOTE_F2' : 87, 'NOTE_FS2': 93, 'NOTE_G2' : 98, 'NOTE_GS2': 104, 'NOTE_A2' : 110, 'NOTE_AS2': 117, 'NOTE_B2' : 123, 'NOTE_C3' : 131, 'NOTE_CS3': 139, 'NOTE_D3' : 147, 'NOTE_DS3': 156, 'NOTE_E3' : 165, 'NOTE_F3' : 175, 'NOTE_FS3': 185, 'NOTE_G3' : 196, 'NOTE_GS3': 208, 'NOTE_A3' : 220, 'NOTE_AS3': 233, 'NOTE_B3' : 247, 'NOTE_C4' : 262, 'NOTE_CS4': 277, 'NOTE_D4' : 294, 'NOTE_DS4': 311, 'NOTE_E4' : 330, 'NOTE_F4' : 349, 'NOTE_FS4': 370, 'NOTE_G4' : 392, 'NOTE_GS4': 415, 'NOTE_A4' : 440, 'NOTE_AS4': 466, 'NOTE_B4' : 494, 'NOTE_C5' : 523, 'NOTE_CS5': 554, 'NOTE_D5' : 587, 'NOTE_DS5': 622, 'NOTE_E5' : 659, 'NOTE_F5' : 698, 'NOTE_FS5': 740, 'NOTE_G5' : 784, 'NOTE_GS5': 831, 'NOTE_A5' : 880, 'NOTE_AS5': 932, 'NOTE_B5' : 988, 'NOTE_C6' : 1047, 'NOTE_CS6': 1109, 'NOTE_D6' : 1175, 'NOTE_DS6': 1245, 'NOTE_E6' : 1319, 'NOTE_F6' : 1397, 'NOTE_FS6': 1480, 'NOTE_G6' : 1568, 'NOTE_GS6': 1661, 'NOTE_A6' : 1760, 'NOTE_AS6': 1865, 'NOTE_B6' : 1976, 'NOTE_C7' : 2093, 'NOTE_CS7': 2217, 'NOTE_D7' : 2349, 'NOTE_DS7': 2489, 'NOTE_E7' : 2637, 'NOTE_F7' : 2794, 'NOTE_FS7': 2960, 'NOTE_G7' : 3136, 'NOTE_GS7': 3322, 'NOTE_A7' : 3520, 'NOTE_AS7': 3729, 'NOTE_B7' : 3951, 'NOTE_C8' : 4186, 'NOTE_CS8': 4435, 'NOTE_D8' : 4699, 'NOTE_DS8': 4978,}main.pyimport timeimport RPi.GPIO as GPIOfrom tone import TONEGPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)def beep(channel: int, freq: int, duration: float, *, rising_tone: float = 1): """ 播放一个音符 :param channel: GPIO的数字号,须要和下面的GPIO.setmode(GPIO.BCM)对应 :param freq: 频率 :param duration: 播放时长 :param rising_tone: 升降调 0.3 ~ 1.0 ~ 3.0 :return: """ if freq <= 0: time.sleep(duration) return pwm = GPIO.PWM(channel, freq * rising_tone) # 输入该频率的电平 try: pwm.start(0) pwm.ChangeDutyCycle(50) if duration > 0: time.sleep(duration) # 播放时长 finally: pwm.stop()def play(channel: int, sheet: list): """ 播放简谱 简谱能够为如下格局(参照上文的txdx.py): - [音符名(string), 持续时间(s)] - [频率(int), 持续时间(s)] :param channel: GPIO的数字号,须要和下面的GPIO.setmode(GPIO.BCM)对应 :param sheet: 简谱 :return: """ GPIO.setup(channel, GPIO.OUT) for m in sheet: beep(channel, TONE[m[0]] if m[0] in TONE else int(m[0] or 0), m[1])try: from txdx import txdx_sheet play(1, txdx_sheet)finally: GPIO.cleanup()

May 9, 2021 · 5 min · jiezi

关于raspberry-pi:给树莓派配置rustanalyzer

本文原文 打算用 Rust 给树莓派的风扇写个温控的小程序,达到肯定的阈值之后才启动风扇。不过在搭建环境的时候遇到了点问题(次要是 rust-analyzer,以下简称 ra),在这里分享一下怎么在树莓派上(armv7)应用 ra。(我是通过 VSCode 的 SSH Remote 连贯上树莓派进行开发的。) 编译首先咱们要解决编译的问题,因为官网的 release 上是没有 arm 相干的 pre-built,因而咱们须要拉去它的代码库而后本人编译。记得要先把 rust 的工具链(最新)以及 NodeJS(我用的 14)和 npm 装置好。 git clone https://github.com/rust-analyzer/rust-analyzer.gitcd rust-analyzercargo xtask build --server而后咱们就能够在~/.cargo/bin下失去rust-analyzer。 批改插件编译好了之后会发现,VSCode 的 ra 插件还是提醒谬误,就是 Unfortunately we don't ship binaries for your platform yet.[巴拉巴拉,以下疏忽]咱们要对插件代码进行一点批改,找到~/.vscode-server/extensions/matklad.rust-analyzer-*/out/src/main.js,*为版本号。 而后找到这么一坨代码 咱们须要筹备三个变量 process.archprocess.platformrust-toolchain前两个获取形式是 nodeprocess.arch // 我的后果是armprocess.platform // 我的后果是linux第三个变量的获取形式是 rustup toolchain list找到以后正在应用的工具链,比方我的输入是 stable-armv7-unknown-linux-gnueabihf (default)那么我的rust-toolchain变量就应该是armv7-unknown-linux-gnueabihf。 而后咱们批改platforms,减少一个键值对, "{process.arch} {process.platform}": "{rust-toolchain}"以我的变量为例,后果就是 "arm linux": "armv7-unknown-linux-gnueabihf"批改的后的代码如下 复制 ra 到插件目录把 ra 重命名成rust-analyzer-{rust-toolchain},复制到~/.vscode-server/data/User/globalStorage/matklad.rust-analyzer下。 ...

April 24, 2021 · 1 min · jiezi

关于raspberry-pi:使用docker-build-kit构建树莓派上可用的Docker镜像

Docker装置curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.shsudo usermod -aG ${user_name}build-kit是什么参考build ARM based Docker Images简略来说就是扩大docker build的一个实验性的性能以bind为案例进行构建docker-bind我的项目是一个开源的自定义DNS部署服务,然而并没有提供基于linux/aarch64架构的可用镜像,因而须要本人应用buildx命令执行构建操作 在树莓派零碎中,执行uname -a来查看本人的指标架构 linux/aarch64linux/amd64linux/arm64linux/arm/v7....# 在树莓派零碎中执行如下命令git clone https://github.com/sameersbn/docker-bind.gitcd docker-bind# 批改Dockerfile内容,留神!!此项设置与docker-bind无关,与build-kit的应用无关,仅做演示用echo 'FROM ubuntu:focal-20200423 AS add-apt-repositoriesCOPY jcameron-key.asc jcameron-key.ascRUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y gnupg \ && apt-get install -y curl \ && apt-key adv --fetch-keys https://www.webmin.com/jcameron-key.asc \ && echo "deb http://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.listFROM ubuntu:focal-20200423LABEL maintainer="sameer@damagehead.com"ENV BIND_USER=bind \ BIND_VERSION=9.16.1 \ WEBMIN_VERSION=1.970 \ DATA_DIR=/dataRUN apt-get update \ && apt-get install -y curlCOPY --from=add-apt-repositories /etc/apt/trusted.gpg /etc/apt/trusted.gpgCOPY --from=add-apt-repositories /etc/apt/sources.list /etc/apt/sources.listRUN rm -rf /etc/apt/apt.conf.d/docker-gzip-indexes \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y \ bind9=1:${BIND_VERSION}* bind9-host=1:${BIND_VERSION}* dnsutils \ webmin=${WEBMIN_VERSION}* \ && rm -rf /var/lib/apt/lists/*COPY entrypoint.sh /sbin/entrypoint.shRUN chmod 755 /sbin/entrypoint.shEXPOSE 53/udp 53/tcp 10000/tcpENTRYPOINT ["/sbin/entrypoint.sh"]CMD ["/usr/sbin/named"]' > Dockerfile# 登录到本人的docker仓库# 本人应用的是阿里云的镜像仓库,也能够应用dockerhub官网仓库docker login --username=${user_name} registry.cn-hangzhou.aliyuncs.comdocker buildx build --platform linux/aarch64 -t registry.cn-hangzhou.aliyuncs.com/docker-image-lee/bind:aarch64 --no-cache --push .# 如果是在Mac或Windows上执行构建的话,须要首先执行下述命令docker buildx create --usepush实现后,就能够在树莓派上拿来用了~参考build ARM based Docker Imagesdocker buildx buildBuild Docker Image for Raspberry Pi

February 24, 2021 · 1 min · jiezi

关于raspberry-pi:树莓派更换软件源的方法

国内用户更新树莓派以及软件时时往往遇到软件更新慢的问题,通过更换树莓派软件源为国内镜像网站能够大大放慢更新速度,办法如下。 > 备份初始文件关上树莓派终端,跳转目录到 cd /etc/apt将文件备份 cp sources.list sources.list.bakcp sources.list.d/raspi.list sources.list.d/raspi.list.bak> 更改现有文件笔者这里采纳清华大学的镜像网站,应用vim文本编辑器打开文档 sudo vim sources.list更改为以下代码 deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contribdeb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib同理关上另外一个文档 sudo vim sources.list.d/raspi.list更改为以下代码 deb deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui也可采纳其余镜像网站,详情可见树莓派镜像网站列表

January 29, 2021 · 1 min · jiezi

关于raspberry-pi:树莓派初装后需要的操作

关上ssh,连贯WiFi在界面就能够操作(装的带界面的零碎) 启用root用户1.设置root用户明码sudo passwd root2.启用root用户sudo passwd -u root或 sudo passwd --unlock root3.设置ssh容许登录sudo sed -i "s/^#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config 4.重启ssh服务sudo systemctl restart ssh 5.为root用户利用于以后用户雷同的bash配置sudo cp ~/.bashrc /root/.bashrc装置近程拜访sudo apt-get updatesudo apt-get install xrdp

September 19, 2020 · 1 min · jiezi

关于raspberry-pi:树莓派安装dukowiki

1. sudo apt-get install dokuwiki 将/var/www/html权限设置为777     chmod -R 777 /var/www/html关上浏览器,输出 ip/index.php在网页中,点击run the installer依据网页向导装置遇到问题,可拜访https://www.dokuwiki.org/install:debian7. 如果网页打不开,可能须要装置apache和php a. sudo apt-get install apache2 b. sudo apt-get install php5-cgi php5 援用:dokuwiki在debian下的装置

September 17, 2020 · 1 min · jiezi

关于raspberry-pi:树莓派简洁风格桌面fluxbox

近期因工作须要,在咸鱼上弄了两块树莓派,一块装置zabbix proxy,发配到楼层弱电间,长期“吃灰”,另一块就置于办公室墙面,接显示器,用于长期展现zabbix的监控界面。 1. 零碎装置树莓派应用官网的NOOBS版本,下载镜像后,间接刷入TF卡,启动零碎,进入零碎,桌面零碎为LXDE,清爽简洁,更换国内源: # 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpideb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi详见 https://mirror.tuna.tsinghua.edu.cn/help/raspbian/ 阐明 更新apt-get update之后,就能够不便装置软件,欢快游玩。 2. 更换fluxbox零碎运行一段时间,将任务栏置于左侧,发现工夫显示居然是横排,显示不全(任务栏宽度设为24px),抉择调整、全网搜寻之类一番操作,全无成果(LXPanel还须要改良),决定弃坑。 Linux桌面有多种抉择,但因为树莓派弱鸡的性能,下面还要用于zabbix界面,运行浏览器,可供选择的余地并不大,零碎默认的LXDE曾经是轻量级,可抉择的只能WM和box系列,如FVWM、openbox,本着少折腾的准则,放弃fvwm,装置fluxbox apt-get install fluxbox#之后创立~/.xinitrc文件,增加一行exec startfluxbox装置实现后,连忙退出桌面,筹备进入零碎,碰到“简洁”的登录界面,齐全没有抉择session的选项!无奈进入fluxbox. 通过一番搜寻,须要编辑/etc/lightdm/lightdm.conf文件中pi-greeter [Seat:*]...greeter-session=lightdm-gtk-greeter更换后就可登录时在顶栏抉择不同的session,如fluxbox。 3. 定制格调fluxbox具备较高的定制抉择,为省时,倡议先抉择“style”,从不同的格调中抉择贴近本人喜爱的,之后再开始置信定制 菜单默认的菜单较简略,零碎自带fluxbox-generate_menu,倡议应用MenuMaker生成。mmaker -f FluxBox背景背景能够在style文件中配置,或应用feh指定配置任务栏须要在~/.fluxbox/init中配置树莓派作为轻量级利用承载设施,官网的零碎整体还是很好用的,对于有定制需要或者想进一步升高零碎耗费,能够尝试WM,举荐应用fluxbox在定制与不便之间,有着较好的均衡,更多的定制,需前期再具体介绍。 参考: archlinux-fluxbox)

September 15, 2020 · 1 min · jiezi

树莓派-Cannot-open-access-to-console-The-root-account-is-locked

转载请注明文章出处:树莓派 Cannot open access to console. The root account is locked前序文章: 组装树莓派4B及安装系统树莓派重置密码树莓派设置远程访问树莓派设置samba文件共享树莓派安装nextcloud搭建私有云昨晚把两块硬盘组成可扩容的lvm盘,挂载信息写入到了/etc/fstab中。今天发现机器莫名其妙的重启过,更糟糕的是无法进入系统,屏幕上出现如下错误: you are in emergency mode. after logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or ^d to try again to boot into default mode.cannot open access to console, the root account is locked.see sulogin(8) man page for more details.press enter to continue.<img src="https://user-gold-cdn.xitu.io...;h=768&f=jpeg&s=115082" alt="raspberry pi emergency mode" width="665" height="499" class="aligncenter size-large wp-image-5905" /> ...

November 3, 2019 · 1 min · jiezi

树莓派安装nextcloud搭建私有云

转载请注明文章出处:树莓派安装nextcloud搭建私有云前序文章: 组装树莓派4B及安装系统树莓派重置密码树莓派设置远程访问树莓派设置samba文件共享这是折腾树莓派的最后一篇文章,也是买树莓派的最大目的:搭建自己的私有云,随时同步和访问各种设备上的数据。 nextcloud简介nextcloud前身是大名鼎鼎的owncloud,两者均是开源的网络硬盘系统。nextcloud不仅可以搭建私有云存储和同步数据,也提供联系人、日程管理功能,web端还提供私密的语音视频通话功能。nextcloud致力于数据安全,云端的数据均可选择加密,并遵循安全行业最佳实践。客户端支持windows、macos、linux三大pc平台,以及安卓ios两大移动平台,完全足够家庭或中小型团队协作使用。 部署和设置nextcloudnextcloud程序由php语言编写,因此部署需要具备php运行环境以及web中间件。因其支持平台众多,官方文档略显繁琐,故本文给出树莓派上用nginx、mariadb、redis搭建nextcloud的详细步骤。 从官网下载部署程序;更新系统和必备软件:sudo apt update && sudo apt upgrade && sudo apt install -y libreoffice ffmpeg;安装nginx:sudo apt install -y nginx;安装redis:sudo apt install -y redis;安装mariadb:sudo apt install mariadb-server;安装php及推荐模块:sudo apt install -y php7.3 php7.3-fpm php7.3-curl php7.3-gd php7.3-dom php7.3-iconv php7.3-openssl php-redis php-mysql php7.3-zip php7.3-bz2 php7.3-intl php7.3-imagick;解压部署程序:unzip nextcloud-xxxx.zip;将nextcloud文件移动到网站根目录:sudo mv nextcloud-xxx /var/www/html/nextcloud;创建数据目录,更改目录权限:mkdir /var/www/html/nextcloud/data && sudo chown -R www-data:www-data /var/www/html/nextcloud;配置php:打开/etc/php/7.3/fpm/php.ini文件,做如下更改: expose_php改成offdate.timezone 一行删掉前面的;号,值改成Asia/Shanghai删掉opcache.enable=1,opcache.validate_timestamps=1,opcache.revalidate_freq=2这三行前面的;号,将opcache.revalidate_freq的值改成30;配置fpm:打开/etc/php/7.3/fpm/pool.d/www.conf文件,移除clear_env=no,env[开头那几行前面的;号(即388,401-405这几行前面的分号);设置mariadb管理员密码: mysqladmin -uroot password '你的密码';创建nextcloud数据库:mysql -uroot -p'你的密码' -e 'create user nextcloud@"%" identified by "nextcloud数据库密码"; create database nextcloud default charset=utf8mb4; grant all privileges on nextcloud.* to nextcloud@"%"; flush privileges;';配置nginx:在/etc/nginx/sites-enabled目录下,创建一个nextcloud文件,其内容如下(注意,本配置中禁用了https): ...

November 3, 2019 · 3 min · jiezi

树莓派设置samba文件共享

转载请注明出处:树莓派设置samba文件共享前序文章: 组装树莓派4B及安装系统树莓派重置密码树莓派设置远程访问这是折腾树莓派的第四篇文章,主要讲解如何设置samba文件共享,当做家庭nas。 samba介绍samba是unix/linux系统与windows操作系统进行文件和打印机共享的网络协议。因其设置简单使用方便,在内网环境中十分受欢迎,可以认为是内网版的ftp。 windows、macos以及许多桌面版的linux系统直接继承samba客户端,可方便的添加和卸载samba网盘。 树莓派安装和设置samba本节介绍在树莓派上安装和设置samba,其操作步骤为: 1. 安装samba软件安装命令: sudo apt update && sudo apt upgrade && sudo apt-get install -y samba 2. 设置sambasamba的配置文件是/etc/samba/smb.conf,其配置主要包含四部分: global:samba软件的全局设置;homes:系统用户主目录共享设置,默认用户才能访问自己的主目录;printers:共享打印机设置用户自定义的共享目录设置前三部分可根据自己的需求更改,也可保持默认(如有不懂请man 5 smb.conf查看字段含义)。下文针对公共共享目录和自定义私有目录两方面解释自定义共享目录操作的步骤。 公共共享目录。在/etc/samba/smb.conf末尾增加类似如下配置(#号开头部分是说明): `# 配置段名称,可以随意取[public] 共享段备注comment = public folder 共享文件夹路径,必填path = /public 允许可以写入read only = no 允许匿名访问public = yes 是否出现在网络发现中browseable = yes` 自定义共享目录,增加配置如下: `[tlanyan]comment = tlanyan windows filepath = /mnt/tlanyan 不出现在网络发现中browseable = no 禁止匿名访问public = nowritable = yes 只允许pi用户访问valid users = pi` 配置完成后,sudo systemctl restart smbd重启samba服务。 ...

November 3, 2019 · 1 min · jiezi

树莓派设置远程访问

转载请注明文章出处:树莓派设置远程访问接上文 组装树莓派4B及安装系统,本文是设置在外远程访问家里树莓派的详细步骤。 基本设置在开始之前,先做一些基本让树莓派能更好的工作。 禁止自动登录树莓派默认启动后直接进入桌面,不需要用户登录。虽然树莓派常放置于内网,但这样还是很不安全。为了提高安全性和隐私保护,建议禁止自动登录功能。操作方式如下: 在窗口输入sudo raspi-config,进入命令行交互界面;<img src="https://user-gold-cdn.xitu.io...;h=624&f=jpeg&s=70245" alt="raspi-config界面" width="665" height="405" class="aligncenter size-large wp-image-5885" /> 通过上下箭头选“boot options”回车,接着选“desktop/cli”回车。如果你是安装了桌面系统,选择“desktop”,否则选“console”,然后回车;界面回到初始选择界面,按“tab”键将光标跳转到"finish",回车。程序会问你是否重启,根据自己需求选“yes”或者"no"。raspi-config是树莓派系统自带的系统配置工具,简单好用且功能强大,没事建议多进去看看。 设置静态ip树莓派在家里主要作为服务器,ip不应该经常变动。固定树莓派ip有三种方法: 通过路由器绑定ip和mac地址。这需要登录路由器的web管理界面,其操作根据型号有所不同;在图形桌面中,右键右上角的网络图标,选择“wirelesss&wired network setting”,在出现的设置窗口中选择“interface”,分别设置有线网卡(eth0)和无线网卡(wlan0)的ip地址、子网掩码、dns等:<img src="https://user-gold-cdn.xitu.io...;h=556&f=png&s=125469" alt="树莓派网络设置" width="569" height="556" class="aligncenter size-full wp-image-5886" /> 手动编辑/etc/dhcpcd.conf文件,在文件最末加入类似的如下行: interface eth0inform 192.168.1.2static routers=192.168.1.1static domain_name_servers=114.114.114.114static ip6_address=2409:8a00:78d8:10b0:9d9e:1193:c495:228f远程访问设置做好基本设置后,让我们正式进入远程访问的设置。 开启sshssh几乎是所有服务器必备且最重要的服务之一,但树莓派默认是关闭的,所以要先开启。树莓派上开启ssh服务方法有三种: 命令行中输入:sudo systemctl enble sshd && sudo systemclt start sshd;使用raspi-config命令,在“intefacing options”中选择“ssh”,设置为开启;在图形桌面中,点击左上角树莓派logo,菜单中选择“preferences” -> “raspberry pi configuration”,在弹出的窗口中选择“interfaces” -> "ssh",点击确定。 <img src="https://user-gold-cdn.xitu.io...;h=545&f=png&s=93628" alt="树莓派开启ssh访问" width="644" height="545" class="aligncenter size-full wp-image-5887" />设置好后,用putty等终端连接树莓派,成功连上则说明设置没问题。 内网穿透对于在家里部署nas或者放置服务器的人来说,内网穿透是必须掌握且绕不过的话题。网络穿透有向日葵、花生壳等收费穿透软件,也有teamviewer等远控软件,还有frp等开源软件可供选择。本文使用有公网ip的vps做内网穿透服务器,软件使用开源的frp做内网渗透方案,设置步骤如下: 部署服务端。frp官网 下载对应服务器系统的软件版本,用tar -zxvf frp_0.29.0_linux_xxxx.tar.gz命令解压。然后进入frp软件目录,编辑frps.ini。一个简易有授权的配置为: `[common]bind_port = 你的端口号token=认证密钥 接下来启动frps服务:nohup ./frps -c frps.ini >> frps.log 2>&1 &`。如果开了防火墙,记得放行相应的端口。 树莓派上部署客户端。尽管树莓派4B用的64位处理器,但raspbian系统是32位的,所以从frp官网下载时记得选择”frp_0.29.0_linux_arm.tar.gz“版本。解压后进入frp目录,编辑frpc.ini。一个开启ssh穿透访问的配置为: [common]server_addr = 服务器ipserver_port = 服务器端口token = 服务器密钥[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 希望在服务器上监听的端口配置好后启动frp客户端:nohup ./frpc -c frpc.ini >> frpc.log 2>&1 &。 ...

November 3, 2019 · 1 min · jiezi

组装树莓派4B及安装系统

文章转载自:组装树莓派4B及安装系统早就听说过树莓派,但觉得只是个玩具,并没有太多兴趣折腾。这几天想在家里弄一套备份以及远程访问的方案,就想到了体积小巧、功耗低的树莓派。正好今年6月发布的树莓派4B有4核4G的配置,足以应付常见的各种需求,于是立马淘宝入手开始了折腾之旅。 因为是第一次接触树莓派,本文简要介绍一下树莓派以及其组装和安装系统的步骤。 树莓派是什么?树莓派(Raspberry Pi)由英国树莓派基金会开发,其初始目的是以低廉的价格和开源软件促进学校的计算机编程教育。树莓派官方推荐操作系统是基于debian的raspbian,也能安装ubuntu,fedora,windows lot等系统。硬件上使用博通(broadcom,牛逼得要收购高通的那家公司)的ARM芯片,内存定制版,焊接在主板上。截止到目前树莓派发布过9款机型,最新版是4B,拥有4核cpu以及最高4G内存,支持usb 3.0和蓝牙5.0。以下是树莓派3B+和4B的硬件配置对比(图来自淘宝卖家): <img src="https://user-gold-cdn.xitu.io...;h=606&f=jpeg&s=71602" alt="树莓派3B+和4B对比1" width="750" height="606" class="aligncenter size-full wp-image-5860" /> <img src="https://user-gold-cdn.xitu.io...;h=574&f=jpeg&s=76415" alt="树莓派3B+和4B对比2" width="665" height="509" class="aligncenter size-large wp-image-5861" /> 目前没有树莓派4A,也没有树莓派4B+。 树莓派能做什么?根据官方教程以及网络上常见的图片秀,树莓派主流玩法包括: 学习linux、编程个人网站、代码托管等网络服务家庭nas/私有云离线/远程下载机结合外设的机器人、汽车、音响、led等内网穿透,以及dns、透明代理等本人目前想到的树莓派用途有:个人代码托管、私有云和内网穿透。 树莓派有哪些替代品/竞品?根据个人的了解,如下产品可(部分)替代树莓派: 香橙派(orange pi)。模仿树莓派的国产开源硬件,比树莓派便宜,之前的硬件配置比树莓派高(4B的配置跟上来了)。树莓派社区庞大,而香橙派影响力和玩的人数较少,遇到问题可能没人能回答你;Arduino。开源的软硬件平台,个人感觉其与树莓派的主要区别是:树莓派是通用编程微型计算机,Arduino是专用/工业单片机。可刷梅林(merlin)等固件的路由器。你没有看错,是路由器。选择树莓派之前,我也考虑过弄个华硕路由器(倒闭的极路由也挺符合我口味的)刷梅林系统,能实现许多想要的功能。以上便是树莓派的简要介绍,接下来让我们开始树莓派4B的组装和系统安装吧。 组装树莓派4B基础硬件本人从淘宝买的树莓派4B官方基础版,包含以下物品: 主板:<img src="https://user-gold-cdn.xitu.io...;h=556&f=jpeg&s=84035" alt="树莓派4B主板包" width="571" height="556" class="aligncenter size-full wp-image-5867" /> 主板正面图,cpu、内存都已经焊接在主板上: <img src="https://user-gold-cdn.xitu.io...;h=415&f=jpeg&s=83405" alt="树莓派4B主板正面图" width="665" height="368" class="aligncenter size-large wp-image-5863" /> 官方type C电源:<img src="https://user-gold-cdn.xitu.io...;h=1024&f=jpeg&s=88541" alt="树莓派4B type-c电源" width="665" height="887" class="aligncenter size-large wp-image-5862" /> 官方外壳:<img src="https://user-gold-cdn.xitu.io...;h=1024&f=jpeg&s=94869" alt="树莓派4B官方外壳" width="665" height="887" class="aligncenter size-large wp-image-5864" /> 外壳袋子中包含赠送的散热片: <img src="https://user-gold-cdn.xitu.io...;h=1024&f=jpeg&s=158358" alt="树莓派4B散热片" width="665" height="887" class="aligncenter size-large wp-image-5865" /> 16GB sd卡和一个usb读卡器(读卡器未拍出来):<img src="https://user-gold-cdn.xitu.io...;h=1024&f=jpeg&s=131832" alt="树莓派4B读卡器" width="665" height="887" class="aligncenter size-large wp-image-5866" /> 树莓派4B支持双屏4k视频,但视频接口改成了micro hdmi,于是另外从狗东上买了micro hdmi转hdmi母口转接头(8块钱): <img src="https://user-gold-cdn.xitu.io...;h=1024&f=jpeg&s=104831" alt="micro hdmi转hdmi母口转接头" width="665" height="887" class="aligncenter size-large wp-image-5868" /> 上述便是网购到的所有硬件,当然自己还要拿出显示器、鼠标和键盘才能齐活。 接下来开始组装树莓派。 组装树莓派因为要安装散热片,首先了解一下树莓派4B主板的布局图(图来自淘宝卖家): <img src="https://user-gold-cdn.xitu.io...;h=608&f=jpeg&s=73528" alt="树莓派4B主板布局图" width="750" height="608" class="aligncenter size-full wp-image-5869" /> 卖家给了五个散热片,我将散热片分别贴在了这些硬件上:cpu、内存、usb管理芯片、有线网卡、无线网卡。贴好后的效果图是: ...

November 3, 2019 · 1 min · jiezi

树莓派重置密码

转载请注明文章出处:树莓派重置密码昨天折腾树莓派时感觉自己又上升了一个层次,于是设置密码时用了一个酷炫的新密码。今天起床后进系统发现傻逼了,完全想不起新密码是什么????????好在硬件就在身边,重置一下密码就可以了。 以下是重置树莓派系统密码的步骤。 取出sd卡,放入usb读卡器中,连接到其它电脑;在其它电脑中打开sd卡的cmdline.txt文件,在行尾加上init=/bin/sh。修改好后的cmdline.txt文件内容大致是这样: console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles init=/bin/sh把sd卡重新放入树莓派,通电开机。出现树莓派的logo后很快进入命令行界面,可以看到行首是"#",说明已经获取了root权限;为了避免树莓派进入只读模式,重新挂载sd卡:mount -rw -o remount /;重置pi用户的密码:passwd pi,两次输入新密码;让系统继续加载进入默认环境:exec /sbin/init;系统加载完后,登录用root权限修改/boot/cmdline.txt文件,将init=/bin/sh移除。其原理是:系统以root权限启动,init=/bin/sh指令让系统启动时直接进入root用户的shell,进而可以做任何想做的事情。 参考http://mapledyne.com/ideas/20...

November 3, 2019 · 1 min · jiezi

树莓派3BUbuntu下建立WIFI连接Headless

准备工作和配置一个pi一个sd卡,可能额外需要读卡器电源适配Ubuntu目前(2019/9)GrovePi仍不完全支持Raspbian Buster,所以在本文中依然使用stretch。由于建立的是headless(没有显示屏以及键盘鼠标),选用stretch-lite。 开始!到官网上下一个合适版本的raspbian(我用了19/4/8的stretch lite版本)下载一个etcher,用来把镜像文件烧到sd卡里 官网下载 -> unzip -> 把AppImage Sudo移到/opt -> 执行其他方法:Hypriot SD卡烧录工具(github),dd相对速度较慢插卡,选image,选sd card,烧 etcher的好处是不需要lsblk之类的命令确定要覆盖位置的具体名称,没有不小心洗掉host partition的风险,而且快烧录完成后,电脑可能没识别到sd卡。重新拔插,看到sd卡在桌面上显示出于安全考虑,SSH在现在的raspbian中默认disabled。启用SSH,我们需要在sd卡的boot目录下建立一个空文件ssh: sudo vim /media/location_of_sd_card/boot/ssh/media/location可以通过lsblk找到,通常是user的名字vim中不用做任何修改,键盘输入:q退出检测到这个文件后,Rapbian会在boot时自动启用ssh。Wifi设置 - 在boot分区下创建一个wpa_supplicant.conf文件 sudo vim /media/location_of_sd_card/boot/wpa_supplicant.confNetwork Name可通过host x.x.x.x找到在boot时,Rapbian会自动把这个文件移动到OS的文件系统中文件模板:country=USctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid="NETWORK-NAME" psk="NETWORK-PASSWORD"}若需要更改默认hostname,修改rootfs分区中的hostname文件连接树莓派!从host中推出sd卡,插进树莓派里,连接电源。耐心等待它bootup,这可能会花一分半或者更长时间host一定要和在wpa_supplicant.conf中指定的网络一致默认密码是raspberryssh pi@hostname如果不行的话,就再试一次:)

September 7, 2019 · 1 min · jiezi

树莓派3B安装centos踩坑记录

最近一直在思考学习点什么东西,感觉很久不太动脑子了,有些生锈。大概是上周吧,回顾了一下这几年来的事情,大家讨论得最多的就是高并发、事务、分布式、集群、微服务、负载均衡等东西,我突发奇想,既然以我的经济实力想一下子买个三五台服务器来玩根本不现实,那么我买几台树莓派来玩玩咋样。 于是我买了三套树莓派,图上是我接好的样子; 我原本设想的是,这个作为微主机,虽然架构不太一样,但是玩起来按理来说应该和PC端安装系统并进行启动的方式是一致的,当然,实际上也的确类似。 于是我在安装前,大致做了如下几个步骤设想: 找到匹配当前版本树莓派的centos系统;按照教程烧录;连接显示器,设置账号密码,并连接WI-FI;关闭图形界面,以ssh形式进行服务器管理;大功告成;首先,找系统很好找,根据官方的指引,找到华为的安装源:华为安装源,根据硬件情况自行选择; 然后,以macOS为例,在macOS系统下的烧录就蛮简单了,大致也分为几个步骤: 把SD卡插入电脑;格式化,我这里也是找的教程,用的 SD card formatter 这个软件进行格式化;用diskutil list 找到SD卡的挂载路径,如/dev/disk3diskutil unmountDisk /dev/disk3取消挂载dd if=解压出来的centos文件(以.raw)为后缀的文件 of=/dev/disk3 进行系统烧写把卡拔出来查到树莓派上;然而,就在我把卡插入树莓派上开机启动的时候,发现显示器根本没有输出,我一开始还以为是没烧写成功,但是启动有读盘行为,整体看来似乎是正常的,然后我想是不是我的4K显示器不支持,于是去某宝淘了个4英寸的HDMI显示器(因为我是三台树莓派,为了方便,所以用HDMI的);谁知道买回来发现还是不行;后来查找资料的时候说要写什么config.txt,我根本就不知道这个config.txt在哪里,翻了很多资料都不甚清楚。 后来经过我的思考和研究发现,SD卡烧写之后,整张SD卡会被分为几个分区,而在macOS下打开所看到的文件为centos下的/boot目录;而这个要配置的config.txt也就是位于boot目录。当然,对于这个boot目录其实我也不是很清楚具体是干啥的,我也没有找资料研究,不过依据我的猜测应该是系统引导用的引导分区,这么叫可能有些不正确,但大致可能是这个意思; 然后,我重新用macos打开SD卡,然后新建config.txt文件,并写入配置: hdmi_force_hotplug=1然后重新插入树莓派,启动,就可以正常进入系统初始化配置页了,就可以进行基础的配置。而且对于4K显示器也是支持的,只不过画质没那么高清。

August 18, 2019 · 1 min · jiezi

树莓派2b安装ubuntumate

因为需要学mysql+node相关的后端技术,需要一台linux系统的电脑,刚好手头有一块N年前买回来就没动过的树莓派2b。装上系统当本地服务器用。 我的博客文章:树莓派2b安装ubuntu-mate 下载系统镜像下载地址 下载合适的系统,我这里选Raspberry Pi(recommended) 下载解压后会得到一个img镜像文件 格式化TF卡格式化为ExFAT格式,MBR分区表 如果是macOS注意看磁盘工具窗口左上角的显示按钮,选显示所有设备,选侧边栏的TF卡物理磁盘去格式化,而不是选分区 查看TF卡用df -h命令查看当前已挂载的卷: 我当前挂载的位置是/dev/disk4s1,其中s1指的是分区,都多个分区会以disk4sN的形式列出来用diskutil list来确认设备: 烧写系统到TF卡中如果不想用命令行,可以用工具实现 macOS: Balena EtcherWindows: Win32 Disk imager先卸载TF卡: diskutil unmountDisk /dev/disk4不卸载直接烧写会出现dd: /dev/rdisk4: Resource busy错误 用dd命令把镜像烧写到TF卡中: 我的镜像存放目录是/Users/hackintosh/Downloads/ubuntu-mate-18.04.2-beta1-desktop-armhf+raspi-ext4.img sudo dd bs=4m if=/Users/hackintosh/Downloads/ubuntu-mate-18.04.2-beta1-desktop-armhf+raspi-ext4.img of=/dev/rdisk4 # rdisk4没错,前面多了个rif=后面的一串是镜像文件目录,必须是绝对路径等待写完盘会会出现以下提示(值会不同): 卸载设备: sudo diskutil unmountDisk /dev/disk4拔出TF卡,插到树莓派开机,等待系统安装完成,这里需要接一下显示器,初始化系统配置。 配置ssh远程登录这辈子都不可能接显示器的 ubuntu默认不启用ssh,需要安装一下ssh服务 更新并启用ssh: sudo apt update # 更新aptsudo apt autoremove openssh-server # 卸载ssh服务sudo apt install openssh-server # 安装ssh服务sudo service ssh start # 启动ssh服务sudo update-rc.d ssh enable # 设置开机启动ifconfig # 查看本机ip,我是用网线的所以直接找第一个网卡就行(本来是有wifi的,以前在学校机房插电脑开wifi后忘记拔下来了...)在macOS下使用ssh命令就可以连接到树莓派: ...

July 8, 2019 · 1 min · jiezi

树莓派3-B-ubuntu18042-设置-wifi

首先按照网上的教程,给microSD卡format, 然后把ubuntu镜像拷上去。 开机,初始化系统然后连一根网线 然后: For the image with apt installed Step1: sudo apt-get install wireless-toolsStep2: sudo apt-get install wpasupplicantStep3: add to /etc/network/interfaces: auto wlan0 iface wlan0 inet dhcpwpa-ssid WIRELESSSSID wpa-psk WIRELESSPASSWORDStep4: comment from /etc/network/interfaces the line: #source /etc/network/interfaces.d/*.cfgthe commented interfaces.d/*.cfg file contains settings for the eth0. I do not understand why but leaving this line active and adding the wlan0 config would crash the system at boot. ...

June 24, 2019 · 1 min · jiezi

30个物联网传感器小实验6人体感应器

30个物联网传感器小实验6:人体感应器 HC-SR501 简介使用方法感应有人和没人更多API30个物联网传感器小实验6:人体感应器 HC-SR501 简介 使用方法 接线方法 感应有人和没人接线就比较简单了,正极接树莓派的5v正极,负极接GND地线,OUT接GPIO4号口。上代码:from gpiozero import MotionSensorpir = MotionSensor(4)while True : if pir.value: print("有人!") else: print("没人!")运行代码之后,效果如文章开头的效果所示。可以使用螺丝刀不断调节灵敏度和延时,玩腻了之后,可以更改可重复触发和不可重复触发,观察不同的效果。熟悉了之后,配合光线传感器,做出一枚黑夜的人体感应灯是非常简单的。更多实用APIvalue传感器在激活状态下,返回1。在沉默状态下,返回0。 wait_for_motion(timeout=None)阻塞进程,检测到人体运动才返回,继续执行。 wait_for_no_motion(timeout=None)阻塞进程,检测到人体运动停止才返回,继续执行。 when_motion不阻塞进程,检测到人体运动则自动执行函数。 when_no_motion不阻塞进程,检测到人体运动停止则自动执行函数。 好了,本次介绍就到这里,本文收录在我的《手把手教你玩树莓派》系列教程,立足于普及树莓派搭配人工智能、物联网和机器人的玩法,想要跟我一起学习的童鞋可以加我微信/微博ID:asukafighting,也可以直接看教程:https://github.com/asukafight...

May 26, 2019 · 1 min · jiezi

30个Python物联网小实验5光线感应灯

30个Python物联网小实验5:光线感应灯 光线传感器光线变化执行函数光线状态执行函数30个Python物联网小实验5:光线感应灯 光线传感器可以检测周围环境的亮度;方向性较好,感知特定方向的亮度;灵敏度可调,用螺丝刀旋转图中蓝色电位器即可;工作电压:3.3v~5v数字开关输出:0或1设有固定螺栓孔,方便安装光线变化执行函数接线方法:正极接树莓派的5v正极,负极接树莓派的GND地线,信号输出针脚接GPIO18号口。 上代码:from gpiozero import LightSensorsensor = LightSensor(18)while True: sensor.wait_for_light() print("It's dark! :)") sensor.wait_for_dark() print("It's light! :(")可以看到代码的核心就是wait_for_light()和wait_for_dark()这两个函数,手遮挡住光线的时候,显示"It's dark! :)",手拿开之后,显示"It's light! :("。光线状态执行函数上代码:from gpiozero import LightSensor, LEDfrom signal import pausesensor = LightSensor(18)led = LED(17)sensor.when_dark = led.offsensor.when_light = led.onpause()代码的核心在于将sensor的状态直接提供给led,这样光线传感器检测到亮光的时候led熄灭,检测不到光线的时候,led点亮。好了,本次介绍就到这里,本文收录在我的《手把手教你玩树莓派》系列教程,立足于普及树莓派搭配人工智能、物联网和机器人的玩法,想要跟我一起学习的童鞋可以加我微信/微博ID:asukafighting,也可以直接看教程:https://github.com/asukafight...

May 25, 2019 · 1 min · jiezi

30个Python物联网小实验3使用按钮开灯关灯

使用按钮开灯关灯接线图非常简单,LED接GPIO17号口,按钮接GPIO2号口,负极接GND地线。 代码也非常简单:from gpiozero import LED, Buttonfrom signal import pauseled = LED(17)button = Button(2)button.when_pressed = led.onbutton.when_released = led.offpause()执行代码,按下按钮,发光二极管就会亮,松开就会灭。使用按钮开灯关灯(二)还有一种source的写法,直接把按钮的状态提供给发光二极管,达到同样的效果。from gpiozero import LED, Buttonfrom signal import pauseled = LED(17)button = Button(2)led.source = buttonpause()按钮按下和松开先上效果 接线非常简单,按钮一端连接GPIO2号针脚,一端连接GND地线。代码灰常简单:from gpiozero import Buttonbutton = Button(2)while True: if button.is_pressed: print("Button is pressed") else: print("Button is not pressed")等待按钮按下才执行直接上代码吧:from gpiozero import Buttonbutton = Button(2)button.wait_for_press()print("Button was pressed")程序执行到button.wait_for_press()这一句之后,会先停下,等待按钮按下之后,才会继续执行。按下执行特定函数直接上代码:from gpiozero import Buttonfrom signal import pausedef say_hello(): print("Hello!")button = Button(2)button.when_pressed = say_hellopause()按下按钮,执行say_hello()这个函数。松开执行特定函数上效果图: ...

May 21, 2019 · 1 min · jiezi

Google-Coral-Edge-TPU-USB加速棒上手体验

Edge AI是什么?它为何如此重要?传统意义上,AI解决方案需要强大的并行计算处理能力,长期以来,AI服务都是通过联网在线的云端基于服务器的计算来提供服务。但是具有实时性要求的AI解决方案需要在设备上进行计算 ,因此边缘人工智能(Edge AI)正在逐渐进入人们的视野。 虽然本质上AI计算可以使用基于GPU的设备,但这套设备成本高昂,并且搭配非常繁琐,比如对内存要求越来越高、能耗越来越大等。无论是从研究还是创新角度来讲,边缘人工智能推理都正在成为蓬勃发展的深度学习革命越来越重要的组成部分。 与此同时手持设备(比如手机、平板等)日益普及,每年都能卖掉几十亿台,手机已然成为日常使用最为频繁的设备,可以预测对移动AI计算的需求也正在稳步增加。 因此,移动处理器的开发已经变得越来越以人工智能为重点,这些处理器都具有用于机器学习的专用硬件,比如现在主流的手机CPU评测都会加上一项AI计算能力的跑分。 目前从消费应用到企业应用都遍布 AI 的身影。随着联网设备数量的爆发式增长,以及对隐私/机密、低延迟时间和带宽限制的需求,云端训练的 AI 模型需要在边缘运行的情况不断增加。Edge TPU 是 Google 专门为在边缘运行 AI 而打造的 ASIC,它体型小、能耗低,但性能出色,让您可以在边缘部署高精度 AI。从下图可以看出Edge TPU核心的面积仅有一美分的大概十分之一大小。 Edge TPU可以用来做什么?可以使用Edge TPU在移动设备上训练模型,但目前仅支持通过迁移学习在设备上重新训练的分类模型,这种训练方法是在Low-Shot Learning with Imprinted Weights这篇论文中提到的imprinted weight技术,此技术为实时系统创造了许多可能性。并且,据相关评测显示,Edge TPU是同类产品中计算速度最快的设备。 市面上已经有的其他AI边缘推理硬件虽然这是第一个Edge TPU,但这之前就已经有一些类似的AI专用硬件,例如: 英特尔基于MyriadVPU的神经计算棒,及Google Vision Kit。基于Cuda的NVIDIA Jetson TX2。 Coral Beta版TPU,也称张量处理单元(Tensor Processing Unit)主要供Google数据中心使用。对于普通用户,可以在Google云端平台(GCP)上使用,也可以使用Google Colab来使用免费版。 谷歌在2019年国际消费电子展(以及今年的TensorFlow开发峰会上)首次展示了他们的Edge TPU,然后于三月份发布了Coral Beta。 Beta版本包括开发板和USB加速器,以及用于生产目的的预览版PCI-E加速器和模块化系统(SOM)。 USB AcceleratorEdge TPU USB Accelerator与任何其他USB设备基本一样,跟英特尔的MyriadVPU的差不多,但功能更强大。接下来我们来一个开箱,并且稍微上手看看。 开箱 盒子中包含: 入门指南USB加速器Type C USB数据线入门指南入门指南介绍了安装步骤,你可以很快完成安装。包括模型文件在内的所有需要的文件可以随安装包一起在官网下载即可,安装过程并不需要TensorFlow或OpenCV这些依赖库。 提示:必须使用Python 3.5,否则将无法完成安装。还需要将install.sh文件最后一行 python3.5 setup.py develop - user改为python3 setup.py develop - user演示程序Coral Edge TPU API文档包括图像分类和目标检测的概述和演示程序。 ...

May 15, 2019 · 1 min · jiezi

30个物联网传感器小实验2LED灯条灯板

30个物联网传感器小实验2:LED灯条、灯板以下所有实验均要求树莓派刷入完整版Raspbian操作系统,也就是官网上Raspbian Stretch with desktop and recommended software的版本。交通信号灯(一)接线图如下: 新建TrafficLight.py文件,代码如下:from gpiozero import TrafficLightsfrom time import sleeplights = TrafficLights(2, 3, 4)lights.green.on()while True: sleep(3) lights.green.off() lights.amber.on() sleep(1) lights.amber.off() lights.red.on() sleep(3) lights.amber.on() sleep(1) lights.green.on() lights.amber.off() lights.red.off()运行python3 TrafficLight.py,即可看到具有交通信号灯逻辑的红黄绿亮灯顺序。 交通信号灯(二)对于TrafficLight.py文件,还有一种写法如下: from gpiozero import TrafficLightsfrom time import sleepfrom signal import pauselights = TrafficLights(2, 3, 4)def traffic_light_sequence(): while True: yield (0, 0, 1) # green sleep(3) yield (0, 1, 0) # amber sleep(1) yield (1, 0, 0) # red sleep(3) yield (1, 1, 0) # red+amber sleep(1)lights.source = traffic_light_sequence()pause()交通信号灯(三)最后,说白了虽然上面使用的是TrafficLight对象,当然使用LED对象也是一样可以完成这个任务的。 ...

May 11, 2019 · 2 min · jiezi

RGB灯

引脚R17 G18 B19 GND 四根线 图片 代码import RPi.GPIOimport timeR, G, B = 17, 18, 19RPi.GPIO.setmode(RPi.GPIO.BCM)RPi.GPIO.setup(R, RPi.GPIO.OUT)RPi.GPIO.setup(G, RPi.GPIO.OUT)RPi.GPIO.setup(B, RPi.GPIO.OUT)pwmR = RPi.GPIO.PWM(R, 70)pwmG = RPi.GPIO.PWM(G, 70)pwmB = RPi.GPIO.PWM(B, 70)pwmR.start(0)pwmG.start(0)pwmB.start(0)try: t = 0.4 while True: # 红色灯全亮,蓝灯,绿灯全暗(红色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(0) pwmB.ChangeDutyCycle(0) time.sleep(t) # 绿色灯全亮,红灯,蓝灯全暗(绿色) pwmR.ChangeDutyCycle(0) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(0) time.sleep(t) # 蓝色灯全亮,红灯,绿灯全暗(蓝色) pwmR.ChangeDutyCycle(0) pwmG.ChangeDutyCycle(0) pwmB.ChangeDutyCycle(100) time.sleep(t) # 红灯,绿灯全亮,蓝灯全暗(黄色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(0) time.sleep(t) # 红灯,蓝灯全亮,绿灯全暗(洋红色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(0) pwmB.ChangeDutyCycle(100) time.sleep(t) # 绿灯,蓝灯全亮,红灯全暗(青色) pwmR.ChangeDutyCycle(0) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(100) time.sleep(t) # 红灯,绿灯,蓝灯全亮(白色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(100) time.sleep(t) # 调整红绿蓝LED的各个颜色的亮度组合出各种颜色 for r in range(0, 101, 20): pwmR.ChangeDutyCycle(r) for g in range(0, 101, 20): pwmG.ChangeDutyCycle(g) for b in range(0, 101, 20): pwmB.ChangeDutyCycle(b) time.sleep(0.01)except KeyboardInterrupt: passpwmR.stop()pwmG.stop()pwmB.stop()RPi.GPIO.cleanup()效果 ...

April 21, 2019 · 1 min · jiezi

蜂鸣器

引脚GPIO 17 3.5V GND 三根线 图片 代码import RPi.GPIO as GPIOimport timePIN_NO = 17 # GPIO编号,可自定义GPIO.setmode(GPIO.BCM)GPIO.setup(PIN_NO, GPIO.OUT)# 哔1次,时长作为参数传递def beep(seconds): GPIO.output(PIN_NO, GPIO.HIGH) time.sleep(seconds) GPIO.output(PIN_NO, GPIO.LOW)# 哔N次,时长、间隔时长、重复次数作为参数传递def beepAction(secs, sleepsecs, times): for i in range(times): beep(secs) time.sleep(sleepsecs)beepAction(0.01,0.01,3000)效果bi~~bibi~~

April 21, 2019 · 1 min · jiezi

Raspberry pi 3B 系统安装

开始a

April 10, 2019 · 1 min · jiezi

我的IOT求生之路

树莓派3B+系统传送门

April 10, 2019 · 1 min · jiezi

树莓派安装Docker

因为树莓派是ARM架构的,所以Docker的安装和使用也都有不同。需要讲的内容比较多,这里单挑出来。树莓派是基于ARM架构的,和PC不同。所以即使树莓派上能做一些docker镜像,也不能在别的PC上运行。反过来别的PC上的docker镜像,也不能在树莓派上运行。如果需要找树莓派专用的镜像,那就在Dockerhub上搜索ARM或Rpi相关就能找到了。有一个叫Hypriot的仓库制作了非常多树莓派专用docker,可以参考下。树莓派参考:Get Docker CE for Debian参考:My home server powered by Pi and Docker树莓派安装Docker,最难的在于正确的选择源和添加GPG-key,才能找到版本适合的docker并下载。这个过程是非常繁琐且很难有统一方案的。官方版一键安装脚本注意:官方的一键安装脚本很多人说不再支持了。但是目前位置,其实还是能支持的。参考:The easy way to set up Docker on a Raspberry Pi开始执行之前,先说明:我之前很多次都不成功,找了很多相关解决方案都不行。直到。。。直到我先sudo apt-get update并且最最最重要的是sudo apt-get upgrade,之后才行。其实在upgrade时候就能看到,更新了很多系统依赖包,这也就解决了之前docker安装不成功的一切毛病了。upgrade完成后,就开始正式安装了:需要用到一个shell脚本,get.docker.com,整个网站就这一个脚本。下载并执行:$ curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh完成后,会显示:然后运行hello world试试:$ sudo docker run hello-world然后显示:手动安装准备工作:#安装SSL相关,让apt通过HTTPS下载:sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common# 添加docker的GPG keycurl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -#检查key是否相符(9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88)sudo apt-key fingerprint 0EBFCD88#添加docker的apt下载源sudo echo “\ndeb-src [arch=amd64] https://download.docker.com/linux/debian wheezy stable\n” >> /etc/apt/sources.list#更新源sudo apt-get update安装docker:$ sudo apt-get install docker-ce无需sudo执行docker为了每次执行docker不需要总是输入sudo,我们需要为docker创建一个用户组,并授予权限才行:# 创建docker用户组sudo groupadd docker# 把当前用户加入到docker用户组sudo gpasswd -a $USER docker# 更新当前用户组变动(就不用退出并重新登录了)newgrp docker安装docker-compose可以通过把docker compose当作一个docker的container下载并运行:docker run \ -v /var/run/docker.sock:/var/run/docker.sock \ -v “$PWD:/rootfs/$PWD” \ -w="/rootfs/$PWD" \ docker/compose:1.13.0 up# 设置alias快捷键(~/.zshrc或~/.bash_profile)alias docker-compose="’"‘docker run \ -v /var/run/docker.sock:/var/run/docker.sock \ -v “$PWD:/rootfs/$PWD” \ -w="/rootfs/$PWD" \ docker/compose:1.13.0’"’“常见错误问题Python: No module name lsb_release先检查本机是否已经安装了lsb_release,或者重新安装一遍:$ sudo apt-get install lsb-release如果还是这个问题,那么就检查Python版本。如果是python3,那么很可能是版本不够,因为lsb_release需要最少python3.5。解决这个问题,就把默认python设置回python2就好了。就是个ln建立快捷方式都事:# 备份(python具体的位置根据自己情况定)$ sudo mv /usr/bin/python /usr/bin/python_bak# 更换$ sudo ln -s /usr/bin/python2.7 /usr/bin/python然后再试一下$ lsb_release -cs看看有没有显示jessie无法添加源 add-apt-repository 报错找不到相关源 ...

January 26, 2019 · 1 min · jiezi

利用`frp`实现树莓派的公网映射(让外网访问本地局域网里的树莓派)

一直就想试试把本地电脑公开到公网实现自己做服务器的感觉,有了树莓派后更有这种想法。于是就动手试试。听说目前两种方法比较流行:ngrok和frp。但是ngrok是收费的且复杂,frp则完全开源免费且简单易用,所以这里来尝试下。大概思路就是:自己先有一台公网的服务器(我是在AWS或DigitalOcean租的),然后让本地的树莓派与公网服务器通过frp程序达成一种映射连接,这样别人访问公网服务器ip的某个端口时,就会自动转向来访问本地的树莓派了。做法是:分别在服务器和本地树莓派上下载frp程序,当然要根据两者自己的系统平台下载不同版本。然后在服务器运行frps,即frp-server,在本地运行frpc,即frp-client。并且在配置文件里约定好,服务器的哪个端口映射到本地的哪个端口。双方都运行后,就可以正常通过外网访问了。难度这个服务的环境、启动、安装等简单到让人发指,唯一的难度就在于服务器上和本地上两个.ini配置文件。配置文件搞明白了,就什么都明白了。有一点不明白,就全不明白。。。参考文章。官方下载地址。其中,服务器如果是Ubuntu或Debian系的,就选择linux_amd64.tar.gz和linux_386.tar.gz结尾的,一个是64位一个是32位。本地树莓派如果是树莓派系统,则选择linux_arm.tar.gz结尾的。第一:服务器上安装配置frp#下载frp:wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz#解压:tar -xzvf frp_0.16.0_linux_amd64.tar.gz#进入目录:cd frp_0.16.0_linux_amd64#修改服务器端配置文件:vim frps.ini#将内容全部替换为如下:# frps.ini[common]bind_addr = 0.0.0.0bind_port = 7000vhost_http_port = 8000vhost_https_port = 8001dashboard_port = 7500privilege_token = 123456dashboard_user = ubuntudashboard_pwd = 123log_file = ./frps.loglog_level = infolog_max_days = 3max_pool_count = 5authentication_timeout = 900tcp_mux = true保存退出后,就可以在当前目录通过sudo ./frps -c frps.ini启动服务器端的这项服务了。测试:随便找个浏览器,输入服务器的IP和刚刚设置的后台管理端口号,就可以访问了。比如我的服务器IP是13.250.64.172,那么就输入:http://13.250.64.172:7500然后就可以看到如下:然后按照刚才设置的账号密码:admin, admin就能登录到,显示如下图:第二:本地树莓派装frp本地配置要比服务器配置难很多,经常出问题。尤其是我的机器只要一设置ssh,就会出错。基本配置如下:[common]server_addr = 服务器IP地址server_port = 7000privilege_token = 123456log_file = ./frpc.loglog_level = infolog_max_days = 3pool_count = 5tcp_mux = true[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 2200[web]type = httplocal_port = 80custom_domains = 服务器IP地址或服务器的域名(仔细填写,这是连接的主要方式)保存退出后,在frp的文件夹执行:sudo ./frp -c frpc.ini,就能启动了。现在,保证服务器端和客户端的两个服务都在同时运行时,我们就可以使用了。连接好后,用这个命令连接ssh:$ ssh ClientUser@ServerIP -p 2200 ...

January 25, 2019 · 1 min · jiezi

树莓派连接WIFI无线网络配置

查看无线网卡$ iw deviw 是一种新的基于 nl80211 的用于无线设备的CLI配置实用程序。它支持最近已添加到内核所有新的驱动程序。采用无线扩展接口的旧工具iwconfig已被废弃,强烈建议切换到 iw 和 nl80211。其中显示“Interface wlan0”,说明设备名是wlan0。使用 iw 检查无线连接状态$ iw wlan0 link这是连接后的状态如果显示Not connected,则还没有建立连接扫描 WIFI 网络$ iw wlan0 scan搜索附近的wifi网络。会扫出一大坨各种无线WIFI连接到wifi无密码的wifiiw wlan0 connect 你的ssidwep加密的wifi网络$ iw wlan0 connect 你的SSID key 0:你的密钥WPA/WPA2加密的wifi网络需要用到 wpa_supplicant1. 首先需要为 wpa_supplicant 生成一个包含了预共享密钥(PSK, pre-shared key) $ wpa_passphrase 你的SSID >> /etc/wpa_supplicant/wpa_supplicant.conf 你的密码执行以上命令后,在/etc/wpasupplicant/wpa_supplicant.conf的文件上会自动生成类似如下配置network={ ssid=“你的SSID” #psk=“你的密码” psk=ba4e9c8c83de0c1531accf56d7156409da7653161fb871a85c252c88bdf3d}2. 需要在此基础上把 wpa_supplicant.conf配置文件添加内容如下所示network={ ssid=“你的SSID” proto=RSN key_mgmt=WPA-PSK pairwise=CCMP auth_alg=OPEN #psk=“你的密码” psk=ba4e9c8c83de0c1531accf56d7156409da7653161fb871a85c252c88bdf3d}3. 配置文件修改完成后,执行以下命令启动$ sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf4. 查看是否连接成功$ ifconfig查看wlan0是否分配到ip地址5. 可以用以下命令自动获取IP地址$ dhcpcd wlan0到此连接WIFI成功。但是下次重启,WIFI还不能自动连接。需要修改/etc/network/interfaces6. 配置自动连接vim /etc/network/interfaces配置如下重启后,无线网络会自动连接

December 20, 2018 · 1 min · jiezi

树莓派最新资源教程整理汇总(2018年10月更新)

本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓派电路原理图下载、树莓派应用等等,非常值得收藏。一、快速上手树莓派快速开机资源大全 :包括树莓派快速开机指南 、系统镜像下载、烧录软件,帮助您快速上手。二、系统镜像树莓派(raspberrypi)常用镜像高速下载 :收集了超过12种树莓派系统镜像,同时带有介绍,你可以选择一个最佳的树莓派系统,在页面即可下载系统镜像,非常方便。三、硬件介绍树莓派2 (Raspberry Pi 2)开箱-上手简评电路图下载:树莓派各版本电路图下载GPIO编号:树莓派GPIO引脚对照表四、树莓派配置树莓派设置静态IP地址树莓派配置文件config.txt详细介绍使用Raspi-config配置工具来设置树莓派解决树莓派使用HDMI-VGA转换器黑屏的方案 树莓派3.5英寸屏幕安装显示驱动,解决白屏问题树莓派新系统SSH连接被拒绝的解决方法树莓派Raspberry命令行配置无线网络连接 解决树莓派“E:dpkg was interrupted”错误树莓派SSH连接被拒绝(Connection reset)的解决方法解决树莓派无法ping通树莓派的wlan0口问题树莓派升级(安装)Python3.6树莓派(raspberry)启用root账户解决树莓派“Sub-process /usr/bin/dpkg returned an error code (1)”故障修改树莓派交换分区 SWAP 的大小五、树莓派镜像源1、国内常用镜像源树莓派系统常用中文镜像源2、树莓派镜像源列表www.raspbian.org/RaspbianMirrors六、树莓派应用树莓派上使用yeelink监控CPU、GPU温度树莓派安装OSMC打造家庭影院树莓派OSMC家庭影院系统使用总结使用树莓派GPIO控制LED灯使用树莓派GPIO控制LED灯树莓派使用dnsmasq搭建DNS服务器树莓派CPU、GPU、磁盘、内存、负载监控脚本树莓派通过DHT11温湿度传感器获得当前的温度和湿度使用树莓派播放音乐让树莓派“说出”自己的IP地址树莓派GPIO控制RGB彩色LED灯树莓派与arduino串口通信实践U盘安装树莓派系统,利用U盘启动Raspberry树莓派Raspberry命令行配置无线网络连接windows远程桌面控制树莓派树莓派上安装Pi-hole搭建DNS服务器,过滤网页广告使用安卓手机控制树莓派用树莓派做FM发射器架设小型电台(支持所有的树莓派型号)无显示器通过网线连接笔记本电脑玩转树莓派树莓派使用Nokia5110显示屏显示系统信息树莓派使用DS1302实现实时时钟功能树莓派使用wiringPi控制LED灯树莓派raspbian上搭建owncloud私有云网盘树莓派使用三极管实现温度控制风扇树莓派搭建指示灯自动显示在空间站的人数树莓派存储温度数据并制作交互式图表树莓派构建LAMP Web服务器并搭建WordPress博客树莓派+Homebriage+米家智能产品搭建Siri智能家居树莓派安装Gitlab打造私人Git服务树莓派安装 OpenWrt 打造超级路由器(不断更新中…)七、树莓派相关手册树莓派 wiringPi 用户手册树莓派GPIO引脚定义详细图原创文章,转载请注明: 转载自科技爱好者博客本文链接地址: 树莓派资源整理 (http://blog.lxx1.com/1879)如果博客对您有帮助,请给我 打赏

October 15, 2018 · 1 min · jiezi