什么是Sparrow?
Sparrow是一款到手即玩且功能强大的控制器。它搭载一颗ATmega32U4主控芯片,可直接用micro USB烧录程序,同时集成了WS2812灯珠、电位器角度传器、5V升压模块、锂电池充放电保护模块、2路逻辑自锁电源开关。此外它还具有11个数口,4个PWM,3个模拟输入,一组I2C端口,一组UART串口,1组电源端口,3种供电方式,满足你对项目的更多可玩性。沉金工艺不仅让整块板子美观精致,也使IO口应用在可穿戴项目时接触良好,连接可靠。Sparrow高度的集成化,让你不再需要太多繁琐复杂耗时的焊接,提高项目的进度和效率,真正做到了“麻雀虽小五脏俱全”。
综上所述,由于Sparrow控制器高度集成了各种常用的模块元件及电路,所以不需要繁琐复杂耗时的焊接,到手即玩轻松打造各种创客项目,非常适合没有焊接经验或想缩短项目开发时间及创客教育的人使用。本次首先教大家利用Sparrow控制器轻松造一盏无线充电的智能灯。
目前DF社区已经预定了Sparrow控制器的人员如下,产品量产后将优先发货!
用户名 | 社区ID | 数量 | pATAq | 725344 | 1 | jarvis_chan | 722936 | 1 | Rockets | 7 | 5 | gray6666 | 71520 | 1 | Mach0226 | 812583 | 1 | | | | | | |
材料清单:
无线充电模块 5V/300mA
Sparrow控制器(试产阶段,可留言预定!)
3.7v锂电池
3D打印件(模型在文章结尾下载)
制作步骤
1.首先将3.7v锂电池插在Sparrow控制板“po”端口上,再将无线充电接受线圈焊接在p1端上,注意区分正极(+)负极(-)。
2.将无线充电接受线圈安装在打印底座安装槽里,可以用双面胶固定。
3.放入3.7v锂电池,装入Sparrow控制板,并用3颗1.8x6mm的螺丝固定,其实只要找直径小于2mm长度低于8mm的螺丝都可以固定,这类小螺丝比较好找各种玩具电子数码产品上都有,我这里使用了微型舵机转角上的小号螺丝固定。
4.装入灯罩,灯罩采用卡扣设计,只要将模型3D打印出来用锉刀将卡扣边缘处打磨一下,对准轻轻按压将灯罩与底座安装完成。
5.最后用usb线将智能灯与电脑连接,板卡选择:Arduino leonardo,将智能灯源码烧录下载到Sparrow控制器里。
#include <Adafruit_NeoPixel.h>
#define ledPIN 10
#define potPIN 1
int val = 0;
uint8_t r, g, b;
// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(13, ledPIN, NEO_GRB + NEO_KHZ800);
void setup() {
//r=255;
//g=0;
//b=0;
pinMode(ledPIN, OUTPUT); // declare the ledPin as an OUTPUT
strip.begin();
strip.setBrightness(255); //adjust brightness here
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
//rainbowRGB(10);
val = analogRead(potPIN); // read the value from the sensor
/** if (val<1) {
colorWipe(strip.Color(255, 0, 0), 20); // Red
} else {
if (val>1023) {
colorWipe(strip.Color(0, 255, 0), 50); // Green
}
else {colorWipe(strip.Color(0, 0, 255), 10); // Blue}
}
}**/
colorVal(val,10);
/* if (val<50) {
colorWipe(strip.Color(255, 0, 0), 10); // Red
}
else {
colorWipe(strip.Color(0, 0, 255), 10); // Blue
}*/
}
void colorVal(int v, uint8_t wait) {
uint8_t r=0, g=0, b=0;
if ((v>=0) && (v<256))
{r=255;g=v;b=0;}
if ((v>256) && (v<512))
{r=512-v;g=255;b=0;}
if ((v>512) && (v<768))
{r=0;g=255;b=v-512;}
if ((v>768) && (v<=1024))
{r=0;g=1024-v;b=255;}
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, r, g, b);
strip.show();
delay(wait);
}
}
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
void rainbowRGB(uint8_t wait) {
uint16_t i;
for(i=0; i<strip.numPixels(); i++) {
nextRGB();
strip.setPixelColor(i, r, g, b);
}
strip.show();
delay(wait);
}
void nextRGB() {
if ( r == 255 && g < 255 && b == 0 ) { g++; }
if ( g == 255 && r > 0 && b == 0 ) { r--; }
if ( g == 255 && b < 255 && r == 0 ) { b++; }
if ( b == 255 && g > 0 && r == 0 ) { g--; }
if ( b == 255 && r < 255 && g == 0 ) { r++; }
if ( r == 255 && b > 0 && g == 0 ) { b--; }
}
6.可通过USB电源插口和无线充电两种方式充电,正在给电池充电时电位器附近的红色LED灯“亮”,电池充满后绿色LED灯“亮”。
|
-
-
3D模型.zip
324.19 KB, 阅读权限: 10, 下载次数: 110
资料
|
|
|
|
|