前言

原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正。

本文使用Markdown写成,为获得更好的阅读体验和正常的链接、图片显示,请访问我的博客原文:

http://www.cnblogs.com/sjqlwy/p/edison_autosketch.html


最近闲鱼入手了一个微软不知道什么的IoT开发箱,里面有个继电器小灯,准备用EDISON测试一下好坏,于是打开Arduino配合手机APP——Blynk,很快烧录完毕测试OK,但是拔掉MicroUSB新上电之后,发现程序没反应了,搜索一下发现Arduino Sketch是不会自动启动的,那么如何解决呢?

1. Edison烧录程序

【官方示意图】右侧三个usb接口,从上到下:a. 与中间的MicroUSB接口通过开关选择,同时只能使用一个,基本的USB接口;b. USB-OTG接口,通过USB Gadget驱动实现虚拟串口和Mass Storage存储功能(这个存储一直出问题,暂时没解决,欢迎指教),与主机连接可以烧录Arduino Sketch;c. 系统串口,进行调试和底层开发。

使用Blynk实现,手机控制台灯继电器,之前写过详细介绍,代码很简单:

#include <WiFi.h>
#include <BlynkSimpleIntelEdisonWiFi.h> // You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken"; // Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword"; void setup()
{
Blynk.begin(auth, ssid, pass);
// Or specify server using one of those commands:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
//Blynk.begin(auth, ssid, pass, server_ip, port);
} void loop()
{
Blynk.run();
}

访问官方服务器不稳定的话也可以自己搭建服务器。

2. 在Edison上自动启动 Arduino Sketch

2.1 手动启动Sketch

重新上电之后,Sketch是不会自动运行的,想要手动启动的话,使用如下代码:

/sketch/sketch.elf /dev/ttyGS0 /dev/ttyGS0

2.2 开机自动启动Sketch

如果不想那么麻烦还要SSH登录上去手动运行命令,我们可以让Sketch每次自动运行。参考Intel开发者中心的博客:Procedure to Autostart the Arduino* Sketch on an Intel® Edison board中文版),可以实现,但是新版的Edison已经使用systemd取代System V来管理系统启动了,我们新建一个服务:

touch /lib/systemd/system/autosketch.service
cat << _EOF_ >> /lib/systemd/system/autosketch.service
[Unit]
Description=Edison Arduino Sketch Autoloader
[Service]
ExecStart=/sketch/sketch.elf /dev/ttyGS0 /dev/ttyGS0
[Install]
WantedBy=basic.target
_EOF_
# 注意程序必须使用绝对路径

试试能不能正常运行:

systemctl start autosketch && systemctl status autosketch

如果没有报错并显示Active说明程序已经正确启动了,此时可以观察测试Sketch是否正确运行。

设置该服务开机自动启动:

systemctl enable autosketch

重启验证,完成。

进一步阅读

