How do I control computer mouse with M5StickC Plus? - arduino

I recently purchased the M5StickC Plus and wish to control computer cursor with it. However I'm having trouble compling the program.
Here is the error message when I installed the mouse library:
#include "HID.h"
^~~~~~~
compilation terminated.
Multiple libraries were found for "Mouse.h"
Used: C:\Users\Jerry\OneDrive\Documents\Arduino\libraries\Mouse
Not used: C:\Users\Jerry\AppData\Local\Arduino15\libraries\Mouse
exit status 1
If I uninstall the library it looks like this:
#include "HID.h"
^~~~~~~
compilation terminated.
exit status 1
What seems to be the problem here and how do I solve it?

The M5StickC Plus only provides serial communication via USB. It cannot emulate a USB HID.
You need an MCU that provides a real USB interface to run this example.
But you can implement a bluetooth mouse and keyboard if it's any comfort to you :)

Related

Ardino-Nano-BLE-Sense "Send Data With Sound" Chirp Project Issue

I am having some issues with the Send Data with Sound Project on Arduino. I have my Arduino nano BLE sense, ChirpSDK by Asio Ltd Version 3.4.0 installed, I put in the CHIRP_APP_KEY, CHIRP_APP_SECRET, CHIRP_APP_CONFIG from the chirp website, and I also have the Arduino nano BLE board selected when uploading the code. But for some reason I keep getting this error below:
ChirpColor:22:10: error: chirp_connect.h: No such file or directory
#include "chirp_connect.h"
^~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
chirp_connect.h: No such file or directory
Any help would be very much appreciated, thanks.
The SDK functions have been renamed in the latest release. So connect is replaced with sdk.
With the latest version, you need to
#include "chirp_sdk.h"
See the latest header file for the function declarations - https://github.com/chirp/chirp-arduino/blob/develop/src/chirp_sdk.h

Teensy LC I2S example assembly error

I'm trying to use I2S (not I2C) with the Teensy LC and a SPH0645 digital microphone. The audio library that is included with the Teensyduino (v1.6.7 and ArduinoIDE 1.8.5) code is sufficient for my needs, but I get the following assembler error when I try to compile the Recorder example from the audio library:
/var/folders/4y/x458y3013g5d1xsgl7grxgwr0000gn/T//ccvznZoL.s: Assembler messages:
/var/folders/4y/x458y3013g5d1xsgl7grxgwr0000gn/T//ccvznZoL.s:231: Error: selected processor does not support `smull r0,ip,r3,r5' in Thumb mode
/var/folders/4y/x458y3013g5d1xsgl7grxgwr0000gn/T//ccvznZoL.s:232: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov ip,ip,asl r6'
/var/folders/4y/x458y3013g5d1xsgl7grxgwr0000gn/T//ccvznZoL.s:233: Error: unshifted register required -- `orr r0,ip,r0,lsr r7'
My problem apart from the error is that the message doesn't indicate which file is the culprit. So I was hoping someone maybe has some more experience with this kind of problem ;)

Running Gmp on Stm32f4 discovery board

I discover the stm32f4 discovery board.
For the moment I'm able to use leds, button, and to communicate through serial port.
I'm now trying to use the Gmp library on this board.
I build the arm-none-eabi toolchain following these instructions: https://blog.tan-ce.com/gcc-bare-metal/
I configure Gmp with the following options:
./configure CC=arm-none-eabi-gcc CFLAGS="-nostartfiles --specs=nosys.specs -g" --host=arm-none-eabi --disable-assembly
My project compiles and links without any issue, but
when I try to initialise an mpz_t on the board with the following code:
mpz_t a;
mpz_init_set_str(a, "31", 10);
I fall into the HardFault_Handler (), my arm-none-eabi-gdb gives me:
(gdb) bt
#0 HardFault_Handler () at ./src/stm32f4xx_it.c:34
#1 <signal handler called>
#2 0x08016ade in __gmpn_fft_best_k (n=134358201, sqr=134358201) at mul_fft.c:151
#3 0x0801816e in __gmpn_mul_fft (op=0x80006f5 <HardFault_Handler>, pl=134219497, n=0x8022471 <Reset_Handler>, nl=537001984, m=0x80224b9 <WWDG_IRQHandler>, ml=134358201, k=134358201) at mul_fft.c:870
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
If someone has already run Gmp on a microcontroller I am very interested in the way to do it !
I finally found the solution, the cortex type must be specified.
For the stm32f4, add -mcpu=cortex-m4 to the CFLAGS solve the problem.
I use the toolchain available here: arm-none-eabi toolchain
The whole configuration command is:
./configure CC=arm-none-eabi-gcc CFLAGS="-nostartfiles --specs=nosys.specs -mcpu=cortex-m4" --host=arm-none-eabi --disable-assembly --prefix=your-bare-metal-gmp-location
where "your-bare-metal-gmp-location" is the installation directory (you must not install a bare metal library in the classical /usr/local).

