为运行中的M3热插OLED
M3已经稳定运行很久了,不想因为装个屏幕断电,冒险进行OLED热插拔操作,友情提示:热插拔还是有风险的。
M3已经稳定运行很久了,不想因为装个屏幕断电,冒险进行OLED热插拔操作,友情提示:热插拔还是有风险的。
草稿代码,达到预期效果,有时间优化吧
WiFiServer server(80);
int ioON = 12;
int ioOFF = 14;
int ioW = 2;
int ioY = 15;
void setup() {
Serial.begin(115200);
delay(10);
// prepare GPIO2
pinMode(ioON, OUTPUT);
digitalWrite(ioON, 1);
pinMode(ioOFF, OUTPUT);
digitalWrite(ioOFF, 1);
pinMode(ioW, INPUT);
pinMode(ioY, INPUT);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.println(WiFi.localIP());
}
灯的部分准备好后,就要准备控制部分了,本次选用了ESP8266,由于很久没有弄了,所以要温习一下,不知道GPIO15的绿灯为什么一直亮,先不管了,从blink开始,控制GPIO12号的红灯闪烁,不要忘了条线,有些板子可以自动下程序,有些就要手动按下boot再加电才可以,好啦,上程序。(LOW亮HIGH灭,别问我怎么发现的)
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(5000); // wait for a second
}
小撸说隔壁有特价的吸顶灯卖,只要3块还包邮,再去的时候已经涨到6块5了,不过也很核算,买来一个改造玩.
这个灯除了螺丝扎手外还是听好玩的,说是三色灯,不过可别以为是RGB,分为冷色(纯白)、暖色(黄白)和双色(一起亮),是这三种颜色,靠反复开关变换“颜色”,经测试记忆时效大概也就5秒,应该是通过电容实现的。
仅仅是一个开始,也仅仅能点灯,算作一种轻量级库的尝试吧
https://github.com/bpiq/MikuPi
期间参考了很多前辈的资料,首先是Gordon's WiringPi,然后是sinovoip's BPI-WiringPi和tjCFeng's ClassA20等
要写一个轻量级的库看似简单,但对于一个没有linux和c基础的MikuQ来说,困难重重
1、要判断板卡的型号,目前也只能通过数内核的办法粗分BPI-M2+和BPI-M3
2、学习如何写动态库和如何安装,参考wiringPi
3、学习写makefile编译和安装,勉强通过还不会写build脚本
4、简单的gpio控制,参考cubieboard
5、gpio映射,结果发现GPIO L不受控,后来参考BPI-WiringPi
6、学用github,暂时还不太会写markdown
7、定义Arduino的结构和IO
8、其它各种c的问题,找不到头文件,重复定义,编译错误,and so on
最终算是出来了一个雏形,可以点灯了,结果还被大球抢了先
http://forum.banana-pi.org.cn/thread-1324-1-1.html
安装起来很简单
git clone https://github.com/bpiq/MikuPi.git
cd MikuPi
sudo make
然后就可以运行例子了
cd examples
gcc -Wall -o blink blink.c -lMikuDuino
sudo ./blink
看大球说和Arduino还有区别,继续修改了blink-qubot.c,是不是更像了,这里用到的13是wiringPi定义的13,对应物理21脚,也可以写成D21,这个是MikuDuino的定义,更方便对应。