在Arduino上用Java编程
1.序
2.TotoroVM使用方法
TotoroVM经过一段时间的调试,在Arduino UNO上运行成功,小得瑟一下,把它开源了。欢迎试用拍砖!
项目地址:http://www.oksvn.com/Project/Detail-14993.shtml
svn地址:svn://www.oksvn.com/totorovm/totorovm/trunk
使用方法
1. 在使用环境中准备好java和ant,如需编译cpp代码,则还需要相应的编译环境。
2. 从svn获取代码 svn co svn://www.oksvn.com/totorovm/totorovm/trunk TotoroVM
3. 编译jar包 ant jar.dist
4. 编译并预处理jdk基本类 ant preprocess
* 基本类包括java包的Object, Class, String和System,以及arduino包的Arduino和Serial。
* 现在只实现了里面最基本的功能,如Object.getClass()。其它方法待以后按需添加。
* 由于java编译器限制了不能用户自定义java包下的类,所以项目里的基本类都写在了_totoro_java包下面,在预处理过程中会把class文件中的_totoro_都去除,使它们可以正确取代java的类。
* 预处理的参数可以在etc/tools.properties中配置
5. 编写java代码,代码中可以调用Arduino类中的静态方法,对应了Arduino.h中的对应实现。app目录下有一些测试用的类如:arduino.Main
6. 编译生成cpp代码 ant compile
* 生成的代码包括:
class/ 动态生成代码:每一个java类对应一组.h和.cpp文件;全局方法:class.cpp和class.h;运行环境定义:type.h;对象遍历程序:traverse.cpp,主要供gc使用。
native/ 本地方法代码:包含native方法的类会对应一个_native.h和_native.cpp实现,如果不存在,会自动生成空方法的模板,供用户自己实现cpp方法。
vm/ 系统基础实现:包括heap, stack, gc等
main.cpp 程序入门,自动调用指定类的main方法。
* 编译参数可以在etc/tools.properties中配置
至此,如果没有出错,恭喜你已经获得了和你写的java程序有同样功能的c++代码,接下来你可以用你喜欢的方式把它们编译成执行程序。我使用的是mingw-gcc和avr-gcc,分别可以编译出windows和arduino的执行程序,下次更新将介绍这两个工具的使用方法。
相关推荐
Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS...
基于Arduino的蜂鸣器报警系统.zip基于Arduino的蜂鸣器报警系统.zip基于Arduino的蜂鸣器报警系统.zip基于Arduino的蜂鸣器报警系统.zip基于Arduino的蜂鸣器报警系统.zip基于Arduino的蜂鸣器报警系统.zip基于Arduino的...
基于Arduino的碰撞检测预警系统.zip基于Arduino的碰撞检测预警系统.zip基于Arduino的碰撞检测预警系统.zip基于Arduino的碰撞检测预警系统.zip基于Arduino的碰撞检测预警系统.zip基于Arduino的碰撞检测预警系统.zip...
Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程...
土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细...
- return和goto:从函数返回和无条件跳转,但goto在Arduino中使用较少。 5. 中断处理: - attachInterrupt():为引脚分配中断服务程序。 - detachInterrupt():关闭指定引脚的中断。 - interrupts()和noInterrupts...
Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学...
Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学...闪烁Arduino 学2.LED闪烁Arduino 例程详细教学2.LED闪烁vvvvvvvvv
Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟...
这个压缩包提供了一种方便的方式,使用户能够在Arduino IDE中直接开发和编程STM32F1和STM32F4系列的微控制器。 首先,让我们详细了解一下Arduino。Arduino是一种开源电子原型平台,基于易于使用的硬件和软件。它...
Arduino-Arduino-Queue.h.zip,用于ARDUIO嵌入式项目的通用C 循环队列,Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子制造商的欢迎,Arduino通过开源系统提供了很多灵活性。
Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino ...
在本文中,我们将深入探讨如何下载和安装Arduino驱动程序,这对于使用Arduino开发板进行电子制作和编程至关重要。Arduino是一款开源硬件平台,它允许用户通过简单的编程语言控制各种电子元件,从而实现各种创新项目...
Arduino-hakko_t12.zip,ATMega328烙铁控制器上的Hakko T12数字控制器Fot Hakko T12 Tips基于ATMega328P PU多微控制器(Arduino Uno/Nano),Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子...
本文将深入探讨ArduinoJson.h这个库的使用方法以及它在物联网项目中的重要作用。 一、ArduinoJson库简介 ArduinoJson库是由Benjamin Leonard创建的,它是一个轻量级的JSON解析器和序列化器,专为嵌入式系统设计,...
NULL 博文链接:https://edisonlovecola.iteye.com/blog/1869689
在使用Arduino IDE时,用户首先需要安装相应的驱动程序,如CH340或FTDI驱动,以便电脑识别Arduino板。然后,根据自己的项目需求选择合适的开发板和串口,编写代码后点击"上传"按钮,IDE会自动完成编译和上传的过程。...
Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器...
Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程...
Linux平台搭建vscode+arduino IDE使用的arduino IDE安装包 ...由于新版的Arduino IDE安装包在Linux平台是无法与vscode联合使用的,只能使用这个旧版的1.8,还是建议使用vscode+arduino-cli,具体看我文章。