用platformio编写arduino程序

哈哈,今天浏览arduino.cc官网,找到一个好东东,以后,在ubuntu下用终端编程在也不发愁了。

platformio.org是一个物联网全能的IDE,甚至还贴心的提供了在命令行下编程的版本:platformio CLI

好东西不能独享啊,拿出来给看到这篇文章的童鞋们。

一、安装篇。

platformio是用python开发,所以,要先安装python环境,注意是python2.7版本。

#更新系统
apt update
apt upgrade
#安装gcc编译环境
apt install build-essentia
#安装python及开发包l
apt install python python-all-dev python-setuptools python-wheel
#安装pip及更新到最新版
apt install python-pip
pip install --upgrade pip
#安装PlatFormIO
pip install -U platformio

二、使用前的准备工作。

1、使用前,首先要确定你使用的控制器类型,这里我使用的arduino uno板子。
platformio boards atmelavr
输出:

Platform: atmelavr
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Type                  MCU            Frequency  Flash   RAM    Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------
chiwawa               atmega32u4     16Mhz     28kB    2.5kB  Arduino Industrial 101
leonardo              atmega32u4     16Mhz     28kB    2.5kB  Arduino Leonardo
leonardoeth           atmega32u4     16Mhz     28kB    2.5kB  Arduino Leonardo ETH
lilypadatmega168      atmega168      8Mhz      14kB    1kB    Arduino LilyPad ATmega168
lilypadatmega328      atmega328p     8Mhz      30kB    2kB    Arduino LilyPad ATmega328
LilyPadUSB            atmega32u4     8Mhz      28kB    2.5kB  Arduino LilyPad USB
uno                   atmega328p     16Mhz     31kB    2kB    Arduino Uno
yun                   atmega32u4     16Mhz     28kB    2.5kB  Arduino Yun
yunmini               atmega32u4     16Mhz     28kB    2.5kB  Arduino Yun Mini

通过以上得知,arduino uno的类型是uno,如果用的lilypad的话,根据控制器型号判断为lilypadatmega168 或lilypadatmega328

2、初始化类型为uno的板子:
#在创建工作目录mkdir test
cd test
#执行初始化
platformio init --board uno

三、开始编程。
执行完初始化命令后,系统自动生成1各配置文件和2各目录:

platformio.ini     (为配置文件)

lib      (自动生成的程序库的目录)

src      (存放程序源文件的目录)

现在进入src目录,创建一个以.c或.h或.cpp或.ino等待结尾的文件就可以开始编程了。

四、程序编写注意事项:

程序基本和arduino IDE一致,但是,要在开头写一个头文件(见下)才能通过编译。
#include "Arduino.h"

例如:
#include "Arduino.h"
void setup()
{
    pinMode(LED_BUILTIN,OUTPUT);

}

void loop()
{
    digitalWrite(LED_BUILTIN,HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN,LOW);
    delay(1000);
}

以上为一个完整的程序编码,文件名任意,但应该以.h .c .cpp .ino等系统可以识别的后缀结尾。

五、编译

编写程序完毕后,退回项目的根目录,然后执行下面命令进行编译:

platformio run -e uno

如果想编译后立即上传,执行:

platformio run -e uno -t upload

如果想清理编译过的文件:

platformio run -t clean

6、以上就是基本操作,是不是很好,真佩服老外的编码精神,你刚想到一个念头,已经有人做出原型了,

最后,在推荐一下官网:www.platformio.org

时间: 2024-10-13 04:11:46

用platformio编写arduino程序的相关文章

pcDuino上跑第一个Arduino程序_blink

入手pcDuino有一段时间了,鼓起勇气刷了个官方最新lubuntu系统,开始我的arduino之旅.刚刚调通了第一个基于arduino语言的led闪烁程序,与大家分享.Arduino就这么简单,很好上手. 目标:使接在pcduino上的led灯闪烁 硬件连接:一个led灯+限流电阻,一端接5V,另一端接pcduino上的任一GPIO(0-13) 一.搭建环境 安装官方文档刷最新ubuntu系统,很详细不再细说.其实刷机时接上debug,会有提示安装信息,不用一直盯着TX RX led.下载ht

Qtcreator编写ros程序:无法启动进程"catkin_make" -DCMAKE_BUILD_TYPE=Debug

利用Qtcreator编写ROS程序,你必须先进行相应的配置:在启动qtcreator环境时先把ros环境添加进.(即~/.bashrc文件) 1 版本问题 QT4 与 QT5 sudo    gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop     (qt5       默认安装的路径下) 当打开文件是空时,关闭.按照路径打开文件 cd ~/.local/share/applications/ gedit

2-使用记事本编写JAVA程序

第一步:使用记事本编辑,myProgram.java,源文件后缀名为.java 第二步:编译,javac,编译过后生成.class文件,即字节码文件 第三步:使用解释器,java 详细:新建记事本——更改文件名(包括后缀名,改为.java)——编写程序——编译——解释 测试代码: public class HelloWorld{ public static void main(String[] args){ System.out.println("welcome to imooc!")

编写JAVA程序

一.编写JAVA程序 编写JAVA程序,输出一行文本信息:“Hello world”,选择编辑器eclipse,打开之后编写程序 1 public class Hello{ 2 3 public static void main(String[] args){ 4 System.out.println("Hello world"); 5 } 6 } 行1:开始声明一个类,类名为hello,class是JAVA的关键字,用来定义类,public为访问说明 行3:是JAVA应用程序必须包含

编写一个程序找出100~999之间所有的水仙花数

如果一个3位数等于其各位的立方和,称该数为水仙花数. 如,所以407是一个水仙花数,编写一个程序找出100~999之间所有的水仙花数. 1 #include<stdio.h> 2 #include<stdlib.h> 3 //判断水仙花数,是则返回1 4 int isNarcissus(int n); 5 6 int main() 7 { 8 int i; 9 for(i = 100; i < 1000; i++) 10 if(isNarcissus(i)) 11 print

编写词法分析程序

Note: 这学期修了严厉的Mr.J的编译原理,不定期更新笔记! 欢迎指正! TEST 语言的词法规: 标识符:字母打头,后接任意字母或数字 保留字:标识符的子集,包括:if,else,for,while,do, int,write,read, 无符号整数:由数字组成,但最高位不能为0,允许一位的0, 分界符:(.).;.{.} 运算符:+.-.*./.=.<.>.>=.<=.!=.== 注释符:/* */ 正则表达式: 标识符:        ( a|b|--|z|A|B--|Z

用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控

写在前面 前文:用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 为了方便,这篇文章里的例子均为伪分布式运行,一般来说只要集群配置得当,在伪分布式下能够运行的程序,在真实集群上也不会有什么问题. 为了更好地模拟集群环境,我们可以在mapred-site.xml中增设reducer和mapper的最大数目(默认为2,实际可用数目大约是CPU核数-1). 假设你为Hadoop安装路径添加的环境变量叫$HADOOP_HOME(如果是$HAD

linux中VI编写C程序。。。

在linux中编写C程序时不像编写shell那样开头要#!/bin/bash,但是在C程序中要指定头文件(头文件是只输入输出,宏等,而且要首先声明,也是必须要开始就声明的) 写好C代码后要给C文件赋予可执行权限(chmod  755  xx.c) 然后用gcc编译(方法和shell类似,shell是bash xx.sh   ,    而C是gcc xx.c ,C的程序文件名都是以 .c 结尾 , shell是都是以 .sh 结尾) 以下上实例: [[email protected] ~]# vi

35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n

  35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和: (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n!): (4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现 接口的类. p