Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
It seemed the series as a whole lacked a proper topic and I came across this post today that, through "Intertial Measurement Sensors" (aka Gyroscopes and accelerometers) to fix blurry photos.

The system records the movement at time of the capture and software on a computer rids the blur based on that data. The system on the camera uses an Arduino, after searching Cemetech it seems there may be more than one model.

I thought it was extremely cool and I can't wait for consumer cameras to have these sensors, whether or not the software is ready.
Soooo, are you asking for information about the different types of Arduinos? I'm a bit confused. This seems like a very odd new topic.
No, just something we all can post stuff in related to Arduino's. Whether it be our completed projects or others. The topics we have now seem to be for a certain model of the Arduino.
comicIDIOT wrote:
No, just something we all can post stuff in related to Arduino's. Whether it be our completed projects or others. The topics we have now seem to be for a certain model of the Arduino.
Ah, excellent. Then I will re-post my Arduino to TI-84+ video. I still have the libraries for the linking, and indeed I've given them to a few people, so give me a shout if anyone would like to play with them.

There's actually quite a few Arduino threads on the second page of this subforum.
Ultimate Dev'r wrote:
There's actually quite a few Arduino threads on the second page of this subforum.
Indeed, but I think comicIDIOT was interested in projects that can run both on the Duemilanove and on the Uno (?)...
Hello!

First post!
I'm very interested in the libraries for the linking between the Ti-84 plus and an arduino.
I guess it's working with the Rx/Tx port on the arduino?
Do i need to have some knowledges in z80 language's for using it on the calc? All i want to do is to display a sensor value on my calculator and send some settings from the calculator to the arduino. I think i can do this with Ti-Basic language with send() and get() commands, isn'it?

Thanks WalterW
WalterW wrote:
Hello!

First post!
I'm very interested in the libraries for the linking between the Ti-84 plus and an arduino.
I guess it's working with the Rx/Tx port on the arduino?
Do i need to have some knowledges in z80 language's for using it on the calc? All i want to do is to display a sensor value on my calculator and send some settings from the calculator to the arduino. I think i can do this with Ti-Basic language with send() and get() commands, isn'it?

Thanks WalterW


No, you have to use the calcnet feature of DCS which requires knowledge of the z80 assembly language. Basic send() and get() are for TI made products that interact with a calculator. There is almost no possible way to use get and send to interact with a Arduino imo (unless you make some sort of interpreter?)
Welcome to Cemetech WalterW! You can introduce yourself here.
Qazz is correct, you will have to learn z80 assembly to interact with an Arduino.
souvik1997 wrote:
Welcome to Cemetech WalterW! You can introduce yourself here.
Qazz is correct, you will have to learn z80 assembly to interact with an Arduino.


Yes, if you want to know more, please, PLEASE read the whitepaper which can be found at

http://www.cemetech.net/programs/index.php?mode=file&path=/text/misc/CALCnet2.2.zip
souvik1997 wrote:
Welcome to Cemetech WalterW! You can introduce yourself here.
Qazz is correct, you will have to learn z80 assembly to interact with an Arduino.
Qazz is not, in fact, correct. I've created globalCALCnet firmware for the Arduino to let it bridge between a PC and CALCnet, but I've also written firmware that can talk the TI-OS protocol. Unfortunately, Send() and Get() are only for the CBL/CBR devices; you have to use GetCalc() to get variables in BASIC. You'd need to take my firmware routines, plug them into some code to send and receive over serial (which is trivial; I'd be happy to help) and write some PC-side serial communication code. Things would be a bit cleaner if you use CALCnet and z80 ASM, but it's not necessary.
KermMartian wrote:
souvik1997 wrote:
Welcome to Cemetech WalterW! You can introduce yourself here.
Qazz is correct, you will have to learn z80 assembly to interact with an Arduino.
Qazz is not, in fact, correct. I've created globalCALCnet firmware for the Arduino to let it bridge between a PC and CALCnet, but I've also written firmware that can talk the TI-OS protocol. Unfortunately, Send() and Get() are only for the CBL/CBR devices; you have to use GetCalc() to get variables in BASIC. You'd need to take my firmware routines, plug them into some code to send and receive over serial (which is trivial; I'd be happy to help) and write some PC-side serial communication code. Things would be a bit cleaner if you use CALCnet and z80 ASM, but it's not necessary.


Oh, I never knew that... O_O
If I try to explain with a diagram what i have understood, it will be something like that:

First step: read a value sent from the arduino to the calculator via the serial link:




Second step: Send a value from the Ti 84 plus to the arduino. I guess if the second solution showed above is working, it would be quite easy to do. It would be used for example to control a servo-motor from the calculator

The serial connection between the arduino and the calculator would be like that:


I'm not doing a mistake?

When i'm watching the "Arduino to TI-84+ video", i 'm just asking myself:" but it is not possible to do just the same with a temperature sensor instead of a joystick ?" Or maybe there is something i didn't have understood very well ?

WalterW
OK, I understand now. You want to use the Arduino to capture data from a temperature sensor and somehow get that data onto the calculator, correct? In answer to your question at the end of your post, yes, it is most certainly possible to do the same with a temperature sensor instead of a joystick. You're overthinking the calculator to Arduino circuitry: You just need to share their ground and connect the tip/ring each to a data pin on the Arduino. That circuit you posted does serial levelling, which is wholly unnecessary. Either my TI-Link or CALCnet protocol would work equally well for your project. The main advantage of using CALCnet is that you could have your Arduino pretend to be a calculator broadcasting the readings over the network, so you could have a bunch of calculators all receiving the data (and/or other data if you decide to connect other sensors to the Arduino).
Quote:
OK, I understand now. You want to use the Arduino to capture data from a temperature sensor and somehow get that data onto the calculator, correct?
Yes! Smile

