精华内容
下载资源
问答
  • 树莓派0降低功耗实践

    2020-12-30 09:10:18
    树莓派功耗 根据官网数据,树莓派0不接摄像头,不打开桌面(LXDE)的电流(idling)是100mA,电压5V,也就是功耗0.5W,下文一律以电流来代表功耗。 降低功耗的几个途径 安装lite版本的系统,不带图形界面; 最小...

    树莓派功耗

        根据官网数据,树莓派0不接摄像头、不播放视频,不打开桌面(LXDE)的电流(idling)是100mA,电压5V,也就是功耗0.5W,下文一律以电流来代表功耗。

    降低功耗的几个途径

    1. 安装lite版本的系统,不带图形界面;
    2. 最小化安装各种库,减少运行的进程数量;
    3. 关掉mini HDMI输出,大约可以节省20-25mA;
    4. 关掉板载LED,大约可以节省5-10mA;
    5. 降低CPU的频率,这个我没试。

        通过1~4,在没有负载的情况下,树莓派0的功耗可以降低到70mA左右。(一篇参考

    负载功耗

        我用的max31865模块、噪声模块运行功耗都在20mA左右,lora模块文档上是发射时110、接收时11mA、休眠时2μA。负载功耗取决于运行的时间占比,4、5个负载同时连续运行功耗可能超过100mA,因此降低负载功耗关键是降低负载的运行时间,即:

    1. 降低传感器模块的采样频率;

    2. 降低通讯模块的收发频率,没有收发时使模块处于休眠状态。

    使用功耗

        使用树莓派经常要用到 pyserial 库,通过树莓派的uart口接串口设备(如lora)。通讯一般包括收、发两部分,为了避免丢数据,服务器编程时一般会用单独的线程持续不断接收报文,代码类似:

    while self.alive:
        msg = uart.read_all()
        if msg:#收到新报文
        
        else:#超时收到空报文

        这样的代码会给树莓派0增加 40mA 左右的稳定功耗!

        还有一个库 pigpio,用来实现软串口和PWM脉冲通讯,我在其他几篇博客中测试过,如果用到也需要注意使用方法。

    通讯规约设计

        考虑到通讯是影响功耗的重头,一是lora模块本身,一是pyserial库,因此要针对性的设计通讯规约,原则上通讯由lora模块发起,而不是服务器发起lora监听。由于lora模块之间缺乏协调,相同信道同时发送会出现信号在空中碰撞,因此lora模块要根据自己的地址计算发送时间,比如地址偏差1发射间隔偏差5秒。同时,为了统一装置的时钟,服务器在收到数据后应该反馈带有时间的报文,装置收到报文后矫正时钟,这样就可以实现通讯的串行了。

    降低功耗效果

        在树莓派0加2块max31865、1块噪声、1块TTL转485、1块lora的情况下,安装 lite 系统、最小化安装库,首测功耗170mA!

        关掉板载LED和HDMI输出,功耗为140mA;

        将 pyserial 和 pigpio 的调用修改为1小时一次,用之前打开、用完后关闭,lora模块不用时置为休眠状态,功耗降低到74mA!

    展开全文
  • 1.概述龙芯派、树莓派都是开源硬件,并且都是定位在单板计算机的领域,外设上基本上也差不多。正好手上有这些板子,所以来测试一下手上这些板子的功耗情况。龙芯教育派、树莓派4b、树莓派3b、树...

    1.概述

    龙芯派、树莓派都是开源硬件,并且都是定位在单板计算机的领域,外设上基本上也差不多。正好手上有这些板子,所以来测试一下手上这些板子的功耗情况。龙芯教育派、树莓派4b、树莓派3b、树莓派2b、树莓派pico的一些正常工作时功耗情况。这些选手的性能评测今天并不是考核的重点,就通过正常的上电运行默认的程序,来对比一下功耗的情况。

    2.龙芯派教育派

    龙芯派搭载两个 2K1000 处理器(主频 1GHz,CPU GS264),板载 DDR3 颗粒,实现 DDR3 的运行存储功能。实现了 GPIO 的输入输出,中断功能。板上集成 1 个网 口,集成 3 个 USB 接口,HDMI 接口,LCD 接口,音频输入/输出,集成 SD 卡接口,集成 2 个 CAN 接口,集成 RTC 计时功能。可以外扩 WIFI 模块。2K 龙芯派可以广泛应用于信息安 全、电力、轨道交通、工业控制、信号处理、数据通信、信息教育等领域。

    主要的优势在于外设扩展丰富,64位,并且是国产自主。

    在操作系统上,目前支持debian系统比较完善,所以现在满负荷,不接任何外设的情况下运行debian系统查看功耗。

    实测下来,稳定运行时,电流在1.5A~1.6A左右。该芯片发热比较厉害,所以需要加散热片。

    另外手上还有一个龙芯派,但是由于不是USB供电,暂时没法得出功耗情况,但是基本上应该和龙芯教育派一样,因为外设一致。

    当前龙芯派的的使用,还是要用外部的供电器供电,比如手机充电器等等,用电脑的usb供电根本跑步不起来。所以这个板子的功耗在嵌入式领域是比较大的。另外CPU温度也比较高,夏天没有风扇的情况下,有点烫手。

    3.树莓派2b的功耗情况

    树莓派2采用4核Broadcom BCM2836 (ARMv7-A)芯片,双核VideoCore IV GPU和1GB内存。主频为900MHz。

    系统运行Raspberry Pi OS

    系统上电运行最大300ma左右。

    稳定电流220ma。

    4.树莓派3b+的功耗情况

    树莓派3b+是4核 Broadcom BCM2837 (ARMv8-A) 1.2GHz,双核VideoCore IV GPU,1GB内存。

    其优势在于64位,架构是arm a53,是armv8架构。

    系统运行Raspberry Pi OS。当前不接任何外设

    对于最高电流情况:

    正常运行稳定时的电流:

    5.树莓派4b的功耗情况

    树莓派4B的核心处理器为博通BCM2711(四核1.5GHz,Cortex A72架构,树莓派3是四核A53)。LPDDR4内存,由5V/3A USB-C供电或GPIO 5V。

    系统运行Raspberry Pi OS。当前不接外设。

    运行时功耗的情况:

    最高功耗基本上在600ma左右。

    平均功耗在500ma左右。

    6.树莓派pico功耗情况

    树莓派pico是双核 Arm Cortex-M0 + @ 133MHz, 芯片内置 264KB SRAM 和 2MB 的板载闪存。

    这个是树莓派定位的一款轻量级设备的板子,具体的产品定位不明确,因为没有外设,也没有射频。只有一个mcu。

    当前运行系统自带的出厂程序,

    其功耗测试

    基本稳定在8ma左右。根据芯片介绍,如果做超低功耗应该在15~16ua,这里没做实测。

    7.总结

    从上述测试结果来看,树莓派2b、3b+、4b差别微小,龙芯派耗电太多,发热也严重,树莓派pico功耗低,是真正的低功耗模块。

    总体上来说,龙芯选手的功耗作为单板计算机来说,表现比较差,而树莓派则发挥稳定。板子的功耗控制差距还是有一些的。

    1.国产替代摸不着门儿?快来回看兆易创新直播课!

    2.开源的RISC-V能否成为中国“缺芯”的解药?

    3.树莓派Pico:仅4美元的MCU

    4.MCU支持AI功能的多种原因~

    5.2020年,我学习到的20条软件工程准则~

    6.状态机思路在嵌入式开发中的应用~

    免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

    展开全文
  • 树莓派广播低功耗蓝牙 项目地址:BleAdvertisement 一个Linux下作为中心节点广播低功耗蓝牙的库。 可以在Raspberry Pi上使用 实现功能 广播蓝牙 设置蓝牙名称 监听连接和断开 添加 多个Service,Characteristic,...

    树莓派广播低功耗蓝牙

    项目地址:BleAdvertisement
    一个Linux下作为中心节点广播低功耗蓝牙的库。

    可以在Raspberry Pi上使用

    实现功能

    • 广播蓝牙
    • 设置蓝牙名称
    • 监听连接和断开
    • 添加 多个Service,Characteristic,Descriptor
    • 支持read,write,notify
    • 支持长数据读取写入

    待实现

    • 扫描别的蓝牙设备
    • 连接别的蓝牙设备
    • indicate ,write no response 的兼容

    依赖

    #ubuntu/debian
    
    sudo apt install -y dbus-java-bin bluez bluetooth libbluetooth-dev libudev-dev
    
    

    使用

    初始化

    
    BusConnector.init();
    
    
    

    获取DBUS连接

    
    BusConnector connector = BusConnector.getInstance();
    
    

    获取蓝牙适配器

    List<String> adapters = connector.findAdapters();
    
    //这个列表是dbuspath的列表,使用connector.makeModel(),生成适配器示例
    
    BleAdapter adapter = connector.makeModel(BleAdapter.class,adapters.get(0));
    

    创建服务和特征

    new AdvertiseBuilder(adapter,"/bttest")
                    .addService(new ServiceBuilder(SERVICE_UUID1)
                            .setPrimary(true)
                            .addCharacteristic(new CharacteristicBuilder(CHARACTERISTIC_UUID1)
                                    .setReadDataHandler((characteristic, options) -> "hello".getBytes())
                                    .setWriteDataHandler((characteristic, value, options) -> {
                                        System.out.println("Write:" + Hexdump.toHex(value));
                                    })
                                    .setNotifyHandler(notify -> {
                                        System.out.println("NotifyChange:" + notify);
                                    })
                            )
                            .addCharacteristic(new CharacteristicBuilder(CHARACTERISTIC_UUID2)
                                    .setReadDataHandler((characteristic, options) -> "aa".getBytes())
                            )
    
                    )
    
                    .addService(new ServiceBuilder(SERVICE_UUID2)
                            .addCharacteristic(new CharacteristicBuilder(CHARACTERISTIC_UUID2)
                                    .setReadDataHandler((characteristic, options) -> "aa".getBytes())
                            )
                            .setPrimary(true)
                    )
                    .setConnectionListener(new ConnectionListener() {
                        @Override
                        public void onDeviceConnected(Device1 dev, Map<String, Variant<?>> options) {
                            System.out.println("onDeviceConnected");
                            BleDevice bleDevice = null;
                            try {
                                bleDevice = connector.makeModel(BleDevice.class, dev);
    
    
                            } catch (DBusException e) {
                                e.printStackTrace();
                            }
                        }
    
                        @Override
                        public void onDeviceDisconnected(Device1 dev) {
                            System.out.println("onDeviceDisconnected");
                        }
                    })
                    .setAdvertiseType(AdvertiseType.BROADCAST)
                    .setAdvertiseBleName("adddd")
                    .build();
    
    

    设置蓝牙信息

    
    adapter.setPowered(true);
    adapter.setDiscoverable(true);
    adapter.setDiscoverableTimeout(0);
    
    

    设置广播名称,类型,连接监听(也可以在Builder设置)

    
    advertiser.setAdvertiseName();
    advertiser.setAdvertiseType();
    advertiser.setConnectionListener();
    
    connector.findDevices()
    

    广播开始和停止

    //广播开始前可以先断开已经连接的设备。
    advertiser.disconnectAllDevices();
    
    advertiser.startAdvertise();
    
    advertiser.stopAdvertise();
    
    

    其他

    //获取已经连接的设备 返回的是dbuspath,
    //使用connector.makeModel(),生成连接设备实例
    connector.findDevices();
    
    //断开指定设备,使用这两个都行
    
    bleDevice.disconnect();
    
    bleAdapter.removeDevice();
    
    
    展开全文
  • 功耗蓝牙通过广播信道来发现其他设备,从机设备通过广播信道发送广播数据包,主机设备通过扫描可以接收到范围内所有广播数据包,然后对感兴趣设备发送扫描请求报文,从机接收到该报文后可选择是否向主机发送扫描...

    Linux BLE编程——广播、扫描

    一.广播与扫描

    低功耗蓝牙通过广播信道来发现其他设备,从机设备通过广播信道发送广播数据包,主机设备通过扫描可以接收到范围内所有广播数据包,然后对感兴趣设备发送扫描请求报文,从机接收到该报文后可选择是否向主机发送扫描响应报文(包含自身ID、BAADDR等信息,可设置)。
    广播能够发送两种数据:广播数据和扫描响应数据。主机在发送广播数据是需要设置广播参数,配置参数包括:
    1.最小间隔时间,范围20ms—10.24s。
    2.最大间隔时间,范围20ms—10.24s。
    3.广播类型,广播类型一共四种:

    1. 可连接的非定向广播,表示设备可以接受任何设备的连接请求。

    2. 可连接的定向广播,表示仅仅能接受某一特定设备连接请求。

    3. 可扫描的非定向广播,发送广播数据和扫描响应数据,用来激活 扫描者。

    4. 不可连接的非定向广播,仅仅发送广播数据。

    4 .地址类型,随机地址或固定地址
    5. 对端设备地址类型,可选项,定向广播需要设置,
    6. 对端设备地址,同上。
    7. 信道映射。使用那三个广播信道。
    8. 过滤政策,用来过滤不符合规则的广播数据包,过滤政策如下:
    1. 接收任何设备的扫描请求和连接请求。
    2. 仅仅接收白名单中设备的扫描请求,但接收任何设备的连接请求
    3. 接收任何设备的扫描请求,但仅接受白名单中设备的连接请求。
    4. 仅接受白名单中特定设备的扫描请求和连接请求。
    扫描分为被动扫描和主动扫描,接收对端设备的广播数据包,可以使用被动扫描,主动扫描不仅可以捕获广播数据包,还能捕获扫描响应数据包。扫描需要配置的参数如下:
    1.扫描类型,主动扫描或被动扫描。
    2.扫描间隔,多长时间扫描一次。
    3.扫描窗口,每次扫描持续多久。
    4.个人地址类型,主动扫描才需配置,固定地址或随机地址
    5.扫描策略,接收任何广播数据包或仅接收白名单设备广播数据包。

    主机通过HCI层向控制器发送发送HCI命令数据包是蓝牙进行广播。

    二、HCI协议概述

       主机控制接口(HCI)是主机与控制器之间的接口,主要完成两个任务:一个是发送命令给控制器和接收来自控制器的事件,另一个是发送和接收来自对端设备的数据。HCI屏蔽了不同控制器之间的差异,规定一套统一的数据格式来与控制器进行交互,其有4种不同数据包格式:命令数据包(HCI Command)、事件数据包(Event)、数据包(ACL data)、流控。
    

    1.命令数据包
    主机通过向控制器发送命令数据包来执行命令。这些命令通常用于适配控制器状态,或者请求适配器完成某种操作。HCI命令数据包格式如下:

    图1 HCI命令数据包格式
    OpCode:操作码,用来确认发送的命令,由10bit的OCF(OpCode命令域)和6bit的OGF(OpCode组域)组成。OGF确定了所发送命令的组域,OCF确定了该组域中一个具体命令。低功耗蓝牙命令的组域为0x08。
    Parameter Total Length:参数总长度。
    Parameter:参数。每一个命令都会带有一些参数。
    2.事件数据包
    事件数据包是由控制器发往主机,主要用于反馈输入命令的结果和发送信息。其格式如下

    Event Code:事件码。用来区分不同事件。
    Parameter Length表示所带参数的长度,以字节数为单位,随后就是所带的参数列表。

    三、HCI编程
    1)int hci_open_dev(int dev_id) 函数

    该函数用于创建一个HCI socket,并与指定的蓝牙设备ID绑定,这样就这个HCI socket来进行控制器与主机的数据传输。

    2)int hci_close_dev(int dd)
    关闭一个HCI socket
    3)int hci_send_req(int dd, struct hci_request *r, int to)
    该函数用于向控制器发送HCI命令数据包。参数:
    dd:hci_open_dev()函数创建的HCI socket。
    r :hci命令数据包。其数据结构如下:

    to :超时时间,单位:milliseconds
    4)int hci_get_route(bdaddr_t *bdaddr)
    根据物理地址得出设备ID ,输入参数为NULL时默认返回第一个可用设备的设备ID.
    5)int ba2str(const bdaddr_t *ba, char *str)
    将物理地址转换为字符串.
    6)int str2ba(const char *str, bdaddr_t *ba)
    将字符串转换为bdaddr_t.
    7)int hci_le_set_scan_parameters(int dd, uint8_t type,
    uint16_t interval, uint16_t window,
    uint8_t own_type, uint8_t filter, int to)
    用于配置扫描参数.
    8)int hci_le_set_scan_enable(int dd, uint8_t enable, uint8_t filter_dup, int to)
    用于向控制器发送扫描指令.

    代码实例

    #include <stdio.h>
    #include <errno.h>
    #include <ctype.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/param.h>
    #include <sys/socket.h>
    #include <signal.h>
    
    #include "bluetooth/bluetooth.h"
    #include "bluetooth/hci.h"
    #include "bluetooth/hci_lib.h"
    
    
    #ifndef MIN
    #define MIN(a, b) ((a) < (b) ? (a) : (b))
    #endif
    
    /* Unofficial value, might still change */
    #define LE_LINK		0x80
    
    #define FLAGS_AD_TYPE 0x01
    #define FLAGS_LIMITED_MODE_BIT 0x01
    #define FLAGS_GENERAL_MODE_BIT 0x02
    
    #define EIR_NAME_SHORT              0x08  /* shortened local name */
    #define EIR_NAME_COMPLETE           0x09  /* complete local name */
    
    
    static volatile int signal_received = 0;
    static void sigint_handler(int sig) 
    {
           signal_received = sig; 
    }
    static void eir_parse_name(uint8_t *eir, size_t eir_len, char *buf, size_t buf_len)
    {
    	size_t offset;
    
    	offset = 0;
    	while (offset < eir_len) {
    		uint8_t field_len = eir[0];
    		size_t name_len;
    
    		/* Check for the end of EIR */
    		if (field_len == 0)
    			break;
    
    		if (offset + field_len > eir_len)
    			goto failed;
    
    		switch (eir[1]) {
    			case EIR_NAME_SHORT:
    			case EIR_NAME_COMPLETE:
    				name_len = field_len - 1; 
    				if (name_len > buf_len)
    					goto failed;
    
    				memcpy(buf, &eir[2], name_len);
    				return;
    		}    
    
    		offset += field_len + 1; 
    		eir += field_len + 1; 
    	}    
    
    failed:
    	snprintf(buf, buf_len, "(unknown)");
    }
    
    static int print_advertising_devices(int dd)
    {
    	unsigned char buf[HCI_MAX_EVENT_SIZE], *ptr;
    	struct hci_filter nf, of;
    	struct sigaction sa;
    	socklen_t olen;
    	int len;
    
    	olen = sizeof(of);
    	if (getsockopt(dd, SOL_HCI, HCI_FILTER, &of, &olen) < 0) {
    		printf("Could not get socket options\n");
    		return -1;
    	}
    
    	hci_filter_clear(&nf);
    	hci_filter_set_ptype(HCI_EVENT_PKT, &nf);       //hci数据包类型,此处设置为事件数据包
    	hci_filter_set_event(EVT_LE_META_EVENT, &nf);   //hci事件数据包中具体事件类型。EVT_LE_META_EVENT为事件码。
    
    	if (setsockopt(dd, SOL_HCI, HCI_FILTER, &nf, sizeof(nf)) < 0) {
    		printf("Could not set socket options\n");
    		return -1;
    	}
    
    	memset(&sa, 0, sizeof(sa));
    	sa.sa_flags = SA_NOCLDSTOP;
    	sa.sa_handler = sigint_handler;
    	sigaction(SIGINT, &sa, NULL);
    
    	while (1) {
    		evt_le_meta_event *meta;
    		le_advertising_info *info;
    		char addr[18];
    
    		while ((len = read(dd, buf, sizeof(buf))) < 0) {
    			if (errno == EINTR && signal_received == SIGINT) {
    				len = 0;
    				goto done;
    			}
    
    			if (errno == EAGAIN || errno == EINTR)
    				continue;
    			goto done;
    		}
    
    		ptr = buf + (1 + HCI_EVENT_HDR_SIZE);
    		len -= (1 + HCI_EVENT_HDR_SIZE);
    
    		meta = (void *) ptr;
    
    		if (meta->subevent != 0x02)
    			goto done;
    
    		/* Ignoring multiple reports */
    		info = (le_advertising_info *) (meta->data + 1);
    	       	{
    			char name[30];
    
    			memset(name, 0, sizeof(name));
    
    			ba2str(&info->bdaddr, addr);
    			eir_parse_name(info->data, info->length,
    							name, sizeof(name) - 1);
    
    			printf("%s %s\n", addr, name);
    		}
    	}
    
    done:
    	setsockopt(dd, SOL_HCI, HCI_FILTER, &of, sizeof(of));
    
    	if (len < 0)
    		return -1;
    
    	return 0;
    }
    /*  
     *  主机发送广播数据用于扫描设备是需要hci_le_set_scan_parameters函数来设置广播参数:
     *  scan_type:扫描分为主动扫描(0x01)和被动扫描(0x00)
     *             被动扫描:接收对端设备的广播数据包。
     *             主动扫描:不仅可以捕获广播数据包,还能捕获扫描响应包
     *  own_type:地址类型,固定设备地址或随机地址·
     *  filter_policy:扫描策略,接收任何广播数据包(0x00)还是仅接收白名单设备的广播数据包(0x01)
     *  intervl:扫描间隔,单位1.25ms,扫描频率
     *  window:扫描窗口,扫描时间长短。
     *  filter_dup:  是(0x00)否(0x01)显示重复扫描到的设备信息。
     * */
    int lescan(int dev_id, int argc, char **argv)
    {
    	int     err, opt, dd;
    	uint8_t own_type = LE_PUBLIC_ADDRESS;
    	uint8_t scan_type = 0x00;
    	uint8_t filter_policy = 0x00;
    	uint16_t interval = htobs(0x0010);
    	uint16_t window = htobs(0x0010);
    	uint8_t filter_dup = 0x01;
    
    	dd = hci_open_dev(dev_id);
    	if (dd < 0) {
    		perror("Could not open device");
    		exit(1);
    	}
         /*扫描参数配置*/
    	err = hci_le_set_scan_parameters(dd, scan_type, interval, window,
    						own_type, filter_policy, 10000);
    	if (err < 0) {
    		perror("Set scan parameters failed");
    		exit(1);
    	}
         /*发送指令包,使能扫描*/
    	err = hci_le_set_scan_enable(dd, 0x01, filter_dup, 10000);
    	if (err < 0) {
    		perror("Enable scan failed");
    		exit(1);
    	}
    
    	printf("LE Scan ...\n");
    
    	err = print_advertising_devices(dd);
    	if (err < 0) {
    		perror("Could not receive advertising events");
    		exit(1);
    	}
    
    	err = hci_le_set_scan_enable(dd, 0x00, filter_dup, 10000);
    	if (err < 0) {
    		perror("Disable scan failed");
    		exit(1);
    	}
    
    	hci_close_dev(dd);
    }
    
    
    
    
    展开全文
  • 树莓派上使用低功耗蓝牙 ble功能

    千次阅读 2020-03-27 15:46:27
    1、树莓派蓝牙简介 树莓派继承了蓝牙、wifi和网卡,不同树莓派的芯片类型 型号 蓝牙芯片 蓝牙版本 Raspberry Pi 3 Model A+ Broadcom BCM43438 4.1 Raspberry Pi 3 Model B Broadcom BCM43438 ...
  • 基于使用 Semtech SX1302与树莓派 Zero之低功耗Gateway方案
  • 树莓派功耗低,用来做离线下载器最好不过了,而且由于百度云限速,下载东西速度慢,整夜开着电脑下载文件比较费电,所以我想能不能用树莓派做百度云的离线下载机,这样比较省电,经过一番搜索,果然发现已经有人造好...
  • 树莓派打造成全能路由器

    万次阅读 2019-03-09 16:36:55
    因为迷上了智能路由器,但是好一点的智能路由器价格昂贵,然后本学期在学嵌入式开发,考虑到树莓派功耗低,而且价格便宜(咸鱼买二手的),所以我决定把我自己买的树莓派2B打造为一款全能路由器,话不多说,开始吧。...
  • 基于使用 Semtech SX1302与树莓派 Zero之低功耗Gateway方案.zip
  • 树莓派超频后性能与功耗的研究

    千次阅读 2016-08-10 15:42:40
    树莓派2代B型。 测功率用淘宝37块买的电力检测仪。 电源用我买Nubia Z9 Max时配的,5V 1.5A。 修改config.txt的arm_freq来超频。 把scaling_governor里的powersave改成performance来转换到最高频率。 使用...
  • 虽然你可以使用手机和应用程序来关注所有事情,但在家中放置一个大型低功耗显示器以显示家人的日程不是更好吗?电子墨水日程表刚好满足! E Ink calendar 硬件 这个项目是作为假日项目开始,因此我试着尽可能多的...
  • 靓照:功耗测试测试工具:USB数码管3位(4位)测试树莓派3b+ 条件:送的充电器,初始桌面,没有连接wifi电压:5.13v电流:0.35A条件:送的充电器,初始桌面,连接wifi,...
  • 树莓派-硬件和功能-功耗

    千次阅读 2017-11-15 20:45:48
    原文地址:http://nicekwell.net/blog/20171115/shu-mei-pai-ying-jian-he-gong-neng-gong-hao.html 3代B型: 几乎0%使用 270mA 单核100% ...360mA,每隔几秒跳一次510mA
  • 从这两张图来看,树莓派3B+的功耗明显最高,但是具体高多少,大家看过图之后应该也明白了。 评价: 把3B+与3B比较,你将发现前者比后者要多用170mA的电流,即使在空闲状态。这完全是拜新的千兆以太网所赐。如果平时...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 210
精华内容 84
关键字:

树莓派功耗