Running an Arduino program in NetBeans 7.3

I am using Arduino and NetBeans in my project. My final work is to switch from Arduino program to Java. I managed to install an Arduino-NetBeans plugin as described in Arduino - NetBeans Plugin detail
My Arduino program includes
Serial.begin(9600); /////// Serial.print();
I get an error saying that "Unable to resolve identifier Serial". How can I solve this?
this is what you have to add to your source file:
#include <Arduino.h>
// imports the Serial class to allow log output
extern HardwareSerial Serial;
then it will work.
As answered by cgo you can add extern HardwareSerial Serial;
Or into your Project Settings, go to BUILD > C++ COMPILER > PREPROCESSOR DEFINITIONS and add: __AVR_ATmega328P__ (if you are working with Arduino UNO)
The message "unable to resolve identifier Serial" means that the compiler is searching for the variable Serial, but cannot find its declaration. You should check if you include all header files properly. I don't know the NetBeans plugin, but I guess the Serial-structure/class is initialised there.
If that is not helping, you should check the compiler otions and set them to default, as described on the project-site.

Processing to Arduino "IllegalAccessError"

I hope this exact issue was not addressed already. I did search for a while.
So I'm using the Arduino library for Processing, testing it by simply having it blink an LED that I have connected to my Arduino UNO. I'm following this tutorial, but am having a problem a little different than the ones covered on that tutorial page. Here's my Processing code:
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
int ledPin = 13;
void setup()
{
//println(Arduino.list());
arduino = new Arduino(this, Arduino.list()[0], 57600); //error here
arduino.pinMode(ledPin, Arduino.OUTPUT);
}
void draw()
{
arduino.digitalWrite(ledPin, Arduino.HIGH);
delay(1000);
arduino.digitalWrite(ledPin, Arduino.LOW);
delay(1000);
}
Here's my error:
IllegalAccessError: tried to access class processing.core.PApplet$RegisteredMethods from class cc.arduino.Arduino$SerialProxy
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
Exception in thread "Animation Thread" java.lang.IllegalAccessError: tried to access class processing.core.PApplet$RegisteredMethods from class cc.arduino.Arduino$SerialProxy
at cc.arduino.Arduino$SerialProxy.<init>(Arduino.java:119)
at cc.arduino.Arduino.<init>(Arduino.java:168)
at sketch_130206a.setup(sketch_130206a.java:29)
at processing.core.PApplet.handleDraw(PApplet.java:2117)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:193)
at processing.core.PApplet.run(PApplet.java:2020)
at java.lang.Thread.run(Thread.java:680)
Since my error apparently has to do with access permissions, I tried doing what it says at the tutorial page I was following by going to /var/lock folder, but the /lock folder doesn't exist! I'm using a Mac 10.8.2. I searched around and found this thread (arduino dot cc/forum/index.php?topic=135164.0) and decided to try "sudo mkdir -p /var/lock" and "sudo chmod 777 /var/lock" in terminal, but it didn't change the error I have in Processing, even after restarting it. I also tried opening the Arduino app and uploading the StandardFirmata sketch as mentioned at the ProcessngxArduino library download page (playground.arduino dot cc/interfacing/processing) while trying to run the processing sketch, but same error. The fact that I'm using the Arduino UNO instead of the Duemilanove shouldn't be the issue as the UNO is apparently just an updated version of it. Any ideas what I could try to do next?
UPDATE: Okay so the highlighted error in my code is what opens the serial port I'm using at whatever rate (57600 bits/sec in this case I think). So I think the problem lies in this particular step in the instructions at the adrunio x processing info page mentioned earlier(playground dot arduino dot cc/interfacing/processing), step 3: "Configure Processing for serial: processing dot org/reference/libraries/serial/"... the link goes to processing's 'serial' reference page. I'm confused about what is meant by "configure"? How exactly do I figure out my "correct serial port"? I went through the rest of the instructions and the examples on the serial reference page, and still have no idea what I'm looking for.
UPDATE #2: My serial port for the arduino is "/dev/tty.usbmodem1411". I am still confused about how to plug this in to my code in Processing though. The things I just learned in these last 2 updates might be irrelevant to my error, I'm still unsure.
The problem was that I was using the beta version of Processing (2.0). Use the latest stable version (1.5.1) and it should work.

Resources