在 Edison 上自动启动 Arduino Sketch的更多相关文章

  1. 树莓派上搭建arduino开发环境

    -------------还是博客园上面的格式看这舒服,不去新浪了------------- 为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰. 树莓派使用SSH时没有图形界面 ...

  2. 树莓派上搭建arduino命令行开发环境

    -------------还是博客园上面的格式看这舒服,不去新浪了------------- 为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰. 树莓派使用SSH时没有图形界面 ...

  3. 在Windows上安装Arduino的步骤

    在64位Windows 10机器上测试 Windows Installer从arduino.cc下载并安装最新的Arduino IDE 从git-scm.com下载并安装Git 开始Git GUI并运 ...

  4. Win10 上 安装Arduino 驱动 和 Arduino IDE 1.6.9

    Win10 安装Arduino IDE软件 和 驱动 在Win10 上安装最新的Arduino IDE (1.6.9安装包)很简单,并且不行要手动安装Arduino板子的驱动,整个安装过程都当前的简单 ...

  5. Arduino命令行编译 树莓派连接Arduino 电脑上编译Arduino代码后 通过树莓派烧写到Arduino上

    //本教程针对UNO 1.在file->preferences中找到preferences.txt文件 2:用记事本打开preferences.txt,选择hex文件存放的路径,在最后行加入 b ...

  6. Edison与Arduino通过USB对接通信

    虽然Edison本身就装在一块Arduino扩展板上,但当要接的传感器太多了的时候一个扩展板也不够用了.因此需要再用一Arduino板扩展功能.而两者需要通信才能达到一个整体的效果,因此这里介绍如何用 ...

  7. Arduino上传数据至贝壳物联并与FPGA进行交互

    本篇实现Arduino与FPGA交互,当然也没有什么新的协议,还是基于串口通讯,现在学一个串口通信基本上可以驱动大多数模块了,而且和各种单片机无缝数据交互,Arduino由于其强大的库函数支持,在实现 ...

  8. Arduino上“Collect2.exe: error: ld returned 5 exit status”错误的解决方法

    1.运行环境 Windows xp; Arduino1.6.11 IDE. 2.问题 在Arduino编译时,经常出现如下的错误: collect2.exe: error: ld returned 5 ...

  9. 了解 ARDUINO 101* 平台

    原文链接 简介 作为一名物联网 (IoT) 开发人员,您需要根据项目的不同需求,选择最适合的平台来构建应用. 了解不同平台的功能至关重要. 本文第一部分比较了 Arduino 101 平台和 Ardu ...

随机推荐

  1. python基础——14(shelve/shutil/random/logging模块/标准流)

    一.标准流 1.1.标准输入流 res = sys.stdin.read(3) 可以设置读取的字节数 print(res) res = sys.stdin.readline() print(res) ...

  2. java 中 image 和 byte[] 相互转换

      java 中 image 和 byte[] 相互转换可恶的…………其实也挺好的 只是把好不容易写出来的东西记下来,怕忘了…… 下面,我来介绍一个简单的 byte[] to image, 我们只需要 ...

  3. 学习javascript中的事件——事件流

    事件概念: HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件onclick.页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件.想要知道 ...

  4. 关于hadoop学习的思考(一) —— 小的知识点的总结

    一.对于CDH的小总结: CDH:是Cloudera公司在Apache开源项目hadoop的基础上发型的,共有五个版本前两个已不再更新,最经的两个分别是CDH4(基于hadoop2.0.0版本演化而来 ...

  5. Matplotlib基本图形之折线图

    Matplotlib基本图形之折线图折线图特点 折线图是用折线将各数据连起来组成的图形常用来观察数据随时间变化的趋势例如:股票价格,温度变化,等等 示例代码: import os import tim ...

  6. nginx 的日志切割

    nginx的日志切割脚本 说明:在nginx的配置文件中nginx.conf并没有定义access_log的位置, 在/usr/local/nginx/conf/vhost/下的配置文件中定义了acc ...

  7. iRule Event Order - HTTPSv7

    v

  8. (转)iOS字体

    一.iOS原生字体展示 在 label中选择字体的font,并把font由system改成custom后,就能在family中看到72种特殊字体.这些里面就有很炫的字体,但 是全部是只针对英文数字,对 ...

  9. 好未来谢华亮:AI 在教育行业中的应用

    11 月 23 日,在以「AI 产业技术的渗透与融合」为主题的 NIUDAY 北京站中,好未来 SEG 智慧教育事业部技术总监谢华亮为大家带来了关于「AI 在教育行业中的应用」的分享. 本文是对分享内 ...

  10. 基于SEDA的异步框架设计与实现

    基于SEDA的异步框架设计与实现 二.为什么使用SEDA 目前,面对并发环境,主流互联网服务器编程模型有两种:多线程模型以及事件驱动模型.但是这两个模型都不足以解决这个问题.我们来首先看一下这两种编程 ...