Comments (28)
I haven't had a chance to document it and it's definitely a work in progress, but if you're feeling adventurous :)
(note, I only know how to walk you through on a Mac)
If Arduino IDE is open, quit!
# Get yourself into this directory...
cd /Applications/Arduino.app/Contents/Resources/Java/libraries/
# make a backup of the existing Firmata
cp -r Firmata Firmata_stable
# rm Firmata
rm -r Firmata
# clone the experimental repo branch
git clone git://github.com/jgautier/arduino-1.git Firmata
# enter!
cd Firmata
# get the branch with pulseIn
git checkout -b pulseIn origin/pulseIn
Now open the Arduino IDE.
File > Examples > Firmata > Standard Firmata
Once that's loaded into the IDE, confirm it is the correct program by searching for "PULSE_IN"
Compile and upload!
If you receive an error about PULSE_IN not being in scope, then copy this:
#define PULSE_IN 0x74 // send a pulse in command
...and add it below this line:
#define REGISTER_NOT_SPECIFIED -1
Compile and upload to the Arduino. Close the IDE.
EDIT: (adding @korevec's additional instructions)
EDIT: March 2014, the steps below are no longer necessary, as the pulseIn branch ships in master
# Get into johnny-fives node module deps dir
cd johnny-five/node_modules
# copy the old firmata
cp -r firmata/ firmata-npm
# clone julian's upstream in place of the old firmata
git clone git://github.com/jgautier/firmata.git
# enter the repo, create a pulseIn branch and pull julian's pulseIn branch
cd firmata && git checkout -b pulseIn && git pull origin pulseIn
Now you should be able to use Ping. Hopefully I haven't missed anything - let me know if I have :)
Also, I'm on IRC/freenode in #robotjs (nick: rwaldron)
from johnny-five.
Thanks for the quick response! It worked :) I added one more step. I had to checkout the pulseIn branch on https://github.com/jgautier/firmata/
from johnny-five.
The last git step didn't work for that? I should move these instructions to the read me
from johnny-five.
The last git step is for the arduino firmata pulseIn branch. It also needs the node firmata pulseIn branch. Or, am I confused? ;)
from johnny-five.
Haha -- yes, I totally missed that.
Can you help me update this with the missing steps? We'll add it to the repo for others to follow :)
from johnny-five.
might as well merge the pulseIn branch into master node firmata. shouldnt hurt anything with it being there.
from johnny-five.
i got problems here:
cd firmata && git cob pulseIn && git pull origin pulseIn
Cant find command cob
from johnny-five.
Oh, ouch. my bad. Those are shortcuts that I have on my system. I had copy/pasted this. I'm sorry about that.
from johnny-five.
Should be:
cd firmata && git checkout -b pulseIn && git pull origin pulseIn
from johnny-five.
ok thanks :)!
from johnny-five.
I just got this working on a 4 ping sensor ( HC-SR04 ) with directions from @nexxy. Basically, "bridge" the Trigger and the Echo pins. Simply put a jumper wire between these two pins as per (the bridge between 18 & 19) - then the values come through on both the Trigger & Echo, so you can pop either one in the digital out.
from johnny-five.
It was weird when I opened this and saw the picture... since the breadboard and HC-SR04 are still sitting on my desk exactly as shown here...
from johnny-five.
@rwldrn and I had to screenshot your picture, because twitter screws with image urls, if you open them, it'll give you the full web page.
from johnny-five.
Hi there.. I'm working on a Firmata based Arduino project and needed a PulseIn function like you implemented here. Great work. It'd be really nice if this was included in the Standard Firmata release. Any chance you might send them a pull request?
Also, it might be more flexible if trigger and echo lines can be separated; i.e., send echo on one line and read the trigger on a different one. (The user can of course use the same pin if so desired.)
from johnny-five.
I merged the pulsein changes from https://github.com/jgautier/arduino-1/tree/pulseIn into AdvancedFirmata, so that hopefully we can get all custom functionality into a single place (steppers, pulsein, etc)
You can find it currently at: https://github.com/dwayn/AdvancedFirmata/tree/pulsein and I also have an outstanding pull request back to soundanalogous to get it merged into root repo.
Tested with eg/ping.js and all seems to be working correctly
from johnny-five.
For people coming to this issue now (23/07/2013): the master branch of https://github.com/jgautier/firmata works fine, whereas the pulseIn branch does not work at this point in time, so you can ignore the last step of @rwldrn 's instructions (i.e. checking out the pulseIn
branch on @jgautier 's firmata repo).
from johnny-five.
Thanks!!
Avoid this altogether with http://www.maxbotix.com/Ultrasonic_Sensors.htm#LV-EZ
from johnny-five.
@rwldrn I will, but the HC-SR04 is really popular (and very cheap), so you see them used a lot. I thought I better let people know here to avoid the pain I've been through and for the trouble shooting guide. 😉
from johnny-five.
I know :) and I appreciate the update!
from johnny-five.
Thanks for this fix! Nexxy helped me get this running this afternoon via IRC and pointing to this issue. So cool to run the Arduino from Node. ;)
from johnny-five.
hi, i really like johnny-five i think that it is amazing but, there is something like documentacion or some books in order to learn about this amazing library named johnny-five.
from johnny-five.
is this still working? cause here i don't get anything in console
from johnny-five.
@felixsanz have you loaded the the modified version of StandardFirmata onto the board? https://github.com/rwaldron/johnny-five/wiki/Ping#setup
from johnny-five.
Meh, sorry. I was using "gort" to upload firmata and i thought that i could checkout that pulse-in firmata to gort, so gort uploads that new one. Fail. I needed to push the firmata using arduino IDE as your link suggest. Thx
from johnny-five.
@felixsanz Glad you were able to make progress. Let me know if you have any other questions
from johnny-five.
@felixsanz Looks like gort ships pre-compiled .hex files to be uploaded. I'm sorry if that tool was misleading, I know how awful the feeling of temporary failure can be. Here's my pledge: to avoid this in the future, I'm going to try to find a better way to manage the pulseIn branch of StandardFirmata. Ideally we can do it as a module that can be installed via npm.
from johnny-five.
@felixsanz check this out: https://github.com/AdamMagaluk/leo there are a whole bunch of "ino" modules for this. I'm going to look into making a pulseIn-enabled StandardFirmata ino for this :)
from johnny-five.
Thats a great tool, thanks!
from johnny-five.
Related Issues (20)
- Using PWM and AC DImmer RobotDyn
- Cannot Input Mode Pin 12, 14, 15. ESP8266 HOT 4
- Refactor DS18B20 Temperature Conversion Time Handling
- Usage with Electron of latest J5 versions? HOT 6
- Status of Release?
- Using a Coin selector
- CAN bus with mcp2515 support, and other libraries
- MKR 1010 board HOT 1
- INPUT_PULLUP on digital input pin HOT 12
- I2C Scanner?
- Input pull-up doesn't work on expanders HOT 3
- Unable to use Led.Digits with Multple Boards HOT 4
- Stop stepper while running HOT 2
- Servo animation enqueue is buggy HOT 6
- Calling animation.next inside onloop callback is not working.
- Sensor disable only works once. HOT 3
- Is there a way to use multiple I2C LCD's HOT 2
- RaspberryPi issue HOT 3
- Intermittent Error Code 31 in GetOverlappedResult
- Arduino Mega Link Bork'd HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from johnny-five.