前言

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

本文使用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. 【windows】【php】【nginx】windows 开机自启动nginx php 及nginx php配置

    #启动php-nginx   start-php-nginx.bat   @ECHO OFFECHO Starting PHP FastCGI...RunHiddenConsole.exe php-c ...

  2. day23 03 组合的例子

    day23 03 组合的例子 一.用到组合的方式,编写一个圆环,并能够计算出它的周长和面积 from math import pi # 从内置函数里面导入pi # 先定义一个圆类 class Circ ...

  3. pyhton链式赋值在可变类型/不可变类型上的区别以及其本质

    关于链式赋值的一些注意点: a=[]b=[]x=y=[]print(a==b) #Trueprint(x==y) #Trueprint(a is b) #Falseprint(x is y) #Tru ...

  4. 我的Python分析成长之路10

    matplot数据可视化基础 制作提供信息的可视化(有时称作绘图)是数据分析中最重要任务之一. 1.图片(画布)与子图 plt.figure :创建一张空白的图片,可以指定图片的大小.像素. figu ...

  5. web开发框架之DRF

    RESTful架构解释: # Representational State Transfer 表现层状态转化 到底什么是RESTFul架构: 如果一个架构符合REST原则,就称它为RESTful架构. ...

  6. Python9-装饰器-day11

    import time def timmer(f): #装饰器函数 def inner(): start = time.time() ret = f() #被装饰的函数 end = time.time ...

  7. 菜鸟的《Linux程序设计》学习—shell script

    1. 认识shell script shell script是利用shell的功能缩写的一个"程序",这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面, ...

  8. 某比赛小记2- 从HTTP请求返回中获得答案

    题目:在A页面登录后,重定向到A页面,然后访问B页面,header中带一指定内容"Content":"2018",然后从response中读取answer的值. ...

  9. Python小课题练习作业

    作业一: 利用*字典*输出目录,可以选择目录进入,可以回退.退出! #conding:utf8 menu = {'北京':{'昌平':{'沙河':{'昌平妇幼',}},'海淀':{'海淀一区':{'海 ...

  10. ubuntu搭建LAMP全教程

    http://jingyan.baidu.com/article/a681b0de36ad683b18434691.html 本经验向你展示如何在ubuntu14.04 环境下搭建apache2 + ...