Quote:
Either my TI-Link or CALCnet protocol would work equally well for your project.
I am studying the "CALCnet 2.2 Whitepaper" Quite hard for me(not used to manipulate these protocols: my everyday work is on diesel engines Wink ), but I think i have understood the frame structure.

I 'm learning z80 asm language to be able to get bytes from the calculator serial port via your Calcnet 2.2 protocol.

From the arduino side, i have to send correct framed phrases with the Data wire and the Clock wire.

That's correct?
You don't need a serial link cable for that, just something to connect the link port's pins to the arduino. The serial link is for transferring stuff to and from a PC.
willrandship wrote:
You don't need a serial link cable for that, just something to connect the link port's pins to the arduino. The serial link is for transferring stuff to and from a PC.
I said that already. Wink

Walter: Well, CALCnet makes things very easy for you. You don't have to do any manipulation of the clock and data lines; all you need to do is periodically check one area of memory where the CALCnet interrupt stores data it receives. The interrupt runs in the background, dealing with data it receives, and simply requires that you check the relevant memory area and clear it out if there's data waiting for you. If you'll be using the Arduino to write broadcast frames to the network containing the temperature, the CALCnet buffer will occasionally contain those broadcasts, so you'll need to fetch them and clear the buffer.
Hi there

Like WalterW I am also trying to connect a TI-84+ SE to an arduino with an link cable for a similar purpose: I'd like to read the values from a sensor with the arduino and send them to the calculator to do things with them.

I made a tiny arduino sketch to read the state of the red and white wires continuously:


Code:
const int red = 4;
const int white = 7;

void setup(){
  Serial.begin(9600);
  pinMode(red, INPUT);
  pinMode(white, INPUT);
}

void loop(){
  Serial.print("red is ");
  Serial.print(digitalRead(red));
  Serial.print(" and white is ");
  Serial.println(digitalRead(white));
}


and I'm trying to manipulate the wires from the calculator and see if something changes in the serial output of the arduino. I've tried send() and get() only to find they are only to communicate with CBL/CBR devices. Then I tried getCalc() and nothing seemed to happen to the wires. Then I made a TISDCC program that called SendAByte, but still nothing happened. Now, I'm trying to learn some assembly as a last resort... and I've got this little program:


Code:
.nolist
#include "ti83plus.inc"
#define    ProgStart    $9D95
.list
.org    ProgStart - 2
.db    t2ByteTok, tAsmCmp

main:
;   di
;   ld a, $01
;   out (8), a
   b_call(_GetCSC)
   cp skClear
   jr z, exit
   ld a, $D1
   out (0), a
   jp main

exit:
   ;ei
   ret

.end
.end


While not executing the program above, the arduino's serial monitor gives a "red is 1 and white is 0" infinitely.
When running the program, whatever the value I set the port 0 to, be it $D0, $D1, $D2 or $D3, a lot of random 1s and 0s appear on the serial monitor. Then, if I press clear to exit, the calculator becomes very very slow after returning to the main promt (I need to press a key for a long time for it to recognize it, and it won't let me turn off the calculator. I have to take off one of the batteries to make it return to normal), and the values on the serial monitor continue to change.

I tried disabling the link assist and disabling the interrupts as you can see in the commented code hoping it would at least not slow down the calculator, but it didn't seem to change a thing.

I considered using some library like Bell or CALCnet but that wouldn't make any difference if I can't even make something simple like changing the wires state work, right?

Can anyone spot what I am doing wrong? It seemed so easy from watching the video and reading the code KermMartian posted on another thread Sad

Thanks in advance and sorry for the eventual bad english :\
Just a couple quick notes from a cursory glance. The link port only has 2 bits. Each a 1 or 0. So when you output $D1 to the port, it only cares about the last two bits (In this case, a 0 and a 1). It's probably better to output the numbers in binary, such as:
Code:
ld a,%00000011
out (0),a
;etc

I have also noticed the annoying thing where the calculator gets slow as can be :/ I think (not certain) that it has to do with leaving one of the lines high (a 1) and the calculator thinks it is connected to another calculator (or computer) and it is waiting for that data to come in. Also, don't forget to take the link cable out after you're done (which might fix it)
jpr, welcome to Cemetech! I'm glad you guys all have seen some of the things that I have been working on. Jpr, as _player correctly said, when a device is plugged into the link port, the TI-OS continually tries to receive from it, hence the annoying slowdown. Perhaps turning on the pull-up resistors on the Arduino would do the trick? Your sketch would change to look like this:


Code:
const int red = 4;
const int white = 7;

void setup(){
  Serial.begin(9600);
  pinMode(red, INPUT);
  digitalWrite(red, HIGH);       // turn on pullup resistors
  pinMode(white, INPUT);
  digitalWrite(white, HIGH);       // turn on pullup resistors
}

void loop(){
  Serial.print("red is ");
  Serial.print(digitalRead(red));
  Serial.print(" and white is ");
  Serial.println(digitalRead(white));
}


By the way, the new guys should feel free to Introduce Yourselves in the appropriate topic. Smile
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement